<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Haskell on Noetic Nought</title>
    <link>https://punchagan.muse-amuse.in/tags/haskell/</link>
    <description>Recent content in Haskell on Noetic Nought</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>© 2006-2026 CC-BY-SA-4.0</copyright>
    <lastBuildDate>Sun, 22 Jun 2014 15:58:32 -0400</lastBuildDate>
    <atom:link href="https://punchagan.muse-amuse.in/tags/haskell/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Recurse Center, 2014-06-22</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-22/</link>
      <pubDate>Sun, 22 Jun 2014 15:58:32 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-22/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;I finished parts of the phonebook task today.  The code looks ugly,&#xA;and very un-haskelly.  I asked for feedback on it, but I guess its&#xA;just too ugly for anyone to take the time out to comment on it, and&#xA;help me improve it.&lt;/li&gt;&#xA;&lt;li&gt;I also tried to read up about Monads, and worked through exercises&#xA;from a few different places.  I haven&amp;rsquo;t yet finished the exercises&#xA;in Chapter 12 of the UPenn course.  I just looked at them today, and&#xA;they seem like a complete bouncer at first glance.&lt;/li&gt;&#xA;&lt;li&gt;I went on a really long walk with Naren, and food-hopped with him&#xA;while he was telling me stories about the various places he worked&#xA;at and the kinds of things he has been working on, and things he&#xA;liked and disliked about them.  It has been a good weekend to spend&#xA;with Naren!&lt;/li&gt;&#xA;&lt;li&gt;Also, the long walk and talking to Chaitu cleared my head a bit, and&#xA;I decided to pause the Haskell tutorials and learning for the next&#xA;couple of weeks.  I don&amp;rsquo;t really have a project that needs me to&#xA;learn Haskell, right now.  I should stick to project and need based&#xA;learning, which I enjoy the most.&lt;/li&gt;&#xA;&lt;li&gt;Right now, I feel like working on an key stroke acoustic emanation&#xA;based key-logger.  Just before applying to Hacker School, I came&#xA;across the idea of side-channel attacks, and it sounded pretty&#xA;exciting.  I don&amp;rsquo;t intend to snoop onto anybody, but the project&#xA;seems to be challenging enough, and I will have quite a bit to learn&#xA;about. It will involve signal processing, and learning &amp;ndash; both areas&#xA;that I have seemed interesting to me for long, but I haven&amp;rsquo;t really&#xA;done anything in them.  I plan to work on the idea for a couple of&#xA;weeks, and review my progress and chart my future course. The&#xA;problem appears to have 2 parts to it.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Processing audio, and extracting key-strokes from it.&lt;/li&gt;&#xA;&lt;li&gt;Identifying the text, based on a sequence of key-strokes. Though,&#xA;in reality each press of a key may not sound the same, for a start&#xA;assuming we are able to accurately get a sequence of key-strokes,&#xA;the problem would reduce to solving a simple substitution cipher.&#xA;I plan to start with this, tomorrow.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Also, I plan to hang out a lot more with Hacker Schoolers, and let&#xA;myself be distracted a lot more by random discussions and&#xA;activities, than I have allowed myself to be, in the past few weeks.&#xA;I should be writing as much code as I can, while I&amp;rsquo;m here.  But, I&#xA;should also be rubbing elbows with the awesome folks, which I will&#xA;only be able to virtually, once I&amp;rsquo;m out of here.&lt;/li&gt;&#xA;&lt;li&gt;Thanks to Amber, I also came across this interesting looking book&#xA;called &lt;a href=&#34;http://chimera.labs.oreilly.com/books/1234000001813&#34;&gt;Apprenticeship patterns&lt;/a&gt;.  I plan to read it over the next&#xA;week or two.&lt;/li&gt;&#xA;&lt;li&gt;I haven&amp;rsquo;t been playing almost any Ultimate here. I atleast need to&#xA;work out a conditioning and throwing practice schedule and start&#xA;working on it, early next week.  Tomorrow won&amp;rsquo;t work since it&amp;rsquo;s 5am&#xA;and I&amp;rsquo;m still awake!&lt;/li&gt;&#xA;&lt;li&gt;I also probably need to get enough sleep!&lt;/li&gt;&#xA;&lt;li&gt;Looking forward to the next couple of weeks!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-20</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-20/</link>
      <pubDate>Fri, 20 Jun 2014 08:58:40 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-20/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Fridays are optional in Hacker School, and people are given help&#xA;with preparation for job interviews.&lt;/li&gt;&#xA;&lt;li&gt;This week&amp;rsquo;s exercise was a &amp;ldquo;know-your-language&amp;rdquo; type exercise and I&#xA;decided to do it with Haskell, and confirmed the fact that I didn&amp;rsquo;t&#xA;know it too well. :)&lt;/li&gt;&#xA;&lt;li&gt;I spent the afternoon writing the blog-post on &lt;a href=&#34;./oauth2-demystified.md&#34;&gt;OAuth2&lt;/a&gt;, and adding&#xA;support for converting ditaa code blocks to png using Pygments.  It&#xA;may not have been the best use of time, but anyway&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-18</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-18/</link>
      <pubDate>Wed, 18 Jun 2014 10:29:29 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-18/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Amber &lt;a href=&#34;http://www.subsymbol.org/2014/06/hacker-school-tuesday-june-17th-2014.html&#34;&gt;talked about&lt;/a&gt; &amp;ldquo;exploring only until the current task is done&amp;rdquo;&#xA;and moving on, which is could really be a lost opportunity to learn&#xA;something new and gain a better understanding of the system I am&#xA;working with.&lt;/li&gt;&#xA;&lt;li&gt;Having something (anything not directly related to the current&#xA;project I&amp;rsquo;m working on) scheduled for later in the day, doesn&amp;rsquo;t seem&#xA;to do me much good. I feel distracted for quite a long period before&#xA;the scheduled time.&lt;/li&gt;&#xA;&lt;li&gt;Abstractions and layers were talked about in the second exercise on&#xA;Applicatives&amp;hellip; Layering, FTW!&lt;/li&gt;&#xA;&lt;li&gt;I spent about an hour or so in the afternoon reading the paper, &lt;a href=&#34;https://www.cs.purdue.edu/homes/gkrichar/papers/onward2013-wuerthinger-truffle.pdf&#34;&gt;One&#xA;VM to rule them all&lt;/a&gt;.  It talked about Truffle: an API to implement&#xA;an AST parser for any language and Graal: a JIT compiler for the&#xA;ASTs.  Later in the day, I also went to the &lt;a href=&#34;http://www.meetup.com/papers-we-love/events/178049922/&#34;&gt;Papers we love&lt;/a&gt; meetup.&#xA;The presentation and the talks were quite interesting!&lt;/li&gt;&#xA;&lt;li&gt;I also started looking at &lt;a href=&#34;http://elm-lang.org&#34;&gt;Elm&lt;/a&gt; and playing with it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-17</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-17/</link>
      <pubDate>Tue, 17 Jun 2014 10:09:08 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-17/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;I&amp;rsquo;ve been bookmarking the interesting links that people post on&#xA;Zulip and have a lot of reading to do.   It would be nice if I had&#xA;an easy way to send stuff on to my kindle. (pdfs, html, etc.).&#xA;Instapaper works, but doesn&amp;rsquo;t work as well as I would like it to.  I&#xA;just want a simple script that takes a list of urls and does the&#xA;right thing.  May be I will write something that uses Calibre, or&#xA;even better someone already has.&lt;/li&gt;&#xA;&lt;li&gt;I worked through exercises 08 and 10 of the haskell course,&#xA;yesterday.&lt;/li&gt;&#xA;&lt;li&gt;Chapter 8 was about how IO works in haskell.  The exercise didn&amp;rsquo;t&#xA;involve too much, except I wasted a lot of time on tracking a&#xA;stupidity of mine.&lt;/li&gt;&#xA;&lt;li&gt;The next part of the course was an introduction to Functors,&#xA;Applicative and Alternative.  I&amp;rsquo;m not sure I totally understand and&#xA;am comfortable with them, but I have been able to get through the&#xA;exercises.&lt;/li&gt;&#xA;&lt;li&gt;I think it&amp;rsquo;s time for me to start working on some Elm tutorials,&#xA;along with the Haskell exercises.&lt;/li&gt;&#xA;&lt;li&gt;Also, I had questions about when to use &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;newtype&lt;/code&gt; and &lt;code&gt;data&lt;/code&gt;&#xA;and incidentally found &lt;a href=&#34;http://learnyouahaskell.com/functors-applicative-functors-and-monoids#the-newtype-keyword&#34;&gt;this section&lt;/a&gt; that ended with the following&#xA;summary: &amp;ldquo;If you just want your type signatures to look cleaner and&#xA;be more descriptive, you probably want &lt;code&gt;type&lt;/code&gt; synonyms. If you want&#xA;to take an existing type and wrap it in a new type in order to make&#xA;it an instance of a type class, chances are you&amp;rsquo;re looking for a&#xA;&lt;code&gt;newtype&lt;/code&gt;.  And if you want to make something completely new, odds&#xA;are good that you&amp;rsquo;re looking for the &lt;code&gt;data&lt;/code&gt; keyword.&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-11</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-11/</link>
      <pubDate>Wed, 11 Jun 2014 15:02:11 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-11/</guid>
      <description>&lt;h2 id=&#34;plan&#34;&gt;Plan&lt;/h2&gt;&#xA;&lt;p&gt;Continue with the Haskell tutorials, with additional reading from&#xA;Real World Haskell.&lt;/p&gt;&#xA;&lt;h2 id=&#34;actual&#34;&gt;Actual&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Finished exercises 4 and 5.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learnt about Type classes in Haskell and how to create them and&#xA;make data types instances of them.&lt;/li&gt;&#xA;&lt;li&gt;Also came across a new algorithm of sieving called the &lt;a href=&#34;http://en.wikipedia.org/wiki/Sieve_of_Sundaram&#34;&gt;Sieve of&#xA;Sundaram&lt;/a&gt;, which was discovered by a student.  Surprisingly, I&#xA;never heard of it before!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;miscellaneous&#34;&gt;Miscellaneous&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A few of us had an interesting discussion about various places&#xA;people grew up in and visited, and the cultures, etc.&lt;/li&gt;&#xA;&lt;li&gt;Idea: implement a GitHub dashboard for organizations (say, HS&#xA;batches) that give you different statistics, and interesting&#xA;graphs. (Use elm?) [Update: Tom is working on HS and GitHub&#xA;integration. So, that&amp;rsquo;s perfect!]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-10</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-10/</link>
      <pubDate>Wed, 11 Jun 2014 09:31:08 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-10/</guid>
      <description>&lt;p&gt;I came super early to try and get some work done in the quiet before&#xA;the daily checkins time.  Continued with the Haskell tutorial and&#xA;reading the Real World Haskell.&lt;/p&gt;&#xA;&lt;p&gt;Finished a couple of exercises from the UPenn course, that were pretty&#xA;straight forward.&lt;/p&gt;&#xA;&lt;p&gt;Also, finished a few exercises from chapter 3 of real world haskell,&#xA;and partially finished implementing Graham scan for generating a&#xA;convex hull for a set of points.&lt;/p&gt;&#xA;&lt;p&gt;The exercises from both the places involved mainly learning about&#xA;Algebraic Data Types.&lt;/p&gt;&#xA;&lt;p&gt;Mary pinged me to ask how the first couple of days were, and it was&#xA;good to talk to get a ping from her though I never talked to her.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m going to continue working on the Haskell exercises today.&lt;/p&gt;&#xA;&lt;p&gt;I also got a couple of ideas for small projects:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Since, yelp is blocked from here, nobody can use yelp&amp;rsquo;s API and work&#xA;on any projects.  It may be helpful to have an API proxy server that&#xA;runs on a different server and forwards any requests coming to it.&lt;/li&gt;&#xA;&lt;li&gt;A simple script to create a twitter list for each batch of&#xA;Hacker School.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Doing them in Python would be pretty straight forward. I will try to&#xA;work on these things in Haskell, once I&amp;rsquo;m reasonably comfortable with&#xA;Haskell.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Recurse Center, 2014-06-09</title>
      <link>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-09/</link>
      <pubDate>Tue, 10 Jun 2014 10:21:06 -0400</pubDate>
      <guid>https://punchagan.muse-amuse.in/recurse-center/recurse-center-2014-06-09/</guid>
      <description>&lt;p&gt;Finally, I&amp;rsquo;m at Hacker School.  The day began with introductions,&#xA;breakfast and welcomes to HackerSchool.&lt;/p&gt;&#xA;&lt;p&gt;The four rules of Hacker School were reiterated to all of us:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No (Feigning) surprise&lt;/li&gt;&#xA;&lt;li&gt;No Well-actuallys&lt;/li&gt;&#xA;&lt;li&gt;No Backseat driving&lt;/li&gt;&#xA;&lt;li&gt;No Subtle-isms&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It was made clear that each of us should watch ourselves not to break&#xA;these rules, and being called on breaking these rules is totally cool,&#xA;and we should stop about it and think for a moment and move-on.&#xA;Breaking the rules doesn&amp;rsquo;t make us bad hacker schoolers.  We are all&#xA;here to learn!&lt;/p&gt;&#xA;&lt;p&gt;I liked the idea of all of us being asked to list out the things that&#xA;we are nervous about, and excited about.  I was happy to find that a&#xA;lot of the people were nervous about the similar kinds of things I was&#xA;nervous about.  I&amp;rsquo;m not alone!&lt;/p&gt;&#xA;&lt;p&gt;After the check-ins, I started off with the Introduction to &lt;a href=&#34;http://www.seas.upenn.edu/~cis194/&#34;&gt;Haskell course&lt;/a&gt; by&#xA;&lt;a href=&#34;http://www.cis.upenn.edu/~byorgey/&#34;&gt;Brent Yorgey&lt;/a&gt;.  What I did was mostly a recap of what I learned from the first&#xA;few chapters of &lt;a href=&#34;http://learnyouahaskell.com&#34;&gt;Learn you a Haskell&lt;/a&gt;.  I learnt about how credit card numbers&#xA;are validated, apart from learning a little bit about lazy evaluation and&#xA;thunks.&lt;/p&gt;&#xA;&lt;p&gt;The day ended with burritos and game night Mafia!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Pandoc can now do Org</title>
      <link>https://punchagan.muse-amuse.in/blog/pandoc-can-now-do-org/</link>
      <pubDate>Mon, 06 Dec 2010 00:00:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/pandoc-can-now-do-org/</guid>
      <description>&lt;p&gt;Pandoc is a haskell library and a command line tool, that can&#xA;convert markup from one to another and it does it pretty well.&#xA;Until now it supported quite a few markups, but not orgmode.  But&#xA;now, Orgmode support has been added! Yay!&lt;/p&gt;&#xA;&lt;p&gt;But, it can only read from other formats and write to org-mode&#xA;format.  The other way around, is not possible, but you can do&#xA;that straight from org-mode, right?&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve often felt the need for an org-importer and hence decided to&#xA;do something about it.  I stumbled upon Pandoc, when I was moving&#xA;my blog, and found it pretty neat.  After, yet another request for&#xA;an importer, on the org-mode mailing list, I decided to look at&#xA;Pandoc.  I was somehow under the impression that it was written in&#xA;Python.  But it turned out, I had to learn Haskell!  A good excuse&#xA;to learn a new language, eh?  I brushed through a tutorial for a&#xA;couple of days (and was blown off by the paradigm of the language)&#xA;and was able to port the RST writer in Pandoc, to an Org&#xA;writer.  :)&lt;/p&gt;&#xA;&lt;p&gt;You can get the latest version from here&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
