Sun Feb 16 2020

Last week for HFOSS(Humanitarian Free and Open Source Software IGME-582) at RIT I was introduced to three articles that picked apart the differences between Free Software and Open Source Software.

Peterson's article discussed how she coined the term Open Source and how that term became widely used. She explained that "Open Source" was a new term to replace "Free Software" because it would resonate better with businesses. At that time(and still to this day) Free software was confused with software that you can get at no cost; Free Software is really free as in speech rather than free as in beer. Peterson's phrase "Open Source" gained a foot hold with larger communities and businesses because it focused on the practical benefits of doing software development in a public manner. Open Source software focused on collaboration and how building software in the public could improve security -- this really enticed businesses. To this day we see that businesses like Microsoft latch on to the phrase Open Source.

Jupyter will Change your Life

Thu Feb 06 2020

It is not uncommon for me to get exuberantly excited over an open-source project that I stumble upon-- Jupyter Lab has taken the cake this month. The Jypyter project extends IPython notebooks to the web browser and added support for multiple languages.

1 Why Notebooks?

As a researcher, I love notebooks because they enable you to easily share your code with others. Notebooks are much more interactive than simply sharing source code because you can mix text(markdown), code, and outputs in code execution. For classes and when working, this makes it very easy to generate quick reports. You can simply write a document that auto generates the graphs and figures you want to talk about in your document.

Towards a new Hacker Ethic

Sun Feb 02 2020

Last week I listened to the talk Programming is Forgetting: Toward a New Hacker Ethic for a second time. This was an amazing talk given by Allison Parrish at the Open Hardware Summit in 2016. The first time I was introduced to this talk was over a year ago by a friend that was introducing me to the nuanced differences between "new" and "old" FOSS cultures. Whenever I listen to this talk I get nostalgic about 70's and 80's hacker literature like the "Hackers Manifesto" which inspired me in middle school.

College Cookbook Part 2

Tue Jan 28 2020

Following up on the college cook book that I wrote a year ago, I wanted to "open source" some of my current obsessions. I am going to highlight three recipes that are quintessential for college students because they are easy to prepare ahead of time, transportable, and are high in energy. The combination of these three recipes makes a long day on campus a breeze.

College Lunch
College Lunch

1 Cold Brew Coffee

Cold brew coffee is currently a major fad because it is less acidic than normal coffee, high in caffeine, lasts around 2 weeks in the fridge, and tastes sweeter than normal coffee. I am a major coffee fanatic, but, buying coffee on campus is expensive and the lines are long in the morning. Cold brew is great for college students because you can make it weeks in advance and easily transport it anywhere on campus.

Cold Brew
Cold Brew

1.1 Ingredients

  • coarsely ground coffee
  • container (most people use mason jars)
  • filtered water
  • coffee sweeteners

1.2 Preparation

Node RSS Feed

Wed Jan 22 2020

One of the beautiful things about Node is that it is really easy to do just about anything in a few lines of code. To put this in perspective, it took me longer to make this terrible blog post header than it did for me to implement an RSS feed in node. An RSS (rich site summary) feed enables people to subscribe to blogs and get notified when there is a new post. People also use RSS feeds to aggregate all the blogs they read in one place. Although RSS is on the decline, it is still widely used in the tech community.

Before looked for a package I added a route listening on "/rss" which sends a static object that will eventually store the RSS feed object.

routes.get('/rss', (request, result) =>
    result.set('Content-Type', 'text/xml');