<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
	<title>Binyamin Green - Articles</title>
	<description>Binyamin Green is a UI Designer and Front-end Developer.</description>
	<link>https://binyam.in/c/blog</link>
	<atom:link href="https://binyam.in/feeds/blog.xml" rel="self" type="application/rss+xml" />
	<pubDate>Wed, 08 Nov 2023 23:18:51 GMT</pubDate>
	<copyright>Copyright 2021, Binyamin Aron Green</copyright>
	<docs>https://cyber.harvard.edu/rss/rss.html</docs>
	<language>en-us</language>
	<generator>Eleventy v</generator>
	
	<item>
	  <title>Writing CSS with Purpose</title>
	  <description>&lt;!-- this `link` should be removed, once POSSE is part of the post layout --&gt;
&lt;link class=&quot;u-syndication&quot; href=&quot;https://news.indieweb.org/en&quot; /&gt;
&lt;p&gt;I&#39;ve been paying more attention to my website recently. I&#39;ve been asking why it exists, what I want it to look like, and other such questions.&lt;/p&gt;
&lt;p&gt;Anyhow, as I rewrite my CSS, I&#39;ve begun to realize how poorly I use it as a language. My process for writing it consists mostly of trial-and-error, without any idea of what I&#39;m doing. That makes it hard to rewrite the code, since there&#39;s no organization or logic.&lt;/p&gt;
&lt;h2 id=&quot;an-analogy&quot; tabindex=&quot;-1&quot;&gt;An Analogy&lt;/h2&gt;
&lt;p&gt;I guess my point is that &lt;b&gt;writing CSS is kinda like typing on a keyboard&lt;/b&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Some typists don&#39;t have the layout memorized. This group looks down at the keyboard when typing, then up at the screen to check for accuracy, and then down again. Other typists know the layout perfectly well, and focus their eyes on the screen at all times.&lt;/p&gt;
&lt;p&gt;In the same fashion, some developers try CSS rules until they get what they want. The conversation goes something like this: &lt;q&gt;Let&#39;s try &lt;code&gt;float: left&lt;/code&gt;. Nope. How about flexbox? Ah, there we go. But it&#39;s not wrapping (&lt;em&gt;sigh&lt;/em&gt;).&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;Other developers know &lt;em&gt;why&lt;/em&gt; each rule does what it does. They don&#39;t need to see the browser as often. There&#39;s no &amp;quot;guess and check&amp;quot;. This second group transcends methodologies like &lt;a href=&quot;http://getbem.com&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;BEM&lt;/a&gt;, and opinionated questions like &amp;quot;how to order your rules&amp;quot;.&lt;/p&gt;
&lt;h2 id=&quot;an-ideal&quot; tabindex=&quot;-1&quot;&gt;An Ideal&lt;/h2&gt;
&lt;p&gt;When you stop &lt;i&gt;pushing divs across the screen&lt;/i&gt;, you start making a website. I want to stop pushing divs. &lt;a href=&quot;https://ia.net/topics/on-apps-and-coffee&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Websites are coffee makers&lt;/a&gt;, and I want to brew some coffee. Currently, though, I don’t &lt;em&gt;understand&lt;/em&gt; CSS. I just &lt;em&gt;write&lt;/em&gt; it.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Not literally. I mean, I suppose you &lt;em&gt;are&lt;/em&gt; typing on a keyboard. Unless your name is Josh Comeau, and &lt;a href=&quot;https://www.joshwcomeau.com/blog/hands-free-coding/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;you can code without using your hands&lt;/a&gt;. But, I digress. &lt;a href=&quot;#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
	  <link>https://binyam.in/p/writing-css-with-purpose/</link>
	  <guid>https://binyam.in/p/writing-css-with-purpose/</guid>
	  <pubDate>Thu, 20 Jan 2022 19:00:58 GMT</pubDate>
	</item>
	
	<item>
	  <title>My Reading Goals in 2020</title>
	  <description>&lt;aside class=&quot;callout callout--info&quot;&gt;
This post explores the efficiency of my goal. To see what I actually finished in 2020, go to &lt;a href=&quot;#full-list&quot;&gt;the end of the article&lt;/a&gt;. Head to &lt;a href=&quot;/reading&quot;&gt;my reading list&lt;/a&gt; for titles I may read in 2021.
&lt;/aside&gt;
&lt;p&gt;At the beginning of 2020, after seeing a Goodreads challenge, I decided to read twelve books that year. And I did read some wonderful books and novels. In &lt;a href=&quot;https://www.goodreads.com/book/show/37903770-norse-mythology&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Norse Mythology&lt;/em&gt;&lt;/a&gt;, Neil Gaiman paints a pretty picture of the Norse pantheon. &lt;a href=&quot;https://www.goodreads.com/book/show/31868169-letters-to-a-young-writer&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Letters to a Young Writer&lt;/em&gt;&lt;/a&gt;, by Colum McCann, advises young writers on how to hone their craft, and itself exhibits excellent writing.&lt;/p&gt;
&lt;h2 id=&quot;the-problem&quot; tabindex=&quot;-1&quot;&gt;The Problem&lt;/h2&gt;
&lt;p&gt;While I loved what I read, I only completed seven out of the twelve I had planned to read. Initially, I was disappointed that I didn&#39;t meet my goal. Reading one book each month should not have been hard for me to do. Why couldn&#39;t I have just &lt;em&gt;read more&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Looking back, I find that I didn&#39;t want to rush through any books. In order to read a 300-page book in one month, I would need to do at least ten pages per day. That&#39;s great for fiction or light-reading. But some of the books I had lined-up were full of information which needed processing. My system was faulty.&lt;/p&gt;
&lt;h2 id=&quot;a-new-goal&quot; tabindex=&quot;-1&quot;&gt;A New Goal&lt;/h2&gt;
&lt;p&gt;If I&#39;m going to up my reading game in 2021, I need to devise a different challenge. I could separate my books into light-reading and heavy-reading. Or maybe my goal was fine, and I need to widen my selection of books.&lt;/p&gt;
&lt;p&gt;As I write this, I realize that the issue is about my &lt;em&gt;choice&lt;/em&gt; of books. You see, there are a couple things I&#39;d like to accomplish by reading. I want to take an emotional journey through a fabricated world. I&#39;d also like to learn more about certain concepts and ideas. To me, this distinction is similar to that of fiction versus non-fiction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here&#39;s my new goal&lt;/strong&gt;: I&#39;d like to read ten books this year. Of those ten, four must be novels or light-reading. The remaining six are be up to me.&lt;/p&gt;
&lt;h2 id=&quot;parting-thoughts&quot; tabindex=&quot;-1&quot;&gt;Parting Thoughts&lt;/h2&gt;
&lt;p&gt;Honestly, though, every book can be a novel. Every book should be a journey, broken into both logical and emotionally-provoking sections. How else did Lin Manuel-Miranda transform a scholarly work into the acclaimed broadway musical, &lt;em&gt;Hamilton&lt;/em&gt;? You don&#39;t need to be a writer to tell stories, but you should tell a story when you write.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;full-list&quot; tabindex=&quot;-1&quot;&gt;Full List&lt;/h2&gt;
&lt;p&gt;Here&#39;s my full book list from 2020.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Norse Mythology&lt;/em&gt;, by Neil Gaiman&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Voyage of the Dawn Treader&lt;/em&gt; (Chronicles of Narnia #5), by C. S. Lewis&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Writer&#39;s Digest Guide to Magazine Article Writing&lt;/em&gt;, by Kerrie L. Flanagan&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Letters to a Young Writer&lt;/em&gt;, by Colum McCann&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Tuesdays with Morrie&lt;/em&gt;, by Mitch Albom&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Mister Monday&lt;/em&gt; (The Keys to the Kingdom #1), by Garth Nix&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Grim Tuesday&lt;/em&gt; (The Keys to the Kingdom #2), by Garth Nix&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I ended the year in the middle of &lt;em&gt;A Universe Made for Two&lt;/em&gt;, by Jack M. Daniel.&lt;/p&gt;
</description>
	  <link>https://binyam.in/p/my-reading-goals-in-2020/</link>
	  <guid>https://binyam.in/p/my-reading-goals-in-2020/</guid>
	  <pubDate>Mon, 04 Jan 2021 20:38:53 GMT</pubDate>
	</item>
	
	<item>
	  <title>Filter Posts by Tag</title>
	  <description>&lt;p&gt;Blogs can quickly become disorganized. You might want to link to a page on your website which only lists posts about CSS. With a bit of javascript, you can use &lt;code&gt;/blog?tag=css&lt;/code&gt; to filter your posts.&lt;/p&gt;
&lt;p&gt;For the following method to work, each post item should have a &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;data attribute&lt;/a&gt; of &lt;code&gt;data-tags=&amp;quot;[tag1,tag2]&amp;quot;&amp;gt;&lt;/code&gt;. On a related note, the method assumes a basic knowledge of HTML. Feel free to glance at &lt;a href=&quot;https://www.w3schools.com/html/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;W3Schools&lt;/a&gt; or &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;MDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First, we need to find our posts. Use the &lt;code&gt;document.querySelectorAll&lt;/code&gt; method&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;. The method takes one parameter: A selector string formatted like a css selector. Now, we need to get the tag in the url. The global &lt;code&gt;location.search&lt;/code&gt; variable provides us with the query parameters at the end of the url. This will give us a string, such as &lt;code&gt;?topic=css&lt;/code&gt;, which we can manipulate to find the tag.&lt;/p&gt;
&lt;p&gt;Find which posts &lt;em&gt;don&#39;t&lt;/em&gt; have the tag. For each post, check if the tags in the &lt;code&gt;data-tags&lt;/code&gt; attribute include the one we found in the url. (Hint: use &lt;code&gt;Array.filter&lt;/code&gt;) Then, hide the filtered posts. HTML has a handy &lt;code&gt;hidden&lt;/code&gt; attribute for situations like this. Set the hidden attribute of each filtered post to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can now filter your blog posts by tag. Here&#39;s the full snippet.&lt;/p&gt;
&lt;pre class=&quot;hljs code-block&quot; data-lang=&quot;HTML, XML&quot;&gt;&lt;code&gt;&lt;span class=&quot;hljs-tag&quot;&gt;&amp;lt;&lt;span class=&quot;hljs-name&quot;&gt;ul&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;hljs-tag&quot;&gt;&amp;lt;&lt;span class=&quot;hljs-name&quot;&gt;li&lt;/span&gt; &lt;span class=&quot;hljs-attr&quot;&gt;class&lt;/span&gt;=&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;hljs-comment&quot;&gt;&amp;lt;!-- contents --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;hljs-tag&quot;&gt;&amp;lt;/&lt;span class=&quot;hljs-name&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
 &lt;span class=&quot;hljs-comment&quot;&gt;&amp;lt;!-- more --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;hljs-tag&quot;&gt;&amp;lt;/&lt;span class=&quot;hljs-name&quot;&gt;ul&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;hljs code-block&quot; data-lang=&quot;JavaScript&quot;&gt;&lt;code&gt;&lt;span class=&quot;hljs-comment&quot;&gt;// Select all posts&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;const&lt;/span&gt; posts = [...&lt;span class=&quot;hljs-variable language_&quot;&gt;document&lt;/span&gt;.&lt;span class=&quot;hljs-title function_&quot;&gt;querySelectorAll&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;.post&amp;quot;&lt;/span&gt;)];

&lt;span class=&quot;hljs-comment&quot;&gt;// Get the tag in the url&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;const&lt;/span&gt; tag = location.&lt;span class=&quot;hljs-property&quot;&gt;search&lt;/span&gt;.&lt;span class=&quot;hljs-title function_&quot;&gt;slice&lt;/span&gt;(location.&lt;span class=&quot;hljs-property&quot;&gt;search&lt;/span&gt;.&lt;span class=&quot;hljs-title function_&quot;&gt;indexOf&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;=&amp;quot;&lt;/span&gt;) + &lt;span class=&quot;hljs-number&quot;&gt;1&lt;/span&gt;);

&lt;span class=&quot;hljs-keyword&quot;&gt;if&lt;/span&gt;(tag) {
    &lt;span class=&quot;hljs-comment&quot;&gt;// Find which posts don’t have the tag&lt;/span&gt;
    &lt;span class=&quot;hljs-keyword&quot;&gt;let&lt;/span&gt; postsNoTag = posts.&lt;span class=&quot;hljs-title function_&quot;&gt;filter&lt;/span&gt;(&lt;span class=&quot;hljs-function&quot;&gt;&lt;span class=&quot;hljs-params&quot;&gt;l&lt;/span&gt; =&amp;gt;&lt;/span&gt; {
        &lt;span class=&quot;hljs-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;hljs-title class_&quot;&gt;JSON&lt;/span&gt;.&lt;span class=&quot;hljs-title function_&quot;&gt;parse&lt;/span&gt;(l.&lt;span class=&quot;hljs-property&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;hljs-property&quot;&gt;tags&lt;/span&gt;).&lt;span class=&quot;hljs-title function_&quot;&gt;includes&lt;/span&gt;(tag) === &lt;span class=&quot;hljs-literal&quot;&gt;false&lt;/span&gt;;
    });

	&lt;span class=&quot;hljs-comment&quot;&gt;// Hide all posts which don’t have the tag&lt;/span&gt;
    postsNoTag.&lt;span class=&quot;hljs-title function_&quot;&gt;forEach&lt;/span&gt;(&lt;span class=&quot;hljs-function&quot;&gt;&lt;span class=&quot;hljs-params&quot;&gt;p&lt;/span&gt; =&amp;gt;&lt;/span&gt; {
        p.&lt;span class=&quot;hljs-title function_&quot;&gt;setAttribute&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt;, &lt;span class=&quot;hljs-literal&quot;&gt;true&lt;/span&gt;);
    });
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;For more details, see &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;this page on MDN&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
	  <link>https://binyam.in/p/filter-posts-by-tag/</link>
	  <guid>https://binyam.in/p/filter-posts-by-tag/</guid>
	  <pubDate>Wed, 10 Jun 2020 16:00:00 GMT</pubDate>
	</item>
	
	<item>
	  <title>List all Posts using 11ty</title>
	  <description>&lt;p&gt;On the front page of a blog, we often list the title of every post on the site. &lt;a href=&quot;https://jekyllrb.com&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Jekyll&lt;/a&gt; will automatically list all pages within the &lt;code&gt;_post&lt;/code&gt; directory under one collection. &lt;a href=&quot;https://11ty.dev&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Eleventy&lt;/a&gt;, however, creates collections based on the tags. In other words, the only way to tell Eleventy that your page is a blog post is by adding an extra tag. You may not want to add the same tag for every post, especially if you already categorize your posts.&lt;/p&gt;
&lt;p&gt;One &lt;s&gt;workaround&lt;/s&gt; &lt;em&gt;fully documented feature&lt;/em&gt; is to create a custom collection. In &lt;code&gt;.eleventy.js&lt;/code&gt;, use the &lt;code&gt;addCollection&lt;/code&gt; method to define a new collection. You can call it &lt;em&gt;posts&lt;/em&gt;, if you want to (you can also call it &lt;em&gt;ice_cream&lt;/em&gt;). Use &lt;a href=&quot;https://github.com/isaacs/node-glob&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;glob syntax&lt;/a&gt; to get only the pages inside your post folder. You can now find all your blog posts with the &lt;code&gt;collections.posts&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;Here&#39;s the code for your &lt;code&gt;.eleventy.js&lt;/code&gt; file.&lt;/p&gt;
&lt;pre class=&quot;hljs code-block&quot; data-lang=&quot;JavaScript&quot;&gt;&lt;code&gt;&lt;span class=&quot;hljs-variable language_&quot;&gt;module&lt;/span&gt;.&lt;span class=&quot;hljs-property&quot;&gt;exports&lt;/span&gt; = &lt;span class=&quot;hljs-keyword&quot;&gt;function&lt;/span&gt;(&lt;span class=&quot;hljs-params&quot;&gt;eleventyConfig&lt;/span&gt;) {
    eleventyConfig.&lt;span class=&quot;hljs-title function_&quot;&gt;addCollection&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt;, &lt;span class=&quot;hljs-keyword&quot;&gt;function&lt;/span&gt;(&lt;span class=&quot;hljs-params&quot;&gt;collection&lt;/span&gt;) {
        &lt;span class=&quot;hljs-keyword&quot;&gt;return&lt;/span&gt; collection.&lt;span class=&quot;hljs-title function_&quot;&gt;getFilteredByGlob&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot;&gt;&amp;quot;posts/**/*.md&amp;quot;&lt;/span&gt;);
    });
    &lt;span class=&quot;hljs-comment&quot;&gt;//...&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;
</description>
	  <link>https://binyam.in/p/list-all-posts-using-11ty/</link>
	  <guid>https://binyam.in/p/list-all-posts-using-11ty/</guid>
	  <pubDate>Mon, 04 May 2020 16:00:00 GMT</pubDate>
	</item>
	
	<item>
	  <title>My top reading picks</title>
	  <description>&lt;p&gt;Intricate worlds ensnare the mind. For this reason, I enjoy reading fantasy and science-fiction books. There are so many good novels, and endless amounts of excellent short-fiction. To create a list of my favorite stories is impossible — I have so many! What follows, then, is a rough list of a couple books which I adore.&lt;/p&gt;
&lt;h2 id=&quot;harry-potter-and-the-order-of-the-phoenix&quot; tabindex=&quot;-1&quot;&gt;Harry Potter and the Order of the Phoenix&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By J. K. Rowling (Harry Potter, book 5)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/harry-potter-and-the-order-of-the-phoenix-j-k-rowling/1100041270&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The fifth book of the Harry Potter series has always stuck with me, maybe because it represents coming-of-age. Harry Potter becomes a man as he defies the Ministry’s control of his school. But maybe I love it because of the world in which J. K. Rowling places us, and the magic she brings to our lives by doing so.&lt;/p&gt;
&lt;h2 id=&quot;the-voyage-of-the-dawn-treader&quot; tabindex=&quot;-1&quot;&gt;The Voyage of the Dawn Treader&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By C. S. Lewis (The Chronicles of Narnia, book 5)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/voyage-of-the-dawn-treader-c-s-lewis/1100550844?ean=9780061969065&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This story tells of wonderful, adventurous myth. The book is an expedition into our minds, probing the depths of our imagination.&lt;em&gt;The Voyage of the Dawn Treader&lt;/em&gt;is a standard of children’s literature.&lt;/p&gt;
&lt;h2 id=&quot;norse-mythology&quot; tabindex=&quot;-1&quot;&gt;Norse Mythology&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By Neil Gaiman&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/norse-mythology-neil-gaiman/1124023596&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some would call this book a record of history. The stories, however, continue to enthrall and entrance as no history textbook ever has. Gaiman departs from Marvel&#39;s floodlit depiction of Thor the Mighty and gives insight into the complex mind of Loki the Trickster. He paints the Norse pantheon with a signature, resplendent touch.&lt;/p&gt;
&lt;h2 id=&quot;the-fellowship-of-the-ring&quot; tabindex=&quot;-1&quot;&gt;The Fellowship of the Ring&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By J. R. R. Tolkien (Lord of the Rings, Part One)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/fellowship-of-the-ring-j-r-r-tolkien/1100013647&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;J. R. R. Tolkien was an Oxford professor, and the writing style reflects his stature. The world is magnificent, and the plot is riveting. I particularly connect with the main character, Frodo Baggins. Frodo is timid yet persistant, which I relate to.&lt;/p&gt;
&lt;h2 id=&quot;the-martian-chronicles&quot; tabindex=&quot;-1&quot;&gt;The Martian Chronicles&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By Ray Bradbury&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/martian-chronicles-ray-bradbury/1100197062?ean=9780062079930&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This collection of science-fiction stories covers Earth’s colonization of Mars, both from the explorers’ perspectives as well as from the natives’ viewpoint. As well as entertaining our imagination, Ray Bradbury warns of a dark future; one which is in our hands.&lt;/p&gt;
&lt;h2 id=&quot;a-study-in-scarlet&quot; tabindex=&quot;-1&quot;&gt;A Study in Scarlet&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By Sir Arthur Conan Doyle (A Sherlock Holmes novel)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/study-in-scarlet-arthur-conan-doyle/1100163548?ean=9780140439083&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Soon after Jack the Ripper tore through London, Sir Arthur Conan Doyle introduced a detective who saw through any crime. Sherlock Holmes meets his legendary partner, John Watson, and the rest is history. As we become intimate with Holmes, we observe his many strengths and inevitable weaknesses. Sherlock Holmes’ debut story is an essential piece for any bookcase.&lt;/p&gt;
&lt;h2 id=&quot;the-letter-for-the-king&quot; tabindex=&quot;-1&quot;&gt;The Letter for the King&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;By Tonke Dragt&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.barnesandnoble.com/w/the-letter-for-the-king-tonke-dragt/1117057885?ean=9781782690818&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Barnes &amp;amp; Noble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tonke Dragt published this story in the Netherlands in 1962, but it was over fifty years before it was introduced to the English-speaking world. Sixteen-year-old Tiuri must trust no one as he ventures forth on his simple mission. As he fends of bandits on the back of each page, he emanates self-worth.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;These are just a few of my favorites. Frank Herbert, Roald Dahl, and many others have also left behind timeless works. For more wonderful titles, check out &lt;a href=&quot;https://www.pbs.org/the-great-american-read/books/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;The Great American Read&lt;/a&gt; by PBS, or poke around on &lt;a href=&quot;https://goodreads.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Goodreads&lt;/a&gt;.&lt;/p&gt;
</description>
	  <link>https://binyam.in/p/my-top-reading-picks/</link>
	  <guid>https://binyam.in/p/my-top-reading-picks/</guid>
	  <pubDate>Mon, 23 Mar 2020 16:00:00 GMT</pubDate>
	</item>
	
	<item>
	  <title>Notes on Startup Ideas</title>
	  <description>&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This article is a summary of &lt;a href=&quot;https://peterthaleikis.com/business-idea-validation/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://peterthaleikis.com/business-idea-validation/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Eureka! You have a business idea. What should you do first? No, It&#39;s not the development phase. It isn&#39;t the design or the marketing stage. The process begins with validating your idea.&lt;/p&gt;
&lt;p&gt;People like to jump at whims, but starting with research is helpful for many reasons. Most likely, you have no money set aside to allocate for the idea. Even though you&#39;re motivated at the moment, you will get discouraged after a while. You&#39;ll discover competition, or find the marketing stressful and overwhelming. Whatever the reason, plowing through the initial stages will give you powerful insights for the future.&lt;/p&gt;
&lt;p&gt;To validate your idea, conduct some research. Gather a list of relevant phrases, words, and topics (keywords and keyphrases). Throw them at a bunch of popular websites, such as Google search, YouTube, Facebook, and Quora. (The article that I&#39;m summarizing has a list of fifteen such sites). But don&#39;t just research your idea, also look at your competitors. Use online tools to check their social media presence and evaluate their backlinks. Lastly, talk to friends about your idea. Get real feedback from real people. Mention it on Twitter, and see how people react. &lt;em&gt;A picture paints a thousand words, but people paint pictures.&lt;/em&gt;&lt;/p&gt;
</description>
	  <link>https://binyam.in/p/notes-on-startup-ideas/</link>
	  <guid>https://binyam.in/p/notes-on-startup-ideas/</guid>
	  <pubDate>Tue, 17 Dec 2019 01:37:30 GMT</pubDate>
	</item>
	
	<item>
	  <title>Six Uses for Webpack</title>
	  <description>&lt;p&gt;I&#39;ve always tried to avoid Webpack. I would tell myself it was either too complicated or unnecessary. After all, it&#39;s not the only tool of its kind on the market. Yet recently I&#39;ve come to terms with  Webpack. Once you know how to use it, it can be a very effective tool.&lt;/p&gt;
&lt;p&gt;Webpack&#39;s main usage is bundling JavaScript. In node.js, we generally use &lt;code&gt;require&lt;/code&gt; or &lt;code&gt;import&lt;/code&gt; to include an external resource in our JavaScript file. Yet browsers don&#39;t understand &lt;code&gt;require&lt;/code&gt;. You can either include the resource in the head of your HTML or make an HTTP request to a URL. With Webpack, though, you can bundle your in-browser code. Webpack will combine all the files that you imported using require and stick them in your file. Bundling can also take care of features such as ES6 notation which may not be compatible across all browsers. This requires the babel plugin.&lt;/p&gt;
&lt;p&gt;Another use-case is minifying CSS and/or JavaScript. Minification strips all white-space from a file. It&#39;s a very effective way of decreasing file size, thus speeding up load time. Minifying JavaScript requires no plugins, yet minifying CSS does. There are also plugins which increase the browser-compatibility of your CSS.&lt;/p&gt;
&lt;p&gt;You can preprocess SCSS. There are other ways, such as gulp, node-sass, and even a VS Code extension. But once you&#39;re using Webpack this is a pretty useful feature. This requires a Webpack loader.&lt;/p&gt;
&lt;p&gt;You can compile JSX for ReactJS. This is can be easier to set up in some situations, especially in a complex environment such as an electron app. There&#39;s a good tutorial on compiling JSX with Webpack &lt;a href=&quot;https://www.valentinog.com/blog/babel/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. Note that this requires a plugin as well.&lt;/p&gt;
&lt;p&gt;You can compile Typescript with it. You &lt;em&gt;can&lt;/em&gt; &lt;a href=&quot;https://code.visualstudio.com/Docs/languages/typescript&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;compile Typescript within VS Code&lt;/a&gt;,  though Webpack may be more efficient because you can run many tasks with one command. This requires a plugin.&lt;/p&gt;
&lt;p&gt;You can run a development server with your static files. Extensions do exist to serve that purpose, though Webpack can prove useful when running many tasks or complicated setups. This requires an extra package.&lt;/p&gt;
&lt;p&gt;I don&#39;t know the next time you will consider using Webpack, but I hope that now you will be more prepared.&lt;/p&gt;
</description>
	  <link>https://binyam.in/p/six-uses-for-webpack/</link>
	  <guid>https://binyam.in/p/six-uses-for-webpack/</guid>
	  <pubDate>Fri, 15 Nov 2019 11:05:00 GMT</pubDate>
	</item>
	
	<item>
	  <title>My Year as a Moderator</title>
	  <description>&lt;p&gt;Okay, so it hasn&#39;t actually been a year. It&#39;s been slightly over eight months. But I digress. Since February of 2019, I have been a moderator on a discord community named &lt;em&gt;DesignCourse (Coursetro)&lt;/em&gt;. Created by YouTuber Gary Simon, this place serves as a forum for questions and discussions regarding all sorts of design and development related topics. Recently, I realized that I have grown as a mod, as a developer, and as a person, since that day in February.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#summary&quot;&gt;&lt;strong&gt;tl;dr&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;All opinions expressed herein are my own&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve noticed that many users who ask questions are a bit clueless as to what they would like answered. They know they have an error in their code, and they know that&#39;s bad. However, they don&#39;t really understand what information to give or where to focus their question. When someone asks a question, they are really waving a flag for help, not asking a technical question. Obviously, this is also what you do inadvertently when &lt;em&gt;you&lt;/em&gt; ask a question.  Recognizing that you are clueless is the first step to a better &amp;quot;I need help&amp;quot; experience.&lt;/p&gt;
&lt;p&gt;&lt;s&gt;People don&#39;t think.&lt;/s&gt; (Yes, that&#39;s very general.) People &lt;em&gt;usually&lt;/em&gt; think. But you and I know that it&#39;s very easy to ask for help without actually talking through the issue at hand. And this is very important to realize. People don&#39;t sift through archives to find duplicate issues, or host the complicated code that they want help with. But that&#39;s exactly where &lt;em&gt;you&lt;/em&gt; come in. Stepping through an obvious error, or teaching somebody the wondrous world of Codepen, is actually helping them solve their error. Simply typing &lt;em&gt;&amp;quot;please read the rules&amp;quot;&lt;/em&gt; is not as useful. Just a thought.&lt;/p&gt;
&lt;p&gt;Spammers are never wanted. I&#39;m referring to those who advertise their service without being asked. You&#39;ve probably seen them on discord or youtube, posting their website and whatnot. Sometimes, they are just being jerks. But when you talk to them, a whole different story comes out. Sometimes, they&#39;ve been told to do it for marketing. Other times, they are trying to ask for help, but totally miss the mark. Once, I found a great resource and posted it on Gitter so people would use it, only to banned for spamming (I got back on eventually, but yeah). Spammers often mean well.&lt;/p&gt;
&lt;p&gt;It&#39;s very rewarding to help your sibling tie their shoes. Not all of us have a sibling or siblings of the relevant age, but we all have each other. I know that sounds cheesy, but hear me out, okay? As a moderator, I&#39;m responsible for thousands of users daily. The environment must be safe, kind, and helpful. I&#39;m proud of what I do, because as little as it may seem, I&#39;m helping other people.&lt;/p&gt;
&lt;p&gt;Finally, help can come in unexpected methods. It&#39;s nice to know that a senior dev or designer is having the same issue as you, even if they can&#39;t figure it out either. It&#39;s also useful when someone points you to a guide without really answering your question. Of course, it&#39;s better to give a complete answer, but there&#39;s a next-best option. You don&#39;t need to know it to be helpful.&lt;/p&gt;
&lt;p&gt;I love answering questions or giving feedback. In my opinion, it helps me grow as a person. Additionally, I like the camaraderie that comes with being part of a community, if only an online one. It only takes a minute to help someone else, and with the internet you can find questions to be answered all of the time.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;people don&#39;t always know what they&#39;re asking for&lt;/li&gt;
&lt;li&gt;people don&#39;t always think before asking questions&lt;/li&gt;
&lt;li&gt;spammers usually don&#39;t mean to spam&lt;/li&gt;
&lt;li&gt;taking care of people is a healthy source of pride&lt;/li&gt;
&lt;li&gt;you don&#39;t need to answer to be helpful&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Come visit the &lt;a href=&quot;https://discord.gg/a27CKAF&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;DesignCourse discord server&lt;/a&gt;, and give me feedback on this article via email. That&#39;s all for now. Take care.&lt;/p&gt;
</description>
	  <link>https://binyam.in/p/my-year-as-a-moderator/</link>
	  <guid>https://binyam.in/p/my-year-as-a-moderator/</guid>
	  <pubDate>Fri, 25 Oct 2019 19:10:26 GMT</pubDate>
	</item>
	
	<item>
	  <title>Five Useful Tips for Adobe XD</title>
	  <description>&lt;p&gt;Adobe XD is becoming the go-to tools for UI/UX Designers in 2019. It’s free, modern, and extensible. XD has many features, some of which you may not be aware of. Here are five useful tips for working within Adobe XD.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;math&quot; tabindex=&quot;-1&quot;&gt;Math&lt;/h2&gt;
&lt;p&gt;Adobe XD, as well as other programs such as Blender, Gimp and Inkscape, allows math in the input fields. Let’s say that I had two circles with a width of 258px each , and I wanted one to be half as big as the other. I could do the math mentally, which could get complicated. Or, I could type 258/2, and XD will do the math for me.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/uploads/math-in-xd.gif&quot; alt=&quot;Doing math in Adobe XD&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;assets&quot; tabindex=&quot;-1&quot;&gt;Assets&lt;/h2&gt;
&lt;p&gt;I use these all of the time.&lt;/p&gt;
&lt;p&gt;Open the assets panel by typing &lt;code&gt;ctrl/cmd + shift + y&lt;/code&gt;. Then, select a object and click on the plus sign next to the word “color”. That object’s color is now set based on the swatch in the assets panel. You can add that exact color to another object by selecting the object and clicking on the swatch. You can also edit the swatch by right-clicking and selecting “Edit”.&lt;/p&gt;
&lt;p&gt;PS: This works for text styles as well.&lt;/p&gt;
&lt;h2 id=&quot;guides&quot; tabindex=&quot;-1&quot;&gt;Guides&lt;/h2&gt;
&lt;p&gt;XD has awesome automatic guides which can help you align things perfectly. Sometimes, though, the auto-guides just aren’t helping. Enter, guides. Well, manual guides. Drag from the top or left edge of an artboard to create a thin guide manually. You can position it wherever you like, and not worry about making XD understand where exactly you want to position your item.&lt;/p&gt;
&lt;h2 id=&quot;adjust-corners-separately&quot; tabindex=&quot;-1&quot;&gt;Adjust Corners Separately&lt;/h2&gt;
&lt;p&gt;I found this awesome tip in &lt;a href=&quot;https://twitter.com/elainecchao/status/1123289664671100928&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;a tweet  from Elaine Chao&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;
#adobexd #protip Want to adjust the corners independently? Simply hold down Alt/Opt while dragging the corner to detach it from the others.
@adobexd
&lt;p&gt;By &lt;a href=&quot;https://twitter.com/elainecchao/status/1123289664671100928&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;@elaincchao&lt;/a&gt; on Twitter&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thanks Elaine.&lt;/p&gt;
&lt;h2 id=&quot;shortcuts&quot; tabindex=&quot;-1&quot;&gt;Shortcuts&lt;/h2&gt;
&lt;p&gt;Shortcuts are awesome. They speed up your workflow, and make you look really professional 😎. You can find a comprehensive list here. Some useful shortcuts are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ctr/cmd + k&lt;/code&gt;: Create component from selection&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ctrl/cmd + shift + y&lt;/code&gt;: Toggle assets panel&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alt + drag&lt;/code&gt;: Duplicate selection&lt;/li&gt;
&lt;/ul&gt;
</description>
	  <link>https://binyam.in/p/five-useful-tips-for-adobe-xd/</link>
	  <guid>https://binyam.in/p/five-useful-tips-for-adobe-xd/</guid>
	  <pubDate>Tue, 18 Jun 2019 16:11:04 GMT</pubDate>
	</item>
	
  </channel>
</rss>
