You are here: Blogsphere Longtail
Keep up to date with your favourite Rails bloggers in context.
TheSquad: Wish I were at the Exploratorium. Good John Trippe blog post @ fecalface.com http://tinyurl.com/ye9dgf2 That first photo is insane!
A number of interesting things to consider regarding input into a web application. Our application receives and handles incoming SMS messages. Since some of our customers target spanish speakers, we are getting input that fall outside the typical ASCII alphabet. The trouble word of the day is 'Sueño'; specifically the eñe.
This particular letter is supported by a number of different character encodings. Internally, everything is UTF-8. The Eñe in UTF-8 is 0xC3B1, and URL encoded, this becomes %C3%B1. However, one of our sources of SMS traffic uses a different character encoding that UTF-8. In that case, we see %F1. After some research, I found a correlation between F1 and ñ in the ISO-8859-1character set.
To deal with this in Ruby (we are using Rails), I did the following...
smsmsg = Iconv.conv('utf-8', 'ISO-8859-1', params[:smsmsg].to_s)
This was my first introduction to Iconv, which is part of the Ruby standard library. Unfortunately, it isn't very well documented. Maybe this post will help.
It seems to me that this should be something that Rails should be doing for me. Although, I might be underestimating the task. It would be nice to have params[:some_value] always returns a consistently encoded string.
On Craftsmanship and Practice
Reading a passage from the “E-Myth Contractor” got me to thinking about how we practice (when we practice) our skills that we apply on a regular basis.
When we practice our craft, performing “katas” as they have come to be called, why do we perform them on arcane problems such as Langdon’s Ant or Conway’s Game of Life?
You don’t encounter these problems in your day-to-day work.
I agree that solving these problems a few times over may improve your overall problem solving skills. But that’s only true until you settle on an optimal implementation.
Given the above then there seems to be greater value in routinely exercising what we consider routine.
If I can build a signup, login,and forgotten password capability, a text-based search across multiple model objects, or a recurring payment ecommerce system rapidly and reliably, isn’t that more valuable to most customers than finding clever ways to move a hypothetical ant around a grid? These are the sorts of tasks that we routinely encounter in our work. Or perhaps not. Maybe you typically employ a CMS to expedite these chores. This is because craftsmen use tools to work in their craft.
So you should be practicing with those same tools.
If you have a good toolbox, full of tools ideally suited to solving problems your typical problems, then these tools are your weapons. Each tool probably does certain things better than others. You should then practice “weapon katas.”
You should master your tools.
Let’s assume for a moment that your current project/product/service du jour is not a unique and special snowflake. If what we do is a craft, then repetition and understanding of the routine tasks should enable us to deliver faster, more reliably, and more consistently.
Perhaps studying Langdon’s and Conway’s, ultimately, is a study of basic forms, i.e. this is how I BDD something different. Once we grasp these basic forms, it is then time to move on to how we employ our tools, i.e., our favorite plugins and gems, until we’ve mastered those as well.
Doesn’t this make us better craftsmen?
… that is, until someone introduces a better weapon.
I freely admit that this is not how I currently practice. I feel that my basic form is solid. Howver, I admit, I do need to better acquaint myself with my weapons. As of now, this is what I intend to practice. I will try to report on how it goes.
Watwet from Apie [12/01/2010 01:18]
Watwet from Apie [12/01/2010 01:18]
Also, ich wusste schon, dass man folgendes schreiben kann, um Methoden mit beliebig vielen Argumenten zu definieren:
1 2 3 4 |
def bist_du_aber_klein(*) super essen(:vitamine) end |
Hier werden die restlichen Argumente einfach verworfen, und keiner lokalen Variable zugewiesen.
Der Stern kann auch noch in anderen Beziehungen auftauchen, zum Beispiel in Mehrfachzuweisungen oder bei Blockparametern:
1 2 |
gewinner, *nieten = die_anderen_gehen_leer_aus
array_von_arrays { |erstes, zweites, *rest| puts 'Was für ein Wetter!' } |
Interessanterweise kann man bei solchen Catch-all-Ausdrücken immer den Namen der Variable weglassen:
1 2 3 4 5 6 |
def gibs_mir *; end ja, * = nein, nein, nein obfusc do |*| end for key, * in ENV puts(*) end |
In Ruby 1.9 geht auch:
1 2 3 4 5 6 7 |
a, *, b = *1..10 [a, b] #=> [1, 10] def letzter(*, last) last end letzter(*1..10) #=> 10 ENV.each.with_index { |(*, value), index| puts '%2d: %s' % [index, value] } |
Noch ein ganz extremes Beispiel, das nichts sinnvolles tut:
def***;%****%**;end;*a=*(a**a);b{|*|* =:*.*(:**)} |
Nützlich? Albern? Perl6? Eure Meinung!
Are you a language or tool guy/gal?
"The concept of “social capital” has been vetted and its limitations exposed. Perhaps the..."
Ikea Job Interview
Twitter Weekly Updates for 2010-01-11
About a year ago, we here at A Good Company™ started a little project called The League of Moveable Type. We were frustrated by the lack of web-useable fonts available, professional quality free fonts, & the outright hostility towards the idea of open-source typography.
Since starting The League, we’ve been receiving a lot of support on the idea of high quality free fonts, but we’re wondering where people stand when it comes to open-source typography.
Free but Not Open?
One of the issues that we ran into is that there are designers who want to contribute their typeface to The League, but they have concerns about making their typeface open. They don’t have a problem with making their typeface free to use, but when it comes to letting other people make modifications to their work, this is where many designers feel uncomfortable, here are some reasons why:
- Crappy changes to the font could give my good font a bad name
- Giving away control of my font means I can’t make money off it
- Too many people working on a typeface won’t work
But anyone could change my font…
Because the Open Font Licensing doesn’t allow anyone to release a modified typeface under the same name as the original, there could only be one version of the original typeface, other derivates would be considered as a different font, with a different name. So having fonts that look similar is competition not replacement.
Imagine I’m looking for a font to use in a mockup I’m working on, and I want a geometric sans-serif. Perhaps I’ll consider Futura, Gotham, or Nevis. Notice the ‘or’ – could those fonts not all have been modified versions of the same font? Take Futura & move around pieces, but you can’t call it Futura – suddenly there’s a new competitor.
But aren’t I helping the competition…
People are often loyal to brand names they like. So if you release an open-source font that everyone likes, and you’re selling other weights of that font, most people would choose to use the name they’re familiar with, rather than using a similar derivative.
Here, let’s pretend you’re in dire need of a bold weight for Junction. Junction is open source, and let’s pretend someone already took that source & made up a bold weight. Since it can’t be named the same, let’s say that font was called Bridge. Oh, but then, Caroline, the original creator, made her own bold version – which subtly, if not drastically, looks different than Bridge – and named it Junction Bold, for the very reasonable price of $29.
You’re looking for a bold version of Junction. You could buy Junction Bold, or a different font named Bridge. No one’s claiming 100% customer loyalty here, but now it’s a matter of which font is best, and if your font is as good or better, brand name recognition is a hefty selling point.
But collaboration doesn’t work…
We agree that the landscape at this point for collaborative typemaking is pretty sad. As in, nonexistent.
Hopefully by now, you’ve heard the name Lettercase being thrown around. We’ve been vague on the purpose, because it’s in the earliest (the earliest stages of development), but now seems a good time to fill you in. We want to change the perception of open source typography, and to do it, we’re doing some landscaping ourselves.
There was a time when software programming suffered the same cynical close-mindedness that typography suffers from today, and we’re taking our cue from there. If we can make a tool that makes collaboratively developing a typeface easy, it’d change everything. Amatuers could grow, professionals could work together more easily, and anyone just interested could have a place to learn from.
We’re paying a lot of attention to Github, and in a broad sense, you can imagine Lettercase being a similar tool. Private & public projects, either for something you don’t want to share or for something open source; collaborators, working together on shared projects; forking , or duplicating existing projects, that both pay respects to the original creator & allow you to mess with it & make something new. These are important ideas that helped propel the crazy success of open source software, and we don’t see any reason typography can’t benefit from the same.
An Important Crossroads
But this is the point where we have to assess what to do. Is open source typography important enough to fight for? Are we all brave enough to do something to change the status quo? Is the status quo okay, do we really need to change anything at all?
Is open source typography a fight worth fighting, or is free typography good enough? What do you think?
Quick emacs tips – smaller/larger fonts on the go
Alex Rainert or Nick Bilton?
|
Alex Rainert or Nick Bilton? - http://www.flickr.com/photos...
|
"there should be a test there just to make sure you don’t fuck it all up"
@tihm so @amidown is free until you implement billing?
@jayfallon I care deeply about every one of my disciples. But not the numbers. Also, KP pasted me on 4sq leaderboard last wk.
|
@jayfallon I care deeply about every one of my disciples. But not the numbers. Also, KP pasted me on 4sq leaderboard last wk.
|
a jar with a heavy lid a pop whiz kid (posted by hipturn) zoom

a jar with a heavy lid a pop whiz kid (posted by hipturn) zoom
Rotas Polimórficas – Polymorphic Routes
Un-Hide Someone in Facebook
Reverse Phone Directory - Find Out Who Really Owns That Phone Number Right Now
Part Plant, Part Animal… amazing creature that actually...

Part Plant, Part Animal… amazing creature that actually produces chlorophyll…
Image: Nicholas E. Curtis and Ray Martinez
@jnunemaker that's the mohawk grenade! i would hate to see you wash your hands.
|
@jnunemaker that's the mohawk grenade! i would hate to see you wash your hands.
|
The Future Sounds Like This
Desperately behind and staying that way
I haven't been blogging here much for awhile. That'll remain true for at least a bit longer. I hope to have some real progress next week, and then may go dark again. No readers, so you'll all vacuously cope.
I'm not saying you're vacuous. I'm saying you're absent, so the statement is vacuously true. There's a logic joke in there somewhere.
Tags: published
Branding Gone Wild
Typically, branding is a good thing. It brings you recognition, people remember your product/company, and you hope all that translates into sales. But branding can also be over done. Take for example, Smart Assembly (or rather "{smartassembly}") which was acquired by Red Gate back in September. Don't get me wrong, Smart Assembly makes and awesome product, but the whole "{...}" thing has been over done.
For example:
The branding can also get in the way of using the product. Smart Assembly is an obfuscation tool, so it would seem reasonable to integrate into your build process. NAnt is of course a popular tool for automated builds. NAnt scripts use $"{...}" to denote variables. While this doesn't create a conflict, in my opinion, it clouds your scripts with excess brackets and takes away from the experience. (Note: I originally said it conflicts with using NAnt, I was wrong, since I jumped ahead of myself forgetting that it needs a '$' too)
Branding is cool and all, but when it gets in the way of your user experience by overuse, its gone a bit too far.
frack, Phrack still exists
@KylePaice I made a serious attempt to compete this week, bu could not catch up to you over the wknd
|
@KylePaice I made a serious attempt to compete this week, bu could not catch up to you over the wknd
|
funny: Listorious seem to be using the will_not_paginate_for_shit plugin: http://listorious.com/top/longest
|
funny: Listorious seem to be using the will_not_paginate_for_shit plugin: http://listorious.com/top...
|
RE: Чат на рельсах
RE: не устанавливается гем: gem install eventmachine
RE: RoR Developers for Comodo Group Inc. (Ukraine, Odessa)
My Morning Jacket 80+ covers
@KylePaice hey Kyle I meant to issue a public concession yesterday re: your Foursquare domination. No chance of catching you!
|
@KylePaice hey Kyle I meant to issue a public concession yesterday re: your Foursquare domination. No chance of catching you!
|
Redesigning the Boarding Pass – Boarding Pass / Fail
James Golick made a tiny useful gem to making Munin graphs easy. Pretty slick.
Added Resque.enqueue_in for delayed resque jobs
Resque.enqueue_in(5.days, SendEmailFollowup, :user_id => current_user.id)
[1..-1] is nice and all, but #rest does have a nice lispth to it #ruby
Info, Education or Partner: Big Differences
This past fall my team asked entrepreneurs around the world some revealing questions about being an entrepreneur today. Something unexpected appeared.
A clear majority of the respondents indicated they wanted to partner with Kim Castle and me. They did just want information, they wanted to be partners!
At first we thought what a nice reflection of the [...]Continue Reading Info, Education or Partner: Big Differences
|
BrandU’s Blindspot Turnaround 15.0335 |
|
BU Private Mentorship 50% Off 14.3194 |
|
Is Six Years A Long Time? 13.5041 |
Tell us what you think of the new BlogSphere feature. We are continually looking to improve and update the
functionality based on your feedback.

Find your next Ruby on Rails project or job.
Exclusive content,
regularly updated - onsite and tele-working positions listed.
Mohnish is a ruby expert, very friendly in nature. he helps other people a lot.
-
S.J, India