January 2012
1 post
Moving →
Jan 27th
December 2011
2 posts
The Evil League to save Community →
My way to support ‘Community’, a wonderful comedy. I need your help, though!
Dec 13th
MacRuby and Objective-C
MacRuby is Apple’s open-source ruby implementation. It is implemented on top of the Cocoa framework, allowing you to run natively Ruby applications on their OS. Because of this, MacRuby applications are as fast as their Objective-C counterpart, even when it comes to threading and concurency. Being able to code in the language you like is definitely a great adventage, and having Apple develop...
Dec 5th
November 2011
5 posts
On homoiconicity
Homoiconicity leverage metaprogramming for the languages that implement it. Why? A homoiconic language is a language that treats code as a first-class citizen. Code is merely data expressed in a primitive data structure of the language that is manipulable like any other data-structure. There’s no distinction between code and data, they both use the same data structure. Code can then be...
Nov 27th
A code that looks like a camera
I did this, for fun: It’s a program that looks like a camera. It transformes your JPEGs into polaroids with a caption. Like that: https://github.com/mikaa123/polaroidify Inspired from http://blog.rubybestpractices.com/posts/gregory/045-issue-14-obfuscations.html
Nov 25th
Emacs customization: adding hooks
Emacs is such a wonderful piece of technology. I saw Richard Stallman a few month ago and although his talk was very interesting, I just couldn’t think about anything else than “wow, he’s the guy who invented Emacs”. But anyway, I digress. Emacs’ strenght is its extensibility. Adding functionality to it is really easy and fun. As a support for my...
Nov 24th
What is code anyway?
Yesterday, I wrote about literate programing. But why should we care about it? What is code anyway? As mighty as it might sound, code isn’t much. By itself, code is merely some characters typed in a text file. IDEs might make it look special, with all the syntax highlighting and the auto-completions, but it’s just plain old data. Without the proper tools, source code wouldn’t...
Nov 22nd
Literate programming with Github and Markdown
As a developer using Github, we often find ourselves browsing other people’s code. Sometimes it’s out of curiosity, sometimes it’s because we need to make a maintenance task, but in either case, it’s something valuable because peer review is a fantastic way to gain experience. I think the code browsing experience could be even greater if the code was written directly...
Nov 21st
3 notes
September 2011
1 post
2 tags
All your Base are belong to us →
thechangelog: “The universal base class you always wanted”, from Gary Bernhardt. From the lib: def self.call_method(object, name, args, block) name_string = name.to_s all_modules.each do |mod| if mod.respond_to?(name) return mod.send name, *args, &block elsif mod.instance_methods.include?(name_string) return call_instance_method(mod, name, args, block) end end ...
Sep 3rd
10 notes
August 2011
2 posts
Exploding Software-Engineering Myths →
I came across this article about software development processes. It presents the results of a researcher at Microsoft working on empirical studies on software development and measurements. It talks about code coverage, TDD, assertions, impact of big organizations and delocalized teams.
Aug 31st
5 tags
WatchWatch
To celebrate WhyDay, I created a 2D adventure-style game on my favorite part of Why’s (Poignant) Guide, Dwemthy’s Array. The game uses the Shoes GUI toolkit, which never ceases to amaze me. It’s one of the most well-thought API I came across. The game itself features a lot of goodies, such as: - Extensible way to create levels, add items, add characters - Pickable items -...
Aug 20th
July 2011
3 posts
Modeling DCI with UML
I can’t get enough of DCI. This paradigm is so simple yet elegant. I wrote a post a month ago about, a hands-on DCI with Ruby. Here, I’d like to take a step backward and try to think about ways to model it. Modeling is important in my opinion. Its something that forces us to think. It should be simple and only focus on the big architectural choices. No need to include implementation...
Jul 3rd
A domain-specific language that generates...
Here it is. I am working on domain-specific language that creates graphical domain-specific languages. A sort of meta-meta-language, or something. I decided to call it Modelr. So here it is, I present you Modelr. Sort of. The Modelr framework lets you prototype graphical models. It gives you a language (DSL) for specifying rules on your diagrams, and how it looks. Typically, if you want to have...
Jul 2nd
Jul 1st
June 2011
2 posts
Jun 18th
Jun 16th
May 2011
1 post
3 tags
Data Context Integration, hands-on
If you aren’t familiar with DCI, I would suggest reading the well-written wikipedia page, right here. It’s really easy to get started with DCI. Your application can be seen as a network of communicating objects. Depending on the scenario, some objects are going to communicate with other objects. These objects represent a physical reality of the domain you are modeling. The same...
May 18th
April 2011
5 posts
Design anti-patterns →
Nice little summary of some of the most common anti-patterns in object-oriented programming. I recommend you to see it!
Apr 29th
4 tags
Why you should stop doing Class-Oriented...
A few month from now, I really thought I knew what Object-Oriented programming was. Not only did I learn it from eminent professor at school, but I also practiced it, learnt all the design patterns from the GoF book and talking about java-style interfaces and abstract class was one of my favorite topic. I’ve been diving recently into the core of Ruby and Smalltalk, not just the syntax or...
Apr 19th
4 notes
Apr 10th
Examining Dwemthy's Array composite pattern
Dwemthy’s Array is a 60 lines of code RPG-style adventure game written in Ruby as a part of Why’s Poignant Guide to Ruby to introduce meta-programming. You’re a rabbit, and armed with your little boomerang, sword and bombs (!), you’re going to meet your doom and defeat Dwemthy’s Array, a dungeon filled with filthy creatures, or perish and go to rabbit’s...
Apr 8th
3 notes
5 tags
Object-Oriented vs Class-Oriented, metaclasses,...
Sometimes it’s good to go back to the basics. One thing we deal daily with are objects. We all know what they are, we manipulate them, we pass them around. They are really cool, they answer our questions, perform some stuff for us, and once we don’t need them anymore, we just leave them there and don’t bother calling them anymore, and since the world is a cruel place, they even...
Apr 1st
March 2011
1 post
umlify: Generate uml from your ruby source files
Hi. I made a gem that automatically generates a uml diagram from your source files. I would suggest reading the whole article, but if you’re in a hurry, here is the link. Please, tell me what you think (comment down there or mikaa123 at gmail), and if you are interested by this project, we can work on it together. Ah! Thanks for staying. ;) Uml and dynamically typed languages such as...
Mar 3rd
February 2011
3 posts
'lib' folder is a misnomer when creating Ruby Gems...
Note: If you’re not familiar with gems’ file tree-structure conventions, I would highly recommend reading Steve Klabnik’s Making Ruby Gems post. Ruby gems offer a powerful way to create and share libraries and applications. After analyzing a few projects on Github, including rake, bundler, haml, mustache, FasterCSV, and a bunch more, I realized that the preferred way of...
Feb 27th
Vim (Why Are You [so] Awesome) Wallpaper
Here’s a (sexy) wallpaper I created for all you Vim hackers. 1440*900 Download: http://img155.imageshack.us/img155/410/vimk.png
Feb 13th
Thoughts on a new social networking application...
About a month ago, I wrote an article giving my thoughts on a new social networking application. I gave an ambitious idea of how I would want it to be, if were to design it. I also mentioned that I had started to build a prototype of such a network, which is the main subject of this post. Just as a notice before starting, I haven’t been working on this project since then. I got busy with my...
Feb 6th
January 2011
1 post
Get on the train while you still can
NOTE: This is my entry for Obie Fernandez awesome contest (http://blog.obiefernandez.com/content/2011/01/the-rails-up-and-comers-contest.html?utm_source=rubyinside&utm_medium=twitter#idc-cover) —— If you have an academic background in software engineering, Rails will take you out of your comfort zone. It takes a whole different approach than the one you learnt in your programming...
Jan 23rd
December 2010
2 posts
Thoughts on a new social networking application
If I were to design a social network website from scratch, how would I do it? Which features would it have? What would make it attractive? Would it be just the same as Facebook, or would it resemble more Twitter? What kind of expressiveness would it have for its users? Which information would it allow you to share, and how? I’ve been asking myself those questions a long time ago, without...
Dec 28th
Configuring my new server: a name
I just acquired a new server, and I have spent some time configuring it yesterday. Server are those systems (they can either be physical or virtual) that are always on, and connected to the Internet. In its simpliest form, a server can be your computer open 24/7. With a server, you can have a total control of the technologies you are using, of the environment you’re developping in. It gives...
Dec 25th
November 2010
4 posts
Model Driven Architecture presentation
I am working on a presentation on Model Driven Architecture, and I think the best way to explain how it works, and the benefits it brings, would be to start by showing an actual example. I don’t really want to go through the boring usual examples using Eclipse and Java, even if it is powerful. So I though about using Rails’ amazing scaffolding scripts. Model Driven Architecture is a...
Nov 18th
TopDown query of Linked Data
Recently, I was reading an article written for this year’s ISWC that takes place in Shanghai. It looks really cool by the way - I’m trying to follow it on Twitter, but it seems like they have some problems to access it with the “big firewall”. The article “Linked data Query Processing Strategies” present three query strategies for retrieving data from Linked...
Nov 9th
A Rubyist's instant grasp on semantic web
This guide is something you might want to check if you want to learn about semantic web using Ruby. I wanted to create a guide that introduces semantic web to someone who never heard about it, with as little background as possible on the matter. The idea is to make you become familiar with semweb, but also to make you create a ruby application that uses it. I’ve been working on this guide...
Nov 2nd
Blog shifting
I’m moving from Wordpress back to Tumblr. My wordpress blog address (http://s139459221.onlinehome.fr/MichaelSokol/) is still going to be there, but I won’t be updating it again. I’ve been having problems with wordpress that literally blew my whole blog out, and instead of re-installing everything, I’d rather come back here. Also, I found out that there are a lot of great...
Nov 2nd