<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Louis Christopher</title>
 <link href="https://www.louischristopher.me/atom.xml" rel="self"/>
 <link href="https://www.louischristopher.me/"/>
 <updated>2022-07-22T12:32:38+00:00</updated>
 <id>https://www.louischristopher.me</id>
 <author>
   <name>Louis Christopher</name>
   <email></email>
 </author>

 
 <entry>
   <title>Setting up DrRacket for SICP</title>
   <link href="https://www.louischristopher.me/setting-up-drracket-for-sicp"/>
   <updated>2016-04-24T00:00:00+00:00</updated>
   <id>https://www.louischristopher.me/setting-up-drracket-for-sicp</id>
   <content type="html">&lt;p&gt;Download and install &lt;a href=&quot;https://racket-lang.org/&quot;&gt;DrRacket&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Follow the instructions to set up &lt;a href=&quot;http://docs.racket-lang.org/sicp-manual/index.html&quot;&gt;Scheme for SICP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You should be good to go now but soon you will hit a roadblock. Often times, while working through the exercises you’ll find yourself wanting to create your own library of common functions. Doing this is slightly tricky to account for the modifications to DrRacket. Here’s how to do it.&lt;/p&gt;

&lt;p&gt;Lets say you have a file called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lib.scm&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#lang racket
(define (sq x) (* x x))
(define (cube x) (* x x x))
(provide (all-defined-out))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s go over this, I have a file with some functions that I’d like to call elsewhere. The last line &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(provide (all-defined-out)&lt;/code&gt; is a method in Racket to make public all of the functions defined in the file. This method is only available in racket which is why we don’t use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#lang sicp&lt;/code&gt; here.&lt;/p&gt;

&lt;p&gt;Now, to use the above program in another file, let’s say &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test.scm&lt;/code&gt; just include the line &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(#%require &amp;lt;relative path to file&amp;gt;)&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#lang sicp
(#%require &quot;lib.scm&quot;)
(sq 5)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;sources&quot;&gt;Sources&lt;/h4&gt;

&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;http://docs.racket-lang.org/sicp-manual/index.html&quot;&gt;Scheme for SICP&lt;/a&gt; , &lt;a href=&quot;http://stackoverflow.com/questions/4809433/including-an-external-file-in-racket&quot;&gt;StackOverflow&lt;/a&gt;&lt;sup&gt;&lt;/sup&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions or comments, please post them below. If
you liked this post, you can
&lt;a href=&quot;https://twitter.com/intent/tweet?url=https://www.louischristopher.me/setting-up-drracket-for-sicp&amp;amp;text=Setting up DrRacket for SICP&amp;amp;via=louisnoww&quot; target=&quot;_blank&quot;&gt;
  share it with your followers&lt;/a&gt; 
or 
&lt;a href=&quot;https://twitter.com/louisnoww&quot;&gt;
  follow me on Twitter&lt;/a&gt;!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Setting Nemo as the Default File Manager in Fedora 23</title>
   <link href="https://www.louischristopher.me/setting-nemo-as-the-default-file-manager-in-fedora-23"/>
   <updated>2016-04-20T00:00:00+00:00</updated>
   <id>https://www.louischristopher.me/setting-nemo-as-the-default-file-manager-in-fedora-23</id>
   <content type="html">&lt;p&gt;Fedora is great, Gnome 3 is alright but the default file manager Nautilus seems lacking out of the box. You have two choices here, either customize Nautilus heavily using extensions or install something else that for most purposes just works. After looking at all the available file managers, I settled on Nemo which is the official file manager of the Cinnamon desktop. In my opinion it’s the best there is. I should also note that Nemo was the only thing I missed when I made the switch from Mint to Fedora.&lt;/p&gt;

&lt;p&gt;Unfortunately Fedora lacks an option in the Settings &amp;gt; Details &amp;gt; Default Applications menu for a file manager. Hopefully they’ll add this feature soon.&lt;/p&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;First, install Nemo and a customization tool called Alacarte.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;dnf &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;nemo alacarte&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;According to this &lt;a href=&quot;https://ask.fedoraproject.org/en/question/9759/how-do-i-use-the-nemo-file-browser-as-default-instead-of-nautilus/&quot;&gt;StackOveflow answer&lt;/a&gt;, you should be able to set nemo as your default file manger through Alacarte itself. I’d recommend you try that method first before continuing. In my case, that didn’t work.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Next, the following command will force Nemo to be the default file manager in most circumstances.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;xdg-mime default nemo.desktop inode/directory&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;So when you open folders from a browser, it will now use nemo instead of nautilus. Although certain applications will use nautilus at times. It is because of this that I recommend to not uninstall Nautilus to avoid weird bugs.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Finally, create an icon for nemo in the applications menu.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open Alacarte, select Accessories &amp;gt; New Item.
Set the command to :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;/usr/bin/nemo&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;To get the icon for Nemo, navigate to :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;/usr/share/icons/gnome/256x256/places/folder.png&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;img src=&quot;/assets/nemo.png&quot; alt=&quot;Nemo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note : If you click browse in Alacarte, it will use Nautilus instead of Nemo. Removing nautilus might cause this to break. If you’ve tried it and everything is fine, do let me know in the comments.&lt;/p&gt;

&lt;p&gt;You can now add Nemo to your favourites list in the Gnome side bar.&lt;/p&gt;

&lt;p&gt;If you have any questions or comments, please post them below. If
you liked this post, you can
&lt;a href=&quot;https://twitter.com/intent/tweet?url=https://www.louischristopher.me/setting-nemo-as-the-default-file-manager-in-fedora-23&amp;amp;text=Setting Nemo as the Default File Manager in Fedora 23&amp;amp;via=louisnoww&quot; target=&quot;_blank&quot;&gt;
  share it with your followers&lt;/a&gt; 
or 
&lt;a href=&quot;https://twitter.com/louisnoww&quot;&gt;
  follow me on Twitter&lt;/a&gt;!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>SICP Challenge</title>
   <link href="https://www.louischristopher.me/sicp-challenge"/>
   <updated>2016-04-18T00:00:00+00:00</updated>
   <id>https://www.louischristopher.me/sicp-challenge</id>
   <content type="html">&lt;p&gt;I have decided to take on task of actually &lt;em&gt;doing&lt;/em&gt; &lt;a href=&quot;https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs&quot;&gt;Structure and Interpretation of Computer Science&lt;/a&gt;. I have tried reading it in the past with varying degrees of success. Just reading the book isn’t enough though. The authors have really put in a lot of effort in structuring the exercises. If you skip them, you’ll be missing out on a huge part of what makes SICP so wonderful. You can find the book freely available in any format &lt;a href=&quot;https://github.com/sarabander&quot;&gt;here&lt;/a&gt;, these versions have much better fonts than the official one.&lt;/p&gt;

&lt;h2 id=&quot;why-am-i-doing-it&quot;&gt;Why am I doing it?&lt;/h2&gt;

&lt;p&gt;You will find a lot of claims about this book on the internet ranging from horrid to magical. I’m not kidding, check any reddit or Hacker News thread, you’ll find people either praising this book or hating on it. &lt;a href=&quot;http://www.amazon.com/review/R403HR4VL71K8/ref=cm_cr_dp_title?ie=UTF8&amp;amp;ASIN=0262510871&amp;amp;channel=detail-glance&amp;amp;nodeID=283155&amp;amp;store=books&quot; target=&quot;\_blank&quot;&gt;Peter Norvig’s review&lt;/a&gt; of the book on Amazon sheds some light on why this is so.&lt;/p&gt;

&lt;p&gt;I want to read SICP because functional programming fascinates me. It forces me to think in ways I’d never have imagined in a heavily Object Oriented language. I love how elegantly designed Lisp is in John McCarthy’s original paper. Here’s an excellent &lt;a href=&quot;https://swizec.com/blog/the-birth-of-lisp-a-summary-of-john-mccarthys-original-paper/&quot;&gt;summary&lt;/a&gt; of it without being too dificult to understand. Most languages today are adopting at least some of the ideas found in the functional world, anonymous/lambda functions being the most copied feature of late. Even Java has them now with the release of Java 8. If you haven’t heard of Lisp before, I recommend reading &lt;a href=&quot;http://www.paulgraham.com/icad.html&quot;&gt;Paul Graham’s post on Lisp&lt;/a&gt;, the wittiness with which it is written makes the history lesson fun. I’ve shamelessly become a proponent of any functional language I come across.&lt;/p&gt;

&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Read the book alongside watching the original SICP lectures&lt;/em&gt; by Abelson and Sussman at &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/&quot;&gt;MIT OpenCourseWare&lt;/a&gt; or their &lt;a href=&quot;https://www.youtube.com/playlist?list=PLE18841CABEA24090&quot;&gt;YouTube playlist&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Complete at least 95% of the exercises.&lt;/em&gt; There are 356&lt;sup id=&quot;fnref:fn-footnote&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:fn-footnote&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; exercises in SICP, so if I average one a day, it should take one year.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project will be publicly available on github at this &lt;a href=&quot;https://github.com/louisnow/SICP-Solutions&quot;&gt;repo&lt;/a&gt; it’s so that I can easily track my progress and to help me stick to my schedule. Here’s to the future.&lt;/p&gt;

&lt;p&gt;If you have any questions or comments, please post them below. If
you liked this post, you can
&lt;a href=&quot;https://twitter.com/intent/tweet?url=https://www.louischristopher.me/sicp-challenge&amp;amp;text=SICP Challenge&amp;amp;via=louisnoww&quot; target=&quot;_blank&quot;&gt;
  share it with your followers&lt;/a&gt; 
or 
&lt;a href=&quot;https://twitter.com/louisnoww&quot;&gt;
  follow me on Twitter&lt;/a&gt;!&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:fn-footnote&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;http://eli.thegreenplace.net/2008/04/18/sicp-conclusion&quot;&gt;Source&lt;/a&gt; &lt;a href=&quot;#fnref:fn-footnote&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Why Blog?</title>
   <link href="https://www.louischristopher.me/why-blog"/>
   <updated>2016-04-17T00:00:00+00:00</updated>
   <id>https://www.louischristopher.me/why-blog</id>
   <content type="html">&lt;p&gt;I’ve decided to start writing a blog as a way to document my journey and help me stay focused. Blogging improves your writing skills and your research skills as well. You will have to proof read and fact check everything you post lest you make a mistake. Do feel free to comment using Disqus below. My posts will probably deal with Programming, Linux and some handy instructions or gotcha’s which I find useful. My posts will not be limited to technical topics though. I’d like to think of my blog as my personal Journal.&lt;sup id=&quot;fnref:fn-footnote&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:fn-footnote&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;I have had blogs before but I’ve never actively maintained any of them. As I write this post I’m in the process of figuring out how to delete my long since abandoned wordpress and blogger accounts. Unfortunately blogger does &lt;em&gt;not&lt;/em&gt; allow you delete your profile without also deleting your google account.&lt;/p&gt;

&lt;p&gt;I will be writing at least one post per week which in my opinion is an easier schedule to stick to than &lt;a href=&quot;http://blog.codinghorror.com/how-to-achieve-ultimate-blog-success-in-one-easy-step/&quot;&gt;Jeff Atwood’s six posts per week&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;how-i-set-up-my-blog&quot;&gt;How I set up my blog&lt;/h4&gt;

&lt;p&gt;I followed Joshua Lande’s excellent &lt;a href=&quot;http://joshualande.com/jekyll-github-pages-poole&quot;&gt;post on how to set up a fully functioning blog &lt;/a&gt; using &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; and hosted it for free on github using &lt;a href=&quot;https://pages.github.com/&quot;&gt;Github Pages&lt;/a&gt;.
I can’t recommend Jekyll enough, it’s fast, simple, elegant and most importantly all posts are written in markdown. If you’ve never heard of it before, check this &lt;a href=&quot;https://www.quora.com/How-does-a-static-site-generator-like-Jekyll-work&quot;&gt;quora post&lt;/a&gt;. What I like most about Jekyll is the github integration, I can also easily roll back any changes I made to the site. Here’s the &lt;a href=&quot;https://github.com/louisnow/louisnow.github.io&quot;&gt;repository&lt;/a&gt; if you’re interested.&lt;/p&gt;

&lt;p&gt;I use &lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;sublime text&lt;/a&gt; along with &lt;a href=&quot;http://23maverick23.github.io/sublime-jekyll/&quot;&gt;sublime-jekyll&lt;/a&gt; to ease my Jekyll workflow. I used &lt;a href=&quot;https://www.namecheap.com/&quot;&gt;namecheap&lt;/a&gt; for the domain registration. If you’re a student you can grab one for free through Github’s &lt;a href=&quot;https://education.github.com/pack&quot;&gt;Student Developer Pack&lt;/a&gt;, they offer a lot of other free stuff too! To support https on a custom domain, I use Cloudflare, &lt;a href=&quot;https://konklone.com/post/github-pages-now-sorta-supports-https-so-use-it&quot;&gt;just follow these instructions&lt;/a&gt;. Github has not been very helpful to &lt;a href=&quot;https://github.com/isaacs/github/issues/156&quot;&gt;provide support for https on their end&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any questions or comments, please post them below. If
you liked this post, you can
&lt;a href=&quot;https://twitter.com/intent/tweet?url=https://www.louischristopher.me/why-blog&amp;amp;text=Why Blog?&amp;amp;via=louisnoww&quot; target=&quot;_blank&quot;&gt;
  share it with your followers&lt;/a&gt; 
or 
&lt;a href=&quot;https://twitter.com/louisnoww&quot;&gt;
  follow me on Twitter&lt;/a&gt;!&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:fn-footnote&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;http://lifehacker.com/why-you-should-keep-a-journal-and-how-to-start-yours-1547057185&quot;&gt;What’s a Journal and why you should keep one&lt;/a&gt; &lt;a href=&quot;#fnref:fn-footnote&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
 </entry>
 

</feed>
