in Code

Recent Entries (Page 10)

  • Shake: Task Automation and Scripting in Haskell

    As someone who comes from a background in ruby and rake, I’m used to powerful task management systems with expressive dependency. Make is a favorite tool of mine when I’m working on projects with people who don’t use ruby, and when I’m working on ruby projects I never go far without starting a good Rakefile. The two tools provided a perfect DSL for setting up systems of tasks that had complicated file and task dependencies.

    As I was starting to learn Haskell and building larger-scale Haskell projects, I began to look for alternatives in Haskell. Was there a Haskell counterpart to Ruby’s rake, Node’s jake? (Not to mention the tools of slightly different philosophy grunt and ant)

    It turns out that by far the most established answer is a library known as Shake (maintained by the prolific Neil Mitchell of hoogle fame and much more). So far it’s served me pretty well. Its documentation is written from the perspective of chiefly using it as a build tool (more “make” than “rake”), so if you’re looking to use it as a task management system, you might have to do some digging. Hopefully this post can help you get started.

    I also go over the core concepts of a task management system, so I assume no knowledge of make; this post therefore should also be a good introduction to starting with any sort of task management system.

    Read more … Comments

  • Introducing "in Code"!

    Throughout my time programming and developing, I’ve noticed that there are few legitimately useful sources of practical and beneficial knowledge on the subject on the internet. There are good books. There is Stack Overflow. And there are the blogs.

    I’ve probably learned more useful information from blogs than I have from nearly any other source — from small things like how to fix that compile error on ffmpeg or teaching me my first steps in learning tools I now use every day like git. From blogs I’ve learned not just small things that help me here and there, but also the building blocks that I have to thank for allowing me to learn so much of what I know now.

    In addition to these, blogs are the theatre of many gifted essayists, who are always enthusiastic to share their insight from the deeper aspects of what programming actually means, and their roles in the construction of the world we live in today.

    Having worked on my fair share of projects, I’ve accumulated some meager, humble practical knowledge from the field over these short years. So this is my opportunity to finally give back. My hope is first to fill in all of those small holes in knowledge that happen to slip through and can sometimes only be found with the perfect google search. Second to share a bit of my discoveries along my journeys in development and any relevant insights from my studies that may be useful to others. Third, to share any mature open source projects I’m working on that may be of use to the world. And forth, to maybe shine some light on greater themes that I have noticed when looking back on things.

    It’s also been said that blogs are a good way for someone to help themselves organize their thoughts and kind of put them all together. Maybe if I log my progress on projects as I go along, I can look back and refer to them later. And maybe — just maybe — they can be useful to other humans.

    So anyways, this is it. Welcome to in Code!

    Read more … Comments