A collection of awesome Ruby libraries, tools, frameworks and software
A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.

#extradirty
Monterey Bay Aquarium

Kiana Khansmith
ojovivo
almost home
Mike Driver
todays bird
Today's Document

No title available

ellievsbear
No title available

Love Begins
Cosmic Funnies
h
Sweet Seals For You, Always

pixel skylines

shark vs the universe

Origami Around
Noah Kahan
The Stonewall Inn

seen from France
seen from Russia

seen from United Kingdom

seen from Spain
seen from Bangladesh

seen from United States
seen from Iraq

seen from Türkiye

seen from Brazil

seen from United States
seen from Brazil
seen from Türkiye

seen from Netherlands
seen from Bangladesh
seen from United States

seen from United States
seen from Spain
seen from United States
seen from Finland

seen from United Kingdom
@himself
A collection of awesome Ruby libraries, tools, frameworks and software
A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
…designers do has an unbelievable impact on a couple of sectors where the consumer doesn’t know the difference. Water, vodka… There is no way for the consumer to tell one water from another, or one vodka from another. Whatever we [designers] do — be it the advertising, be it the bottle, or be it the logo on the bottle — it really makes a difference, because it is the only thing for the consumer to evaluate while making the decision about what to buy.
Stefan Sagmeister
And other lessons on design from IDEO Futures’ Iain Roberts
I’ve gotten countless variations of this question over the past year. I can’t tell you everything I’ve learned at HBS, a…
One of the most common problems that beginners run into (and some 'experts' though they can handle it i should hope) is the dreaded NullPointerException. One of the most frustrating things about the NPE is that it doesn't say what was null. All you get is a line number in the stack trace so if you're doing a lot on that line, it's not always clear. There are various ideas about how to clean that up in java 7. There are other solutions here and there as well so we'll see if any of that makes it into Java 7 or not. But we don't have Java 7 yet so none of that really helps. So here's my methodology/suggestions for dealing with them now. First, let's list why NPEs happen. That will help you find many NPEs just by looking at the code. The most common (and obvious to the seasoned developer) is that you didn't initialize a variable. Now, local variables must be initialized so the compiler helps you out a little there. However, instance and class fields do not so you'll need to be careful there. Also, you can silence the compiler complaints about uninitialized local variables by setting them to null. Obviously, if you don't reassign these references before trying to use them, you'll get an NPE. Another source is method return values. If you can't see the code being called, there's no real guarantee that you'll get a non-null reference back out of it. To be safe, all these values should be check for nulls before using them. Of course, your own methods might have bugs in them such that an null return might not be obvious. Or it might be intentional. In any case, you need to be mindful of the risks of using return values. Dealing with them is simple enough though apparently not that obvious to a beginner. As I mentioned earlier, the exact line is mentioned in the stack trace in the error logs or on the console. Given the discussion above, you can often spot the offending reference just by looking at that line of code. But if you do a lot of things one a line of code like I usually do, it can sometimes be less than obvious. The solution is simple enough here, too: break the line down into simpler bits. If you have chained method calls, for example, create local variables for each step and print out the results: foo.bar().bob(getDoug()).dude(getCar()); This becomes: System.out.println("foo = " + foo); Bar bar = foo.bar(); System.out.println("bar = " + bar); Doug doug = getDoug(); System.out.println("doug = " + doug); Bob bob = bar.bob(doug); System.out.println("bob = " + bob); We can essentially rule out the results of getCar() as that would result in an NPE on another line if that null gets passed into dude(). But this should be enough to highlight the exact value that is null. Once you correct that, you can recombine all that back into online if you like. There you go. NPE found and fixed. It's nothing fancy or complex. Just a little legwork to get you over the hump. This sort of thing becomes second nature to seasoned programmers but isn't always the most obvious to beginners. I hope it helps some of you on your way.
Nice roundup collection, I would add Cargo Collective to the portfolio builders too ...
8-Bit Cinema – ‘The Matrix’ Retold as an 8-Bit Animated Video Game
Trying to sort big sums of search results usually becomes a mess. This is the result of a late interaction study on the subject.
... this time we go ...
It’s always odd to hear people say RSS is dead. The fact is, RSS is easily the most successful stealth, insurgent technology on the web. It is pervasive and is the engine for much of the Internet.
Apple uses it to syndicate computer updates. Your podcast subscriptions rely on RSS. Every...
All time favorite
There’s been growing unrest about the future of interaction design trends. In the past week alone, I’ve read three separate discussions about the so-called “end of flat design.” This kind of talk is awesome because some of the best aesthetic and interaction design work is done at the dawn...
Designing the grand Budapest Hotel