Archive for the 'ruby' Category

Thoughts on Abstractions: Part 1 – Abstractions Everywhere

Update: Part II is here.
Most complex tasks are solved using abstractions. To create an abstraction one groups lower-level concepts, what I will call primitives in this text, and make them interact in a pre-defined way.

Abstractions are present at all levels in a system. Computers work based on electric signals. To reduce the Essential Complexity we […]

Agile Anti-Patterns: Democratic Design

Weeks ago, some people in the Ubuntu community got a bit disappointed with the distribution’s core team:

> We are supposed to be a community, we all use Ubuntu and contribute
> to it, and we deserve some respect regarding these kind of decisions.
> We all make Ubuntu together, or is it a big lie?
We all make […]

ThoughtWorks Away Day Presentation: Common Myths about Type Systems

In ThoughtWorks we get together at least once an year for a whole weekend to drink beer and do whatever people consider interesting. This year’s ThoughtWorks Australia Away Day (AKA Team Hug) was somewhere in Victoria and among other activities (and a bus crash) we had technical sessions.
I used one of those slots to do […]

Expessive Design - Slides

Just posted slides for a presentation I gave this week for one of our clients.
Expressive Design (in 20 minutes)
View more presentations from Phillip Calçado.

It was a very nice session where we talked about the hard work that is introducing such ideas in a corporate environment as those are finally reaching mainstream.
Notice that in this presentation […]

Clouds: Solo and the Department Store

I really like Amazon WebServices. I think they provide great and innovative features with an affordable price. I also like Engine Yard. Their plans are too expensive for most users but their commitment to a better open-source platform is remarkable. And I think they made a pretty interesting move in their new Solo offering.
Solo […]

Presentation Slides: Macros in 20 Minutes

We just started holding 20 minutes presentations during lunch time in the ThoughtWorks Sydney office. For the first session I gave a not-that-short talk on Lisp macros using Clojure. The slides are below.
Lisp Macros in 20 Minutes (Featuring Clojure)
View more presentations or upload your own. (tags: thoughtworks clojure)

It turns out that 20 minutes is too […]

JavaScript, Internal DSLs and Keyboards

Ajaxian.com published an article on Ojay, an interesting JavaScript library that rests on top of Yahoo!’s YUI. The library has a DSLish way of expressing form validation rules, like in these snippets from their website:

form(’signup’)
.requires(’username’).toHaveLength({minimum: 6})
.requires(’email’).toMatch(EMAIL_FORMAT, ‘must be a valid email address’)
.expects(’email_conf’).toConfirm(’email’)
.expects(’title’).toBeOneOf([’Mr’, ‘Mrs’, ‘Miss’])
.requires(’dob’, ‘Birth […]

Please let Binding#eval receive a block

I was very happy to see that Ruby 1.8.7 made a method named Binding#eval public.
This method is very useful when you need to mix two Domain-Specific Languages. In Ruby you often evaluate a block in a different context than where it was defined, using instance_eval and friends. The problems is that a block can […]

Johnny Chung Lee, the Wii and Domain-Specific Languages

I’m attending JAOO in Sydney. Today’s most interesting presentation was by Johnny Chung Lee, a Internet Celebrity(tm) with some of the most viewed videos in youtube and a researcher in human-computer interaction.
Johnny gave a brilliant talk and stressed the fact that although we have better graphics nowadays we still suck at how to interact […]

Using the Right Words

I presented this example into ThoughtWorks Melbourne GeekNight last week. Slides here.

The more I get interested on expressiveness in software development the more I feel the pain of using when a simple concept is encrypted into lots of noise. The most recent occurrence of this sad experience was some weeks ago when once again I […]




About

You are currently browsing the Fragmental.tw weblog archives for the ruby category.

Longer entries are truncated. Click the headline of an entry to read it in its entirety.





Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.