yehudakatz.com Archives - 29 December 2012, Saturday

Scott Messinger , Posted December 12, 2011, 2:59 pm I’m currently using Knockout.js in production. While it’s a great project with some fantastic qualities, it’s hardly the same as Ember.js. Here are a few differences: - Ember.js aims to be a framework. Knockout aims to be a tool Stev...

Related:

I’m Running to Reform the W3C’s TAG December 7th, 2012 Elections for the W3C’s Technical Architecture Group are underway, and I’m running! There are nine candidates for four open seats. Among the nine candidates, Alex Russell, Anne van Kesteren, Peter Linss, and Marcos Cáceres are run...

Without the 140-character constraint of Twitter, I can start writing and stop when I reach the end of a thought. Unlike the long-form nature of my blog, I find myself writing often, whenever something is on my mind. If you’re interested in reading that sort of thing, follow my Google+...

Since it relies on precompiled gems already existing in the gem home, the gems cannot be removed or upgraded without requiring a C compiler. The correct solution is what gems authors do for Windows: ship versions of binary gems with specific OSX designations. Currently, binary gems do...

@wycats: Rather than “overriding include” I might prefer to call it sidestepping or bypassing extend(). In fact I don’t think I like the term include() at all. Is instance_extend() better? Either that or include is kept and the compliment becomes class_include. Generally, though, the ...

Related:

wycats, Posted November 30, 2010, 3:56 am In my mind, in Ruby < 2.0, there's a category of library which is "provide a number of useful core extensions." The three major ones are ActiveSupport, Extlib and Facets. In general, applications need to choose one, but not more of these libra...

Ultimater , Posted March 12, 2012, 12:37 pm I approve of the idea for wanting to add such a feature to JavaScript, but I disapprove of the proposed syntax that was chosen. It would be a nightmare having to browse through someone else’s code not knowing whether you are staring at a Bit...

Matt King , Posted August 13, 2011, 9:18 pm The prototype concept in Javascript is the hardest to understand for beginners (or even intermediate developers). While the newObject and createObject functions are useful, I think it only obscures the concept. I recommend checking out http:...

For Rails 3.1, we wanted a mostly-compatible solution with the same programmer benefits as the existing model, but with all the benefits of automatic flushing. After a number of very long discussions on the topic, José Valim came up with the idea of using Ruby 1.9 fibers to jump back ...

Luis Lavena , Posted April 2, 2010, 5:31 pm I would have to disagree with you Yehuda on this. For some gems, the scenario you’re presenting will work, for others, it wouldn’t. Let’s ignore for a second that bundler doesn’t like gems with native extensions or specific platform gems tha...

After that is complete, the two groups have agreed to work on a new version of JavaScript dubbed “Harmony”, which will be a more modest evolution of the current JavaScript, minus some of the more ambitious features like namespaces and packages. Other features, like classes, will likel...

en: errors: # The default format use in full error messages. format: "{{attribute}} {{message}}" # The values :model, :attribute and :value are always available for interpolation # The value :count is available when applicable. Can be used for pluralization. messages: inclusion: "is n...

The first thing you need to understand is that the purpose of refinements in Ruby 2.0 is to make monkey-patching safer. Specifically, the goal is to make it possible to extend core classes, but to limit the effect of those extensions to a particular area of code. Since the purpose of ...

scripting framework to build Tokaido, to make it easy to share code between rvm2, Tokaido, and the Unix Rails Installer. The majority of the work I have done so far has been in researching how to properly build a portable Ruby, and working with Michal to build the solution in terms of...

Related:

@Chris Jones: I’m sorry to be the guy that has to do this, but you need to take a step back and realize that you sound like one of the “vim masters” from the article. I was once feeling the EXACT pains Yehuda described (probably the same ones drj once felt too), and you are pretty wro...

Related:

scripting framework to build Tokaido, to make it easy to share code between rvm2, Tokaido, and the Unix Rails Installer. The majority of the work I have done so far has been in researching how to properly build a portable Ruby, and working with Michal to build the solution in terms of...

Related:

Function values (like div above) needed to be located in the same place in the hierarchy as object being used as a context. This made providing a set of global helpers (like a framework would want to do) quite difficult. Even if the syntax was modified to make function helpers global,...

ara.t.howard , Posted August 1, 2009, 9:48 pm i think this is a bit pre-mature. specifically i think the approach of pushing gem’s load paths onto $LOAD_PATH is massively flawed and predict it will be removed. i have already had issues with it several times where gem ‘a’ finds a resou...

As part of this project, I plan to work with people who ship common native extensions to help them build and ship binary versions of their gems for OSX without external dependencies. Luis Lavena has been doing amazing work with rake-compiler to make this process easy on gem developers...

A little over a year ago, I got my first serious glimpse at SproutCore, the JavaScript framework Apple used to build MobileMe (now iCloud). At the time, I had worked extensively with jQuery and Rails on client-side projects, and I had never found the arguments for the “solutions for b...

In my opinion, a lot of this confusion is cleared up by understanding the core function invocation primitive, and then looking at all other ways of invoking a function as sugar on top of that primitive. In fact, this is exactly how the ECMAScript spec thinks about it. In some areas, t...

Ilya Grigorik , Posted August 15, 2010, 12:21 pm Yehuda, I’m really excited to read this. If I was to summarize all of my thoughts on this post in one statement then its: “Enough already” is not enough – we need many, many more conversations like this one. And the fact that we are, fi...

Guilherme Silveira , Posted August 21, 2010, 3:47 pm Its the dependency hell that every dependency library has (Ivy with .net or java and Maven with Java face similar issues). Just the example where the “weird edge-case is exercised in production, and which your tests would have caugh...

Related:

Great article. However, I’ve been looking for an article that compares Rails and Django, for the purposes of creating a webapp (i.e. focus on user-generated content, along with some content). Almost every post I’ve come across says “it’s up to religion” and leaves it at that. But for ...

Tore Darell , Posted February 21, 2010, 7:10 am I think one of the things that makes Ruby what it is is the forced encapsulation of attributes. Ruby objects don’t have attributes, they only have methods that access instance variables that are hidden from the outside. This contrasts wi...

This means that for most of the Western world, it is a good idea to use Unicode as the “one true character set” inside programming languages. This means that programmers can treat Strings as simple sequences of Unicode code points (several code points may add up to a single character,...

@wycats Right. That is why they are unnecessary and only confuse developers. I didn’t see this until I happened to discover Io. After learning Io I was using Ruby and had to (once again) consult Pickaxe so I could remember the details of Ruby’s complicated inheritance / lookup model. ...

For the reasons described above, it can sometimes be useful for application developers to declare a dependency on a gem which has not yet been released. When bundler fetches that gem, it uses the .gemspec file found in the git repository’s root to extract its metadata as well as disco...

Jonas Nicklas, Posted April 17, 2010, 8:44 am For once, I disagree ;) I don’t see anything wrong with load order being important for gems. CarrierWave has adapters for half a dozen ORMs, and they’re all required implicitely (if the relevant constant is defined). I’ve never had a singl...