<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.7.0">Jekyll</generator><link href="https://alicja.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://alicja.dev/" rel="alternate" type="text/html" hreflang="en" /><updated>2019-10-29T22:18:14-07:00</updated><id>https://alicja.dev/</id><title type="html">Alicja’s thoughts</title><subtitle>A blog on learning and programming ideas</subtitle><author><name>Alicja Laszuk</name></author><entry><title type="html">HTML/CSS zines</title><link href="https://alicja.dev/idea/2019/08/29/html-css-zines.html" rel="alternate" type="text/html" title="HTML/CSS zines" /><published>2019-08-29T00:00:00-07:00</published><updated>2019-08-29T00:00:00-07:00</updated><id>https://alicja.dev/idea/2019/08/29/html-css-zines</id><content type="html" xml:base="https://alicja.dev/idea/2019/08/29/html-css-zines.html">&lt;p&gt;I wanted to share my handwritten notes on Haskell and other
things I’m learning in a more accessible way (previously, I was
using Notability). I also wanted to create a pure Node.js setup
for generating static websites, without using any external libraries,
just for fun.&lt;/p&gt;

&lt;p&gt;This project uses:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;HTML for content&lt;/li&gt;
  &lt;li&gt;CSS for styling&lt;/li&gt;
  &lt;li&gt;a custom hand-drawn font&lt;/li&gt;
  &lt;li&gt;Node.js for generating output HTML&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some zines I created with this setup:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_why&quot;&gt;Why am I learning Haskell?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_intro&quot;&gt;Haskell: intro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_functions&quot;&gt;Haskell: functions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_division&quot;&gt;Haskell: integer division&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_list_comprehensions&quot;&gt;Haskell: list comprehensions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_mapping_vs_folding&quot;&gt;Haskell: mapping vs folding lists&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/zines/haskell_functors&quot;&gt;Haskell: functors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name>Alicja Laszuk</name></author><summary type="html">I wanted to share my handwritten notes on Haskell and other things I’m learning in a more accessible way (previously, I was using Notability). I also wanted to create a pure Node.js setup for generating static websites, without using any external libraries, just for fun.</summary></entry><entry><title type="html">Unblocking my writing</title><link href="https://alicja.dev/blog/2019/03/26/unblocking-my-writing.html" rel="alternate" type="text/html" title="Unblocking my writing" /><published>2019-03-26T20:12:00-07:00</published><updated>2019-03-26T20:12:00-07:00</updated><id>https://alicja.dev/blog/2019/03/26/unblocking-my-writing</id><content type="html" xml:base="https://alicja.dev/blog/2019/03/26/unblocking-my-writing.html">&lt;p&gt;I often self-identify as a person who reads and writes a lot. Yet it has been challenging to write for the past few months. I wanted to explore why, as my actions were not aligned with my goals.&lt;/p&gt;

&lt;p&gt;I realized I have blocked myself. Yes, writing is hard, especially writing and sharing, but that has not stopped me before. It was the workflow I dreaded that was blocking me.&lt;/p&gt;

&lt;h3 id=&quot;when-your-blog-build-takes-140-seconds&quot;&gt;When your blog build takes 140 seconds&lt;/h3&gt;
&lt;p&gt;I have used Jekyll for my previous website. I kept using it for nearly 3 years without any refactoring or reorganizing the content. The site grew heavy with posts from different contexts, translations, buildup of old projects, abandoned ideas, drafts, and what-ifs. I wrote a few clunky Ruby plugins to use in specific contexts. I was not finding them useful anymore, but I did find it hard to part with them.&lt;/p&gt;

&lt;p&gt;The legacy code and content caused the build time to slowly creep up from a few seconds to well over two minutes. Each time I saw a typo or wanted to play around with content, I could either do it directly in developer tools or wait for the files to rebuild. Not even &lt;code class=&quot;highlighter-rouge&quot;&gt;--watch&lt;/code&gt; helped here much, as I bloated my build script with unnecessary workload.&lt;/p&gt;

&lt;p&gt;This made it incredibly difficult to work with, as I was unable to see my changes quickly and iterate on them. Every blog post became a painful process.&lt;/p&gt;

&lt;p&gt;I only mustered to go through it once every few days. Then every few weeks. Finally even a few months was not enough time to push myself to work with it.&lt;/p&gt;

&lt;h3 id=&quot;i-just-need-a-blog&quot;&gt;I just need a blog&lt;/h3&gt;
&lt;p&gt;I like the idea of using the simplest possible tool for the job. I have a website mostly to share blog posts and update my resume from time to time. I misattributed my Jekyll issues to Jekyll, without looking too closely at the thousands of lines of legacy code hidden neatly in numerous directories, and I was reluctant to try it again.&lt;/p&gt;

&lt;p&gt;Once every few months I’d try a new shiny idea for creating a workflow - Hakyll, Gatsby, WordPress. I even considered hosting Jupyter notebooks as I found it easier to work in them and review my work in chunks. But each of those ideas caused more problems than it offered solutions, as I wanted my website to be simple, static, and fast.&lt;/p&gt;

&lt;p&gt;I revisited Jekyll, but instead of trying to refactor, I started with a clean slate. I took a few days to create a design without any unnecessary assets (turns out pretty much all of them were unnecessary). I coded the blog in a few hours. Migrated the posts I cared about and installed two plugins I needed. Then put back everything else I wanted to preserve as static assets, as to not bloat my build process.&lt;/p&gt;

&lt;p&gt;It takes 3.5 seconds now.&lt;/p&gt;

&lt;h3 id=&quot;those-jupyter-notebooks-sound-pretty-neat-tho&quot;&gt;Those Jupyter notebooks sound pretty neat tho&lt;/h3&gt;
&lt;p&gt;For some reason, Jupyter notebooks still sounded appealing. It turns out the CSS blog posts I’ve been painstakingly managing with huge CSS files and handcrafted code chunks in Markdown can be created without much friction using Jupyter &lt;code class=&quot;highlighter-rouge&quot;&gt;display&lt;/code&gt; built-ins.&lt;/p&gt;

&lt;p&gt;Lo and behold, I can iterate on my ideas and write CSS notes, saving each step of the way while exploring (more on that soon). No more “fork CodePen every time something fun happens”. No more “I just need to render this thing in a browser”. Open a notebook, explore, and export to Markdown.&lt;/p&gt;

&lt;h3 id=&quot;if-you-find-a-workflow-painful-there-might-be-something-to-it&quot;&gt;If you find a workflow painful, there might be something to it&lt;/h3&gt;
&lt;p&gt;I was writing off issues with my workflow as laziness and lack of creativity. I was &lt;em&gt;obviously&lt;/em&gt; not determined enough to write - otherwise all the issues with long build times, slow website and handcrafted CSS would not stop me. If I was a real blogger…&lt;/p&gt;

&lt;p&gt;Turns out I’m still a blogger at heart and my discomfort was valid. Now I can’t wait to hack away on CSS and generate ideas that I’ll be able to quickly share. Granted, I have not figured out a way to work on fewer ideas at the same time yet. Hopefully it’s a sign of excitement.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I often self-identify as a person who reads and writes a lot. Yet it has been challenging to write for the past few months. I wanted to explore why, as my actions were not aligned with my goals.</summary></entry><entry><title type="html">On passing for a native speaker</title><link href="https://alicja.dev/blog/2019/03/02/on-passing-for-a-native-speaker.html" rel="alternate" type="text/html" title="On passing for a native speaker" /><published>2019-03-02T13:51:00-08:00</published><updated>2019-03-02T13:51:00-08:00</updated><id>https://alicja.dev/blog/2019/03/02/on-passing-for-a-native-speaker</id><content type="html" xml:base="https://alicja.dev/blog/2019/03/02/on-passing-for-a-native-speaker.html">&lt;p&gt;I came to realize how many thoughts I have around my English accent. It’s a mix of pride and anxiety, and this is discomfort I’m not going to get away from anytime soon.&lt;/p&gt;

&lt;h3 id=&quot;why-is-this-important&quot;&gt;Why is this important?&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Okay, so you’re bragging, right? You want to show off and tell everyone how good your accent is. That you’re passing for a native speaker and it is about your ego.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I keep struggling with that idea, because, yes, part of it is pride in my skill level and effort I put into learning it. Part if it is lack of comfort, and awareness of my privilege.&lt;/p&gt;

&lt;p&gt;I have small interactions around my accent daily. They are usually positive for me and well-meaning from others. I enjoy them, but they leave me with a sense of uneasiness every so often. And digging into that uneasiness seems worth the effort.&lt;/p&gt;

&lt;h4 id=&quot;working-as-a-software-engineer&quot;&gt;Working as a software engineer&lt;/h4&gt;

&lt;p&gt;English is the &lt;em&gt;lingua franca&lt;/em&gt; of software engineering, as it is in many other fields. I need it for my day to day work. I needed it even when I was living in Poland. All my code is in English. All my comments are in English. Most of my writing is in English because of the value of sharing ideas and the high cost of translating it. Translating is like rewriting your thoughts in a different voice that somehow needs to still feel like you.&lt;/p&gt;

&lt;p&gt;To keep up to date with technology, grow our skills and work as engineers, we need English.&lt;/p&gt;

&lt;h4 id=&quot;perception-of-certain-vernaculars&quot;&gt;Perception of certain vernaculars&lt;/h4&gt;

&lt;p&gt;It is my understanding that on average people perceive certain vernaculars of English as more-than. There are many dimensions to it: more sophisticated, more fluent, more appropriate. When I was learning English, the vernacular was a somewhat posh Oxbridge version of British English. My grammar, my vocabulary, and my perception of the &lt;em&gt;right&lt;/em&gt; accent come from my impressions of learning the language in Poland.&lt;/p&gt;

&lt;p&gt;Certain vernaculars are undesirable - one of them is Eastern European. To speak with an Eastern European accent is to bring about all our heritage into the room. Suddenly, there is a faint whiff of vodka and a meaty sound of rolling Rs. The consonants are hard and thick, the vowels are sparse and flat. The possible topics of conversation shift to hardship, folklore, and drinking.&lt;/p&gt;

&lt;p&gt;To speak with an Eastern European accent is to label oneself as the other. That other is often perceived as less-than.&lt;/p&gt;

&lt;h4 id=&quot;living-in-an-english-speaking-country&quot;&gt;Living in an English speaking country&lt;/h4&gt;

&lt;p&gt;I look like I could be from anywhere in Europe with my generic European face. My accent and vocabulary put me somewhere close to Northern and Western Europe. My job puts me firmly in the category of professionals.&lt;/p&gt;

&lt;p&gt;When someone asks where I’m from, they bring about curiousness. They expect to hear about a land full of happy blond people speaking a fast-paced Germanic language. They have expectations around good social security systems and an outstanding education.&lt;/p&gt;

&lt;p&gt;Polish.&lt;/p&gt;

&lt;p&gt;But what do you mean Polish? Surely, you’re second generation? Or you moved somewhere as a child? Maybe you had special training and loads of effort put into this? Maybe you’re Polish in an American, second-generation your-grandma-was-Polish way?&lt;/p&gt;

&lt;p&gt;Polish.&lt;/p&gt;

&lt;p&gt;Oh, but you don’t sound Polish! How can it be? I’d never think that! Your English is so good! Where did you learn the accent? Did you study abroad? Have you been in Canada long?&lt;/p&gt;

&lt;p&gt;They’re impressed, they’re amazed, they’re speechless. They grab bits and pieces from their patchy pattern of Eastern European cultures. So, you drink a lot of vodka? And pierogi, yes, I love pierogi!&lt;/p&gt;

&lt;h4 id=&quot;why-cant-people-just-learn-an-accent&quot;&gt;Why can’t people &lt;em&gt;just&lt;/em&gt; learn an accent?&lt;/h4&gt;

&lt;p&gt;Say, how many languages do you speak, with how many different accents?&lt;/p&gt;

&lt;p&gt;Did you learn them at home or at school?&lt;/p&gt;

&lt;p&gt;How many opportunities do you have to practice your second, third, fourth language, on a day-to-day basis?&lt;/p&gt;

&lt;p&gt;How much time do you have to learn anything, with all this stuff going on in your life?&lt;/p&gt;

&lt;p&gt;What’s an accent? How do you make those sounds you make when you speak your language?&lt;/p&gt;

&lt;h3 id=&quot;why-does-it-bother-me-so-much&quot;&gt;Why does it bother me so much?&lt;/h3&gt;

&lt;p&gt;Because learning a language is different than many other ways of being the other. It is not something you were born with. It is something you can change up to a point. It is not something you can &lt;em&gt;just&lt;/em&gt; learn, you need to find your way into it.&lt;/p&gt;

&lt;p&gt;But it’s not perceived as such by an average native English speaker I interact with. They usually assume it’s about effort. If you don’t have the right accent, you didn’t work hard enough. You should take an English class and work on it.&lt;/p&gt;

&lt;p&gt;I can pass for a native speaker. I can experience the same level of comfort in English as I do in Polish. My skill level, my abilities, myself - they’re not judged based on my accent. And that’s comfort that many people don’t have.&lt;/p&gt;

&lt;p&gt;It’s hard to watch movies where accents are being used as a shorthand. Person A has this accent, therefore person A has these characteristics. This is how you should perceive person A. If person A is Eastern European, they’re probably a blue-collar worker who drinks too much. Or an unhappy &lt;em&gt;homo sovieticus&lt;/em&gt; struggling with the post-communist reality. Or a beautiful woman who was saved from being Eastern European by marrying a rich Westerner.&lt;/p&gt;

&lt;p&gt;It’s hard to see people shift their language and behaviour ever so slightly when they hear a hint of otherness. They assume things, they adjust things, they adapt to what they expect an interaction to be like.&lt;/p&gt;

&lt;p&gt;It’s hard not to say the &lt;em&gt;obvious&lt;/em&gt; things. If I have an accent, that means I learned a second language. You have no idea how my thoughts sound. I have to translate them for you and translation makes me speak with somebody else’s voice.&lt;/p&gt;

&lt;p&gt;I am not one of you. I am the other.&lt;/p&gt;

&lt;p&gt;I am not the other. I am one of you.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I came to realize how many thoughts I have around my English accent. It’s a mix of pride and anxiety, and this is discomfort I’m not going to get away from anytime soon.</summary></entry><entry><title type="html">Retrieving drawings from Notability</title><link href="https://alicja.dev/blog/2019/02/27/retrieving-drawings-from-Notability.html" rel="alternate" type="text/html" title="Retrieving drawings from Notability" /><published>2019-02-27T21:47:00-08:00</published><updated>2019-02-27T21:47:00-08:00</updated><id>https://alicja.dev/blog/2019/02/27/retrieving-drawings-from-Notability</id><content type="html" xml:base="https://alicja.dev/blog/2019/02/27/retrieving-drawings-from-Notability.html">&lt;p&gt;I use &lt;a href=&quot;https://www.gingerlabs.com/&quot;&gt;Notability&lt;/a&gt; a lot to take notes while learning and during meetings. It’s fast and comfortable, allowing me to jot down my ideas on the fly. One caveat of taking notes in this way is that they’re not easily exportable in an editable format, so I can’t reuse them in other contexts (e.g. when creating diagrams to explain ideas).&lt;/p&gt;

&lt;p&gt;I poked around and found a blog post by &lt;a href=&quot;https://jvns.ca/blog/2018/03/31/reverse-engineering-notability-format/&quot;&gt;Julia Evans&lt;/a&gt; on reverse engineering the Notability format, which was a great starting point. My use case is a bit different, since I didn’t want to put my notes in the format - I wanted to get them out of it. It also seems that Notability has changed formats since then, but the initial ideas turned very helpful.&lt;/p&gt;

&lt;h3 id=&quot;getting-the-data&quot;&gt;Getting the data&lt;/h3&gt;

&lt;p&gt;I grabbed a note on curl and unzipped the file. I tried to use Julia’s code directly, but quickly realized the data is in a slightly different format. To decode it, I needed to use &lt;code class=&quot;highlighter-rouge&quot;&gt;biplist&lt;/code&gt;, for binary plist files.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;biplist&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;note&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'./Blog_post/Session.plist'&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;plist&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;biplist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;readPlist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;note&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'Not a readable plist: '&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I then wanted to see what’s in the data and poke around a bit to see what I’m working with.&lt;/p&gt;

&lt;p&gt;I needed to retrieve:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;data points for each point in the drawing&lt;/li&gt;
  &lt;li&gt;some information on connecting the points&lt;/li&gt;
  &lt;li&gt;some information on figuring out where a shape/curve ends&lt;/li&gt;
  &lt;li&gt;colors and for the curves&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I listed out the keys and decided &lt;code class=&quot;highlighter-rouge&quot;&gt;$objects&lt;/code&gt; looks promising. I followed with a highly scientific method of going through the keys of &lt;code class=&quot;highlighter-rouge&quot;&gt;$objects&lt;/code&gt; one by one to find something useful. An element that looked promising had keys &lt;code class=&quot;highlighter-rouge&quot;&gt;curvespoints&lt;/code&gt; (sounds like the coordinates of the points) and &lt;code class=&quot;highlighter-rouge&quot;&gt;curvescolors&lt;/code&gt; (might be the colors) in it, so it looked like I hit the spot.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dict_keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'$version'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'$objects'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'$archiver'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'$top'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'$objects'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dict_keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'eventTokens'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'curvesnumpoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'numfractionalwidths'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'curveswidth'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'curvesfractionalwidths'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'$class'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'curvescolors'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'curvespoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'numpoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'numcurves'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;drawing-initial-data&quot;&gt;Drawing initial data&lt;/h3&gt;

&lt;p&gt;I grabbed the points and unpacked them with &lt;code class=&quot;highlighter-rouge&quot;&gt;struct&lt;/code&gt;. To make sure I have the right data, I plotted them.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;struct&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# directly using Julia's method with changing the result to int first &lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# also had to add some changes to process other formats than float (for colors etc.)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fmt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unpack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'{num}{format}'&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fmt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'$objects'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;points&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curvespoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'f'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# let's see a scatterplot of the points&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scatter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;image src=&quot;/images/notability/scatterplot.png&quot; alt=&quot;scatterplot&quot; style=&quot;width: 100%&quot; /&gt;

&lt;p&gt;Yay! This looks like my drawing.&lt;/p&gt;

&lt;p&gt;Now I just need to connect the curves, but how do I know when a shape ends? Maybe some value goes to 0? Let’s check the x values for the points.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Hmm, it doesn’t seem like it. Let’s draw a shape by manually adjusting the range and see where it ends.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# after a few manual adjustments, this seems to be the shape&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;xs2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5036&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ys2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5036&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scatter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xs2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# let's like at what's next to the end of the shape&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;x0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5035&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5040&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;y0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5035&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5040&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;64.0300064086914&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;121.70161437988281&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;123.13665771484375&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;124.48757934570312&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;126.95639038085938&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;74.58029174804688&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;46.82347106933594&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;46.80168151855469&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;46.90596008300781&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;46.85621643066406&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;image src=&quot;/images/notability/shape.png&quot; alt=&quot;shape&quot; style=&quot;width: 40%&quot; /&gt;

&lt;p&gt;Okay, let’s look at some other keys in &lt;code class=&quot;highlighter-rouge&quot;&gt;$objects&lt;/code&gt;. The &lt;code class=&quot;highlighter-rouge&quot;&gt;curvesnumpoints&lt;/code&gt; seems like it can have some information on the number of points in each curve.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;num_points&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curvesnumpoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'i'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;num_points&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;430&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1066&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;379&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2713&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s draw a curve! It looks like the second curve starts at 40 and ends at 125 (40 + 85).&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;x1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;125&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;y1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;125&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;image src=&quot;/images/notability/curve.png&quot; alt=&quot;curve&quot; style=&quot;width: 40%&quot; /&gt;

&lt;p&gt;Awesome! Looking at the keys in &lt;code class=&quot;highlighter-rouge&quot;&gt;$objects&lt;/code&gt;, the useful ones seem to be:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;curvespoints&lt;/code&gt; - the coordinates for each point&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;curvesnumpoints&lt;/code&gt; - the lengths for curves (described as the number of points in a curve)&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;curveswidth&lt;/code&gt; - the widths of curves&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;curvescolors&lt;/code&gt; - the colors of curves, in rgba&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With all that, I should be able to recreate the drawing.&lt;/p&gt;

&lt;h3 id=&quot;putting-it-all-together&quot;&gt;Putting it all together&lt;/h3&gt;

&lt;p&gt;To recreate the original drawing, for every element in &lt;code class=&quot;highlighter-rouge&quot;&gt;curvespoints&lt;/code&gt; I need to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;take the number of points in &lt;code class=&quot;highlighter-rouge&quot;&gt;curvesnumpoints&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;draw a line through them with the color specified in &lt;code class=&quot;highlighter-rouge&quot;&gt;curvescolors&lt;/code&gt; and a width from &lt;code class=&quot;highlighter-rouge&quot;&gt;cruveswidth&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;current_x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;current_y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;points&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curvespoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'f'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;num_points&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curvesnumpoints'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'i'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;widths&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curveswidth'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'f'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;colors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unpack_struct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drawings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'curvescolors'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'B'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# matplotlib uses fractions, so let's rerange colors&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;colors_reranged&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;colors_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colors_reranged&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_points&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;curve&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_points&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;max_x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;current_x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;curve&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;max_y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;current_y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;curve&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;current_x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;current_y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colors_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;linewidth&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;widths&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;current_x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;max_x&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;current_y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;max_y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;image src=&quot;/images/notability/drawing.png&quot; alt=&quot;drawing&quot; style=&quot;width: 100%&quot; /&gt;

&lt;p&gt;I wrote a short script for retrieving drawings from Notability, you can grab it &lt;a href=&quot;https://gist.github.com/trueskawka/7ff89ff12e6529e6cca65015956eaf6e&quot;&gt;from this gist&lt;/a&gt;. It also has a copy of a Jupyter notebook I wrote this post in.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I use Notability a lot to take notes while learning and during meetings. It’s fast and comfortable, allowing me to jot down my ideas on the fly. One caveat of taking notes in this way is that they’re not easily exportable in an editable format, so I can’t reuse them in other contexts (e.g. when creating diagrams to explain ideas).</summary></entry><entry><title type="html">Gender fluid in a gendered language</title><link href="https://alicja.dev/blog/2018/08/08/gender-fluid-in-a-gendered-language.html" rel="alternate" type="text/html" title="Gender fluid in a gendered language" /><published>2018-08-08T12:18:00-07:00</published><updated>2018-08-08T12:18:00-07:00</updated><id>https://alicja.dev/blog/2018/08/08/gender-fluid-in-a-gendered-language</id><content type="html" xml:base="https://alicja.dev/blog/2018/08/08/gender-fluid-in-a-gendered-language.html">&lt;p&gt;I changed the default English pronoun I use for other people to &lt;code class=&quot;highlighter-rouge&quot;&gt;they&lt;/code&gt; some time ago. For a long time I thought
it impossible to incorporate a similar approach in my native language, until I realized I’ve been doing
it all along.&lt;/p&gt;

&lt;p&gt;Polish is a gendered language. &lt;code class=&quot;highlighter-rouge&quot;&gt;Table&lt;/code&gt; is male, &lt;code class=&quot;highlighter-rouge&quot;&gt;floor&lt;/code&gt; is female, while &lt;code class=&quot;highlighter-rouge&quot;&gt;chair&lt;/code&gt; is of a third gender,
similar to English &lt;code class=&quot;highlighter-rouge&quot;&gt;it&lt;/code&gt;. I’m not sure there  is logic behind these assignments, but the fact is it’s
very hard to speak Polish without a gender in mind. Every noun, pronoun, verb and adjective have a gender
and there is no agreed on way of being gender neutral, without using &lt;code class=&quot;highlighter-rouge&quot;&gt;it&lt;/code&gt; that is somewhat dismissive or
derogatory (at least when used for adults).&lt;/p&gt;

&lt;p&gt;Yet I have been gender fluid in Polish all my life without fully realizing it. My first name, &lt;code class=&quot;highlighter-rouge&quot;&gt;Alicja&lt;/code&gt;, I use
with female grammar forms. My second name, &lt;code class=&quot;highlighter-rouge&quot;&gt;Karolina&lt;/code&gt;, I usually abbreviate to the male &lt;code class=&quot;highlighter-rouge&quot;&gt;Karol&lt;/code&gt;, and use it with
male forms. It’s seamless for my loved ones, as they use both (though they usually have a preference,
with my mom using my first name and my grandparents using &lt;code class=&quot;highlighter-rouge&quot;&gt;Karol&lt;/code&gt; exclusively, unless they’re mad at me).&lt;/p&gt;

&lt;p&gt;Thinking back, it’s suprising how easy it has been to use both my names without focusing on gender.
If anyone had an issue with it, I’d just refer to it as a “personal choice” or a “family tradition”.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I added a correction to this post as it was potentially confusing.&lt;/em&gt;
&lt;em&gt;I use both she and they pronouns in English for myself. Feel free to refer to me however feels right for you.&lt;/em&gt;&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I changed the default English pronoun I use for other people to they some time ago. For a long time I thought it impossible to incorporate a similar approach in my native language, until I realized I’ve been doing it all along.</summary></entry><entry><title type="html">The curb cut effect of the Internet</title><link href="https://alicja.dev/blog/2018/07/27/the-curb-cut-effect-of-the-internet.html" rel="alternate" type="text/html" title="The curb cut effect of the Internet" /><published>2018-07-27T18:52:00-07:00</published><updated>2018-07-27T18:52:00-07:00</updated><id>https://alicja.dev/blog/2018/07/27/the-curb-cut-effect-of-the-internet</id><content type="html" xml:base="https://alicja.dev/blog/2018/07/27/the-curb-cut-effect-of-the-internet.html">&lt;p&gt;I recently listened to an episode of the 99% Invisible podcast on &lt;a href=&quot;https://99percentinvisible.org/episode/curb-cuts/transcript/&quot;&gt;curb cuts&lt;/a&gt; 
and it made me pause to appreciate some of the curb cuts I experienced. One with 
the most profound impact on my life is the Internet.&lt;/p&gt;

&lt;p&gt;Without it I wouldn’t be where I am. I wouldn’t have learned 
English well enough to be confident and fluent without all those hours binge-watching 
&lt;em&gt;Bones&lt;/em&gt; and &lt;em&gt;Grey’s Anatomy&lt;/em&gt;. I wouldn’t reignite my interest in programming without 
free MOOCs and open-source communities. I would never go to New York to join the Recurse 
Center, I wouldn’t go to meetups to make friends and find jobs, I finally wouldn’t meet 
my partner and move to Canada.&lt;/p&gt;

&lt;p&gt;The Internet gave me opportunities and support I needed to take advantage of them. A space
to explore, experiment and embarrass myself. A way to learn resilience and build up confidence
by overcoming challenges, making mistakes and getting back on my feet.&lt;/p&gt;

&lt;p&gt;It’s often a mixed bag, yet I can’t be anything but grateful.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I recently listened to an episode of the 99% Invisible podcast on curb cuts and it made me pause to appreciate some of the curb cuts I experienced. One with the most profound impact on my life is the Internet.</summary></entry><entry><title type="html">Browsing in grayscale</title><link href="https://alicja.dev/blog/2018/07/20/Browsing-in-grayscale.html" rel="alternate" type="text/html" title="Browsing in grayscale" /><published>2018-07-20T12:50:00-07:00</published><updated>2018-07-20T12:50:00-07:00</updated><id>https://alicja.dev/blog/2018/07/20/Browsing-in-grayscale</id><content type="html" xml:base="https://alicja.dev/blog/2018/07/20/Browsing-in-grayscale.html">&lt;p&gt;I started exploring my browsing habits to better understand why certain websites grab my attention.
As aware of UX dark patterns as I am, I grew tired of mindfully noticing when they want to “nudge” 
me into certain behaviors with vibrant colors and obscuring others by making them less visually
appealing.&lt;/p&gt;

&lt;p&gt;While I was trying to unsubscribe from yet another unwanted email marketing list, chasing for the 
“unsubscribe” link hidden in plain sight, I noticed that grayscale works well for techincally showing the 
information required of advertisers, yet obscuring it among the flashy colorful action calls.&lt;/p&gt;

&lt;p&gt;My previous attempt at decreasing the time I spend on social media was leveraging &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/styl-us/&quot;&gt;Stylus&lt;/a&gt;
to hide certain parts of websites, e.g. related videos and comments on YouTube. It manages user styles, 
with a simple checkbox menu for enabling and disabling them.&lt;/p&gt;

&lt;p&gt;Since I use FireFox, switching to grayscale is fairly simple. I created a new stylesheet that applies to 
all websites and added a single property for &lt;code class=&quot;highlighter-rouge&quot;&gt;body&lt;/code&gt;. (you can also add a filter in &lt;a href=&quot;https://superuser.com/questions/330830/how-to-turn-web-pages-in-browser-into-black-white-grayscale&quot;&gt;other browsers&lt;/a&gt;)&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;body {
  filter: grayscale(100%);
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It’s easy to turn it off when I want to. And it encouraged me to fix minor annoyances on some websites. 
I stopped using AdBlock when I switched to FireFox and I now use targeted &lt;code class=&quot;highlighter-rouge&quot;&gt;display: none&lt;/code&gt; on elements 
I find distracting.&lt;/p&gt;

&lt;p&gt;A minor caveat of the extension is that it doesn’t work on all websites, because it’s a WebExtension. 
I found that it only makes me appreciate it more when I encouter a page that doesn’t apply my user 
styles.&lt;/p&gt;

&lt;p&gt;One more surprising issue I encountered is that the &lt;code class=&quot;highlighter-rouge&quot;&gt;grayscale&lt;/code&gt; filter sometimes breaks scrolling. I tried 
debugging it on my website, thinking it might be caused by some legacy code or a hidden Stylus property, 
but adding it directly to the &lt;code class=&quot;highlighter-rouge&quot;&gt;body&lt;/code&gt; also changed scrolling behavior.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">I started exploring my browsing habits to better understand why certain websites grab my attention. As aware of UX dark patterns as I am, I grew tired of mindfully noticing when they want to “nudge” me into certain behaviors with vibrant colors and obscuring others by making them less visually appealing.</summary></entry><entry><title type="html">Improving my English</title><link href="https://alicja.dev/blog/2018/06/29/Improving-my-English.html" rel="alternate" type="text/html" title="Improving my English" /><published>2018-06-29T22:30:00-07:00</published><updated>2018-06-29T22:30:00-07:00</updated><id>https://alicja.dev/blog/2018/06/29/Improving-my-English</id><content type="html" xml:base="https://alicja.dev/blog/2018/06/29/Improving-my-English.html">&lt;p&gt;I encountered a thread in a community group chat asking for advice on guiding someone through improving English skills. Some of the resources and ideas I shared were helpful, so I decided to write a longer blog post about it.&lt;/p&gt;

&lt;p&gt;First, a few disclaimers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;I didn’t self-learn English - I had about 15 years of mandatory school courses and a fair share of instruction outside of the classroom&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I had a heavy Polish accent until the second year of my undergrad, which disappeared by getting more comfortable with the language&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I went to an English-speaking country for the first time when I was 25, so all my training was in Poland&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are some ideas that worked for me in the hope that they could be a good starting point for others to inspire their own explorations. Learning a language is like acquiring any other skill, it requires commitment and deliberate practice, with a lot of fun along the way.&lt;/p&gt;

&lt;h3 id=&quot;setting-goals&quot;&gt;Setting goals&lt;/h3&gt;
&lt;p&gt;It gets harder to set a goal the more comfortable one is with the language. Initially, my goal was to get good grades in school. Then I wanted to learn better English so I could read faster, because I had to sometimes rewatch parts of the subtitled movies.&lt;/p&gt;

&lt;p&gt;Somebody spoiled the ending of the last Harry Potter book for me, because I was struggling through it for more than a week. Somebody else got praise for their beautiful accent and I was embarrassed about my hard Polish vowels. My Guild Wars team needed a translator for international runs. I wanted to go to New York for a few months to join a community of programmers.&lt;/p&gt;

&lt;p&gt;My goals inflated as my confidence grew and I still see many ways I could improve: writing more American English, so my sentences are not Polish-long; flattening my too posh accent so people don’t think I’m trying to sound this way; using tenses and conditionals the way a native speaker would.&lt;/p&gt;

&lt;p&gt;No matter where you are on your journey, try to set a goal that’s slightly outside of your reach and will motivate you to improve.&lt;/p&gt;

&lt;h3 id=&quot;switching-to-english&quot;&gt;Switching to English&lt;/h3&gt;
&lt;p&gt;English classes were useful for learning the basics and making it a habit through homework and tests. What helped me get from being able to use the language to thinking in it was what I would do outside of the classroom.&lt;/p&gt;

&lt;p&gt;I made sure to be surrounded by English through:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;switching all my devices to English, especially since the Polish translations were often awkward&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;making sure to watch, read and listen only in English - binge watching “Grey’s Anatomy”, “Bones” and “Supernatural” helped, especially with English subtitles on and watching closely how people move their mouths when they speak, trying to mimic it&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;having conversations with myself - one of my friends phrased it better as having “mini presentations”, I’d sit in front of a mirror and answer questions in imaginary conversations out loud, talking about anything of interest (especially being one of the protagonists in a TV series I was hooked on)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;memorizing standard sentences and learning how to replace certain words (a bit like Duolingo) - “I am eating cake” can easily become “I am eating pancakes”&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;learning about Polish grammar through English and Arabic studies - learning about the grammar of your own language or another language you know well helps with understanding grammar in general&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;writing more, even if I never posted it - especially short stories and programming tutorials, which require good structure and flow&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;interviewing people - talking to people on a daily basis while living in Poland, writing notes for the interviews and often rewatching parts of the recordings (which is super uncomfortable, but helpful)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;moving to an English speaking country - I notice my brain being in English-mode more than half the time, even when I’m alone&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;noticing-patterns&quot;&gt;Noticing patterns&lt;/h3&gt;
&lt;p&gt;English is notoriously irregular and hard to grasp. The pronunciation rules are often misleading, words have more synonyms than one could imagine and one can use it in a way that’s very hard to understand. (like this &lt;a href=&quot;http://www.cleo.com.sg/entertain-me/try-english-test-question-korean-students-have-answer/&quot;&gt;nightmare of a language test&lt;/a&gt; from South Korea)&lt;/p&gt;

&lt;p&gt;When I encounter something new, I try to think of a pattern that can be a more general rule:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;I noticed I’m using tenses differently than a native speaker would - one of my friends made me more mindful of the fact I use present perfect (have + past verb) more often; it was a revelation to me that the &lt;code class=&quot;highlighter-rouge&quot;&gt;-ing&lt;/code&gt; continuous tense is more natural for native speakers than the present simple form&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I realized at some point that in English you want to have something in front of your noun 99% of the time, be it a particle or an article, which is not something we even have a notion of in Polish&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;my pronunciation improved when I started noting down words someone would be confused about, e.g. I often pronounce &lt;code class=&quot;highlighter-rouge&quot;&gt;spent&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;spend&lt;/code&gt; the same way, because in Polish we de-vocalize the last consonant and I was unknowingly doing it in other languages&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Language learning is full of little “a-ha” moments and constant improvement. Looking for explanations and being more mindful of underlying patterns can help you get more comfortable.&lt;/p&gt;

&lt;h3 id=&quot;asking-for-feedback&quot;&gt;Asking for feedback&lt;/h3&gt;
&lt;p&gt;It is hard and can initially be embarrassing to ask for feedback, especially if you’re surrounded by people who are more comfortable with English.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Ask someone you’d be comfortable getting feedback from&lt;/p&gt;

    &lt;p&gt;While still in school, your teacher is probably the best person to ask. It becomes tricky when you don’t have an instructor and have to ask your friends or coworkers to help you out. Make sure you’d be comfortable with them talking about your mistakes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Understand what kind of feedback you need&lt;/p&gt;

    &lt;p&gt;Before I took my IELTS last year, I’d never think I needed to work on my speaking skills, but when I got a lower than expected score, I realized I was overconfident. Assess your skills as objectively as you can and think about which areas you’d need most help with. A good rule of thumb is looking for something you’re uncomfortable with. If you don’t like writing, maybe it’s time to start a blog and encourage yourself to write more.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Set ground rules&lt;/p&gt;

    &lt;p&gt;Helpful feedback is specific and focused on the issue - your English. Your friend might be a native speaker, a language teacher or just more comfortable with the language. For some reason they know something you don’t and you have a chance to learn from them. That’s great! Making mistakes is how you learn.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some ideas that worked for me:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;feedback is given in a way that’s not interrupting the flow of the conversation - otherwise it can make you feel uncomfortable&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;it should be focused on one aspect at a time - usually something that stands out the most, making the meaning unclear or inappropriate, e.g. don’t correct me on my particles if the tense I’m using makes everything confusing&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;the person giving feedback is open to explaining the issue in more detail - it’s not helpful to say “this is not right, you should say something different”&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example of good feedback&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;a friend, after I finished what I wanted to say&lt;/em&gt;: “By the way, you said you’d like feedback on your English. I noticed you are saying &lt;code class=&quot;highlighter-rouge&quot;&gt;polish&lt;/code&gt; when you mean &lt;code class=&quot;highlighter-rouge&quot;&gt;Polish&lt;/code&gt;. They sound nearly the same, but the difference is in the vowel - one is a long vowel.”&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;me, intrigued&lt;/em&gt;: “What’s this long vowel thing you are talking about? I have never heard about it!”&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;followed by a nice conversation about vowels in English&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What was good about it:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;they stated they’re giving me feedback I requested before to set up the context&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;they gave a specific example of what I was saying&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;they explained the more general context of the error&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;they were open to having a conversation afterwards, during which I learned more about the general rules and how native speakers perceive vowels in English&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example of bad feedback&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;during a longer conversation about buying books for learning Arabic&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;a classmate&lt;/em&gt;: “Well, I would never pronounce it &lt;code class=&quot;highlighter-rouge&quot;&gt;[ah-ray-bick]&lt;/code&gt;.”&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;me, after an awkward silence&lt;/em&gt;: “Uhm.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What was bad about it:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;they were only pointing out the mistake, not giving the wider context&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;they focused on setting themselves up as more knowledgeable&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;they made me uncomfortable, because it was meant to be a joke on my behalf&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;life-long-learning&quot;&gt;Life-long learning&lt;/h3&gt;
&lt;p&gt;Learning a language is hard at first, but as I got more comfortable, it became more natural and pleasurable. It’s not only useful, especially when you need it in a professional context, but also fun!&lt;/p&gt;

&lt;p&gt;If you ever get discouraged, keep in mind that:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;native speakers have the advantage of being surrounded by the language and thinking in it all the time - how comfortable are you in your mother language?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;native speakers make mistakes - they omit particles, they use the wrong tense, they misremember a phrasal verb; I don’t know how many times I said &lt;code class=&quot;highlighter-rouge&quot;&gt;wziąść&lt;/code&gt; in Polish even though the appropriate form is &lt;code class=&quot;highlighter-rouge&quot;&gt;wziąć&lt;/code&gt; and I have been corrected on it countless times&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;the fact that you have a foreign accent and sometimes make mistakes means you are learning - and that’s amazing!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;resources&quot;&gt;Resources&lt;/h3&gt;
&lt;p&gt;Most of the resources I use are in English, be it programming language documentation or news sites. There are a few I tend to use more often, but this is a subjective mix of links that I enjoy that might be useful.&lt;/p&gt;

&lt;p&gt;Reading blogs and watching vlogs about English is fun and helpful:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.quickanddirtytips.com/grammar-girl&quot;&gt;Grammar Girl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.merriam-webster.com/video&quot;&gt;Merriam-Webster vlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://grammarist.com/&quot;&gt;Grammarist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.engvid.com/&quot;&gt;engVid&lt;/a&gt; (Jade has the best lessons!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;General tools for longer reads:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://readlang.com/&quot;&gt;Readlang&lt;/a&gt; is a browser extension you can use for websites that helps you look up words quickly&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://getpocket.com/a/&quot;&gt;Pocket&lt;/a&gt; for saving longer articles&lt;/li&gt;
  &lt;li&gt;using a tablet/ebook reader to read ebooks, especially using the built-in dictionaries to not interrupt your reading (try to understand the context of the word before you look it up)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Writing tools:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.hemingwayapp.com/&quot;&gt;Hemingway&lt;/a&gt; a writing app, it’s hard to adjust not only your understanding of the grammar, but also your style to English, e.g. shorter sentences, more repetitiveness, simpler structures&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.grammarly.com/&quot;&gt;Grammarly&lt;/a&gt; for checking your grammar on the fly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Podcasts (any podcasting app will do):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.npr.org/podcasts/510307/invisibilia&quot;&gt;Invisibilia&lt;/a&gt; - talking about invisible things around us and science&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wnyc.org/shows/notetoself&quot;&gt;Note to Self&lt;/a&gt; - a podcast about our relationship with technology&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rationallyspeakingpodcast.org/&quot;&gt;Rationally Speaking&lt;/a&gt; - rationality and skepticism&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.scienceforthepeople.ca/&quot;&gt;Science For The People&lt;/a&gt; - various science&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.npr.org/podcasts/510308/hidden-brain&quot;&gt;Hidden Brain&lt;/a&gt; - mostly focused on science of human behavior&lt;/li&gt;
&lt;/ul&gt;</content><author><name>alicja</name></author><summary type="html">I encountered a thread in a community group chat asking for advice on guiding someone through improving English skills. Some of the resources and ideas I shared were helpful, so I decided to write a longer blog post about it.</summary></entry><entry><title type="html">GDPR compliance</title><link href="https://alicja.dev/blog/2018/05/25/GDPR-compliance.html" rel="alternate" type="text/html" title="GDPR compliance" /><published>2018-05-25T15:30:00-07:00</published><updated>2018-05-25T15:30:00-07:00</updated><id>https://alicja.dev/blog/2018/05/25/GDPR-compliance</id><content type="html" xml:base="https://alicja.dev/blog/2018/05/25/GDPR-compliance.html">&lt;p&gt;As the &lt;a href=&quot;https://en.wikipedia.org/wiki/General_Data_Protection_Regulation&quot;&gt;General Data Protection Regulation&lt;/a&gt; compliance deadline has 
arrived today, I have removed all tracking scripts from my website.&lt;/p&gt;

&lt;p&gt;I did it to protect myself, as being self-employed implies I’m a legal entity. I never collected any data
beyond user visits, be it personal information or passwords.&lt;/p&gt;

&lt;p&gt;I have only used two tracking scripts, both external:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Google Analytics for getting info on the website traffic - removed completely&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Recurse Center script for referrals - I removed the script and now only use a static link for referrals 
(even the RC logo animation is in pure CSS)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since this website is being hosted on &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub pages&lt;/a&gt;, some data is still
being tracked by GitHub servers for providing the service. I don’t have control over what GitHub might 
be tracking, but I don’t provide any additional data to them. Any data GitHub might have on users 
after visiting this website is what they willfully provide by browsing the Internet.&lt;/p&gt;

&lt;p&gt;I might add a new tracking script to this website in the future, after I make sure I understand if and how 
Google Analytics is compliant with GDPR.&lt;/p&gt;</content><author><name>alicja</name></author><summary type="html">As the General Data Protection Regulation compliance deadline has arrived today, I have removed all tracking scripts from my website.</summary></entry><entry><title type="html">Conf &amp;amp; Coffee 2018 - designing and printing name badges</title><link href="https://alicja.dev/blog/2018/04/22/designing-conference-badges.html" rel="alternate" type="text/html" title="Conf &amp; Coffee 2018 - designing and printing name badges" /><published>2018-04-22T16:13:00-07:00</published><updated>2018-04-22T16:13:00-07:00</updated><id>https://alicja.dev/blog/2018/04/22/designing-conference-badges</id><content type="html" xml:base="https://alicja.dev/blog/2018/04/22/designing-conference-badges.html">&lt;p&gt;We recently organized &lt;a href=&quot;https://www.meetup.com/codecoffeeyvr/events/249207842/&quot;&gt;Conf &amp;amp; Coffee 2018&lt;/a&gt; in Vancouver, BC,
and one of the bigger tasks we had to take care of was designing and printing our conference badges. A conference is 
all about people - people who come there to learn, meet new people and have a good time. We wanted
to make it easier for them and create useable badges.&lt;/p&gt;

&lt;p&gt;Name badges are often bulky and awkward, but they serve a purpose. A well-designed badge can help start a conversation -
and get back to it, even if you suddenly forget someone’s name. We also wanted the attendees to be able to easily find speakers 
and organizers in the crowd. It also helped with initial registration, giving people a reason to come to the registration 
desk and chat with us.&lt;/p&gt;

&lt;p&gt;We had a few requirements in mind before printing the badges:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;making sure the name is clearly visible and readable at a distance&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;making the prints sturdy enough to be usable for a 2-day conference&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;color-coding them for easy recognition of attendees, speakers and organizers&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;having an adjustable lanyard, so that people of all heights can feel comfortable wearing them&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;encouraging everyone to use their badges as they please - add interests, stickers, preferred pronouns etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;design-and-prints&quot;&gt;Design and prints&lt;/h3&gt;

&lt;p&gt;We had a wonderful initial design for the badge created by &lt;a href=&quot;https://alannamunro.com/&quot;&gt;Alanna Munro&lt;/a&gt; and worked from 
there by creating two more color options - we ended up using the original purple color scheme for speakers, adding a 
peach color for attendees and a green one for organizers.&lt;/p&gt;

&lt;image src=&quot;/images/badges/colors.png&quot; style=&quot;width: 100%&quot; /&gt;

&lt;p&gt;We then took the SVG files and prepared them for printing, working closely with a wonderful local print shop. They 
helped us with:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;creating an image in &lt;a href=&quot;https://www.adobe.com/products/illustrator.html&quot;&gt;Adobe Illustrator&lt;/a&gt; - the original design by Alanna was 
created in Illustrator, but since the person mostly working with the designs had more experince with 
&lt;a href=&quot;https://www.sketchapp.com/&quot;&gt;Sketch&lt;/a&gt;, we decided to use it for brainstorming&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;adding bleed - we had a sense that we’re going to need bleed, but initially added it in the SVG projects rather than
using the Illustrator tooling for adding it, it turns out it takes about 20 seconds to add if you know how&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;making sure everything aligns just right, especially the names and the speaker talk information - a few people had longer
names and non-English characters in them, some of our speakers had two talks during the conference&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;adjusting the colors for printing - we had a color palette defined in HEX that looked great on a screen, but needed a splash
of cyan to make it more vivid in print&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;choosing the right paper - uncoated heavy white cardstock (130lb), as we wanted people to write on them&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;cutting the prints and drilling holes - it might seem obvious, but we were initially a bit worried we might need to cut and
drill the holes on our own, turns out it’s something a print shop will gladly do&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We got the initial prints and stress-tested them throroughly - writing on them, putting them under pouring water, pulling at
the lanyard etc. - and they were perfect for our needs. We were very lucky with the print shop service, as they were
responsive and quick to adjust the order to our needs.&lt;/p&gt;

&lt;h3 id=&quot;lanyards&quot;&gt;Lanyards&lt;/h3&gt;

&lt;p&gt;We decided to use twine for our adjustable lanyards. Initially, we wanted to use regular packaging twine, but it was too brittle,
so we used white cotton twine instead - one spool was enough for all our badges.&lt;/p&gt;

&lt;p&gt;To attach the lanyards we needed:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;big enough holes in badges on each side (0.125in) - this also allowed the badges to not turn too much, if properly adjusted&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;two pieces of twine (one for each side)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;a sliding knot to connect the two pieces - we used a &lt;a href=&quot;http://www.animatedknots.com/doublefishermans/index.php&quot;&gt;fisherman’s knot&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It sounds simple, but keep in mind we had about 130 badges with pre-printed names and a bunch of blanks in case of last-minute 
cancellations/swaps. It took two people and two episodes of Westworld - I don’t think you could do it with one person and four 
episodes, because without my partner helping me I’d probably call all the other organizers for an emergency twine party.&lt;/p&gt;

&lt;h3 id=&quot;lessons-learned&quot;&gt;Lessons learned&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Design - it’s not easy&lt;/p&gt;

    &lt;p&gt;If you are not a designer, don’t assume you can make the badges look good on your own. Our badges looked great, but most of it
 was thanks to a simple and adjustable design that we could then reuse. The back side of the badges had a simple table for 
 names and Twitter handles, because we didn’t have a clue as to what else we could put there that would look good and be usable
 (or, at least, not look terribly out of place). Make sure to work with a designer.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Timing the prints - you need last-minute adjustments&lt;/p&gt;

    &lt;p&gt;We decided to print the badges after finalizing the ticket sales, but we didn’t expect too many swaps. 
 That turned out to be an overly optimistic assumption, as many people suddenly remembered about the conference a few days
 before it and were asking about last minute changes. We ended up ordering additional blank badges, so that people could write
 their own names on them.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Informing attendees at registration - especially on adjustable lanyards&lt;/p&gt;

    &lt;p&gt;Yes, we had the adjustable lanyards - but we didn’t do a great job explaining it at the registration desk and some of our 
 attendees were initially very uncomfortable. We could also encourage people more to draw on them and use them, as, even though
 we had a prop just for that, not many people felt encouraged to do so. The back of the badge with a table to put names and 
 Twitter handles in was not used by most of the attendees, so maybe we could figure out a way to better use it in the future.&lt;/p&gt;

    &lt;image src=&quot;/images/badges/prop.jpg&quot; style=&quot;width: 80%&quot; /&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Adjustable lanyards are appreciated - but we could improve the process of attaching them&lt;/p&gt;

    &lt;p&gt;We heard positive feedback about the lanyards, especially from attendees that usually have some issues with awkward placement
 of conference badges, which was great and we’ll definitely make them again. One thing we could improve is making sure more people
 could attach them and the process is less time-consuming.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Conference logo - you ain’t gonna need it&lt;/p&gt;

    &lt;p&gt;We didn’t use the conference logo on the badges, as our design looked great without it. Our attendees knew what conference
 they are attending and we couldn’t think of a way of putting our logo on the badge without overshadowing the more important bids.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;all-about-the-people&quot;&gt;All about the people&lt;/h3&gt;

&lt;p&gt;A conference takes a lot of work and, although most of the tasks are simple and repeatable, it gets surprisingly hard and tiresome. 
It was a great experience, especially since I got to work with a wonderful group of people.&lt;/p&gt;

&lt;p&gt;Thank you Brooke, Rose, Manil, Darryl, Nichole and Steve for welcoming me as a co-organizer!&lt;/p&gt;

&lt;p&gt;Thank you Gavin, Paulina, Robert, Wendy, Andrea, Bernadette, Stephen and Daruvin for volunteering and making this conference happen!&lt;/p&gt;

&lt;image src=&quot;/images/badges/badge.jpg&quot; style=&quot;width: 100%&quot; /&gt;</content><author><name>alicja</name></author><summary type="html">We recently organized Conf &amp;amp; Coffee 2018 in Vancouver, BC, and one of the bigger tasks we had to take care of was designing and printing our conference badges. A conference is all about people - people who come there to learn, meet new people and have a good time. We wanted to make it easier for them and create useable badges.</summary></entry></feed>