Planet Linode

Planet Linode is an aggregate of blogs by Linode Subscribers. You can subscribe to a feed of this content from your favorite RSS reader in RSS 1.0, RSS 2.0, or OPML format. All times used on this page are expressed in GMT.

To have your blog listed, please open a Support Ticket with subject "Planet Linode" and include the URL for your blog's feed in RSS format and the name you would like it displayed under.

DISCLAIMER: The views expressed herein are those of the authors and not necessarily the views of Linode, LLC.



September 02, 2010

Tweet Tweet dives into the past

I overhauled my Tweet Tweet plugin for WordPress yesterday so it would work with the new Twitter OAuth mechanism. This morning I made it possible to download your older tweets, up to the max limit of 3,200 tweets that Twitter allows.

It’s still a work in progress but I want to get a new release out as soon as I can for current users who are using the basic auth that doesn’t work any more. If you’re feeling adventurous give the development version on the download page a go and tell me what you think!

99% of the OAuth code was ripped from Alex King’s Twitter Tools which in turn uses Abraham Williams’ twitteroauth.php library and OAuth.php from oauth.net. Thank you all for doing the heavy lifting required!

Related Posts

September 02, 2010 02:25 PM

Raw Satire Usually Fails on the Internet

Sarcasm and satire usually don’t work on the Internet. One cause of this is the lack of out of band signalling via facial expression or tone of voice. Another issue is the fact that in real life people usually know something about the person who they listen to while on the Internet it’s most common to read articles without knowing much about the author. So the reader can’t use “I know that the author isn’t an asshole” as a starting point to determine whether a message should be interpreted literally.

This is really nothing new. The standard in printed communication for a long time has been to use Emoticons (Wikipedia) to indicate emotion and other interpretation that might not be deduced from a direct reading of the text. The Wikipedia page cites examples of emoticon use dating back to 1857 – although the combinations of characters used for different emotions has changed significantly many times. The common uses that we now know on the Internet date back to 1982.

In my experience the symbol :-# is commonly used to note sarcasm or satire. Unfortunately it seems that none of the Internet search engines allow searching for such strings so I couldn’t find an early example of this being used. While I haven’t found a reference describing this practice, I regularly receive messages annotated with it and find that people generally understand what I mean when I use it in my own email. But that is usually applied to a sentence or two.

For a larger section of text a pseudo-HTML tag such as </satire> can be used to signal the end of satire. It seems that a matching start tag is optional as recognising the start of satire is a lot easier once the reader knows that some of the content is satirical. In spoken English a phrase such as “but seriously” may be used for the same purpose, but such a subtle signal may be missed on the Internet – particularly by readers who don’t use English as their first language.

Another way of signaling a non-literal interpretation is by using Scare Quotes – the deliberate usage of quotation symbols to indicate that the writer disagrees with the content that is written. That is common for the case of referencing a phrase or sentence that you disagree with, but doesn’t work for a larger section of text.

A final option is to make the satire or sarcasm so extreme that no-one can possibly mistake it for being literal. This is not always possible, Poe’s Law holds that “Without a winking smiley or other blatant display of humor, it is impossible to create a parody of Fundamentalism that SOMEONE won’t mistake for the real thing” [1]. I think that Poe was understating the case, it is impossible to create a parody of religion that most people won’t mistake for the real thing without signals or context. For an example read LandOverBaptist.org and Chick.com, of course if you know those sites then you will know whether they are satirical or serious – but I expect that most readers of my blog won’t invest enough effort into either of those religious sites to determine whether they are serious or satire.

But satire and sarcasm without signals or a reputation usually fails. One example of success is The Onion which is a long running and well known satirical news site [2]. But even The Onion it is regularly mistaken for being serious – the number of occasions when people forward me Onion articles for amusement are vastly outnumbered by the number of occasions when I see people taking it seriously.

Even when material is known to be satirical it can still fail grossly. An example is the Chaser’s satire of the Make A Wish Foundation [3]. Even material that is well known to be satirical seems to fail when it attacks bad targets or attacks in a bad way. One difficulty is in satirising bigoted people, to effectively satirise them without attacking the minority groups that they dislike can be a difficult challenge.

Finally, when you write some satire and members of your audience don’t recognise it you should consider the possibility that you failed to do it properly. If you can’t get a hit rate close to 100% for people with the same background as you then it’s probably a serious failure.

September 02, 2010 04:16 AM

How to Build a “Spy Camera” App for an Android Phone with Ruby and Sinatra

It's been a great year for Ruby on Android, but no one knows it. You can start writing Ruby apps for Android devices TODAY. You don't need to install any SDK, you don't need to install some giant Eclipse IDE, and you certainly don't need to write any Java.

Mike Leone

In Turn your Android Phone Into a Remote Spy Camera with Ruby in 15 Minutes, Mike Leone demonstrates how to use Ruby, Sinatra and Scripting Layer for Android (SL4A) to build and deploy a phone-hosted "spy camera" Web service.

SL4A is a system that allows you to run "scripting language" scripts and interactive interpreters on the Android platform. It currently supports JRuby, Python, Perl, Lua, JavaScript, BeanShell, and Tcl. Mike demonstrates how to set up a Sinatra project to use SL4A to run on an Android phone using JRuby. Upon receiving a request, Mike's app takes a picture using the phone's camera and serves it back over HTTP. He has also released the source code to a larger Ruby app called Broadcast that implements general Android device management functionality over HTTP.

Even if you don't want to build a "spy camera", Mike's walkthrough is a must-read if building Web services in Ruby that can run directly on the Android platform is of interest to you.

September 02, 2010 02:12 AM



September 01, 2010

All About Grooveshark

This isn’t an advertisement and no one is paying me to say this, but I’d like to suggest a nice music tool for those of you that like rarer electronic music. About a month ago I discovered a website called Grooveshark. Everyone I already suggested to had at least heard about it so as usual I’m the last one to find out about something, but this is different. This is still relevant.

grooveshark_inline1

The website is a mix between Pandora and Lastfm and dare I say Limewire. Speaking of which, it scrobbles LastFM tracks which is a definite plus for people like me who have been running theirs for years and years and years. It is user supported so most of the music is uploaded by the listeners themselves. Although this causes duplicate tracks and quite a few misnamed tracks, it works. You get a simple search box, you type what you want, and it gives you tons of songs. You then add them to your playlist (which unlike Pandora and Lastfm which constantly nag you with are you still listening messages) and they will play until the playlist runs out. This in and of itself really isn’t that great, and I’m sure theres a dozen other programs ranging from Rhapsody to even that Yahoo thing from years ago that essentially do the same.

No, what I like is the rare gem songs that are so difficult to find, normally scattered all around the web or buried in Youtube videos, in one easy place.

It has all the eleectro house: Valerie, Russ Chimes, Maethelvin, Fear of Tigers, Mille

It has all the trance: Gabriel and Dresden, ATB, Kaskade, BT

It has new music: Crystal Castles, Deadmau5, anything on BBC1 you can find here.

It has all the dubstep (the melodic kind too!): Chase and Status, General Midi

Having used it for about a month now, I figured it was time to write the review and feature it. If you’re a fan of electronic music, have an internet connection, and you’re tired of Youtube not having a replay button for listening to those rare songs, Grooveshark is a pleasant solution.

September 01, 2010 09:19 PM

Optimising the How To Vote Process

I previously wrote about my experience handing out How To Vote (HTV) cards at the federal election a couple of weeks ago [1].

One comment noted that at one polling place “all the volunteers for different candidates had combined into a single team, handing out all the cards together“, which makes sense. There is some advantage in forcing cards on people, some people decide who to vote for once they are inside the polling booth based on information on the HTV cards (a couple of voters stated an intention to do so which disappointed the politically aware people who hand out the HTV cards). But for most voters there is no benefit in competing to hand them a HTV card.

Some of the comments expressed a dislike of being subjected to people handing out HTV cards. As a voter I don’t particularly like having a group of conflicting people wanting to hand me a HTV card either. Also it is obviously a waste of resources to hand out so much cardboard that goes to waste (particularly the Liberal and Labor parties that use glossy non-recycled paper).

I think that the ideal solution would be to have the officials at the polling booths hand out HTV cards on request. A voter would have to specifically request the card from a party and the poll officials would not be able to offer them a selection, “sorry I can’t tell you who is running for election, but if you express a desire to vote for a particular party I can give you a card instructing you how to do so“. The parties would be responsible for providing the HTV cards (according to strict specifications regarding the acceptable sizes), and if the supply runs out then the officials would decline requests.

This could even be made self-financing by making the parties who want their cards distributed pay for a fraction of the wages of the people who hand out the cards, if each polling place had one person handing out the HTV cards at a salary of $500 for the day and there were 5 parties cards to hand out then each party would have to pay $100. The reduced print runs for HTV cards would probably save each party more than $100.

Something like this should satisfy the real need of voters who want advice on how to support their preferred party while not annoying the voters who know how to vote without any assistance. I expect that most members of the parties would be in favor of this idea. The only reason we go to the significant amount of effort and expense to hand out the HTV cards is because everyone else is doing so.

September 01, 2010 01:08 PM

Aphasia


Welcome back! If you need to get re-acquainted with the current story, start with the first word in the Smash Another Plate! storyline, enzyme.

Today's word comes from Johanna, who writes the ever-popular Comics Worth Reading blog. Thanks! New comic this Friday.

September 01, 2010 01:00 PM

Austrian Study Shows Effectiveness of Acupuncture for Endometriosis

In the European Journal of Obstetrics, Gynecology and Reproductive Biology researchers from the Department of Internal Medicine at Kaiserin Elisabeth Hospital in Vienna recently conducted a study observing the effects of acupuncture on endometriosis.

Acupuncture and Chinese Medicine is often used to treat an extremely broad range of women's health issues including irregular menstruation, painful menstruation, PMS, fertility, and more.  Endometriosis can be a very debilitating condition that is often a strong contributing factor in fertility issues for women.

read more


September 01, 2010 12:55 PM

Tarjouspyyntö www.kuvalauta.fi -sivuston hostaamisesta

Kuvalautaa ajettiin alas eilen.

Kuvalauta kuuluu Suomen 200 suosituimman sivuston joukkoon, ja on täydessä sekavuudessaan hyvin mielenkiintoinen 4chania ja muita japskityylisiä, anonyymejä kuvafoorumeja muistuttava anonyyminen alakulttuuri.

Kysyin, kuten ilmeisesti moni muukin, lisätietoja alasajosta sivuston ylläpidolta ja sain alleolevan tarjouspyynnön sähköpostitse. Toivottavasti Kuvalaudalle löytyy uusi koti.


Otsikko: Tarjouspyyntö www.kuvalauta.fi sivuston hostaamisesta

Lähettäjä: Kari Karvonen <kari.karvonen [at] toimii.net> Tiistai, 31 elokuuta, 2010 klo 17:21

Arvoisa bcc spämmin uhki. Lähestyn sinua koska koska minulle on vinkattu että sinulta voisi kysyä tarjousta palvelinhostauksesta.

Olen ylläpitänyt www.kuvalauta.fi internetsivustoa vuodesta 2008 lähtien. Kuvalauta toimii vanhalla dell powerege 1750 rack-palvelimella (2*Xeon 2.4GHz, 2GB ram, 60GB HD) joka on tällä hetkellä hostattuna paikallisen IT-firman tiloissa rack kaapissa. Nyt paikallinen IT-firma on pyytänyt minua etsimään kuvalaudalle uuden sijaintipaikan.

Kuvalauta sivusto on kävijämäärällä mitattuna melko suosittu ja viestimäärät ovat olleet tuhansia viestejä vuorokaudessa. Vaikka sivuston moderointi on hoidettu mielestäni vapaaehtoisvoimin melko hyvin, viestien joukossa on silti joskus viestiketjuja jotka ovat pahoittaneet joidenkin ihmisten mieliä ja kuvalaudalle jätetyistä viesteistä on tehty rikosilmoituksia. Kun poliisi tutkii rikosilmoitusta, poliisi pyytää oikeuden päätöksen jälkeen palvelimen ylläpitäjältä viestin lähettäjän IP-osoitteen tutkintaa varten. Yleensä virkavalta osaa hommansa ja nämä pyynnöt tulevat suoraan minulle.

Oikeuden päätöksellä olen luovuttanut pyydetyt tiedot, mikäli sellaiset ovat tallessa, ja asiat on hoituneet ongelmitta. Joskus käy niin että virkavalta ei ole osannut selvittää palvelimen ylläpitäjän yhteystietoja. Silloin pyynnöt ovat ohjautuneet IT-firman päällikölle joka sitten joutuu alkaa selvittelemään asioita. Nyt tälle IT-firman pomolle on tullut mitta täyteen ja hän haluaa kuvalautasivustosta erilleen.

Tämän vuoksi pyydän tarjousta www.kuvalauta.fi sivuston hostaamisesta. Hostaaminen voi olla virtuaalipalvelin tai laitepaikka palvelimelle.

Virtuaalipalvelimen speksejä:

  • Levytilaa 60GB
  • Muistia 4GB
  • CPU joku 2005+ vuodelta oleva jossa on vääntöä skaalata imagemagickilla giffejä
  • Internetyhteys jossa nettikaistaa viikon keskiarvolla noin 7Mbit/s, tilapäisesti purskeissa 100Mbit/s
  • Kiinteä julkinen IP-osoite
  • Käyttiksenä Ubuntu server 10.04LTS (tai Debian). Rajoittamaton root oikeus.
  • Yli 90% sivuston liikenteestä suuntautuu suomalaisten operaattoreiden verkkoihin. Hyvä nettikaista suomeen on tärkeä, internetkaista ulkomaille saa olla ahdas.

Mikäli kyseessä on palvelinpaikka niin sitten 2 julkista IP-osoitetta, yksi palvelimelle ja toinen palvelimen rac-etähallintakortille.

Olen valmis maksamaan hostauksesta rahaa. Koska sivusto ei tuota minulle käytännössä mitään ja maksan hostauksen omasta pussistani, haen sen takia hyvää hinta/laatu suhdetta.Jätä tarjous sähköpostitse osoitteeseen kari.karvonen@toimii.net. Kerro tarjouksessa hinta, sopimusehdot ja milloin palvelu olisi käyttön otettavissa. Jätä tarjous viimeistään torstaihin 3.9.2010 klo 16:00 mennessä. Teen tilauksen yksityishenkilönä, hinnat alv:n kanssa. Pidätän oikeuden hyväksyä tai hylätä tarjoukset kokonaan tai osittain.

Lisätietoja tarjouspyyntöön liittyen saa sähköpostilla osoitteesta kari.karvonen@toimii.net


Mainittakoon että puoluetoverini ja (ano)nyymi Janne “usvi” Paalijärvi on rikosepäiltynä elokuvaohjaaja Kaisa Rastimoon liittyvästä kuvalauta-kommentista.

Lopuksi ehdotan vielä että lukija katsoo 4chanin perustajan, Christopher moot Poolen TED-puhetta anonyymiisuuden kunniaksi. Tämän anonyymisuuden voi vielä harjoittaa suomeksi Northpolen ja Laudan keskustelupalstoilla.


Copyright © 2010 Thomas Nybergh. Unless something else is specified, the content of this post is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 1.0 Finland license. Questions related to licensing can be sent to thomas [at] nybergh.net. Now, go eat some ice cream.
Plugin by Taragana

September 01, 2010 09:54 AM

Tarjouspyyntö www.kuvalauta.fi -sivuston hostaamisesta

Tarjouspyyntö www.kuvalauta.fi -sivuston hostaamisesta

Kuvalautaa ajettiin alas eilen. Sain yllämainitun tarjouspyynnön sähköpostitse. Jälkiviisaana voin todettaa että viestiä olisi kannattanut julkaista pääsivustoni blogissa – linkki keräsi eilen yli 3700 sivulatausta.


Tags: , , , , ,

Posted on omglog.com. Some rights reserved.

September 01, 2010 09:24 AM



August 31, 2010

Crazy Day

Today has been a pretty weird day and has involved plenty of driving here and there and more!

As planned I headed to Andy’s for 12.00PM and picked him up and took him with Me to enrol at college, a few hours later we finished all our tests and got accepted on our course and then I drove the car back round to the top car park as there was now a space then headed for the chippy which we found out was closed so we ended up walking back to the car and I drove Andy home!

After that I headed home via my usual way down Duncombe street where I found a Corsa parked in the road and then a giant delivery lorry the other! I shouted to the guy and asked if he was going to be there long as he was causing chaos but he told me that other cars had squeezed passed some how so I attempted to do so at my own risk and well my first attempt at getting past ended up with my wing mirror almost touching the back of the truck so I reversed a little and tried again and this time I succeeded and headed home until I pulled up on the drive and found Mother ranting and raving!

I didn’t know what was going on so checked my phone and found a few missed calls and a text message saying that Sam had been taken to hospital after a car crash and that Mick needed dropping up the hospital so I just started the car then backed off the drive and before I knew it I was on the road again and on reaching my favourite island by the White Horse I slightly cut up a van driver well I don’t think I actually did I just think he was speeding and impatient as when I decided to go there were two cars going straight over coming towards me hence why I thought it was safe to go but before I knew it the cars were gone and there was a van almost crashing into me! If that wasn’t bad enough he then wen into the lane next to me at the bigger island and stuck his thumb up and honked the horn – When will van drivers stop thinking that they own the roads?

I thought nothing of it and let it go over my head and carried on heading for Mick’s where I admired the crashed car then strolled into his house and then we headed to the car and set off to the hospital via the wrong way at first but we eventually found our way! – It was pretty fun at the hospital as Me & Mick were just messing around drawing rude things on anything in sight and then I saw my friend Katie who was literally sat behind me and I never noticed until I turned around and was like WOAH but she disappeared and my sis came back and we went by the time she came back :(

In the end my sister has a fractured thumb base or something thanks to the air bag and Mick has a few less hairs on his arm!

Eventually Sam was released and we headed back to mine were we then set off again to Norton Chippy and then after having some much needed food I dropped them off home and that was the end of that!

Now you might be thinking crash OMG but it wasn’t your average kind of crash as some how Mick was doing a three point turn in the road (after picking my sis up from work) where he clipped the kerb and for some reason the air bags went off and that’s were all this mayhem began! – What’s funny is Sam was eating a chocolate cake at the time and I was allowed an exclusive look in the car and you can just see cake scattered everywhere but the car is still sort of drivable as Mick managed to drive it home with air bags hanging out, a smashed windscreen, deployed seat belt rockets and cake everywhere so there’s a little bit of work to be done on the poor car but hopefully it will be fixed soon so Sam can learn to drive!

In total I made 12 whole journeys today!

Share / Save

August 31, 2010 09:03 PM

How Ugly Is My Face?

How Ugly Is My Face?

If you look at how it started, Mark Zuckerberg was originally fascinated w/ this idea that there’s a sliding scale of attractiveness that can be calculated exactly by scoring “faces” with computer software–he originally used the “HotOrNot” algorithm, which is an interactive survey, a rating system: “X face is slightly more appealing than Y face.” I think he wanted to know where he fit at Harvard in terms of attractiveness. (Somewhere near the ugly end? Hah.) These top students are trained to measure themselves by SAT scores and GPA scores, why not a “face” score too?

August 31, 2010 08:17 PM

CAO Top 10 Sampler + Case (10 Cigars) $39.95

Corona Cigar Company has 2 of their CAO Top 10 Samplers on sale for $39.95 but at this point it looks like the CAO Top 10 Sampler + MX2 Cigar Case
is the only one that is still in stock, so get over there and check this one out!

Contains:
2 CAO Brazila Gol! 5″X56
2 CAO MX2 Robusto
2 CAO Gold Natural Robusto 5″X50
2 CAO Cameroon Robusto 5″X50
2 CAO Italia Ciao 5″X56
1 Leather Case


August 31, 2010 12:59 PM

Okay, it’s Valleywag, but here’s a supposed Wikileaks/Assange police report leak

Okay, so it’s Valleywag, but here’s a supposed Wikileaks/Assange/Rape police report leak

“The Daily Mail has managed to secure a copy of the police report detailing Julian Assange’s alleged molestation of two Swedish women. Inside, we learn that Assange’s preferred method of seducing groupies is to feed them cheese.”

I’ve refrained from posting anything on Assange’s sex life, waiting for the dust to settle and the fun to begin. Not that rape or confused charges thereof are fun.

But you see, while we still might want to wait for sources more modest on the tackiness scale than Valleywag, it’d be ironically unsurprising for rumours regarding characters like Assange’s to point towards symptoms of an inflated ego and attitude problems about safe sex.

Related: Wikileaksleaks.org

[via:Joonas Mäkinen]


Tags: , , , , , , , , , , ,

Posted on omglog.com. Some rights reserved.

August 31, 2010 10:44 AM

Covered In LaTeX

Although I haven’t used LaTeX much in the past few years, it was one of the primary tools that hastened my shift to using GNU/Linux full time. Why? I’d grown sick of fighting with document preparation and publishing systems (e.g. Microsoft Word/Open Office), and had started using LaTeX on my Mac to produce all of my papers and documents that needed to be output to paper-formats. Why switch? Because after a certain point of having every tool you use be Free software (because it’s better!), it becomes easier and more cost effective to just jump the gun and by commodity hardware and use a system that’s designed to support this kind of software (managing a large selection lots of free software packages on OS X can become cumbersome).

So why LaTeX? What’s the big deal? Why do I care now? Well…

LaTeX is a very usable front-end/set of macros for the TeX typesetting engine. Basically, you write text files in a particular way, and then run LaTeX (or pdflatex) and it generates the best looking PDF in the world of your document. You get full control over things that matter (layout, look and feel) and you don’t have to worry about things that ought to be standard (titles, headlines, citations with BibTeX, page numbering, hyphenation). The best part, however, is that once you figure out how to generate a document correctly once, you never have to figure it out again. Once you realize that most of the things you need to output to paper are in the same format, you can use the same template and be able to generate consistently formated documents automatically. There’s a “compile” step in the document production process, which means changes aren’t often immediately recognizable, but I don’t think this is a major obstacle.

Word processing and document preparation is a critical component of most common computer users. At least, I’d assume so, though I don’t have good numbers on the subject. In any case, I think it might be an interesting project to see how teaching people how to use LaTeX might both improve the quality of their work, and also the way that they’re able to work. It’s advanced, and a bit confusing at first, but I’d suspect that once you got over the initial hump LaTeX presents a more simple and consistent interface: you only get what you tell it to give you and you only see the functionality that you know about. This might make the discovery of new features more difficult, but it doesn’t limit functionality.

I’m not sure that this post is the right space to begin a lesson or series on getting started with LaTeX, but I think as a possible teaser (if there’s interest) that the proper stack for getting started with LaTeX would consist of:

  • A TeXlive distribution. You need the basic tool kit including pdflatex, TeX, Metafont, LaTeX, and BibTeX.

  • A Text Editor with LaTeX support: emacs, TextMate, etc. Plain text can be difficult and cumbersome to edit unless you have the right tools for the job, which include a real text editor.

  • Some sort of macro or snippet expansion system. TeX is great. But it’s also somewhat verbose, and having an easy way to insert text into your editing environment, both for templates but also for general operations (emphasis, notes, etc.) is incredibly useful, and reduces pain greatly.

  • A template management system. This probably needn’t be a formal software system, but just something to organize and store the basic templates that you will use.

And the rest is just learning curve and practice. Onward and Upward!

August 31, 2010 04:00 AM



August 30, 2010

What does a Drupal architect do, and what do architects on Drupal projects do?

Drupal occupies a strange place in the web framework landscape. It's not a pure framework, like Ruby on Rails, Symfony or Zend Framework. Nor is it just a CMS or blogging product with the ability to host plugins, like WordPress. It's somewhere inbetween, giving the developer a fully functional CMS as a platform but providing many of the flexible basic services and abstractions that would be expected in a more generic "framework".

For this reason, talking about "architecture" in Drupal can be confusing. From one perspective, Drupal is the architecture. To consider this properly, let's unpack the metaphor:

When we talk about system architecture, we're talking about the bits of the project that aren't going to change, or will change only very slightly, in response to feedback and information gathered during the project itself. The architecture is the stuff that we can rely upon to remain true for a long time. In this sense, the metaphor with building architecture is very accurate: when planning a new house or office block, we begin by figuring out where the walls, foundations and windows will go, and how the heating, power and water will be provided - we don't worry about what colour to paint the walls, or whether to have carpet or wooden floors (in a Drupal project, this kind of thing is handled by the theme). And on a Drupal project, the main fundamental part is, well, Drupal. It defines how the user permissions system works, how content is stored in the database, the entire operation of the presentation layer, and with a few additional modules it can also define a lot about how integration with other systems works too.

So if Drupal gives us an architecture to work with already, do we need architects on Drupal projects? My answer is a tentative yes - there's clearly a need for architects to design the overall system, of which Drupal may be only a part. And the other parts of the system, which are built from much lower levels of abstraction (say, on top of a Java framework) will need architects to design them. But when working with Drupal itself, the job of the architect is different from these other cases. If an architect tries to plan how a Drupal site should operate from first principles, he will be wasting a lot of his time since many of these decisions have already been taken - and tested in the real world - by others in the community. The job of an architect on a Drupal project is not to design but to understand how to get Drupal to do exactly what is needed in the most efficient way possible.

An architect with little knowledge of Drupal may look at the requirements for his system and say "aha, we need a service for querying large amounts of information from an external data store". A more experienced Drupal architect would say "aha, we need to use Views, Schema and Table Wizard". The experienced architect knows that contact forms can be done easily via Webforms and don't require a custom module. This seems obvious to experienced Drupal developers, but it really is a quite strange concept to developers and architects from other backgrounds who are used to building applications from extremely flexible basic components.

Consider an organisation that needs to have multiple contact forms, allowing users to submit different kinds of information on each. Using something like Zend Framework, this would involve writing code to generate each form using Zend_Form, enforce validation rules using Zend_Validate_* classes and ultimately send the submissions via Zend_Mail. Now, each of those components is well-architected and de-coupled, and each can be subclassed and replaced easily. Zend_Mail has various implementors for different mail transports and encodings - it's a very flexible library. But the amount of effort required to implement even a very simple user story with ZF is considerably greater than the effort required to do the same with Drupal, because Drupal provides pre-built architecture for this very common web pattern. In ZF, each form will require a separate form class which contains all of the form element definitions, labels, error messages and validation rules - and that's before we consider the possibility of administrative users adding extra form fields without any code changes. In Drupal, the entire set of user stories is handled by the Webforms module, with little or no code to be written at all. Thus the Drupal architect's greatest asset is the knowledge of the patterns already implemented by others, rather than the ability to produce designs of how to re-implement this system from first principles (which would probably end up looking something like the Zend Framework example, and would take as long - or longer - to code).

This example explains why Drupal is different. Other frameworks value - correctly, in some cases - flexibility over functionality. Adherence to the formal structures of object-oriented (or perhaps that should be called class-oriented programming) is prevalent here. This can make these web frameworks extremely flexible, with every component pluggable and replaceable, with intricate inheritance trees providing - in theory - code reusability. But in practice, Drupal's approach of providing the developer with a set of prefabricated components that satisfy 90% of the likely user stories is simply more productive. Reusability is achieved by having modules that implement large chunks of functionality, with the potential to inject new functionality or override behaviour via Drupal's aspect-oriented hook system. Whilst this might feel limiting to a design purist, it is an extremely pragmatic way of building high-functioning websites; quite simply, it's easier to tweak the pre-fabricated components than it is to build new ones. When properly understood, Drupal allows architects and developers to skip ahead in huge leaps, building on top of the components already provided, focusing all efforts on the new and unique parts of a project, where those efforts are truly needed. This does mean accepting a limited scope for the architect, but this limited scope can be traded off against faster delivery and more time for in-depth consideration of the newest - and, by definition, riskiest - parts of a project. Architects can still add value and get satisfaction from solving the truly difficult problems.

So, my answer to my original question is that Drupal projects do need architects. But they need to understand that they're not designing the whole system from the ground up - they're designing only those parts that aren't already there, and their greatest asset when doing so is their understanding of how the existing parts work.

August 30, 2010 07:34 PM

Performance & Security for Any Website using CloudFlare


CloudFlare LogoCloudFlare, a service brought to you by the team behind Project Honey Pot, is the next evolution in website performance and security that uses the data from Project Honey Pot and several additional sources to protect websites from malicious threats online. While still in private beta testing, those lucky enough to receive an invite to this relatively new service will almost immediately reap the benefits. I can confirm this…my server logs for all of the Streamline Consulting, LLC client websites I work with have steadily decreased in size by 14% in total (unscientific estimate)!

Up until CloudFlare launched its services, web administrators have had to to come up with his or her own ad hoc approach to stopping malicious visitors, usually involving incomprehensible iptables rulesets, constant tweaking of server settings, and most importantly time that could be spent delivering value to clients. With CloudFlare, web administrators will no longer be subject to a host of threats from email address harvesting to cross-site scripting to denial of service attacks to comment spam. The service touts that it makes web pages faster, safer, and smarter in the following ways (from CloudFlare’s website, see the full list of implemented and future features here):

  • Faster – CloudFlare uses a CDN-like infrastructure to deliver the best in performance to [websites]. The faster page load times will keep [site] visitors online longer and [CloudFlare's] caching mechanism will save [server] CPU and bandwidth resources.
  • Safer – CloudFlare blocks known threats from [websites] and uses the collective intelligence of the community to identify new rising threats. Not only does CloudFlare block these threats, but [it ties] up their resources by throwing them into a never-ending labyrinth so they can’t attack another site.
  • Smarter – Web administrators have good tools to evaluate human traffic coming to your site (read: Google Analytics), but no insight into Search Engine Crawlers and bots…sort of. With CloudFlare, now you do to an even further extent.

CloudFlare replaces the authoritative DNS records with a domain’s registrar, then forwards “good” traffic on to the original name servers, and hence the website, in a sense, a proxy. When adding a domain to CloudFlare, it attempts to copy the existing DNS zone file for that domain, then saves default settings for A, CNAME, MX, as well as other DNS zone records for that domain including which records receive filtered internet traffic through CloudFlare’s service. Via the dashboard, web administrators can add new domains, allow/block challenged visitors, upload and/or modify DNS zone files as well as the filtering settings, and control the reporting settings too.

The CloudFlare team won the 2009 Harvard Business School business plan competition, and in November of the same year received $2.05 million in debt funding according to DowJones VentureWire, so expect CloudFlare’s service offering to continue to grow and be refined as the service opens up to the public. To put your name in for an invite to the beta, click here.

August 30, 2010 05:43 PM

Pirate, warez scener, Fairlight founder, GOP chairman

August 30, 2010 05:28 PM

Interesting Developments in Islamic Culture

Shereen El Feki gave an inspiring TED talk about Islamic youth culture [1]. She shows some interesting exerpts from the 4SHBAB TV network which is known as “Islamic MTV“, the music video from the US was of particularly high quality – while I expect high quality videos to be made in the US I don’t generally expect quality Islamic videos from the US (or anywhere else really). She also notes that the videos show a “kinder gentler face of Islam“.

She contrasts that with a clip by Haifa Wehbe [2] – a Lebanese pop star who appears to have a lot in common with Britney Spears (Shereen describes her as a “pan-Arab pinup-girl”).

She cites the comic “The 99” which has Islamic super-heros who represent the 99 attributes of Allah. One thing that I found very interesting was that the 99 character Jemi is shown using what is obviously an OLPC.

This seems to indicate some very positive trends for the interaction of Islamic culture with the European and American culture which is Christian and Atheist dominated.

Kavita Ramdas gave an interesting TED talk about radical women embracing tradition [3]. She highlights a woman who teaches girls to read in Afghanistan based on the religious edict that every Muslim should read the Koran and a Croatian Lesbian choir that sings traditional fold songs.

Naif al-Mutawa gave an interesting TED talk about the creation of “The 99″ [4]. He starts by comparing some of the characters in the Justice League of America to Christian traditions and then describes the back story behind his Islamic super-heroes. His major aim is to provide positive role models for Muslim children.

Apparently a cross-over production involving characters from The 99 and the Justice League of America is being developed at the moment – Wonder Woman wears clothing that is less revealing than usual though. It’s worth noting that Naif is a practicing psychologist who’s clients include victims of political torture, so he seems to have some insight into the problems that most people will never have.

August 30, 2010 06:24 AM

27 Video Presentations from RubyKaigi 2010

RubyKaigi is Japan's "home" Ruby conference and the organizers have just put 27 videos from the RubyKaigi 2010 conference online. Unfortunately I can't link to them individually as they're embedded on a single page, so head over to rubykaigi.tdiary.net and check them out.

Presentation titles include: Ruby 2.0, Ruby API is Improved Unix API, Rocking The Enterprise With Ruby, Mapping the World with DataMapper, The Necessity and Implementation of Speedy Tests, A Metaprogramming Spell Book, Conflicts and Resolutions in Ruby and Rails, and User Experience for Library Designers.

Two caveats: 1) Be aware that some of the presentations are in Japanese (unsurprisingly) although most of the slides include English and, of course, any Ruby is still readable. There were also several English language speakers including Sarah Mei, Carl Lerche, and Jake Scruggs. 2) The player/hosting for the videos seems to be super slow. Give it time and they'll load.

[jobs] Engine Yard are hiring! Did you know that Engine Yard - one of the biggest and brightest companies in the Ruby world - are hiring? They have Ruby Engineer and Ruby App Support Engineer positions open in San Francisco.

August 30, 2010 04:19 AM


RubyDoc.info: Good Looking, Up-To-Date Ruby Documentation

RubyDoc.info is a new, automatically updated Ruby documentation site by Loren Segal and Nick Plante that builds upon their earlier success with rdoc.info (which we posted about in 2009). It's powered by YARD, a tool that puts out great looking Ruby documentation (there'll be more about YARD in a post later this week).

RubyDoc.info automatically generates documentation for all gems on rubygems.org (it updates its index once per day) but it does GitHub-hosted projects too. For RubyDoc.info to automatically update with documentation for your Ruby-related GitHub project, use the "Add Project" link on RubyDoc.info and then add http://rubydoc.info/checkout as one of your post-commit hook URLs in your repository's settings - on each future commit, your latest documentation will be built on RubyDoc.info.

August 30, 2010 04:19 AM

Introducing 2ping

2ping is a bi-directional ping utility. It uses 3-way pings (akin to TCP SYN, SYN/ACK, ACK) and after-the-fact state comparison between a 2ping listener and a 2ping client to determine which direction packet loss occurs.

No wait, that sounds too dry. I've been writing dry documentation and protocol references for weeks.

2ping is like ping, but does magic.

Has this ever happened to you?

PING 10.0.0.1 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=0.062 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=255 time=0.064 ms

--- 10.0.0.1 ping statistics ---
4 packets transmitted, 2 received, 50% packet loss, time 3999ms
rtt min/avg/max = 0.062/0.063/0.064 ms

Great, two replies were never received. But why? Did the far end receive the requests and reply? There's no way to know. Enter 2ping.

2PING 10.0.0.1: 64 to 512 bytes of data.
64 bytes from 10.0.0.1: ping_seq=1 time=0.083 ms
Lost inbound packet from 10.0.0.1: ping_seq=2
Lost outbound packet to 10.0.0.1: ping_seq=3
64 bytes from 10.0.0.1: ping_seq=4 time=0.041 ms

--- 10.0.0.1 2ping statistics ---
4 pings transmitted, 2 received, 50% ping loss, time 4005ms
1 outbound ping losses (25%), 1 inbound (25%), 0 undetermined (0%)
rtt min/avg/max = 0.041/0.062/0.083 ms
6 raw packets transmitted, 2 received

Now THAT tells you a lot more. One ping was received by the server and replied to (but you never received the reply), and another was never received by the server. Assuming you trust the other side to have a stable network connection, that suggests both flaky inbound and outbound problems toward your side.

How does it work?

Normal ping uses ICMP. It is assumed that nearly all IP-capable machines are listening for ICMP ping requests, and will respond with an ICMP response.

2ping is a combined client and listener utility that communicates over UDP. You start a listener on the far end (2ping --listen), then on the near end you start the client mode and tell it to go to the far end. In normal conditions, it operates much like a regular ICMP ping.

Client: "Ping!"
Listener: "Pong!"

Actually, it's a little more involved. By default, 2ping uses 3-way pings:

Client: "Ping!"
Listener: "Pong! And Ping!"
Client: "Pong! And that last ping took 1.2ms to complete!

This allows the listener to gain a little more insight into what's happening on the client end. It knows what the RTT is between the 2nd and 3rd legs, and in addition, the client let the listener know the result of the ping between the 1st and 2nd legs. Here's what 2ping looks like in listener mode:

2PING listener (0.0.0.0): 64 to 512 bytes of data.
64 bytes from 10.0.0.2: ping_seq=1 time=0.226 ms peertime=0.077 ms
64 bytes from 10.0.0.2: ping_seq=2 time=0.166 ms peertime=0.035 ms
64 bytes from 10.0.0.2: ping_seq=3 time=0.164 ms peertime=0.032 ms
64 bytes from 10.0.0.2: ping_seq=4 time=1.073 ms peertime=0.040 ms

Nifty, huh? Now the real magic happens when packet loss starts occurring. Say a few replies from the listener to the client never arrive at the client. Communication isn't totally dead between the two hosts, and they do eventually start talking to each other. When this happens, they start comparing notes:

Client: "Ping #1!"
Listener: "Pong #1!"
Client: "Ping #2!"
Client: "Ping #3!"
Listener: "Pong #3!"
Client: "Ping #4! Oh, and I never received a response to ping #2."
Listener: "Pong #4! I received ping #2 and replied. Must be inbound packet loss on your side."

(This is a simplified example that doesn't show the extra communication with the 3-way pings. But the principle is the same.)

Again, this assumes a stable listener's network. "Must be inbound packet loss on your side" doesn't mean much if you can't assume that it wasn't lost outbound from the listener's perspective.

Current status

Go and download version 0.0.1. This version is mostly feature-complete, and implements many of the relevant command-line options from the regular ping utility ("2ping -a" for audible ping, etc). A 2ping manpage is partially complete, and documents all of the command-line options.

2ping is written in Perl, and all of the base module requirements should be in any default Perl install. It is IPv6 compatible with the "-6" switch, but requires IO::Socket::INET6, which is probably not included by default. But 2ping only tries to load it if you are using the "-6" switch, so the module is not needed if you do not need IPv6 support.

This is a VERY early release. The code is horrible and not documented. The command-line switches may change in the future, the wire protocol may change in the future, and the UDP port used by default (currently 58277) definitely WILL change in the future. (I've sent the draft 2ping protocol to the IANA for review, and hopefully they will assign a registered port for 2ping use.) A version 1.0 release will not be made until the code is cleaned up, the final UDP port is assigned, and the protocol is finalized.

August 30, 2010 01:28 AM

Rails 3.0 Released (And 22 Free Videos To Bring You Up To Speed)

Rails 3.0 has been underway for a good two years, so it’s with immense pleasure that we can declare it’s finally here. We’ve brought the work of more than 1,600 contributors together to make everything better, faster, cleaner, and more beautiful.

David Heinemeier Hansson

DHH rings the bell and announces that Rails 3.0 (final) has been released after two years of determined effort by the Rails core team (and, significantly, Merb team members, since Rails 3.0 is heavily influenced by the Merb merger). Grab it now with gem install rails --version 3.0.0 or, if you're in no rush, Rails 3.0.1 might come along within a week or two.

The Videos

DHH gives a quick roundup of some of Rails 3's new features but like Emma Watson's head PhotoShopped onto yet another naked body, it's nothing you haven't seen before. If you're really fresh to Rails 3.0, though, Gregg does an admirable job of boiling everything down into a digestible format with his (free!) Dive Into Rails 3.0 screencast series:

Ryan Bates has also produced a fistful of his typically succinct but precise RailsCasts videos on a wide array of Rails 3.0 topics. Ryan always focuses on code and practicalities so these are a good place to start if you want to follow along and do some coding yourself:

If you don't like videos, still follow the links, because there are links to the ASCIIcasts regular HTML versions of the Railscasts videos. These are regular blog posts that you can follow at your own pace.

Or some books

Michael Hartl's Rails Tutorial book is the #1 (and only, in my opinion) place to start when it comes to books about learning Rails 3.0. Not only is it available to read for free online, but you can buy a well formatted PDF too. It's an amazing piece of work and, unusually, walks you through building a Rails app from start to finish with testing. If you want to just read one book/site and feel like a Rails 3.0 master by the end of it, pick RailsTutorial.org.

If you speak German, though, check out this "Ruby on Rails 3" book by Michael Voigt and Stefan Tennigkeit. It's one of the first Rails 3.0 specific books to hit the presses.

Or just dive into some code

If you want to just "get started" and check out a working Rails 3.0 application, try Daniel Kehoe's Rails3-Subdomain-Devise app. It's a basic Rails 3.0 app that demonstrates using the Devise authentication system, as well as custom subdomain access. Not just that, but Daniel has put together a walkthrough of how the app works and how it was put together.

August 30, 2010 12:53 AM



August 29, 2010

Pan Seared Scallops with Apple, Avocado, & Banana “Salsa”

Posted by johngl

I first “discovered” scallops about half a lifetime ago whilst working on a project near Bangor, Maine. Those first scallops were huge, about the size of a petite cut of filet mignon, and I’ve never seen any quite that large since.

Over the course of time, I tried cooking them a multitude of ways with varying degrees of success. More recently, I learned how to cook them perfectly every time.  For this bit of instruction, I thank Tre Wilcox. About two years ago, he was generous enough to share his scallop wizardry with a few mere mortals during a cooking class.

Pan Seared Scallops with Cherry Reduction and Fruit Salsa
Pan Seared Scallops Atop Fresh Cherry Reduction with Mixed Fruit Salsa

So, what’s the key to searing off perfect scallops?

The secret is two-fold:  First, the scallop must be dry. Secondly, the pan must be smoking hot.

There is also a thing about starting with the right scallops, too.  Treatment of raw scallops with sodium tripolyphosphate (STP — doesn’t that just sound yummy?) is pervasive. It is a preservative that has a side effect of plumping up a scallop with moisture.  Joy. There’s more on STP here.

Find some scallops that aren’t treated with STP and you’re off to a great start. I buy mine frozen, from Costco, and I haven’t been disappointed yet. And they sell for about $10/lb.

Thawing on a rack

I arranged these scallops on a cooling rack with some paper towels underneath to catch moisture. They take longer to thaw than one would think, but you still want them cold (not room temp) when you cook them. To test them, just give them a gentle squeeze.  If it feels like there may be a hard (frozen, not cancerous) lump in the center, give them a while longer.

Now, let us turn our attention to some fresh cherries.

Cherries!

Rinse the cherries, de-stem the cherries, then pit the cherries using…well…a cherry pitter. When you pit them, arrange them so that the stem-side is down.  The plunger then pushes the pit right out of the cherry without doing a whole lot of damage. Be careful.  Cherry juice does that whole staining thing pretty well.  This is not the time to be wearing white.

Cherries in the Magic Bullet

I put the cleaned, pitted fruit into my Magic Bullet.

A few ten-second pulses later and I had a nice, relatively smooth cherry puree. Given my penchant for not liking skins in my sauces, I pushed this puree through a fine mesh strainer using the back of a tablespoon.

I then dumped the strained juice into a saucepan and added no more than a teaspoon of agave nectar.

Cherry Puree Reduction

To balance the flavor a little, I added the juice of one fresh key lime, then I reduced the volume by about half. Turning off the heat, I let it sit there until it was time to begin plating.

I had some other work left to do before I got to the scallops.

avocado, apple, banana, and key lime

I juiced a couple more key limes and mixed that juice with about a teaspoon of agave nectar.  This is the foundation for the “salsa.”  I put the quotes there because salsas generally have some tomatoes in them and this doesn’t. I did make sure to add some pequin powder though, just for that certain zing it provides.

I diced up the apple…

diced apple

then immediately tossed the cubes into a bowl and coated them with the key lime juice mixture.  The citric acid in the limes keeps the apples from oxidizing (or “turning brown” depending upon your level of familiarity with cooking vocabulary).

I cut about a third off of that banana and cubed it up as well.

cubed 'nana

Bananas also oxidize quickly, so I popped them into the apple, lime juice mix and tossed gently with a large spoon. If you are wondering why I put in so little banana, I’ll tell you my reasoning. Banana can overpower other flavors pretty easily. I wanted the tartness of the apple to pop so I eased off on the banana a bit so it just provided some back-notes.

I also used half of an avocado in this particular salsa.

avocado

I love the reach, creamy, fattiness that avocado brings to the party. It too, oxidizes rapidly, so ever so gently, I cubed it and added it to the banana and apple cubes, tossing it again to get everything well coated with lime juice.

fruit salsa

Notice those little red specks?  That is the pequin powder. It doesn’t take much.

I hit this with a tiny pinch of salt, mixed it up again, pressed some plastic wrap onto the surface of the fruit (again, to prevent oxidation), then popped it into the fridge.

Now, we can finally turn our attention back to the scallops.

ready to cook

I carefully dried these with a paper towel then sprinkled a little salt on the top side only.

I got the pan RFH (really f-ing hot) and added enough safflower oil to just cover the bottom of the pan.

Then, I carefully added the scallops, salted side up (the heat causes moisture inside the scallop to perk upwards which dissolves the salt and allows it to sink into the scallop — that’s my story and I’m sticking with it).

With a pan in the 500 degree range, it takes about a minute to caramelize a scallop.

pan-seared scallops

Once you flip ‘em, turn off the heat. The residual heat of the pan will finish these out quite nicely.

To plate, I put a swoosh of cherry down, then set the scallops in place.  I spooned up some salsa and dropped a few quartered cherries on top for added color.  I also fanned three thin slices of avocado.

ready to eat

The most glorious spousal unit volunteered herself to wander into the wine cellar. This is one thing I never really have to ask her to do.  She’s like a kid in a candy store in there.

Lo and behold, she came forth with a 2005 Tattinger Domaine Carneros bubbly.

Rockin' bottle o'bubbly!

OM(F)G. This was a spectacular pairing with the scallops and assorted fruit. Scallop dipped in cherry followed by a little of the fruit salsa and a sip of this sparkler and my tastebuds were doing a happy dance. Time and time again I repeated this, until, alas, the scallops were gone. I finished with one last sip and savored this elegant blend of  Chardonnay and Pinot Noir grapes, allowing the creamy flavors to drift over my tongue.

At a price point of less than $25, this stuff is, in a word, great.  Wine Spectator thinks so too, giving it 92 points:

“Beautifully focused and refined, with Gala apple and raspberry aromas and flavors that are crisp yet layered, with creamy lemon and lime notes and a finish that lingers with mineral and a hint of yeast.”

So, thanks again to the most glorious spousal unit for her wine picking prowess. And special thanks to Chef Tre Wilcox for showing me the way.

August 29, 2010 10:59 PM

rp8

Vista on Dell Laptop won't boot again!! arghh??!!!!

After some windows update, I could not boot the POS dell laptop again. After a few attempts to fix MBR and Boot with bootrec, I chose to reinstall the enire system again as the DVD from Dell won’t allow me to just install the main partition with Vista.

What a waste of time and peice of shit dell laptop and vista!!!

August 29, 2010 03:40 PM

Privacy mode

One of the features of Procyon Games is the Recent Games listing. Every Premiere Line game like En Garde and Can't Stop shows a list of recent games on its web page. This is a great feature for new players, who often don't know anyone else who plays the game, and lets them find other players. It's also good for people like club owners, who use the games as a source of traffic. It can direct people straight to their land.

But some people don't want their location advertised and have asked for a privacy mode. So now I've added that. There is a new Customer section on the Procyon web site, which can be accessed if you own a Premier Line game. In that section you can enable Privacy Mode, which will hide your games from the Recent Games list. This hides games played on your set. Any game played on any game you own won't appear in the Recent Games. But if you play a game on someone else's set, that will show up (as long as they aren't set private too).

August 29, 2010 11:02 AM

The diagnosis important steps

First, the doctor should get the patient’s illness history information:

When the patient’s mind is clear, the doctor should talk with the patient and inquiry the patient to get answer about his/her feeling of the illness include symptom and sign, from these information to get the beginning diagnosis or impression.

 

Second, the doctor should check the patient’s body to get physical examination:

read more


August 29, 2010 06:12 AM

Cats & Mirrors!

Recently I noticed Scratch messing around in the bathroom sink where weirdly hes been spending a lot of time lately but I just put it down to him wanting a drink of water and thought nothing more of it until the time where I walked in on him admiring himself in the mirror

Every time he catches a glimpse of himself in the mirror he just stands there staring at himself and then attempts put his paw out to reach this “other” cat and then he looks behind the mirror to see whats going on!

I managed to get some pictures thanks to split second timing but you may notice that the focus varies on some of the pictures to being on Scratch and then onto the mirror image  – Its really hard to focus in a split second!

I am guessing by the whole “I’m going to try poke this other cat and then look behind the mirror” approach means he doesn’t recognise himself but either way that doesn’t seem to stop him admiring himself in the mirror!

Special kitty?

Share / Save

August 29, 2010 03:25 AM

Model M keyboard restoration project

On Monday, I stopped at Twin City Surplus to look around, simply because I was in the neighborhood. I'm not going to Burning Man this year, so nothing really stood out. I went out into the back yard, which contains scrap metal, ammo cans, netting, etc. In a corner of the yard is covered but exposed set of shelves with some old computer and telecom equipment. Now, I'm a computer and telecom geek, but in all the times I've been to Twin City Surplus, there's never been anything worth buying, and most of it just sits there year after year. I'm talking half-broken 1950s key telephone systems, CRT monitors, etc.

But this time, I noticed something. A pile of keyboards, maybe 15 or so. Most were junk, but out of them, I found 3 IBM Model M keyboards, completely caked in dust. I walked out with all 3 for $9 (and a pair of completely black and itchy hands). I then set about restoring them back to their original glory.

As of today, all three are in "usable" states, but I still have a lot of work to do. I've got an order in with Clicky Keyboards for two replacement keycaps and a nut driver required to open the chassis of them to clean better.

Below is a repost of the photos I've posted to Flickr this week. The full set is available here.

Find of the year

Find of the year

3 Model M 1391401 keyboards, found in the outside yard at Twin Cities Surplus in Reno, NV. I picked them up for $3 each. 2 are white logo (1988 and 1989), one is a 1993 blue logo. All have detachable PS2 cables, one is a 10-foot, two are 5-foots. I was able to find all but two of the keycaps. Conditions look good, but they're covered in a ton of dust, so we'll see once I get them cleaned up.

Score!

Making progress

Making progress

EVERYTHING was covered in a horrible dark dust that makes the skin itchy. (Asbestos? Fiberglass?) I gave everything a good brushing outside, brought them in, and began work on the 1993 blue logo model.

I took the keycaps off and washed them in a medium mixing bowl with soap and hot water, then left them to soak for awhile. The chassis got a scrubbing with soapy water, and canned air to the insides. The cables were left in a large mixing bowl with soap and hot water, with everything submerged but the ends (I checked for cuts first). I rinsed the soap out of the keycaps, then laid them out on a towel to try. Once everything was dry, I re-assembled.

The biggest sticking point (pun intended) was the larger keys, which do not use 2-piece keycaps. They would get stuck at the bottom when pressed. I thought about lubricants, but eventually settled on pounding the hell out of them, which mostly worked. Currently the only large key that sticks most of the time is the numeric +. All of the regular keys work fine.

I plugged it into a computer and tested each key. Success! All of the cords work too.

This one is usable, but is still far from clean. I may need to go over each one again and completely disassemble the chassis to actually get them clean.

Oh, and it turns out I'm missing two caps, numeric 4, and `. Maybe this weekend I'll go back to the yard and take a second look, then look online for replacements.

Before and after

Before and after

Below is the half-restored 1993 blue logo. Above is the 1989 white logo that has only been dusted off.

In progress (1989 white logo)

In progress (1989 white logo)

This is one of the two remaining white logo keyboards, and the one with the best typing feel in my opinion. Unfortunately, it's also the dirtiest. The blue logo keyboard was in remarkably good shape after I gave the keycaps and chassis a good scrubbing; there was very little grime in the well. This one has a lot of grime, and I'll need a tool to disassemble the chassis, and a bottle brush to clean the well.

Here the keycaps have been washed and are soaking in clean water to remove soap residue before drying.

Keycaps drying (1989 white logo)

Keycaps drying (1989 white logo)

The keycaps must dry completely before they can be put back onto the keyboard.

Lotus 1-2-3 reference table (1988 white logo)

Lotus 1-2-3 reference table (1988 white logo)

Both of the white logo keyboards had Lotus 1-2-3 reference table stickers for the function keys. Sadly, they had to be removed to clean the keyboards.

Unicomp 2-piece keycap

Unicomp 2-piece keycap

While restoring my Model Ms, I decided to take a better look at my 2005 Unicomp Customizer 104. I had always assumed that Unicomp, having bought the design from Lexmark, used the one-piece stem+cap design. Nope, it's a classic 2-piece. However, the cap clings to the stem pretty tightly, and can't be removed by hand. Trying to pry one off with a knife will likely take both the cap and the stem out (doesn't damage it, of course). Both the caps and the stems are interchangeable with the 1391401 Model Ms.

(The discoloration and distortion are the result of my cameraphone in a low light environment. The color and the build quailty of the Unicomps are the same as the original Model Ms. I've had my Unicomp for 5 years now, with no signs of discoloration.)

Four Model Ms, 17 years

Four Model Ms, 17 years

From front to back:
- 1988-03-22 IBM Model M 1391401 J2, white logo, S/N 1335975
- 1989-11-13 IBM Model M 1391401 J1, white logo, S/N 4058648
- 1993-02-19 IBM Model M 1391401 L2-JH, blue logo, S/N 0791743
- 2005-04-25 Unicomp Customizer 104 UNI0P46, S/N 0125583

August 29, 2010 12:52 AM

EuRuKo 2010: Summaries, Videos, and Photos from Europe’s Ruby Conference

EuRuKo is the brand of Europe's principal Ruby conference series and EuRuKo 2010 took place in late May. Why, then, am I posting about it in August? First, I'm a strong supporter of EuRuKo and promised to post a roundup of the event here. Secondly, it turns out it took a while for the videos to all be uploaded ;-) Third, I've taken my time in getting round to it. Nonetheless, there are some amazing presentations you can watch and they're still fewer than three months out of date!

One of the event's organizers, Ela Madej, gives a summary:

European Ruby Conference 2010 is now well over and the Berlin EuRuKo 2011 team are surely working on their opening song for the next year. Yes, we all know they sing well - their uber-strong German vocal was nothing but adorable.

Despite the flooding and changing the conference venue just one week before the event, EuRuKo was great! It was filled with fantastic talks and Rubyists from all over the planet. Here are some numbers: around 121 Poles (less than half of all 280 attendees), at least 40 Germans, Rubyists from Japan, Austria, Spain, UK, Switzerland, Uruguay, USA, Cuba, Slovakia, Czech Republic, Slovenia, Croatia, Estonia, The Netherlands, Latvia, Italy, France, Belgium, Brasil and more.

For everyone who missed the event, the videos from the conference are on Vimeo. There is also a great summary of the talks for Day One and
Day Two. Here are the links to EuRuKo official photos on Flickr for Day One and Day Two also.

Ela Madej

While there are 37 videos on offer, some standouts include:

EuRuKo is supported by not only by Rubyists paying to attend but by quite a few sponsors, with 2010's event no exception. The organizers asked me to specially thank their biggest sponsor Novelys - a team of French Ruby on Rails experts. On top of that, EuRuKo's afterparty sponsors were Applicake and Lunar Logic Polska, two Ruby development teams from Poland. Finally, 16 micro sponsors helped out too.

I've been a keen supporter of EuRuKo since the first event so a big thanks to all of the sponsors and attendees for supporting Ruby's principal Ruby conference. Now, go enjoy those videos.

August 29, 2010 12:51 AM



August 28, 2010

Five Guys Burgers vs. Mighty Fine Burgers

Posted by johngl

Going out and having a burger is a national pastime. According to Eric Schlosser, in his book Fast Food Nation, Americans eat 13 billion burgers a year. Based on a US population of about 307 million (US Census Bureau, July 2009), that is about 42 burgers per year for each and every one of us. Luckily, I probably eat about half of that unless I am burgering my way to Labor Day (as I was doing about this time last year). At least those were home made.

BFD. Get on with it man!

Five Guys Burgers and Fries Mighty Fine

And so it came to pass that within a two week period, I had the same type of burger at two highly rated burger joints.  In the left corner, weighing in at 650 stores across the country and originating in Virginia, Five Guys.  In the right corner, weighing in at a mighty three stores and originating in Texas, Mighty Fine.

The burger I chose to compare was a cheeseburger.  Not just your run-of-the-mill cheeseburger though.  These were loaded up with lettuce, tomatoes, bacon, and jalapenos. Of course, each burger came with the requisite fries.

Badly stacked, but still looking good Neatly stacked and looking mighty edible

Can you guess which is which?

Both of these are right out of the wrapper as they came to me. I didn’t do any adjusting or fiddling.  Note the left one where the cheese isn’t all melted and the meat isn’t on the center of the bun. You can barely see it, but note also the raw jalapeno under the burger in the left one. Give the photos a click so you can see a larger, more detailed shot of these babies. The left one also appears to have more bacon, but I think that is because it is all curled up and crinkly. Luckily, that doesn’t affect the taste.

After readjusting the left burger and removing the onion (which I didn’t request), I was ready to take a bite. The left burger was completely cooked through, had a decent crust to the meat, and the bacon was nice and crispy.  Those raw jalapenos were just a little off-putting though and a touch bitter. All in all though, the burger wasn’t bad.

Now, for the burger on the right. (Yeah, the pretty one that looked like it was put together by someone who cared about how it is supposed to look.) The cheddar “real American cheese” was perfectly melty, the jalapenos were soft, tangy, and not at all bitter, the bacon, apparently cooked using a bacon press, was wonderfully crispy, and the burger itself had a great crust on the outside and was wonderfully juicy on the inside. It was very tasty!

cooked medium well

Notice that it is cooked to medium-well and not well done. That may put a lot of folks off, but not me.  It might if were a different burger joint, but not this one.

Give up?

So, the burger on the right is from Mighty Fine and it was mighty fine.  Yes, the Five Guys can go form a team and play basketball (or whatever else five guys do together)  because their burger just doesn’t stack up against Mighty Fine.

If you think the Mighty Fine burger is more expensive, you’d be wrong. Price-wise, these meals were a wash.

Here are some other facts:

Mighty Fine grinds their meat (chuck)  at their stores fresh every day and you can stand there and actually watch them hand-forming the burgers.

hand forming the burgers

The Five Guys website says:

By cooking all of our burgers juicy and well done we are able to achieve two goals: 1) Ensure a consistent product and 2) Meet or exceed health code standards for ground beef.

They also say: “…our beef is neither organic nor are the cattle free range, our distributor purchases raw materials from the major meat suppliers in the US and they treat the cattle humanely and follow all the procedures set forth by the USDA.”

Mighty Fine says:
Mighty Fine Meat Facts
Click to enlarge.

That ain’t all.  Look at these fries:

Fantastic fresh cut crinkle fries at Mighty Fine

Cut from fresh Idaho potatoes daily, these babies are fried in peanut oil and come out with a nice crunchy exterior and a fluffy interior.

Compare them to the these from Five Guys.  Granted, Five Guys gives you a lot of fries (and I grabbed a handful and put them in a peanut container — more on peanuts in a minute) and they too use peanut oil for frying, but comparatively, these were just limp and fat laden.

Behind the burger are the limp, greasy fries

What good does it do to give you a lot of something if its crap?

Beyond the burgers and fries, Mighty Fine offers:

Home Made Lemonade from, ummm, lemons (made fresh every two hours)

Fresh Lemonade!

Boxes of potatoes that you can actually see:

Potatoes by the crate

Their own line of pepper:

Their own line of pepper

A jacuzzi for your hands:

A jacuzzi for your hands

An interesting view from inside the rest rooms (well, okay, the men’s anyway)

From inside the men's room
Yes, that is really from inside the potty. It’s a two way mirror.

And perhaps the most important thing of all:

Dyson Rules!

Mr. Dyson should be awarded a throne in Heaven just for coming up with this thing. The Airblade literally scares the water off your hands.

And what does Five Guys have that Mighty Fine does not?

Peanuts

This is apparently the Five Guys answer to the boxes of potatoes stacked up at Mighty Fine.  The Guys have 50lb bags of peanuts stacked up right behind the doorway (apparently to make double damn sure that those folks with peanut allergies see them!)

Open the door and you're greeted by large bags of nuts!

Perhaps you might think that I am (loudly) proclaiming: Five Guys Suffers Major Suckage.

Well, I’m not.  As I said, their burger was alright. However, since I have a choice, and both stores are about equidistant from my house, and I get better quality food for the cost, my money is going to the local folks who don’t cut any corners.  They tell you that too.

Quality is everything

If I am going to be eating one (or twenty) of 13 billion burgers this year, it (or they) may as well be Mighty Fine.

August 28, 2010 11:43 PM

Rasha claims the new zabuton


Rasha claims the new zabuton, originally uploaded by mendel.

I've had my new zafu and zabuton for about four hours now and Rasha's already decided it is his. This is what happens when you adopt a temple cat!

August 28, 2010 10:03 PM

Lindex Statistics are back online

It's taken me two months, but I've finally got the Lindex Statistics back online. What happened? Linden Lab doesn't publish the Sell Offer volume numbers, at least not in an easy-to-download format like they do for some of the other economic statistics. The only way to get it is to scrape it off the website. A couple months ago they changed the way their website login works, and it took me a while to figure out how to deal with it. But it seems to be working now, so the graphs should all be up to date.

In the meantime, the Lindex dollar managed to stabilize itself. The sell orders that had piled up between the old value of 259 and the new 266 gradually filled, as people repositioned them at the new level. The total volume of orders shrank from an unsustainable 200M to a more manageable 100M. And that's where we are today.

It's still worth watching the total volume. If it starts to creep up again, that's a sign that we're in for more trouble.

I do have another post half-written, on some theories on what's driving the Linden dollar up and down, that I hope to get out at some point.

August 28, 2010 09:57 PM

Review: Sharpie Liquid Pencil

Since man’s first forays into the written word, his dreams and aspirations have centered around improving the weakest link in the compositional process: the interface between nebulous mind and printed matter.

Sharpie Liquid Pencil

Certainly, the advent of the printing press and the widespread acceptance of the word processor revolutionized writing as we know it, but the actual implements of drafting have changed comparatively little. We still scribble with pens and pencils and type on keyboards that would be familiar to many typists alive during the civil war.

Perhaps this is because great writers, like great carpenters or engineers, never blame their tools for their own inadequacies. Investing in the right tool for the right job is one of the most important investments you can make, but is a mechanical pencil the best we can do?

Most of my writing output is digital nowadays, so my “analog” writing needs center around tactical writing situations. I still prefer a mechanical pencil and paper for mathematics work, note-taking, and jotting down reminders. Even though I carry a netbook most days, pencil and paper affords me maximum freedom to arrange and annotate notes just so, with drawings and diagrams requiring no additional effort.

This works out pretty well, but I have a few issues with mechanical pencils: broken leads, incessant clicking to dispense more lead, and a tendency to make noise due to the leads rolling around inside the chamber. Also, my favorite mechanical pencil, a Pentel 0.5 mm, has a relatively slender profile and causes a little more fatigue than I’d like, especially compared to the Pilot G-2 fine point I enjoy. Even though I have no reason to ditch my beloved Pentels, I owe it to myself to see what’s out there.

Enter the Sharpie Liquid Pencil. This curious device writes like a pen, but its output is equivalent to #2 pencil lead and is erasable as such. While Pentech’s Liquaphite has been on the market for some time now, the Sharpie’s major advantage is price: about $2 each, versus about $50 each for the Pentech.

The Physics

Liquid pencils in their natural habitatI ordered a two-pack of Sharpie Liquid Pencils from Amazon.com, for about $6 with tax. After a brief backorder, the devices arrived. The two-pack comes with a set of six bonus erasers, which are loosely floating around inside the blister pack (I had to do a brief search and rescue operation after opening the package).

It is a bog-standard retail package of the sort you’ve all seen before, so I immediately popped it open and weighed it using the hoopycat.com scales of science. The liquid pencil weighed in at 12 grams, compared to 11 grams for my recently-reloaded Pentel and 10 grams for my Pilot G-2. I would consider this reasonable, within the expected error range of the scale.

As far as handfeel and geometry go, the Sharpie is almost indistinguishable from the Pilot G-2. It feels solid, has good balance, and has the padded grip right where I like it. The grip lacks the texture of the Pilot, but this is not a dealbreaker for me.

Curiously, the Sharpie rattles when shaken. This is due to the clicker retraction mechanism, which involves the entire top quarter of the barrel. Unfortunately, there’s too much mass there and too many places for plastic-on-plastic contact, so its operation is not completely silent. A smaller “button,” such as on the G-2, would have likely improved the situation.

The Output

Comparison writing testAlas, my tests revealed that the Sharpie Liquid Pencil’s writing quality is more like that of a cheap ballpoint pen than a quality mechanical pencil. I tested on a variety of surfaces, including a sticky note, some copy paper, the backs of the packing slip and shipping envelope, a sheet of newsprint, and the writing pads I use for note-taking. Overall, I found the marks to be spotty and irregular, as if the flow rate through the ball were inconsistent depending on angle and velocity.

This is a curse that befalls a number of pens, but is certainly an unwelcome introduction to the pencil. I think this, above all, will be the dealbreaker for notes and homework. While the liquid pencil’s quality improved with greater downforce and velocity, this is not acceptable for lectures due to the resulting fatigue.

A high-resolution scan of the writing pad test is available in the photo gallery, along with a number of other images.

Hiding the Evidence

Erasing testThe ability to erase is one of the key features of a pencil, and in this category, the Sharpie is no slouch. The built-in eraser erased the text from a post-it note perfectly, but my standard Staedtler Mars plastic eraser left a little bit behind. In the image on the right, the third row was erased with the Staedtler, and the fourth was with the built-in eraser.

One downside to the built-in eraser: it goes fast. I had a noticeable bevel on it from just erasing two words, and I’m not entirely sure it would survive my typical sentence.

After 24 hours at room temperature, marks were essentially un-erasable by either eraser. They just get a bit lighter without fully disappearing.

Unsuccessful Smear Campaign

My more sinister colleagues often worry about their clumsy left hands smearing ink from particularly juicy specimens. While it is harder than you’d think to write left-handed (I hear only 10% of people can do it), I did try writing backwards to no avail. I eventually gave up, wrote a chunk of text, and then dragged the edge of my hand across it.

Skin-on-paper drag test

I sure wasn’t expecting that to happen.

Rather than smearing, the writing disappeared with about as much effectiveness as my Mars eraser! It appeared as a black grit on the edge of my hand, which wouldn’t wipe off (or erase off), but did come off nicely with soap and water. Mind you, I was dragging my hand pretty hard and pretty much trying to get a reaction out of it. If you’re left-handed and writing normally, it probably won’t be a problem.

Overall

Well, they gave it a good shot. I like the idea in theory, but the execution could use some work. The cheap-sounding rattle when shaken, the inconsistent liquid graphite flow, and the poor erasability with the Mars plastic eraser limit it to occasional use at this time. I look forward to future development in this field, but I’m not putting away my Pentel just yet.

August 28, 2010 06:20 PM



August 27, 2010

Checkfront 1.5 Update

Many thanks to all our customers for their continued feedback and support. As a result, Checkfront is pleased to announce our 2010 August (v1.5) service enhancements including the following new features:

  • Hourly inventory booking and payment management.
  • PDF invoices for improved print formatting and archiving.
  • Discount codes for campaign tracking.
  • Updated field editor to customize your booking page.
  • Tiered pricing for multiple price points (eg Adult / Child pricing).
  • New rule updates and rate setup.
  • Improved Paypal Standard payment flow that includes your customized booking fields.
  • New dashboard layout with better sorting of Bookings.
  • Plenty of interface updates and improved in-line documentation.

Checkfront is constantly innovating its services to help our customers succeed. Here are some of the near future features on the Development Road Map:

  • International module - allows for localization into any language
  • New Payment processors including Quickbooks™, and Versapay™.
  • Additional integrations into Google Apps™.
  • Have a feature request? Be sure and share it in our request forum.

We appreciate and value your business. Look for the Checkfront community newsletter later in September and send us your "Why we like Checkfront?" stories and testimonials if you'd like to be featured.

News

Price increase September 1st (new accounts only)

To help support our growing product requirements and infrastructure, our subscriptions will be going up by 10% on September 1st. This does not apply to existing customers. If you’d like to lock into the existing price and have yet to upgrade, please do so before Sept 1st!

We're hiring!

Checkfront is always expanding its team and is constantly recruiting. Join a team with a passion for quality, customer satisfaction and personal growth. Checkfront offers a dynamic distributed culture with many unique, innovative people in many countries.

Current openings:

  • Sales/ Support
  • Developer
  • Book keeper, office administration

For more information on opportunities with Checkfront see our careers section.

August 27, 2010 06:46 PM

Loud


And it's the final speechless comic from @JimDoran. Thanks! Next week begins the second half of Smash Another Plate!

Don't forget, I'll be at Baltimore Comic-Con this week, and I've got a special deal I'm doing there. Go here for more details.

August 27, 2010 01:00 PM

Chat script for Exetel 3G

While trying to work out what was up with Wii error 32022, I was seeing if using our Exetel 3G dongle (rather than DSL) would let us update. This means that I got reasonable working PPP chatscripts for Exetel 3G.

/etc/ppp/peers/exetel-3g:

/dev/ttyUSB0
ipparam exetel1
230400
noauth
defaultroute
connect "/usr/sbin/chat -v -f /etc/chatscripts/exetel-3g"

/etc/chatscripts/exetel-3g:

ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'ERROR'
"" AT
OK AT&F
OK ATD*99***1#
CONNECT ""

These are an unholy combination of ideas from Ubuntu Living and etbe, since I am about 5 years too young to have had to learn the Hayes command set as a requirement to get on the 'net. (Well, a year too young perhaps, Andrew knows it.)

Setting up network address translation is left as an exercise for the reader.

August 27, 2010 09:28 AM


Wii update error 32022

There are reports of errors in the Wii's latest firmware update (4.2 to 4.3) around: that the Shop channel will tell the user that they need to do a System Update, and then the update will stall at about three-quarters done, and error 32022 will be reported.

32022 is supposed to be the error for not being able to reach the Nintendo servers, and the usual solution is to wait an hour or so for either their servers to come back up, or your connection to become stable. But in June/July a lot of people started reporting complete inability to upgrade due to this error. It hit us last night.

There are all kinds of arcane solutions to this around (check out AUDISIOJUNIOR's solution for arcane) but reports are that Nintendo tells people it's your ISP's fault. As best Andrew and I can tell Nintendo is right, it is your ISP's fault, at least in a way, although they aren't being very specific. There is a problem with the update (or perhaps with the update if it failed the first time) when you are using a transparent HTTP proxy. Most likely this is something your ISP set up.

Since getting your ISP to turn a transparent proxy off for you is usually something of a pain, you will probably find it fastest (although still very annoying) to connect your Wii to the 'net using a different provider.

August 27, 2010 09:17 AM

Roll On eBay!

Only 8 days to go until I’m 18 and I’m more excited about getting eBay then actually being 18!

I have had plenty of time to think these past months about selling my DJ kit and I thought it was a great idea to start with but every time I plan to get rid of it I always end up plugging it in to make sure it still works and them I’m gobsmacked by the power of the speakers and the flashing lights on the mixer and then I end up deciding its a waste to get rid of it then keep it!

When I actually got the idea of being a DJ I didn’t actually want to end up being a mobile DJ it just happened because there was no one there to guide me on what to buy and what not to and in the end it was just too much effort for so little in return especially as the disability meant I couldn’t lift the giant over sized box (but mind you other people struggled to lift it too!) and also there’s just too many wanna-be DJ’s out there like me who set out to try and be another success story  but end up giving in and cutting there losses before every depreciates and becomes worth next-to-nothing and plus it was a great hobby at the time but things like college and driving took over

I have already sold some lights for £20 (with a loss of £60) and am going to attempt to sell my flight case (empty of course) on eBay to start with then dive in at the deep end and list the 8 light sequencer, CD decks and light stands and see what I can get back from them but I have decided to keep the speakers, speaker stands, amp, cables and mixer just so I can have a kick ass sound system for my TV and Xbox and maybe if anyone has a house party I can put them to good use!

The idea of entertaining people for hours on end making them happy seemed a great idea and it motivated me through most of this experience but in reality it was never going to work due to many reasons such as lack of confidence, expense and getting nothing in return apart from spending the evening with drunken people but I just kept on buying the kit being in denial and ignoring my head and well here we are today with DJ kit that never gets used anymore – It was never going to work and we both knew it!

Share / Save

August 27, 2010 07:30 AM

Links August 2010

Urban Honking has an insightful article about the Arduino and suggests that it is one of the most important factors for the development of the computer industry in the near future [1]. It compares the Arduino to the Altair.

Wired has an interesting article about a company that provides a satellite kit and a launch into low Earth orbit for $8000 [2]. Arduino in space?

Linux Journal has an interesting article by David Rowe about the “Mesh Potato” which is a Wifi mesh router that also runs VOIP [3]. One particularly interesting aspect of this article is the explanation of the way they designed and tested it.

Susan Shaw gave an informative TED talk about the toxic effects of the attempts to clean up the oil spill in the Gulf of Mexico [4]. It seems that trying to disperse the oil just makes it worse, and the chemical companies are refusing to disclose the chemicals that are being used.

The New York Times has an interesting article by David Leonhardt about the value of pre-school teachers [5]. Some research on the difference that good teachers can make in economic terms suggests that the make an economic difference to the children to the value of $320,000 per annum (IE a class of 16 children who were taught for a year would on average each receive a benefit of $20,000 over their lifetime). Also there are social benefits which aren’t counted by that study. While I can’t imagine pre-school teachers getting paid $320,000 any time soon, it does seem obvious that good teachers deserve significantly better pay. Of course one problem is how to determine which teachers are good, better test results are not a reliable indication.

Paul Krugman describes America as being “on the unlit, unpaved road to nowhere” due to the policies of saving money by cutting funding for schools, street-lights, and roads [6].

The Chive has an amusing post about how to quit a bad job [7]. It would be good if someone really did this, I’m sure that there are enough creative people who don’t like their job.

Hell Pizza in New Zealand published a zombie themed choose your own adventure on Youtube [8]. Unfortunately the options to choose the next segment don’t work on HTML5 with Chromium so if you don’t have flash you miss out.

AskThePilot.com has an informative essay about airline security written by a commercial pilot [9]. The anecdote about the pilot not being allowed to take the type of knife that is issued to first and business class passengers is rather amusing.

FredOnEverything.net has an interesting analysis of Wikileaks and why the Pentagon and Fox News hate it [10]. Fred is a very skillful writer, while he’s not the first person to say some of these things he may have said it best.

The Wikipedia page on Borosilicate glass (which is best known under the trademark Pyrex) is really interesting [11]. Borsilicate glass was formerly known as “Duran” and it’s main characteristic that makes it suitable for lab use is resistance to Thermal Shock, but it’s also harder and has a higher melting point. Apparently you can get Pyrex drinking glasses, I want some!

Eben Moglen gave an interesting talk “Freedom in the Cloud” about the development of free servers to manage personal data and replace Facebook etc (among many other things) [12]. The Debian Wiki has an articla about designing such a system [13].

The APNIC published an interesting paper on IPv4 background radiation [14]. Apparently some /24′s receive so much random traffic (from broken applications and viruses) that they can’t be delegated. IPv6 will solve this problem by making it infeasible to scan all IP addresses. Also it’s interesting to note the excessive amounts of traffic to 1.0.168.192 which is from applications too broken to correctly send data to 192.168.0.1 which have been installed by sysadmins who are too incompetent to watch what is being sent out of their network.

August 27, 2010 02:06 AM

In-floor fan?

I want to put a fan in my floor to blow air from upstairs to downstairs. Are there parts made to simplify this process?

August 27, 2010 01:46 AM

catbikes

Speaking of BikeBike, how awesome is this:



CATBIKES. I totally want a catbike tattoo now. (Also an octopus tattoo, but that's going to be biggish so I don't want it to be my first one.) But I feel kind of silly having not gone to the conference. Then again, I want it because catbikes are awesome and not as a conference memento. I could probably even find out who drew them and make sure it's cool with them.

August 27, 2010 12:28 AM



August 26, 2010

P2PU Sign-up Opens Today - Cycle 3

P2PU Logo

We just opened signups for the third cycle of courses at P2PU which are starting in September. This is our third, and largest cycle yet. We had 6 courses in the first, 16 in the second, and 23 so far for the third cycle. I'm organizing a course called "Web 200: The Anatomy of a Request" as part of the School of Webcraft. Here's the story from the P2PU blog:

The Peer 2 Peer University announced its third round of free and open online courses today, opening sign-ups for a growing list of courses dealing in su bject areas ranging from Collaborative Lesson Planning to Manifestations of Human Trafficking.

P2PU is also excited to announce the launch of the P2PU School of Webcraft, run in conjunction with the Mozilla Foundation. The School of Webcraft is a powerful new way to learn open, standards based web development in a collaborative environment. School of Webcraft courses include Beginning Python Webservices and HTML5.

All classes are globally accessible, free, and powered entirely by learners, mentors and contributors with the goal of creating a vibrant, peer-led system that helps people around the world easy access to build careers on open web technology.

The P2PU community is growing and excited to have these new courses and their organizers on board.

Since the last round of courses, a few changes have taken place at P2PU, most noticeably on the P2PU site which has seen a major overhaul, and is simpler and easier to use than ever before. However, the nature of the P2PU community remains the same, and all community generated content is open and shareable under CC BY-SA.

The P2PU community consists of a diverse group of people. They are writers, teachers, designers, doctoral and alternative grad students, artists, copyright specialists, scientists, and blues guitar players. Above all, they are learners–peers working together to learn from each other.

Sign-ups for all courses are available at http://p2pu.org/course/list. Deadlines for sign-ups are 8th September 2010. The courses will run until October 27th. Each course application may require additional information.

 

August 26, 2010 06:22 PM

Fire Piston - primitive fire starting method I didn't know about

You can make enough heat to make fire by rapidly compressing air.

"Fire pistons have been used in South East Asia and the Pacific Islands as a means of kindling fire since prehistory."

http://en.wikipedia.org/wiki/Fire_piston
http://www.youtube.com/watch?v=Win_t0xtcQs

I find this particularly exciting because it appears to be by far the easiest way to make fire that doesn't include anything difficult to obtain.

No ferrocerium or flint. And easier to use than a bow drill.


Thanks to [info]perspicuity for mentioning it.

August 26, 2010 06:21 PM

iPhone Mail App Crashing

While the iPhone Mail App in iOS 4 has some really nice improvements there has definitely been a regression in stability. Recently I had an issue on my 3GS where the Mail App would constantly crash...


August 26, 2010 06:01 PM

Video Tutorial: Building Your First Virtual Appliance

August 26, 2010 02:03 AM



August 25, 2010

I.T. Suggestion Box

Once in a while we have a little fun at the office. Here’s our latest, the new and improved I.T. Suggestion Box, digital in all forms including the well placed “Easy” button provided by Staples.

August 25, 2010 10:04 PM

Ruby Weekly: A Ruby E-mail Newsletter from Ruby Inside

It's time to unveil my latest project: Ruby Weekly, a once-weekly e-mail roundup of 10-20 Ruby related links with a few sentences on each. It's had a brief alpha testing period and it's now ready to roll.

Click here to subscribe to Ruby Weekly - it's a one click process. It's also ultra simple to unsubscribe if it's not eventually to your taste.

As well as featuring links and (very) brief summaries, the weekly e-mail will also occasionally include new event, book, and job announcements and, if something significant is going on in Rubyland, a few paragraphs of editorial. The aim, though, is to keep the e-mail reasonably brief, in a plain format, and, above all, useful.

There's been a renaissance in e-mail newsletters in the last year or two and it seemed, to me, to be a great way to get programming related news. E-mail is not to everyone's taste (Ruby Inside will be staying as-is!) but if you want to avoid daily distraction and get a summary just once a week, it's an alternative to reloading Twitter or Google Reader every day. The popularity of the Ruby5 podcast proves there's an appetite for Ruby news in different media (and if you prefer audio, check them out).

Ruby Weekly goes out once a week on Thursdays, so if you subscribe within the next 16 hours or so, you'll get this Thursday's edition (issue #4).

August 25, 2010 07:51 PM

Acupuncture calms stress and improves immunity in the elderly

The majority of us find acupuncture to be a relaxing and useful treatment modality.  The relaxing aspect is something which comes as somewhat of a surprise for new patients.  Many expect this painful experience that they only put up with because nothing else has worked.  Instead they find themselves extremely relaxed, possibly even asleep, during the treatment.  People are also surprised that acupuncture treats far more than pain and creates various internal, measurable, changes in blood chemistry, hormones, etc.

read more


August 25, 2010 02:33 PM

Cheese


Today's word came from @crossbonesdj. Thanks! New comic this Friday.

Don't forget, I'll be at Baltimore Comic-Con this week, and I've got a special deal I'm doing there. Go here for more details.

August 25, 2010 01:00 PM

A Netbook for Aircraft Navigation

There is apparently some MS-Windows software for navigating light aircraft in Australia. It takes input from a GPS device and knows the rules for certain types of common tasks (such as which direction to use when approaching an airport). My first question when I heard of this was “so if the Windows laptop crashes does your plane crash?“. But I’ve been assured that paper maps will always be available.

The requirement is for a touch-screen device because a regular laptop in the open position won’t leave enough room for the control stick. So the question is, what is the best touch-screen Windows laptop? It must be relatively rugged spinning media for storage is unacceptable due to the risk of damage in turbulence, it should be relatively cheap (less than $1000), and can apparently have a somewhat low resolution for the screen.

The pilot who asked me for advice on this matter is currently thinking of the ASUS Eee T91 which runs Windows XP home, has 16G of solid-state storage and a 1024*600 screen. I am concerned about the reliability of that system as the rotatable screen design seems inherently weak.

The Smartbook concept sounds appealing, I don’t expect that you would want to wait for a typical OS to boot while flying a plane. But those devices mostly use ARM CPUs and thus can’t run MS-Windows. One particularly interesting device is the Always Innovating Touchbook [1] which has a detachable keyboard – which would be handy for non-airline use. Unfortunately it seems that Always Innovating aren’t doing production at the moment, they say “The current Touch Book production is in stand-by and will resume in the summer when we will release our newest and craziest innovation” – well summer is almost over in the northern hemisphere so I guess that means there won’t be anything from them for another 9 months.

A device such as an iPad would also be a good option for looking at static documents. The pilot is considering using a MS-Windows PC to generate images and then viewing them on such a device. But he’s not really enthusiastic about it.

Are there any good and cheap touch-screen devices that run MS-Windows? Are there any particularly noteworthy PDF reader devices which would be better than an iPad for viewing maps while flying a plane? Is it possible to run a MS-Windows application that uses a GPS under Wine on a Netbook?

August 25, 2010 10:57 AM

You're Not Your Job

“You're not your job. You're not how much money you have in the bank. You're not the car you drive. You're not the contents of your wallet. You're not your fucking khakis.” -Tyler Durden

This is especially true online. Your online persona can reflect many things about you and if you're not careful, it can tell a whole different story than what you are expecting. There are different ways to handle your online persona. You can purposefully have no online persona, choosing not to share anything and blocking out everyone – in other words, you are being a nobody and letting others define you. You can go about your business online without a care about what you post or share – defining yourself without thinking about how others, like recruiters or employers, see you. You can carefully cultivate and manage your online persona and build something. 

What you put on the internet stays on the internet forever, people are starting to finally understand this. And hopefully people are more careful when they put online. Do you wish you could put up your internal dialogue? We don't. It would probably be and endless boring rant about how you're hungry, how you need to go to the bathroom, how you think you're bored. Do you really need to post those pictures of yourself smashed at the party last night? Not really a good idea and probably worse if your Facebook profile is open to the public. Think first, post later. 

But, it is not about just what you post, but also where you maybe posting it. MySpace user? What are we? Still in the 90s? Facebook and Twitter user? You're hip and with the in-crowd – or at least giving it your best shot. @aol.com or @hotmail.com mail accounts? You are probably over 40. @gmail.com mail account? You're young. Mail at your own domain? Geek. Aims to get 1,000,000 Twitter followers? Attention whore. Just keep in mind that where you go online is almost as important as what you do online.

Ever Google yourself? I have (and do from time to time). The first result tells me that I am a hair stylist in New York. The second result? That's actually me, my Linkedin profile. Then there is the 21 year old on MySpace. Then there is some guy from Hong Kong. Oh, lets not forget the Steve Kong in Singapore who is apparently a good kisser. There's three ways I solved this issue: First, I add my nickname Mookie to everything. I am the one and only Steve Mookie Kong online. If you search for either Steve Mookie Kong or Mookie Kong, you'll get me and only me. Second, I use the more esoteric “ultramookie” username for most of my personal stuff and you can find me that way. And lastly, I have created (like my buddy JR Conlin) a simple vanity page that directs people to the real places that represent me: mookiesplace.com. Why let a search engine do it when I can control it myself? 

So, who are you?

August 25, 2010 08:04 AM

Custom WordPress AddThis with clickback and Google Analytics


You may be asking yourself, “Why did he bother to go through the trouble of manually adding this code when there is a ready-made WordPress plugin for AddThis?” Simple: I didn’t have control over all of the AddThis features, chiefly the choice of icons and the clickback and Google Analytics features. Aslo, visually I did not like where the plugin was placing itself in relation to my posts – above the meta information squished up under end of a post – yikes! Even my blog’s comment system, Intense Debate, has an AddThis implementation built in, however for the reasons I’ve mentioned already it was not good enough.

If you are familiar with AddThis, chances are you know there are a couple of pre-built social-bookmarklets to choose from when building an AddThis button. But did you know there are even more you can use?!?! Check out this link where you can find demonstrations on the other AddThis styles.

addthis_buttons_32x32

With help from the AddThis forums, and some good ‘ole fashioned sweat and tears, I’ve modified my theme to use AddThis with the 32×32 icons, clickback tracking, and integration with my Google Analytics account. Clickback tracking enables you to see statistics on the number of users who have clicked a link to something on your website some other user posted somewhere on the web. *At this time, as far as I know, AddThis only works with the synchronous Google Analytics tracking code…when I find a technique to use the asynchronous tracking code I will update this post.

I’ve modified my theme such that the icons will appear after a post’s meta information, but before the comments. To use the 32×32 icons the following code is needed:

1
2
3
4
5
6
7
<div class="addthis_toolbox addthis_32x32_style addthis_default_style">
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_email"></a>
<a class="addthis_button_google"></a>
<a class="addthis_button_compact"></a>
</div>

I immediately noticed that the links created by the compact button included the clickback snippet as part of the URL, while the four other icons did not. Reading through the AddThis Client API on Configuration Inheritance, I found that I could specify the URL AddThis posts. With a little PHP magic, I built the correct URLs for those buttons using the WordPress function get_permalink()…

1
<?php echo get_permalink() . '?sms_ss=<SERVICE>'; ?>

…and then added the addthis:url parameter to the button snippet utilizing the URL I just created:

1
2
3
4
5
6
7
<div class="addthis_toolbox addthis_32x32_style addthis_default_style">
<a class="addthis_button_facebook" addthis:url="<?php echo get_permalink() . '?sms_ss=<facebook>'; ?>"></a>
<a class="addthis_button_twitter" addthis:url="<?php echo get_permalink() . '?sms_ss=<twitter>'; ?>"></a>
<a class="addthis_button_email" addthis:url="<?php echo get_permalink() . '?sms_ss=<email>'; ?>"></a>
<a class="addthis_button_google" addthis:url="<?php echo get_permalink() . '?sms_ss=<google>'; ?>"></a>
<a class="addthis_button_compact"></a>
</div>

Finally, I added some javascript right before the closing </body> tag to initialize the AddThis functionality, and added the clickback and Google Analytics hooks:

1
2
3
4
5
<script type="text/javascript">
var addthis_config = {
data_ga_tracker: pageTracker,
data_track_clickback: true
}</script>

This same procedure can be used to customize your AddThis social-bookmarklet, as well as many of the other options such as displaying different services, modifying the link text, customizing emails messages, etc…all of which can be found here. You can also use these procedures outside of WordPress too…realize, however, that the get_permalink() function will only work in WordPress. That’s it, enjoy your new custom AddThis social-bookmarklet!

August 25, 2010 04:46 AM

Weekly Ads, Sunday Ads & Circulars: The Ultimate List

Everyone loves to hunt for a bargain, but you can’t always find them online. Many of the stores that we carry online coupons for also run weekly ads & sales in-store (as well as on their website). We’ve compiled a master list of the all the Weekly Sales Ads & Circulars we could find into an easy to digest interface, as always drop a note in the comments if you think we’re missing something!

Last updated: 25th August

Still to do:

  1. Add Store Logos

Baby & Toys

Babies ‘R’ Us

Toys ‘R’ Us

Cosmetics & Fragrances

Drugstore.com

Sally Beauty Supply

Ulta

Sephora

Crafts

A.C. Moore

Hancock Fabrics

Hobby Lobby

Jo-Ann

Michaels

Oriental Trading

Department Stores & Clothing Stores

AJWright

Bealls

Bed Bath & Beyond

BigLots

Bon-Ton

Boscov’s

Burlington Coat Factory

Carson Pirie Scott

Dillard’s

Duckwall ALCO

Elder-Beerman

Family Dollar Stores

Five Below

Fred Meyer

Goody’s

Kroger

JC Penney

KMart

Kohl’s

Macy’s

Nordstrom

Old Navy

Saks Fifth Avenue

Sears

ShopKo

Stein Mart

Target

Younkers

Walmart

DIY / Hardware & Home Improvement

Ace Hardware

Home Depot

Lowe’s

Electronics Retailers

Best Buy

Buy.com

CompUSA

J&R

Micro Center

Office Depot

OfficeMax

Gamestop

Radioshack

Ritz Camera

Staples

Wolf Camera

Grocery

A&P

Albertsons

ALDI

Bi-Lo

BJ’s

CVS/Pharmacy

GNC

Harris Teeter

Food Lion

Jewel-Osco

Pathmark

Publix

Riteaid

Safeway

Save-A-Lot

Shop&Stop

Shoprite

Stater Bros

Sweetbay

TrueValue

Walgreens

Wholefoods

Winn Dixie

Pets

Petco

Pet Smart

Sports & Hunting Retailers

Bass Pro Shops

Big 5 Sporting Goods

Cabela’s

Dick’s Sporting Goods

Dunham Sports

Gander Mountain

Sports Authority

August 25, 2010 04:44 AM

Moving Email To Google Apps

SpamAssassin wasn’t cutting it. Huge surge of Russian-language spam, as well as English spam was killing my productivity, especially as I’m moving to focus more on email and less on social networking. I considered many options but decided to use Google Apps for a few reasons:

1. Because of Google’s MX records on my domain, as far as I know, spam never touches my server–increasing the performance of my website. I was using Postfix to bounce everything to a SpamAssassin-filtered account at Media Temple–now with Google Apps I can disable Postfix and save my server some work.

2. Besides G-Y-M (Google Yahoo MSN) nobody else (besides maybe the US government?) has realtime access to the volume to spam needed to run a proper spam-filtering operation. I have no research available here but my own observations and what I read in various articles–sounds like spammers have increased their efforts and the volume of spam is increasing exponentially. In the past maybe certain innovative features would get my attention first–but now the killer app is really high-quality spam filtering.

3. I think Google Apps is more user-friendly than when I last tried it. The instructions and menu options are intuitive. My only complaint is they don’t have enough options for creating users for specific domains. For example, I need to create three different Google Apps accounts for three domains because some of the users/domains are not aliases. So lots more passwords than necessary, in my opinion. In other words, it would be nice if I could assign specific users to specific domains, and have the option to not “alias” some users but split one name on two domains into multiple POP accounts–example: to keep personal email apart from work email while keeping the same username. If you’re a Google engineer and want a more specific example, let me know. I have the Standard account–maybe this is a feature of the Premier account?

The transition gets complicated. First create the MX records, then update DNS with the registrar, then verify ownership of the domain w/ Google Apps, verify the MX records are changed, create the users (Can I do this before the domain is verified–or will emails bounce if the users are not created yet?) then activate SSL via Google Apps, then call all the clients and get Thunderbird, Outlook, etc. using the new POP server settings, then wait a day or two and go back and check the old accounts via webmail to see if anything was lost in the transition. OK more than complicated–almost a nightmare. Last time I made a similar switch I had to actually get in my car and drive around and help people configure their laptops–for example one guy had an email port set that wasn’t working w/ the new POP server–additionally you have Outlook calendars using email to communicate, etc.

August 25, 2010 01:24 AM



August 24, 2010

Killer Queen

Queen cover band Killer Queen played in The Opera House, Cork a few months back and I snapped a few photos!

Related Posts

August 24, 2010 08:27 PM

WIP: the Super Cache admin page

A small update, I’m slowly working through the WP Super Cache admin page in an effort to make it better. You can in fact download the development version if you want to follow along.

What you see above is my first pass. An effort to make the first options section match the look and feel of the standard Settings pages in WordPress. It’s all likely to be mixed around and moved about before the next release, so please, dig in and lend a hand!

Related Posts

August 24, 2010 05:20 PM

Railway Museum


Monticello Illinois Railway Museum

August 24, 2010 04:37 PM

CIA LSD experiment?: The hallucination incident in Pont-Saint-Esprit

August 24, 2010 11:41 AM

10 Essential Tools for Blogging Productivity

Blogging can be a frustrating activity, there’s a number of steps that you need to go through to get that perfect post from your creative mind onto your blog. It could be something as simple as coming up with the initial idea, to making uploading all the photos attached to post or ensuring that the formatting of the post is spot on before you hit the publish button.

Posterous

Gone are the days of logging into WordPress. Posterous makes it ridiculously simple to blog, or infact add any type of media you want to your post. Simply send an email to post@posterous.com & you’re all set to go. The beauty of Posterous is that it recognizes media within your email & automatically formats it in the post.

Posterous Images

You can either take a Posterous subdomain (i.e. yourname.posterous.com) or use your own domain, they’ll also give you 1GB of storage for images/photos & other media.

ScribeFire

One of the drawbacks of using something like Posterous is that you really need to be starting your blog from scratch on it. It’s difficult to port over from another software or platform & bring the SEO benefit with you.

ScribeFire

Many of us (just like the blog here) are using WordPress as our blogging platform. WordPress inherently has a number of flaws, the biggest of which is that you need to log in to create your post. ScribeFire almost turns your browser into Posterous (minus the pretty stuff they do with Images/Videos).

Simply install the extension/plugin then add the credentials of your blog. You will now be able to write posts from within your browser without having to log into WordPress. This is insanely useful when you start manging more than 1 blog (just select the blog you want to publish to from the dropdown).

Note: There’s one slight drawback with ScribeFire in Chrome in that Chrome doesn’t support image uploads. However we’ve got a solution for that below.

Rapportive

As a Blogger one of your core activities will be connecting with people, that could be people within your blogging network or your readers. If you use GMail then Rapportive gives a beautiful social insight into the recipients social networks.

Rapportive

TextExpander

TextExpander is every Bloggers dream tool, it allows you to trigger elements of text that you might use frequently in just a few keystrokes. Use it to stop yourself from making frequent typo’s, use multiple email signatures, fill out forms or add boilerplate content into posts/documents…thx brb.

Evernote

Evernote is your notebook in the cloud, a great tool for Bloggers who like to keep all their sources of inspiration all in a single place. One of my favorite features is that it recognizes text within images.

We ran a feature on 13 Creative Uses for Evernote which goes into much more detail on potential uses.

Expandrive

Uploading images to use in posts is perhaps one of the major annoyances I have with blogging, it’s clunky & difficult. There’s a few ways around this the first being the lovely Expandrive, it simply turns your remote server into another folder on your local machine, allowing you to drag & drop images like you normally would between drives.

Dropbox

Dropbox does a similar thing except your images are stored on their servers (not your own). Dropbox is superb for keeping a rolling backup of all your documents & using it to sync everything across multiple machines. Imagine you’re working on a blog post with over 100 images then you need to go on the road, by keeping those images in your Dropbox you’ll have them synced to your portable machine & you can finish off the post whilst you’re away from home (using ScribeFire of course!).

If you’re interested in some of the other crazy uses out there for Dropbox check out our Dropbox Hacks.

Flickr – Creative Commons Photos

You may be struggling to find decent photos to use in your posts that are royalty free (i.e. you can use without paying for). By going into the Advanced Search section in Flickr you can search by Creative Commons Photos, you’re free to use these in your posts. Just make sure you pay attention to the attribution requirements, you might have to link back to the original photo or cite the source.

Photo Credit: Robee

Picnik

Picnik is a rather savvy online photo editor that can pull your images from Flickr, Facebook or other sources. Perfect for those that don’t like to leave the browser or don’t have Photoshop installed.

Picnik Cropping Posterous

Feedly

Inspiration is what keeps Bloggers motivated & since we probably read other blogs (rather than the news) it’s important to settle on an RSS Reader that you love. In this case for me it’s Feedly. It allows you to take all the feeds that you love & organize them into an Magazine like interface. Makes the important news of the day easy to digest.

Feedly

August 24, 2010 04:58 AM

ReactiveXaml Series: QueuedAsyncMRUCache – the async version of MemoizingMRUCache

A thread-safe, asynchronous MemoizingMRUCache

As we saw in a previous entry, MemoizingMRUCache is great for certain scenarios where we want to cache results of expensive calculations, but one disadvantage is that it is fundamentally a single-threaded data structure: accessing it from multiple threads, or trying to cache the results of several in-flight web requests at the same time would result in corruption. QueuedAsyncMRUCache solves all of these issues, as well as gives us a new method called AsyncGet, which returns an IObservable. This IObservable will fire exactly once, when the async command returns.

What places would I actually want to use this class? Here’s a motivating example: you’re writing a Twitter client, and you need to fetch the profile icon for each message – a naive foreach loop would be really slow, and even if you happened to write it in an asynchronous fashion, you would still end up fetching the same image potentially many times!

Using IObservable as a Future

One of the things that an IObservable encapsulates is the idea of a Future, described simply as the future result of an asynchronous operation. The pattern is implemented via an IObservable that only produces one element then completes. Using IObservable as a Future provides a few handy things:

  • IObservables let us block on the result if we want, via Observable.First().
  • IObservables have built-in error handling via OnError, so we can also handle the case where something goes pear-shaped.
  • We can easily group several IObservables together via Observable.Merge and wait for any (or all) of them.

A difficult problem – preventing concurrent identical requests

Furthermore, QueuedAsyncMRUCache solves a tricky problem as well: let’s revisit the previous example. As we walk the list of messages, we will asynchronously issue WebRequests. Imagine a message list where every message is from the same user:

For the first item, we’ll issue the WebRequest since the cache is empty. Then, we’ll go to the 2nd item – since the first request probably hasn’t completed, we’ll issue the same request again. If you had 50 messages and the main thread was fast enough, you could end up with 50 WebRequests for the same file!

What should happen? When the 2nd call to AsyncGet occurs, we need to check the cache, but we also need to check the list of outstanding requests. Really, for every possible input, you can think of it being in one of three states: either in-cache, in-flight, or brand new. QueuedAsyncMRUCache ensures (through a lot of code!) that all three cases are handled correctly, in a thread-safe manner.

August 24, 2010 04:43 AM


Home | Members | Contact Us | Terms of Service | ™ © 2003-2008 Linode, LLC. All rights reserved.