- A few of my Git tricks, tips and workflows
Really nice collection of Git tricks by Markus Prinz. - Booted – What really ails Italy?
Great New Yorker article by Tim Parks on Italy and Silvio Berlusconi. - The Future Of Libraries In The E-Book Age
A follow-up to last week’s post on ebooks. I hope we’ll eventually have sane policies for digital media. - The Writer’s Handbook
Prepared by the University of Wisconsin – Madison this has some good tips for writing English (a lot of which also apply to German). - Interview With Albert Graef
An interview with the inventor of Pure, an unfortunately rather unknown functional programming language I used to play around with a bit last year (there’s also a second part). - Why You Should Care About Cricket
This is a very good read not only about Cricket, but also about India. - Detecting Cheaters
Interesting as always, this article by Bruce Schneier covers cheating, evolutionary psychology and formal logic. - The Story of Emily and Control
Here we go, for once I’m linking to some fiction in “Information Overload”. This is a very nice short story, don’t let yourself be turned away by the fact that it was posted on LJ. - The world can be powered by alternative energy in 20-40 years, Stanford researcher says
While this is interesting, I’m still somewhat doubtful that there’ll be enough political will to make this happen. - The Cicada Principle and Why It Matters to Web Designers
When math helps design.
Motivating MethodFinder Feedback
Apparently there was a certain demand for MethodFinder and after being mentioned on Ruby5, it now has almost 150 followers on GitHub as well as over 200 downloads on Rubygems, which is more than I ever expected. There’s also been some very nice feedback on Twitter:
MethodFinder, where have you been all my life?
[…] that MethodFinder is quite awesome though I’m not sure I’ve ever needed one
MethodFinder is one of the coolest things about Squeak. Neat to see it’s been ported to Ruby
MethodFinder in ruby has to be the coolest Gem I’ve ever seen
geniale
I loved Smalltalk’s method finder. Now there is one for Ruby. Cool!
This is one neat piece of code
Hulk WANTS for #clojure.
Holy shitballs, I need to learn SmallTalk
This is great for Ruby newbies like me !
#Ruby method finder ftw!
Really amazing!!
That’s quite motivating and I’m currently experimenting with some ideas that might eventually lead to another tool useful for Ruby learners.
Information Overload 2011-04-03
- No Sharing Allowed
Ebooks as yet another example of how “old media” companies have a hard time transitioning into the digital world. - P2P Gift Credit Card
Interesting idea by Italian artist Paolo Cirio. - Biomimetic Designers Take Note: Goat Hooves Confer Ninja-like Climbing Abilities
Ever wondered why goats are such amazing climbers? Here’s the answer. - Inside Seized Drug-Smuggling Submarines
So Columbian drug traffickers build (semi-)submergibles for getting their drugs into the Central America and the US. Take that DIY community! - Die ganze Welt ist meiner Meinung
On how algorithmic filtering of content and personalization can lead to a filter bubble (in German). - Monitoring Theory
If you ever were a sysadmin who spent nights on call with an overambitious Nagios texting you every 3.5 seconds, you’ll love this. And even if you didn’t there’s some good thoughts on monitoring in there. - Mathematical artist: Why hyperbolic space is awesome
Nice interview with Vi Hart on the beauty of mathematics. If you don’t know her work, you should definitely check it out (personally I’d recommend the “math doodling” videos)! - The Other Rebels
With all the attention on Lybia, it’s easy to overlook conflicts in other countries, e.g. Ivory Coast. - Tell-all telephone
Next time you have trouble explaining the dangers of data retention in relation to privacy, just show your conversation partner this visualization. - Programmers Need To Learn Statistics Or I Will Kill Them All
Like with most things Zed Shaw writes I’m not a big fan of the language, but agree with the content.
Cloud Link Collection
In late 2009 and early 2010 I worked on a very interesting cloud computing project. In the process I accrued a fairly comprehensive link list on the topic, which I already briefly mentioned here. The list was also published on the blog of my back then employer, but since the company doesn’t exist anymore and their site is offline, I figured I might as well put it up here. The gist where I originally collected this is still on GitHub, feel free to fork, add etc.
Cloud Providers
- Amazon Web Services
- Elastic Server
- Eucalyptus
- GoGrid
- Google App Engine
- Linode - Xen VPS Hosting
- Microsoft Azure
- PiCloud
- Rackspace
- Slicehost
- VWware vCloud
- Netmonic
General / Architecture
- EC2 Architecture
- Cloud Climate
- AWS Pricing Calculator
- EC2 Cost Comparison Calculator
- The Economics of the AWS Cloud vs. Owned IT Infrastructure
- Architecting for the Cloud: Best Practices
- cloud exchange - Spot instance prices comparison
Getting Started
- Amazon EC2 Tutorial Video
- Creating a new EC2 AMI from VMware or VMDK files
- Creating an EBS-backed AMI from an S3-backed AMI
- amazon ec2 - boot from ebs and ami conversion
Security
- Cloud Security Alliance
- What Everyone Ought To Know About Cloud Security
- Cloud Computing Risk Assessment
- AWS Security Whitepaper
Programming / Libraries
- EC2 API
- boto - Python interface to AWS
- Net-Amazon-EC2 - Perl library
- amazon-ec2 - Ruby
- Deltacloud - Many clouds. One API.
- libcloud - a unified interface to the cloud
- GridGain - Cloud Development Platform
MapReduce
- Comparison of the Grid/Cloud Computing Frameworks
- 7 Tips for Improving MapReduce Performance
- SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cascading
- Cascading - API for defining and executing complex, scale-free, and fault tolerant data processing workflows on a Hadoop cluster
- Why Europe’s Largest Ad Targeting Platform Uses Hadoop
Blogs
Monitoring
- Monitis
- Cloudkick
- Cloudviz - Graph CloudWatch data
- Cloud42 - Open Source management framework for Amazon EC2
Images
Information Overload 2011-03-27
- 60 Worst Countries in the World
Although I find the name of this article a bit unfortunate, this is a sobering list of the world’s worst off countries. - Europe by numbers: the complete interactive guide
Great interactive statistics about various aspects of life in Europe. - Timeboxing: You Will Work Like Never Before
Ruben from Mostly Maths explains his time management strategy. - How Carrots Became the New Junk Food
On how a US marketing company tries to market baby carrots as junk food to increase sales. - Why defend freedom of icky speech?
Excellent post by Neil Gaiman on why defending of free speech also has to mean defending the rights of things you don’t agree with. - A Conversation between Two Chat Bots
This makes for some hilarious dialogue and I really hope “Your conversation skills should be shot.” catches on as an internet meme. ;-) - How to Feed the World by 2050: Biotech Isn’t the Answer
I like it when people can talk rationally about emotionally charged subjects. - Do Not Touch the Frog
Very funny talk from World Science Festival about Mark Moffet’s search for an elusive poison dart frog. - The editorial search engine
Journalist Jonathan Stray thinks about the future role of algorithmic curation in the newsroom. - A Practical Guide to Protecting Your Identity and Security Online and When Using Mobile Phones.
Originally written for the people in the Middle East and North Africa, this document is a good resource for many people (available in English and Arabic).
Information Overload 2011-03-20
- Haskell’s Niche: Hard Problems
Doing more Haskell was on my todo list for 2011, but so far I’ve failed rather miserably. Oh well, at least I’m reading about it… - Beyond Rules
Nice post with a free download of the ebook “Beyond Rules: A Dilettante’s Guide to Personal Sovereignty, Space Travel, and Lots of Ice Cream”. - The Tau Manifesto
The math fans among my readers should like this one (and the accompanying Half Tau Day), I certainly did! - Was haben wir aus unserer Welt gemacht?
Austrian journalist Robert Misik comments on the current nuclear energy safety discussion (in German). - Antarctica, 1961: A Soviet Surgeon Has to Remove His Own Appendix
The Chuck Norris of surgery. - Partitioning my digital life into security domains
Well—known security researcher Joanna Rutkowska describes how she partitions her digital life into separate domains with Qubes OS. A very interesting approach and I’m curious to see Beta 1 of the OS. - Cosmonaut Crashed Into Earth ‘Crying In Rage’
The man who died to save his friend Yuri Gagarin. - Facebook: Online-Proteste ohne Offline-Effekt
Good article on “Slacktivism” (in German). - Chomsky on ‘Intellectual Property’
Interview with Noam Chomsky about intellectual property. This is a bit older, but still a good read. - Nerds, we need to have a talk
Good rant about an attitude problem in nerd culture.
Information Overload 2011-03-13
- Galleon’s Web
Great visualization of the Galleon insider trading case by the Wall Street Journal. - PISA based Wealth Comparison
More visualization, this time by German weekly Die Zeit (also available in German). - The Like Log Study
Seems like we have a topic for this issue of “Information Overload”… Here’s another interesting data analysis, this time about Facebook “Likes” on news web sites. - Anatomy of a Crushing
Interesting article on the Pinboard blog on how they dealt with the onslaught of Delicious refugees right before Christmas. - Why Angry Birds is so successful and popular: a cognitive teardown of the user experience
Super interesting analysis of why Angry Birds is so popular. Makes you wonder how much of that was by design and how much was just plain luck. - What Math?
Great post on an under-appreciated subject and some nice analogies to use next time someone gives you the “math isn’t useful” routine (it’s not, see. - The Day MAME Saved My A**
This hit several news site last December, but I didn’t get around to read it until now. A game developer tells the story about how MAME helped him in porting an old game, despite all the trouble the publisher got him and his team in. - Dispatch from SXSW: Have Startups Become a Fetish?
I’m glad there is more criticism about the startup craze lately, it’s really getting out of hand. - Dubai on Empty
I’m glad this article from Vanity Fair was linked on Hacker News, it’s very much in line with my own limited experience in Dubai. - World Day Against Cyber-Censorship: new “Enemies of the Internet” list
Compiled by Reporters Without Borders. Make sure you don’t miss the dropdown with per country information at the bottom!
Unsavory 1.0.0 and Methodfinder 1.0.1
unsavory has reached maturity (meaning I can’t really come up with any more stuff I want to add), so i decided it’s enough with the conservative versioning and jumped from 0.3.3 to 1.0.0 :-) Right before Christmas I had changed it from Delicious to Pinboard and today I replaced the previous - rather verbose - output with a nice little progressbar and a log file.
I also did a mini update to methodfinder, which now uses StringIO objects instead of /dev/null
for output redirection, which should make the Windows users out there happy.
Haskell Like “Zip_with” for Ruby
I always liked Haskell’s zipWith and sometimes miss it in Ruby, so I wrote my own a couple of weeks ago. I also submitted a pull request to Facets, but since it’s still not included I decided to post the code here in case it’s useful for anyone:
1 2 3 4 5 6 7 8 9 10 |
|
Usage examples:
1 2 |
|
Smalltalk’s Method Finder in Ruby
Update: The code is on Github now - https://github.com/citizen428/MethodFinder
I changed the argument order (so you don’t have to always specify empty arrays), added support for blocks, do some method filtering based on arity and ensure that the streams get properly restored. I left the original code in this post for reference though.
I always was quite fond of Squeak’s Method Finder, which let’s you enter a receiver, arguments and the desired result and will show you all methods that will return this result when sent to the receiver with the provided arguments. Since I started mentoring courses at RubyLearning 2 years ago I often thought that something like this might be nice for the students of our core course.
Last night I was about to start looking for an implementation of Method Finder in Ruby I found some years ago, but then decided to just write my own, which is more fun and doesn’t take long. Here we go:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
Here’s how you use it:
1 2 3 4 5 6 7 8 9 10 |
|
I think I’ll pack this up as a gem for our course participants to install and use in their IRBs, but before that I might add/change a couple of things:
- Exclude method’s based on arity to reduce the number of message sends. Done.
- Add support for blocks which is trivial. Done.
- Maybe switch the order of arguments and expected result, so you don’t always have to specify an empty array for the arguments. I am a bit torn on this one though, since I like having the argument list explicit. Done.
- Redirect
stdout
andstderr
to a StringIO object instead of/dev/null
unless someone tells me that the latter works on Windows. Done. - Maybe add some sort of method blacklist so they won’t get tried in the block. Done.
This shouldn’t take long, but still may have to wait for a couple of weeks because of a trip I’m taking.