<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>M. Zharova</title>
    <description></description>
    <link>/</link>
    <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 16 Dec 2021 17:30:59 +0000</pubDate>
    <lastBuildDate>Thu, 16 Dec 2021 17:30:59 +0000</lastBuildDate>
    <generator>Jekyll v3.4.0</generator>
    
      <item>
        <title>Hamb with a heart-shaped locket</title>
        <description>&lt;p&gt;I’ve been thinking about this picture a lot the past few days. I just find it really striking because, you really feel how loved this creature is, in its every aspect. If it were not loved, it would look very different, possibly repulsive even, maybe like a golem or something.&lt;/p&gt;

&lt;p&gt;The effect of love on external appearance is almost like testosterone or estrogen in how they affect secondary sexual characteristics—you can feel that this content fat little goblin is dearly loved, and that love has permeated all of its cells and shaped it to be so endearing and “babymode”. The heart-shaped locket around it’s neck is kind of a literal visual symbol of that love. The way it looks at the camera radiates secure love, a calm expectation of it, like it already knows it will be kissed on its little head once the person puts their phone/camera down.&lt;/p&gt;

&lt;p&gt;Ive been thinking about this hamb a lot because its so representative of the kind of feedback loop of love— it is loved because it is lovable, but it’s lovable because it is loved. It can be loved because it knows how to “be” loved, because it was loved. This is an aspect of the interactions of all things, not even necessarily living. A thing that hasn’t known love doesn’t know how to “be” loved, and people don’t know how to love it either, because love is like a dirt path that people trample in the grass getting to their destination repeatedly—actually called a “&lt;a href=&quot;https://en.wikipedia.org/wiki/Desire_path&quot;&gt;desire path&lt;/a&gt;“—a mathematical attractor system set in motion. And i think about how people and animals and “places” and “things” exist outside of this system of attractors until someone sufficiently loves them enough for them to be “initiated” into this system. In a way this makes me very sad, but it’s also kind of beautiful too. So it feels very special and poignant to see something so permeated with love.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/loved_hamb.jpg&quot; alt=&quot;Loved Hamb&quot; class=&quot;tall-img-full&quot; /&gt;&lt;/p&gt;

</description>
        <pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate>
        <link>/misc/hamb-of-love</link>
        <guid isPermaLink="true">/misc/hamb-of-love</guid>
        
        <category>musings</category>
        
        <category>cats</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Dimensions in P5</title>
        <description>&lt;p&gt;Yesterday I decided to check out p5.js, a javascript library for building graphics and visualizations, and it seems really intuitive and cool! One of the things I looked at was &lt;a href=&quot;https://p5js.org/examples/simulate-l-systems.html&quot;&gt;L-systems&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div id=&quot;canvas1&quot;&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;L-systems can be used to procedurally generate/render a bunch of really cool stuff like realistic looking trees and other natural phenomena, but im a noob so i’m just playing around with the geometric algorithm that’s provided in the p5.js example project.&lt;/p&gt;

&lt;p&gt;Apart from the fact that the resulting shape sort of resembles the silhouette of my neighbor totoro, there’s something else that’s interesting about this shape!
&lt;br /&gt;&lt;/p&gt;

&lt;div id=&quot;canvas2&quot;&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn1.thr.com/sites/default/files/imagecache/landscape_928x523/2017/06/screen_shot_2017-06-02_at_11.31.04_am_0.png&quot; alt=&quot;totoro&quot; /&gt;&lt;/p&gt;

&lt;!-- Scripts --&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/p5.js&quot;&gt;&lt;/script&gt;

&lt;script&gt;

	// TURTLE STUFF:
let x, y; // the current position of the turtle
let currentangle = 0; // which way the turtle is pointing
let step = 20; // how much the turtle moves with each 'F'
let angle = 90; // how much the turtle turns with a '-' or '+'

// LINDENMAYER STUFF (L-SYSTEMS)
let thestring = 'A'; // &quot;axiom&quot; or start of the string
let numloops = 5; // how many iterations to pre-compute
let therules = []; // array for rules
therules[0] = ['A', '-BF+AFA+FB-']; // first rule
therules[1] = ['B', '+AF-BFB-FA+']; // second rule

let whereinstring = 0; // where in the L-system are we?

function setup() {
  var canvas = createCanvas(710, 400);
  background(255);
  stroke(0, 0, 0, 255);
  canvas.parent('canvas1');
  // console.log(createCanvas);

  // start the x and y position at lower-left corner
  x = 0;
  y = 400;

  // COMPUTE THE L-SYSTEM
  for (let i = 0; i &lt; numloops; i++) {
    thestring = lindenmayer(thestring);
  }
}

function draw() {

  // draw the current character in the string:
  drawIt(thestring[whereinstring]);

  // increment the point for where we're reading the string.
  // wrap around at the end.
  whereinstring++;
  if (whereinstring &gt; thestring.length-1) whereinstring = 0;

}

// interpret an L-system
function lindenmayer(s) {
  let outputstring = ''; // start a blank output string

  // iterate through 'therules' looking for symbol matches:
  for (let i = 0; i &lt; s.length; i++) {
    let ismatch = 0; // by default, no match
    for (let j = 0; j &lt; therules.length; j++) {
      if (s[i] == therules[j][0])  {
        outputstring += therules[j][1]; // write substitution
        ismatch = 1; // we have a match, so don't copy over symbol
        break; // get outta this for() loop
      }
    }
    // if nothing matches, just copy the symbol over.
    if (ismatch == 0) outputstring+= s[i];
  }

  return outputstring; // send out the modified string
}

// this is a custom function that draws turtle commands
function drawIt(k) {

  if (k=='F') { // draw forward
    // polar to cartesian based on step and currentangle:
    let x1 = x + step*cos(radians(currentangle));
    let y1 = y + step*sin(radians(currentangle));
    line(x, y, x1, y1); // connect the old and the new

    // update the turtle's position:
    x = x1;
    y = y1;
  } else if (k == '+') {
    currentangle += angle; // turn left
  } else if (k == '-') {
    currentangle -= angle; // turn right
  }

  // give me some random color values:
  let r = random(128, 255);
  let g = random(0, 192);
  let b = random(0, 50);
  let a = random(50, 100);

  // pick a gaussian (D&amp;D) distribution for the radius:
  let radius = 0;
  radius += random(0, 15);
  radius += random(0, 15);
  radius += random(0, 15);
  radius = radius / 3;

  // draw the stuff:
  fill(r, g, b, a);
  ellipse(x, y, radius, radius);
}
&lt;/script&gt;

&lt;script&gt;
	// TURTLE STUFF:
let x, y; // the current position of the turtle
let currentangle = 0; // which way the turtle is pointing
let step = 20; // how much the turtle moves with each 'F'
let angle = 91; // how much the turtle turns with a '-' or '+'

// LINDENMAYER STUFF (L-SYSTEMS)
let thestring = 'A'; // &quot;axiom&quot; or start of the string
let numloops = 5; // how many iterations to pre-compute
let therules = []; // array for rules
therules[0] = ['A', '-BF+AFA+FB-']; // first rule
therules[1] = ['B', '+AF-BFB-FA+']; // second rule

let whereinstring = 0; // where in the L-system are we?

function setup() {
  var canvas2 = createCanvas(710, 400);
  background(255);
  stroke(0, 0, 0, 255);
  canvas2.parent('canvas2');
  // console.log(createCanvas);

  // start the x and y position at lower-left corner
  x = 0;
  y = 400;

  // COMPUTE THE L-SYSTEM
  for (let i = 0; i &lt; numloops; i++) {
    thestring = lindenmayer(thestring);
  }
}

function draw() {

  // draw the current character in the string:
  drawIt(thestring[whereinstring]);

  // increment the point for where we're reading the string.
  // wrap around at the end.
  whereinstring++;
  if (whereinstring &gt; thestring.length-1) whereinstring = 0;

}

// interpret an L-system
function lindenmayer(s) {
  let outputstring = ''; // start a blank output string

  // iterate through 'therules' looking for symbol matches:
  for (let i = 0; i &lt; s.length; i++) {
    let ismatch = 0; // by default, no match
    for (let j = 0; j &lt; therules.length; j++) {
      if (s[i] == therules[j][0])  {
        outputstring += therules[j][1]; // write substitution
        ismatch = 1; // we have a match, so don't copy over symbol
        break; // get outta this for() loop
      }
    }
    // if nothing matches, just copy the symbol over.
    if (ismatch == 0) outputstring+= s[i];
  }

  return outputstring; // send out the modified string
}

// this is a custom function that draws turtle commands
function drawIt(k) {

  if (k=='F') { // draw forward
    // polar to cartesian based on step and currentangle:
    let x1 = x + step*cos(radians(currentangle));
    let y1 = y + step*sin(radians(currentangle));
    line(x, y, x1, y1); // connect the old and the new

    // update the turtle's position:
    x = x1;
    y = y1;
  } else if (k == '+') {
    currentangle += angle; // turn left
  } else if (k == '-') {
    currentangle -= angle; // turn right
  }

  // give me some random color values:
  let r = random(128, 255);
  let g = random(0, 192);
  let b = random(0, 50);
  let a = random(50, 100);

  // pick a gaussian (D&amp;D) distribution for the radius:
  let radius = 0;
  radius += random(0, 15);
  radius += random(0, 15);
  radius += random(0, 15);
  radius = radius / 3;

  // draw the stuff:
  fill(r, g, b, a);
  ellipse(x, y, radius, radius);
}
&lt;/script&gt;

</description>
        <pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate>
        <link>/misc/dimensions</link>
        <guid isPermaLink="true">/misc/dimensions</guid>
        
        <category>coding</category>
        
        <category>javascript</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Coding Project: Makerspace Map</title>
        <description>&lt;p&gt;I’ve been casually learning about programming and data science over the past few months, and I figured it was time to just jump in and try something myself. This project focused on geospatial data. I’ve been particularly keen on learning to work with CSVs and JSON in a web project, so this little mappy has been a bit of a stepping stone to a more major project I have in mind 😈 I was so excited to do this that I couldn’t stop working on it and I finished the grunt of it in a bit less than a week 🤖🤖🤖 (but I’ve been continuously adding more things to it since then as well, and will probably continue to expand it).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://leucotic.github.io/makerspacetestmap/&quot;&gt;https://leucotic.github.io/makerspacetestmap/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is what the original project looked like:&lt;/p&gt;

&lt;!-- ![old version](/assets/img/makerspace-gis-1.jpg) --&gt;
&lt;div style=&quot;text-align: center; width: 100%; height: 80vh;&quot;&gt;
	&lt;iframe src=&quot;https://leucotic.github.io/makerspacetestmap/orig-layout.html&quot; frameborder=&quot;0&quot; height=&quot;100%&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;
	
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
This project involved:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;actually doing stuff other than dropdowns with javascript&lt;/li&gt;
  &lt;li&gt;parsing a separate CSV file containing data into JSON (using &lt;a href=&quot;https://www.papaparse.com/&quot;&gt;papa parse&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;working with JSON / writing to JSON&lt;/li&gt;
  &lt;li&gt;working with a GIS javascript library called &lt;a href=&quot;https://leafletjs.com&quot;&gt;leaflet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;trying to figure out what the heck is an asynchronous language and how to do callback functions&lt;/li&gt;
  &lt;li&gt;generating html tables with javascript&lt;/li&gt;
  &lt;li&gt;designing/coding custom map markers&lt;/li&gt;
  &lt;li&gt;making it so that you could click on a link outside of the map in order to open up a location on the map, and center the map on that location (this was actually quite challenging because this isn’t a functionality that’s really part of leaflet and so there’s no documentation/existing code for it, I had to scrape together ideas from various half-answered stackoverflow questions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project was pretty clearly defined in scope, so it really didn’t take long, even though I had to teach myself almost every aspect of it from the ground up as I was piecing it all together. I learned a whale of a fuckton! I’d never worked with data at all before, especially not geographic data, nor JSON, nor even real javascript for that matter. Pretty much all the code-y stuff I’ve done so far has just been web design, so I don’t actually have much experience with programming. I’ve only ever done REALLY simple coding “practice problems” and never any actually functional projects from start to finish. so yeah there were,, many tears and creys and console.log errors. But honestly, it was so much fun, I couldn’t stop working on it even as I was ready to just sob hysterically in frustration 😅&lt;/p&gt;

&lt;p&gt;While the technical set-up in terms of map rendering and importing/parsing/using the data is pretty much done, there’s a lot of other things to be worked on, including the actual data set itself, which is a work in progress and currently has some inaccuracies.&lt;/p&gt;

&lt;p&gt;Possible future additions to this project:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;adding automatic geocoding to it with an api so I don’t have to do it manually (by pasting it into a random website i found lol)&lt;/li&gt;
  &lt;li&gt;maybe re-doing it with angular or react and making it a more full-fledged website instead of just a one-pager?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After some updates, here’s what it’s currently looking like:&lt;/p&gt;
&lt;div style=&quot;text-align: center; width: 100%; height: 80vh;&quot;&gt;
	&lt;iframe src=&quot;https://leucotic.github.io/makerspacetestmap/&quot; height=&quot;100%&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;
	
&lt;/div&gt;

&lt;!-- &lt;figure class=&quot;half-desk&quot;&gt;
	&lt;img src=&quot;/assets/img/makerspace-gis-2.png&quot; alt=&quot;current version&quot;&gt;
&lt;/figure&gt; --&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;That’s right, I changed the map from &lt;a href=&quot;https://www.mapbox.com/&quot;&gt;mapbox&lt;/a&gt; to &lt;a href=&quot;https://stamen.com&quot;&gt;stamen&lt;/a&gt;, using their toner map! I mostly did this to avoid issues with access tokens, but this map has a wonderfully graphic quality and I love it. Their watercolor map is also great, but unfortunately—although it is absolutely gorgeous—it’s not particularly functional for information purposes (there’s almost no labels or details).&lt;/p&gt;

&lt;p&gt;I’m also working on slicing and dicing it and transitioning it into a multi-page site as opposed to just a one-pager. That’s all for now, but I’ll probably update this post once the project is finalized.&lt;/p&gt;

</description>
        <pubDate>Tue, 22 Jan 2019 00:00:00 +0000</pubDate>
        <link>/blog/2019/01/22/makerspace-GIS.html</link>
        <guid isPermaLink="true">/blog/2019/01/22/makerspace-GIS.html</guid>
        
        <category>programming</category>
        
        <category>project</category>
        
        <category>javascript</category>
        
        <category>GIS</category>
        
        <category>coding</category>
        
        <category>makerspaces</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>NaNo Rebel Challenge</title>
        <description>&lt;p&gt;In high school I really enjoyed doing challenges like &lt;a href=&quot;https://www.c25k.com/&quot;&gt;C25K&lt;/a&gt; and &lt;a href=&quot;https://nanowrimo.org&quot;&gt;NaNoWriMo&lt;/a&gt; with my close friends. However, in college I didn’t even attempt to do any due to the overwhelming school workload and also due to pet projects taking over my life. Now that I’ve graduated and I have much more free time, less stress and more mental space, I decided to hit up my old buddies (as well as some new ones) and take on some challenges once more.&lt;/p&gt;

&lt;h3 id=&quot;how-it-worked&quot;&gt;How it Worked:&lt;/h3&gt;

&lt;p&gt;I invited my friends to pick a project, set strict goals, and work on it every day for the month of November, in the spirit of &lt;a href=&quot;https://www.wikiwrimo.org/wiki/NaNo_Rebel&quot;&gt;Nano Rebel&lt;/a&gt;. My project was working on my website for 1.5 hours every day. Website-polishing activities for me could include coding/fixing/looking up how to do things, polishing up old writing/articles, writing up articles I planned to write but never did, photoshop/design work for the site, etc.&lt;/p&gt;

&lt;p&gt;My friends’ project were super diverse and ranged from board game design to piano playing to stand-up comedy writing to theology-reading. Initially, 14 people signed up, but a couple others joined in later.&lt;/p&gt;

&lt;p&gt;With some encouragement on my end, participants each created a google doc outlining the nature of their challenge, their reasons for doing it, how they would go about quantifying their work, as well as some bulleted project notes to get them started. I created a discord server for the group and each person who submitted a proper plan got a channel devoted to their project where they could post updates and receive encouragement &amp;amp; feedback. Participants also received awards in the form of server roles for their achievements in the challenge (finishing days 1, 2 &amp;amp; 3; weeks 1, 2 &amp;amp; 3; completing the challenge).&lt;/p&gt;

&lt;h3 id=&quot;results&quot;&gt;Results&lt;/h3&gt;

&lt;p&gt;6 people (including me) finished, about 2-4 people were super close to being finished with some continuing their challenge into december, several people got started but dropped out in the first week, and of course, a number of people never started.&lt;/p&gt;

&lt;h3 id=&quot;what-i-was-able-to-accomplish&quot;&gt;What I was able to accomplish&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;fleshed out about section&lt;/li&gt;
  &lt;li&gt;significantly expanded research section&lt;/li&gt;
  &lt;li&gt;uploaded new articles, lectures, essays, etc&lt;/li&gt;
  &lt;li&gt;added comments sections with disqus&lt;/li&gt;
  &lt;li&gt;implemented a post tag system using yaml frontmatter&lt;/li&gt;
  &lt;li&gt;created related posts calculated by tags&lt;/li&gt;
  &lt;li&gt;when you click on the tag, it takes you to a tag page that has every other post with the tag in it&lt;/li&gt;
  &lt;li&gt;tag pages also have their own suggested related tags (tags that are co-present on posts)&lt;/li&gt;
  &lt;li&gt;tag pages are automatically generated with a python script (it’s a static site so i just run it locally if I upload any new posts, it’s not a client-side thing)&lt;/li&gt;
  &lt;li&gt;tag cloud&lt;/li&gt;
  &lt;li&gt;articles have (sort of) proper link previews (I have to go back and fix some of the metadata on specific articles tho)&lt;/li&gt;
  &lt;li&gt;lots of minor changes here and there that are hard to enumerate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and finally…&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;the website is no longer sad and insecure about itself and is now routed through https:))&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;reflections&quot;&gt;Reflections&lt;/h3&gt;

&lt;p&gt;There’s a ton of stuff I still plan to do and a lot of the stuff I have isn’t perfect and needs a ton of fixing( I have a &lt;a href=&quot;https://docs.google.com/document/d/1M5Q173mcvLyHmz0e9UjWUQTjwmR1FPAUnvWPfS4F_ho&quot;&gt;7 page detailed bulleted list&lt;/a&gt; of future fixins), but I’ve made a giant leap of progress, learned a lot of stuff, and completed the challenge I set for myself :)&lt;/p&gt;

&lt;p&gt;I started out only really knowing basic html and css but now I’ve gained some experience with liquid templating, javascript, and python as well. I’ve always wanted to learn to code but I could never really get into it because I didn’t have anything in particular that I wanted to code. With this project though, I had concrete issues to solve that were meaningful and important to me, and it motivated me to work hard and learn new things. It’s really boosted my confidence and willingness to dive into more serious coding projects.&lt;/p&gt;

</description>
        <pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate>
        <link>/blog/2018/12/04/November-Challenge.html</link>
        <guid isPermaLink="true">/blog/2018/12/04/November-Challenge.html</guid>
        
        <category>site-dev</category>
        
        <category>personal</category>
        
        <category>challenges</category>
        
        <category>nanowrimo</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>New Domain and Future Plans</title>
        <description>&lt;p&gt;Just created a new domain! It only took me forever to figure out all the DNS stuff. Doing it all from scratch is pretty fun actually. Evetually, the plan is to have all my random stuff from all over housed in some kind of systematic way here. I really admire what &lt;a href=&quot;http://www.gwern.net/&quot;&gt;Gwern&lt;/a&gt; does, it’s pretty much my ideal/dream personal website. I want to have all my resource-compiling/squirreling, research, writing, and everything in here. I might even include a meme gallery :) It would be both “my favorite images” as well as stuff I’ve made. For now it’s just my design portfolio. Also everything is currently just in this little subdomain but eventually I might split it up, expand and move it to make better use of the domains and subdomains.&lt;/p&gt;

&lt;p&gt;My old portfolio from junior year is also on here as well, but it’s through &lt;a href=&quot;http://old-portfolio.mzharova.me/&quot;&gt;old-portfolio.mzharova.me&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have some web and motion projects that I plan on including here as well, not sure how it’s gonna be organized yet.&lt;/p&gt;

</description>
        <pubDate>Thu, 31 May 2018 00:00:00 +0000</pubDate>
        <link>/blog/2018/05/31/New-domain.html</link>
        <guid isPermaLink="true">/blog/2018/05/31/New-domain.html</guid>
        
        <category>site-dev</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Hello World</title>
        <description>&lt;p&gt;Just created this portfolio website. I’ll eventually be updating it, adding new projects, and moving the domain, but here it is for now, enjoy :)&lt;/p&gt;
</description>
        <pubDate>Wed, 14 Mar 2018 00:00:00 +0000</pubDate>
        <link>/blog/2018/03/14/Hemlo-world.html</link>
        <guid isPermaLink="true">/blog/2018/03/14/Hemlo-world.html</guid>
        
        <category>site-dev</category>
        
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
