showing only google [see all]
RX-7 / RX-8 Rotary Engine Rotor Keychain by ROBK636
When most of think us of internal combustion engines, we think of pistons exploding in a beautiful dance, with a crankshaft turning linear motion into circular motion. It’s a sight to see, and we can even print out such an example, courtesy of sirmakesalot.

However, there are other engines out there, and none perhaps more interesting than the Wankel engine. ROBK636 has created the engine rotor (as a fun keychain!) of this unorthodox design. Known perhaps most famously for being the engine of choice for the Mazda RX-7 and RX-8 sports cars, the Wankel engine has a place in hearts of many a gearhead. We thank ROBK636 for bringing this keychain to Thingiverse, and I hope this is just the start. How long before I can print out an entire assembly?

RX-7 / RX-8 Rotary Engine Rotor Keychain by ROBK636

Basic model of the engine rotor. en.wikipedia.org/wiki/Wankel_engine

This thing brought to you by
Thingalert  Thingiverse  Things_We_Like  ROBK636  sirmakesalot  from google
november 2011
Biljettkontrollanter kände inte till Resplustillägg
Jag får ofta mail från andra resenärer och en del är både intressanta och allmängiltiga och som publicerar efter överenskommelse på avsändaren.

Ett fick jag igår och gäller en resenär med SJ Årskort guld med Resplustillägg som åkte med lokalbussarna i Örebro.

Han blev kontrollerad av tre unga damer men dom kände inte till Resplustillägget och godkände inte årskortet som biljett.

Dom ombads kontakta sin arbetsledare vilket dom gjorde men även denna kände inte till Årskort med Resplustilägg.

Till slut löste det sig tack vara busschauffören kände till Resplustillägget.

Men det är minst sagt anmärkningsvärt att ingen av de tre kontrollanterna som just har sin uppgift att kontrollera biljetterna visste vilka biljetter som gäller. Att sedan deras arbetsledare inte heller känner till det är helt enkelt inte acceptabelt.

Allra minst att det är bara att googla fram svaret om man i webbläsaren skriver in ”årskort sj länstrafik giltighet” och då får man upp följande klockrena resultat:


Detta är nog det minsta man kan begära av en arbetsledare för biljettkontrollanterna på länstrafiken i Örebro.
resplus  sj  årskort  kollektivtrafik  from google
november 2011
Arduino controlled four socket outlet
Never get between a man and his sala­mi. [Mike] need­ed a way to con­trol tem­per­a­ture, humid­i­ty and air­flow with his meat cur­ing setup. Of course he could mod­i­fy a refrig­er­a­tor and humid­i­fi­er to be con­trolled sep­a­rate­ly, but [Mike] decid­ed the best course of action would be to con­trol line volt­age with an Arduino.[Mike] start­ed his build with a four sock­et wall hous­ing he picked up at Home Depot for a few dol­lars. After wiring up each out­let so it can be con­trolled inde­pen­dent­ly, he set out design­ing a four port relay board. This was a pret­ty sim­ple build – four 10 Amp relays and a few ter­mi­nal blocks. The PCB was designed in Eagle as a single-side board for ease of man­u­fac­tur­ing.The relay board is meant to fit inside the blue box along with the four sock­ets, so a few holes were drilled for the power and con­trol wires. The entire assem­blage was put togeth­er and test­ed out. [Mike] post­ed a video of his con­trol­lable out­let flash­ing a light bulb at 10 Hz. Check out that light switch rave after the break.Filed under: arduino hacks
from google
october 2011
Cordon multi-target photo-radar system leaves no car untagged (video)
Go easy on the gas, Speed Racer, because Cordon is on its way. Developed by Simicon, this new speed sensor promises to take highway surveillance to new heights of precision. Unlike most photo radar systems, which track only one violator at a time, Simicon's device can simultaneously identify and follow up to 32 vehicles across four lanes. Whenever a car enters its range, the Cordon will automatically generate two images: one from wide-angle view and one closeup shot of the vehicle's license plate. It's also capable of instantly measuring a car's speed and mapping its position, and can easily be synced with other databases via WiFi, 3G or WiMAX. Plus, this device is compact and durable enough to be mounted upon a tripod or atop a road sign, making it even harder for drivers to spot. Fortunately, though, you still have time to change your dragster ways, as distributor Peak Gain Systems won't be bringing the Cordon to North America until the first quarter of 2012. Cruise past the break to see some footage of a field trial that's currently underway -- cars tagged with a green dot are traveling below the speed limit, those with a yellow marking are chugging along within an acceptable range above the limit, while vehicles with a red tab are just asking for trouble.Continue reading Cordon multi-target photo-radar system leaves no car untagged (video)
Cordon multi-target photo-radar system leaves no car untagged (video) originally appeared on Engadget on Mon, 31 Oct 2011 09:37:00 EDT. Please see our terms for use of feeds.
Permalink   |  Peak Gain Systems  | Email this | Comments
camera  car  cars  cordon  gps  image  law  license_plate  license_plate_recognition  LicensePlate  LicensePlateRecognition  photo  photo_radar  PhotoRadar  police  radar  road  roadway  simicon  speed  speeding  tracking  vehicle  video  from google
october 2011
"it becomes beautiful later..."
Mona Simpson's eulogy for her brother is beautiful and moving; it's almost incidental that her brother was Steve Jobs. The last few paragraphs are just...

His philosophy of aesthetics reminds me of a quote that went something like this: "Fashion is what seems beautiful now but looks ugly later; art can be ugly at first but it becomes beautiful later."
Steve always aspired to make beautiful later.

(via @kissane)
Tags: Mona Simpson   Steve Jobs
from google
october 2011
My dad taught me cashflow with a soda machine
After a brief, failed exper­i­ment pay­ing me to do chores, my dad tried some­thing real­ly neat. It clear­ly took a bit of leg­work, but maybe there are some trans­ferrable lessons for par­ents who want to lay an entre­pre­neur­ial foun­da­tion.He gave me a vend­ing machine.He rent­ed the machine, found a loca­tion in a local work­shop, and installed it. And then he told me two things.That this would be the last time I was given allowance.• And that if I wanted to have any pocketmoney next week, I’d better spend this week’s on some inventory.I ran the machine for about 4 years from the time I was 7 or 8. At first, my only agency was inven­to­ry man­age­ment. We drove to Cost­co in his big van and I decid­ed what to buy. Stock­ing an empty soda machine is easy: you buy four cases …
from google
october 2011
Some responses to the magazine counterarguments
I’ve got­ten hun­dreds of Twit­ter and email mes­sages about my post on iPad-magazine ads. I thought I was being clear that this was sim­ply how I felt, but that post has irri­tat­ed a lot of mag­a­zine and news­pa­per peo­ple who seem to be mis­in­ter­pret­ing my argu­ment. So I’ll restate it, in brief:I feel ripped off when I pay for an iPad or web pub­li­ca­tion and it still con­tains ads.It’s not even an argu­ment, real­ly. It’s a feel­ing. From a cus­tomer. I’ve also got­ten a lot of emails and tweets in agree­ment, so this might rep­re­sent the feel­ings of a non­triv­ial amount of poten­tial cus­tomers.Ads as contentFor many mag­a­zine gen­res, such as fash­ion or lifestyle, the ads are a desir­able part of the con­tent. I’m not talk­ing about those here: I’m talk­ing about mag­a­zines in which the most desir­able con­tent is the non-ad text. (“I read it for the articles.”)“The problem isn’t ads, it’s intrusive ads”No, the prob­lem is ads. Ads sig­ni­fy to me that the money I paid isn’t enough to give me the prod­uct I thought I paid for. That’s what I called “double-dipping”: I paid with the expec­ta­tion that I was pay­ing for the entire prod­uct, and then I was unex­pect­ed­ly sold out, which offends me.(Again, this is my opinion.)This is the same rea­son I find “Rate this app!” dialogs in paid apps dis­taste­ful. I paid for the app, and then it intrudes into my usage to solic­it an adver­tise­ment from me to attract more buy­ers.The tangible productWhen I pay for a print­ed mag­a­zine issue — which only ever hap­pens if I’m fly­ing some­where and pick up The Econ­o­mist for taxi, take­off, and land­ing — I don’t feel ripped off that there are ads in it.Maybe it’s because the cover price feels like it’s pay­ing for the phys­i­cal prod­uct, and the ads feel like they’re pay­ing for the con­tent. But I don’t feel that dis­tinc­tion when buy­ing a dig­i­tal issue: that just feels like I’m pay­ing for the con­tent, since there’s no phys­i­cal arti­fact. Again, I’m talk­ing about …
from google
october 2011
Tiny robot rides tiny bike. World rejoices.
The great­est minds in the world have been hard at work in a deep under­ground lab to fig­ure out some of the worlds hard­est prob­lems. Can we make a tiny robot ride a tiny bike? Yes, now we can(google trans­lat­ed from japan­ese).Sit back and enjoy the show!story found via Adafruit.
from google
october 2011
Boys, Girls, and the HPV Vaccine
The head­line in the Times said, “Panel Endors­es HPV Vac­cine for Boys of 11.” I have one of those at home—a boy that age, not a panel or a vac­cine—and so my first reac­tion was: Sign us up! My sec­ond was annoy­ance that any­one would regard that as a con­tro­ver­sial deci­sion. The panel is the C.D.C.’s Advi­so­ry Com­mit­tee on Immu­niza­tion Prac­tices. HPV is a virus that caus­es sev­er­al kinds of can­cer; the vac­cine will save lives, maybe that of my son or some­one he cares about. It will not, as Michele Bach­mann claimed at a Repub­li­can debate, with a lack of respon­si­bil­i­ty that was stun­ning even for her, cause men­tal dis­abil­i­ties. What’s not to like?The HPV vac­cine’s trou­bles are the result of a bad mix­ture of vac­cine denial­ism—par­tic­u­lar­ly, the unfound­ed view that immu­niza­tion is linked to autism (see Michael Specter’s work for more on that) and of sex­u­al denial­ism. HPV is most fre­quent­ly spread by sex; the can­cers are in parts of the body like the cervix, vulva, anus, mouth, and throat; the vac­cine is most effec­tive before sex­u­al activ­i­ty begins, which means giv­ing it to chil­dren who may still be mor­ti­fied by the idea of even “lik­ing” some­one. Put these togeth­er and you have Bach­mann and oth­ers talk­ing about shock­ing things being done in the doc­tor’s office to “inno­cent lit­tle girls,” as if the inoc­u­la­tion would turn them into Fem­bots. (As Ryan Lizza wrote, Bach­mann’s rhetoric “may have left unin­formed lis­ten­ers won­der­ing if the vac­ci­na­tion involved some kind of sex­u­al procedure.”)But what about boys? The most com­mon can­cer asso­ci­at­ed with HPV is cer­vi­cal, which is why, until now, the C.D.C. only had a “rec­om­men­da­tion”—the word has insur­ance impli­ca­tions—for girls (while say­ing that it was fine for boys, too). The Times arti­cle, by Gar­diner Har­ris, says that “con­tro­ver­sy is like­ly to inten­si­fy with the com­mit­tee’s lat­est rec­om­men­da­tion since many of the can­cers in men result from homo­sex­u­al sex.” It is prob­a­bly sadly true that we are in for some awful rhetoric—includ­ing from peo­ple who talk about “cur­ing” homo­sex­u­al­i­ty—but it’s still dis­may­ing. Have we learned noth­ing from the AIDS epi­dem­ic? Or, for that mat­ter, from a cen­tu­ry of public-health vic­to­ries tied to vac­cines?Vac­ci­nat­ing boys keeps them from get­ting sick, and that may be the main way this is sold. But, as the C.D.C. panel noted, it “may also pro­vide indi­rect pro­tec­tion of women.” One would think that rais­ing boys to be men who pro­tect women (and other men), direct­ly or indi­rect­ly, would be a con­ser­v­a­tive pri­or­i­ty as well. The mad­den­ing thing about vac­cine oppo­nents is the way they rely on the immu­ni­ty of most of us, while facil­i­tat­ing new out­breaks of obso­lete dis­eases. (I’ve writ­ten before about how scared I was when I was preg­nant, and my doc­tor found that my rubel­la immu­ni­ty had faded, that I would run into chil­dren whose par­ents had let them run around with­out the M.M.R. vac­cine. Unlike the vac­cine that pre­vents it, pre­na­tal expo­sure to rubel­la, also known as Ger­man measles, real­ly can cause men­tal …
from google
october 2011
Apple buys insane 3D mapping company C3 Technologies
Apple may be about to end its reliance on Google for their map­ping func­tion­al­i­ties in iOS. Accord­ing to 9to5Mac Apple has just pur­chased C3 Tech­nolo­gies, a 3D map­ping com­pa­ny, in an attempt to bring their 3D maps based on declas­si­fied mis­sile tar­get­ing meth­ods, to their prod­ucts.C3 Tech­nolo­gies is the lead­ing provider of 3D map­ping solu­tions, offer­ing photo-realistic mod­els of the world for search, nav­i­ga­tion and geo­graph­ic infor­ma­tion sys­tems. Since 2007 when it was spun out of the aero­space and defense com­pa­ny Saab AB, venture-backed C3 has rede­fined map­ping by apply­ing pre­vi­ous­ly clas­si­fied image pro­cess­ing tech­nol­o­gy to the devel­op­ment of 3D maps as a plat­form for new social and com­mer­cial appli­ca­tions. The Sweden-based com­pa­ny’s auto­mat­ed soft­ware and advanced algo­rithms enable C3 to rapid­ly assem­ble extreme­ly pre­cise 3D mod­els, and seam­less­ly inte­grate them with tra­di­tion­al 2D maps, satel­lite images, street level pho­tog­ra­phy …
from google
october 2011
A FREE PHP StackOverflow Clone
Build an Expert GroupUsing Coordi­no you can uti­lize the com­mu­ni­ty in your indus­try by com­bin­ing their knowl­edge on your web­site. Over time your knowl­edge base can serve as a focal point for your niche or com­pa­ny.Your Data is SafeKeep your knowl­edge base secured on your sys­tem in your loca­tion. You have full con­trol of the secu­ri­ty of your users and your data.Updates and SupportCoordi­no is updat­ed on a reg­u­lar basis adding fea­tures and imple­ment­ing the requests of our cus­tomers on-demand. If you want to have a fea­ture imple­ment­ed con­tact us to begin the process.Save Valuable TimeWhy have your­self or any­one else rein­vent the wheel? By uti­liz­ing a ques­tion and answer based sys­tem you can reduce road­blocks by hav­ing the answers right at hand.
from google
october 2011
Apple Lossless Audio Codec
The Apple Loss­less Audio Codec (ALAC) is an audio codec devel­oped by Apple and sup­port­ed on iPhone, iPad, most iPods, Mac and iTunes. ALAC is a data com­pres­sion method which reduces the size of audio files with no loss of infor­ma­tion. A decod­ed ALAC stream is bit-for-bit iden­ti­cal to the orig­i­nal uncom­pressed audio file.The Apple Loss­less Audio Codec project con­tains the sources for the ALAC encoder and decoder. Also includ­ed is an exam­ple com­mand line util­i­ty, called alac­convert, to read and write audio data to/from Core Audio For­mat (CAF) and WAVE files. A descrip­tion of a 'magic cook­ie' for use with files based on the ISO base media file for­mat (e.g. MP4 and M4A) is includ­ed as well.The Apple Loss­less Audio Codec sources are avail­able under the Apache license. Details can be found here http://www.apache.org/licenses/LICENSE-2.0.
from google
october 2011
Foundation: Rapid Prototyping and Building Framework from ZURB
At ZURB we host all kinds of entre­pre­neurs, design­ers and prod­uct builders at short lunch pre­sos we call ZURB­soap­box. In order to bring Soap­box to a larg­er audi­ence, and keep our friends and atten­dees involved, we rapid­ly built out zurbsoapbox.com.Foun­da­tion allowed us to not only quick­ly pro­to­type but also iter­ate on it, mod­i­fy it for mobile, and launch it in record time. Check out some of the pieces we used from Foun­da­tion by view­ing the case study →Pret­ty meta, right? We built this site using Foun­da­tion and learned a few neat tricks along the way.You can view the case study to see some of the cool­er things going on behind the scenes, as well as grab the entire mar­ket­ing site and source by check­ing out the project on Github. View the Case Study →Reel is a lit­tle app we built …
from google
october 2011
Minimalist DIODER hack requires no external microcontroller
Hack­a­day read­er [chrysn] picked up a 3-but­ton RGB model DIODER light from IKEA and thought he might as well take it apart to see what he could do with it. Hav­ing seen sev­er­al DIODER hacks fea­tured here, he knew it was eas­i­ly hack­able, but he didn’t want to sim­ply rehash what other had already done.All of the DIODER hacks we have come across thus far incor­po­rate some sort of AVR chip or add-on board to expand its capa­bil­i­ties. [chrysn] saw that the con­troller already had a PIC16F684 inside, and thought that installing his own firmware onto the exist­ing hard­ware would be a far more sim­ple solu­tion. He installed a small pro­gram­ming cable onto the DIODER’s con­trol board, and using his PICk­it2 pro­gram­mer, flashed the chip with a cus­tom firmware image.His mod­i­fi­ca­tions worked great, and [chrysn] says that there is plen­ty poten­tial in the exist­ing hard­ware to have all sorts of fun with it. Even so, he notes that there are sev­er­al AVR-flavored drop-in replace­ments that can be used if that hap­pens to be your micro­con­troller fam­i­ly of choice.Filed under: led hacks
from google
october 2011
DIY thermostat keeps the harsh winter cold at bay
[Phil’s] par­ents grow their own organ­ic food, but the harsh Ukraine win­ters make stor­ing it a dif­fi­cult propo­si­tion. Since it can drop to -30°C on occa­sion, they asked him to find a way to keep their store­room at around 5-7°C above zero. He decid­ed to con­struct his own pro­gram­ma­ble ther­mo­stat to keep things in check, and has been doc­u­ment­ing the process as he goes along.The ther­mo­stat uses a DS18B20 tem­per­a­ture sen­sor to mon­i­tor the room, and the logic is han­dled by an ATtiny2313. When the tem­per­a­ture dips low enough, the ATtiny trig­gers the room’s heater via a stan­dard 240v relay. He can check the cur­rent tem­per­a­ture via a small 7-seg­ment dis­play mount­ed on the con­trol board, which also con­tains three microswitch­es for con­trol­ling the heater.It looks like a pret­ty solid build so far, and while he hasn’t fin­ished cod­ing the ther­mo­stat just yet, [Phil] says that those details are forth­com­ing. He has pub­lished a schemat­ic how­ev­er, so you can get a jump start on build­ing your own if you’re look­ing to warm things up this win­ter.Con­tin­ue read­ing to see a video overview of the ther­mo­stat’s design.Filed under: ATtiny hacks, home hacks
from google
october 2011
Android Orphans: Visualizing a Sad History of Support
The announce­ment that Nexus One users won’t be get­ting upgrad­ed to Android 4.0 Ice Cream Sand­wich led some to jus­ti­fi­ably ques­tion Google’s sup­port of their devices. I look at it a lit­tle dif­fer­ent­ly: Nexus One own­ers are lucky. I’ve been research­ing the his­to­ry of OS updates on Android phones and Nexus One users have fared much, much bet­ter than most Android buy­ers.I went back and found every Android phone shipped in the Unit­ed States1 up through the mid­dle of last year. I then tracked down every update that was released for each device - be it a major OS upgrade or a minor sup­port patch - as well as prices and release & dis­con­tin­u­a­tion dates. I com­pared these dates & ver­sions to the cur­rent­ly ship­ping ver­sion of Android at the time. The result­ing pic­ture isn’t pret­ty - well, not for …
from google
october 2011
Tru.ly releases its free age verification API
In case you didn’t notice, you are liv­ing two sep­a­rate lives. You are not just you in the flesh any longer. You’ve cre­at­ed an alter­na­tive, dig­i­tal per­sona- a per­sona that can be judged as a Face­book pro­file or a Twit­ter han­dle. In Feb­ru­ary of this year, Tru.ly, a Boston-based start­up presents launched an offi­cial­ly ver­i­fied iden­ti­fi­ca­tion plat­form for dig­i­tal per­sonas. Trans­la­tion: It’s your offi­cial ID for the Inter­net era.Tru.ly is the first and only free, peer-to-peer ser­vice that ver­i­fies iden­ti­ty against gov­ern­ment data. While there are other sites that charge a lot of money to access this data for var­i­ous use cases, they don’t inte­grate with other social media plat­forms like Tru.ly does cur­rent­ly with Face­book, Twit­ter and LinkedIn (for free). This week, Tru.ly released its age ver­i­fi­ca­tion API that authen­ti­cates the age of an online user based on gov­ern­ment issued data.Tru.ly’s API is based on the Face­book reg­is­tra­tion appli­ca­tion, which allows users and the part­ner sites to have a fric­tion­less expe­ri­ence when prov­ing their age. Sites with restrict­ed con­tent such as movies, alco­hol and video games can use Tru.ly’s light­weight API for free. Not only is it free, it’s eas­i­ly dis­trib­uted and instal­lable on your web­site in less than 20 min­utes.“Our API rep­re­sents the foun­da­tion for respon­si­ble age gat­ing, some­thing that has never been done well on the Inter­net”, notes David Gor­don, Tru.ly’s co-founder and CEO, “The days of sim­ply enter­ing any birth­day are over. Com­pa­nies have a respon­si­bil­i­ty to keep under­age users out of restrict­ed sites and with Tru.ly’s age ver­i­fi­ca­tion API, authen­ti­cat­ed age is now a guarantee.”Tru.ly says that exist­ing meth­ods of age ver­i­fi­ca­tion do not guar­an­tee hon­est infor­ma­tion, and under­age users can eas­i­ly mis­rep­re­sent them­selves online. Tru.ly devel­oped this API to quick­ly con­firm an age while pro­mot­ing the guide­lines set forth in the Chil­dren Online Pri­va­cy Pro­tec­tion Act (COPPA), specif­i­cal­ly sec­tion 1302-9, which defines ver­i­fi­able parental con­sent as any rea­son­able effort (tak­ing into con­sid­er­a­tion avail­able tech­nol­o­gy), so as to ensure that the par­ent is aware of the oper­a­tor’s per­son­al infor­ma­tion col­lec­tion, use, and dis­clo­sure prac­tices.“While behind …
from google
october 2011
This is a brief account of an inter­est­ing prac­ti­cal joke we per­pe­trat­ed recent­ly. A bet­ter treat­ment by anoth­er author will be forth­com­ing, as will a video. I will tell the story in lin­ear fash­ion as a straight his­to­ry, instead of striv­ing for dra­mat­ic effect.In the fall of 1989, Rob Pike met Penn Jil­lette, of the comedy/magic team of Penn and Teller. The intro­duc­tion and ini­tial con­ver­sa­tions were through e-mail, and the mutu­al acquain­tance who start­ed things off was Mike Haw­ley, now enmeshed at the Media Lab at MIT. After a series of elec­tron­ic let­ters, Rob attend­ed one of Penn's Fri­day movie nights, which was just as described by Calvin Trillin in his recent New York­er pro­file of P&T. (Meet in the Times Square HoJo's. Rob won­dered, `How will I know you?' and Penn said, `I have samu­rai hair and I'll …
from google
october 2011
Add search, sort and flexibility to plain HTML lists with cross-browser native JavaScript by @javve
• Search Search through all items.• Sort Sort lists by value that you choose.• Filter Write your own filter functions.
from google
october 2011
RubyMonk - Home
Les­son 0Intro­duc­tion to ArraysCom­plete Ruby Primer com­ing soon.RubyMonk is an interactive platform that helps you master RubyDis­cov­er Ruby, learn lessons and solve prob­lems, in your brows­er!Work your way through guid­ed lessons and try your hand at prob­lems as you move along the path to mas­tery.
from google
october 2011
Tangle: a JavaScript library for reactive documents
Tan­gle is a JavaScript library for cre­at­ing reac­tive doc­u­ments. Your read­ers can inter­ac­tive­ly explore pos­si­bil­i­ties, play with para­me­ters, and see the doc­u­ment update imme­di­ate­ly. Tan­gle is super-simple and easy to learn.This is a sim­ple reac­tive doc­u­ment.When you eat cook­ies, you con­sume calo­ries.This is the HTML for that exam­ple.When you eat <span data-var="cookies" class="TKAd­justableNum­ber"> cook­ies</span>,you con­sume <span data-var="calories"> calo­ries</span>.And this is the JavaScript.var tan­gle = new Tan­gle(doc­u­ment, { ini­tial­ize: func­tion () { this.cookies = 3; }, update: func­tion () { this.calories = this.cookies * 50; }});Write your doc­u­ment with HTML and CSS, as you nor­mal­ly would. Use spe­cial HTML attrib­ut­es to indi­cate vari­ables. Write a lit­tle JavaScript to spec­i­fy how your vari­ables are cal­cu­lat­ed. Tan­gle ties it all togeth­er.Try out some exam­ples.Below is a sim­pli­fied dig­i­tal adap­ta­tion of the ana­log state vari­able fil­ter.This topol­o­gy is par­tic­u­lar­ly use­ful for embed­ded audio pro­cess­ing, …
from google
october 2011
Signs that you are a bad programmer
1. Inability to reason about codeRea­son­ing about code means being able to fol­low the exe­cu­tion path ("run­ning the pro­gram in your head") while know­ing what the goal of the code is.SymptomsThe presence of "voodoo code", or code that has no effect on the goal of the program but is diligently maintained anyway (such as initializing variables that are never used, calling functions that are irrelevant to the goal, producing output that is not used, etc.)• Executing idempotent functions multiple times (eg: calling the save() function multiple times "just to be sure")• Fixing bugs by writing redundant code that overwrites the result of the faulty code• "YoYo code" that converts a value into a different representation, then converts it back to where it started (eg: converting a decimal into a string and then back into a decimal, or padding a string and then trimming …
from google
october 2011
What Ruby’s ||= (Double Pipe / Or Equals) Really Does
In Rubyists Already Use Monadic Patterns, Dave Fayram made a passing reference to using ||= to set a variable's value if its value were 'Nothing' (false or nil in Ruby). The resulting Reddit quickly picked up on his definition (which was fixed later) and argued about ||='s true meaning which isn't as obvious as many Rubyists think. This spread to Freenode's awesome #ruby-lang IRC channel where I picked it up.

Abstract (or the TLDR Version)
A common misconception is that a ||= b is equivalent to a = a || b, but it behaves like a || a = b

In a = a || b, a is set to something by the statement on every run, whereas with a || a = b, a is only set if a is logically false (i.e. if it's nil or false) because || is 'short circuiting'. That is, if the left hand side of the || comparison is true, there's no need to check the right hand side.

The Common Misconception
a ||= b being equivalent to a = a || b is a popular interpretation for two reasons:

If a and b are both local variables, a = a || b is a short and natural reflection of the outcome.
Other operators like += and -= do operate this way (and this standard dates back to C), e.g.: a += b is equivalent to a = a + b

Do not confuse [op]= with anything related to ||= or &&=. They're entirely different ideas and are implemented entirely different[ly].

Evan Phoenix (of Rubinius fame)

What's happening then, if not a = a || b?

A Starter for One
Here's a simple example of using a ||= b:

a = nil
b = 20
a ||= b
a # => 20

In this case, a ||= b seems to behave like a = a || b. As mentioned earlier, this is entirely due to a and b both being local variables.

Full Demonstration for Hashes and Arrays
Let's try something more complicated:

h = {}

def h.[]=(k, v)
puts "Setting hash key #{k} with #{v.inspect}"

# 1. The standard ||= approach
h[:x] ||= 10
h[:x] ||= 20

# 2. The a = a || b approach
h[:y] = h[:y] || 10
h[:y] = h[:y] || 20

# 3. The a || a = b approach
h[:z] || h[:z] = 10
h[:z] || h[:z] = 20

The output:

Setting hash key x with 10
Setting hash key y with 10
Setting hash key y with 10
Setting hash key z with 10
Note that in the first case, using ||=, the hash key's value is only set once. Once it becomes logically truthful (i.e. anything other than nil or false), h[:x] is no longer assigned any new values, not even itself.

The second case, using the a = a || b approach, does result in two assignments (of the same value). The value remains 10 but the syntax forces h[:y] to assign itself as a value again.

In the last case, the behavior is the same as in the first case, demonstrating that a || a = b is a more realistic notation.

Note: Exactly the same result occurs if we switch the hash for an array and the keys for integers.

Full Demonstration for Getter/Setter Methods
A similar outcome occurs if we're referring to objects with getter/setter methods (which you may call accessors):

class MyClass
attr_reader :val

def val=(val)
puts "Setting val to #{val.inspect}"
@val = val

# 1. The standard ||= approach
obj = MyClass.new
obj.val ||= 'a'
obj.val ||= 'b'

# 2. The a = a || b approach
obj = MyClass.new
obj.val = obj.val || 'c'
obj.val = obj.val || 'd'

# 3. The a || a = b approach
obj = MyClass.new
obj.val || obj.val = 'e'
obj.val || obj.val = 'f'

And the output shows off similar behavior to the hash and array example:

Setting val to "a"
Setting val to "c"
Setting val to "c"
Setting val to "e"
Default Hash Values: A Sneaky Edge Case?
Our travels don't end there though. Back in 2008, David Black noticed an edge case with hashes that have default values. If you follow the logic above to the letter, this case will not surprise you, although from a pragmatic point of view, it's curious.

Let's take a look:

hsh = Hash.new('default')

hsh[:x] # => 'default'

# 1. The standard ||= approach
hsh[:x] ||= 10
p hsh # => {}

# 2. The a = a || b approach
hsh[:y] = hsh[:y] || 10
p hsh # {:y=>"default"}

# 3. The a || a = b approach
hsh[:z] || hsh[:z] = 10
p hsh # {:y=>"default"}

Hashes with default values act in an.. interesting way, depending on your point of view. Merely accessing a value doesn't mean that the value is reified (made concrete) in the hash itself. The reason for this is that you can assign Procs to a hash's default_proc in order to perform calculations (or even to set values) when an unset key is accessed. It would be undesirable to avoid this behavior merely because a key was accessed earlier on.

Again, we note that the a || a = b-style approach gives the result closest to the reality of ||=.

describe "Conditional operator assignment 'obj.meth op= expr'" do
it "is equivalent to 'obj.meth op obj.meth = expr'" do

RubySpec's variables_spec file

Undefined Variables: Another Tricky Case
In the comments for this post, Vikrant Chaudhary brought up another interesting case:

If a is not defined, a || a = 42 raises NameError, while a ||= 42 returns 42. So, they don't seem to be equivalent expressions.

Vikrant Chaudhary

It's lucky I said "behaves like" earlier - phew! But joking aside, Vikrant makes a good point.

This tricky case is a little like the hash case. Something intriguing about how Ruby operates behind the scenes throws a spanner into the works again. That is, a variable assignment, even if not run, immediately summons that variable into being. For example:

x = 10 if 2 == 5
puts x

Even though the first line won't be run, x will exist on the second line and no exception will be raised. Another nasty one:

x = x
puts x

Whoa! Well, a ||= 42 is working in a similar way. Ruby sees the assignment at the parsing stage and creates the variable in a way that it wouldn't with a || a = 42, even though it ends up behaving like the latter once actual execution occurs.

Further Reading
This appears to have been a popular discussion point in Rubyland over the years, so I would be remiss not to include links to some of the best references:

x ||= y, Redux by Rick DeNatale.
The Reddit discussion about Dave Fayram's post
comp.lang.ruby: Please explain nuances of ||=
comp.lang.ruby: The definitive list of ||= (OR Equal) threads and pages
rubyonrails-talk: What does "||=" mean?
A short-circuit (||=) edge case

And if this tickled your fancy..
Today I've opened up tickets for the 3rd and 4th runs of my Ruby Reloaded online Ruby course. It's aimed at intermediate developers who want to dig deeper, boost their confidence, and bolster their Ruby skill set. We dig into test driven development (TDD), object oriented design, building a library from scratch, code style, and more. It takes place in November and December.

Check out RubyReloaded.com to learn more about the course, what it involves, and when it runs. There are 24 places on each and about half have gone to waiting list folks so far.

P.S. The coupon code INSIDE will give you a $50 discount to thank you for being a Ruby Inside reader!
Tutorials  from google
october 2011
Film Grenade
[Image: The "Throwable Panoramic Ball Camera" by Jonas Pfeil].The "Throwable Panoramic Ball Camera," designed by Jonas Pfeil as part of his thesis project at the Technical University of Berlin, creates spherical panoramas after being thrown into the air. The camera "captures an image at the highest point of flight—when it is hardly moving." It "takes full spherical panoramas, requires no preparation and images are taken instantaneously. It can capture scenes with many moving objects without producing ghosting artifacts and creates unique images." You can see it at work in this video:Pfeil explains in detail: Our camera uses 36 fixed-focus 2 megapixel mobile phone camera modules. The camera modules are mounted in a robust, 3D-printed, ball-shaped enclosure that is padded with foam and handles just like a ball. Our camera contains an accelerometer which we use to measure launch acceleration. Integration lets us predict rise time to the highest point, where we trigger the exposure. After catching the ball camera, pictures are downloaded in seconds using USB and automatically shown in our spherical panoramic viewer. This lets users interactively explore a full representation of the captured environment.It's easy enough to imagine such a thing being mass-produced and taken up by the Lomo crowd; but it seems equally likely that such a technology could be put to use aiding military operations in urbanized terrain, with otherwise disoriented squad leaders tossing "robust" optical grenades up above dividing walls and blocked streets to see what lies beyond.Either way, a throwable camera strong enough to withstand bad weather and strong bounces—and able to store hundreds of images—sounds like an amazing way to start documenting the urban landscape. In fact, the very idea that a "photograph" would thus correspond to a spherical sampling of all the objects and events in a given area adds an intriguing spatial dimension to the act of creating images. It's a kind of reverse-firework: rather than release light into the sky, it steals traces of the light it finds there. (Spotted via Popular Photography).
from google
october 2011
Join the Pen15 club with a vibrator shield
For all you teledil­don­ics enthu­si­asts, there’s a new Vibra­tor shield for the Arduino. It gets bet­ter: you can use the Pen15 shield with a Kinect for whole­some and nat­ur­al fun at home.Decen­cy and a ‘safe for work’ style pre­vents us from putting every­thing we know on the front page, so keep read­ing after the break.We’re just going to jump right into this one. The Pen15 board is an Arduino-compatible shield, “built specif­i­cal­ly for sex tech and teledil­don­ics research.” The board is pret­ty sim­ple – just a MOS­FET, a few resis­tors and a jack to hook vibra­tors up to. The Pen15 board is the result of years of long­ing on the part of [gDot], author of slashdong.org.[gDot] is going to be hold­ing a work­shop at Art && Code 3D at Carnegie Mel­lon Uni­ver­si­ty next week where he’ll do a mashup of the Pen15 and a Kinect. We don’t know what that entails, but we’re pret­ty sure it’s going to look like that one scene in Lawn­mow­er Man.Of course, the Pen15 shield is fully usable with­out a Kinect. [gDot] wrote Deldo, a vibra­tion con­trol and teledil­don­ics mode for Emacs. Yes, you can now have sex with Emacs.A big thanks to every­one who sent this one in. Real­ly, you’re a big help.Filed under: arduino hacks
from google
october 2011
Karin Mannerstål: "Alla har koll på vem jag är" - Äntligen hemma
Vad har Äntligen hemma betytt för dig? - Jag har varit med nästan från början. Det hann gå ett par säsonger innan jag blev uppringd från produktionsbolaget med en förfrårgan om att provfilma för programmet. Jag var nybliven mamma och ganska tveksam till det hela, men lite nyfiken ändå. Fast jag var orolig att min designkarriär skulle gå åt pipan om jag hoppade på programmet men med facit i hand har det blivit precis tvärtom.Med en miljon tittare per vecka behöver jag inte presentera mitt formspråk något närmare, utan alla har koll på vem jag är och vad jag gör. När jag blir påhoppad på stan så är det oftast bara glada tillrop!I år firar Äntligen hemma 15 år. Tror du att det finns utrymme för ytterligare 15 år i rutan?- 15 år till?! Ja med tanke på hur fort …
from google
october 2011
a bunch of plug-and-play CSS animations
animate.css is a bunch of cool, fun, and cross-browser ani­ma­tions for you to use in your projects. Great for empha­sis, home pages, slid­ers, and gen­er­al just-add-water-awesomeness.To use them in your project, sim­ply add the class to the ele­ment, or call the ani­ma­tion your­self in your CSS file. The class­es and the ani­ma­tions have the same name.Test the ani­ma­tions below by click­ing on their name. All of the ani­ma­tions demon­strat­ed below have a 0.25 sec­ond delay, last for a dura­tion of 1 sec­ond, use a timing-function of "ease", and have a fill-mode of "both". You'll have to set these your­self in your own CSS - the class name only sets the ani­ma­tion name.Live long and pros­per.Attention seekersFading entrancesFading exitsBouncing entrancesBouncing exitsRotating entrancesRotating exitsCan I use this stuff?It's all yours. Cur­rent­ly, CSS ani­ma­tions are sup­port­ed in Apple Safari, Google Chrome, and Mozil­la …
from google
october 2011
Spotify comes to Boxee
Spo­ti­fy con­tin­ued its push into the liv­ing room with the launch of an app for the Boxee Box on Fri­day. This makes the Boxee Box the sec­ond con­nect­ed device to get access to Spo­ti­fy after WD launched its Spo­ti­fy imple­men­ta­tion last week.The new app enables pre­mi­um Spo­ti­fy sub­scribers to access the com­pa­ny’s cat­a­log as well as playlists and music meta-data on the TV screen. Boxee’s VP of Mar­ket­ing Andrew Kip­pen told me that music has always played a big role for his com­pa­ny, despite the per­cep­tion of the Boxee Box being pri­mar­i­ly a video stream­ing device. The two most pop­u­lar apps on Boxee are music apps, he said, adding: “Since Spo­ti­fy works both in the U.S. and in eight Euro­pean coun­tries, it should help expand our music reach abroad and pro­vide anoth­er great on-demand music ser­vice which is where we think most music con­sump­tion is headed.”Spo­ti­fy launched in the U.S. in mid-July and has still to play catch-up in the con­nect­ed device space. Per­son­al­ized radio ser­vice Pan­do­ra is avail­able on more than 200 con­nect­ed devices, and music sub­scrip­tion ser­vices like MOG have also been expand­ing their pres­ence on plat­forms like Boxee and Roku. Hav­ing access to Boxee’s user base is one impor­tant step for Spo­ti­fy to nar­row that gap, and we can expect to see the com­pa­ny roll out apps for other plat­forms soon.Relat­ed research and analy­sis from GigaOM Pro:Sub­scriber con­tent. Sign up for a free trial.Connected Consumer Q2: Digital music meets the cloud; e-book growth explodes• Report: The Connected TV Marketplace• Connected Consumer Q3: Netflix fumbles; Kindle Fire shines
from google
october 2011
Sweet octocopter takes the RED Epic to new heights
So you’ve got a $40k+ RED Epic video cam­era and you need to get it from all the way down here to all the way up there. Sure, you could rent an expen­sive crane and take your shots from above that way, but why both­er with that when you can fly instead?Ger­man video effects com­pa­ny OMStu­dios decid­ed that it was up to the task of find­ing a crane alter­na­tive, so they built a crazy octo­copter drone to get the cam­era up to where they need­ed it. Fig­ur­ing that if four rotors is good eight is even bet­ter, the group’s octo­copter lifts the cam­era to heights of up to 150 meters, which is pret­ty impres­sive con­sid­er­ing the weight of its pay­load.While we might be a lit­tle hes­i­tant to trust such an expen­sive cam­era to a glo­ri­fied RC heli­copter, it actu­al­ly looks pret­ty solid from the video. Besides, we’re pret­ty sure these guys know what they are doing since they have a RED cam­era in the first place.[via Engad­get]Filed under: dig­i­tal cam­eras hacks
from google
october 2011
Ultimaker FAQ: but what about the quality of prints?
A lot of the press that Ulti­mak­er has got­ten has been about the crazy speeds these machines can print at. That press is pret­ty well-deserved, IMO, because they can indeed move very, very fast. Scary fast.That kind of press is usu­al­ly accom­pa­nied by sev­er­al ques­tions in the com­ments, won­der­ing about the qual­i­ty of prints. Can some­thing that moves at such speeds actu­al­ly pro­duce high-quality prints or is Ulti­mak­er just about speed?The answer is yes, an Ulti­mak­er can absolute­ly pro­duce prints of amaz­ing qual­i­ty.A few weeks or so ago, I post­ed in the Ulti­mak­er google group about this and asked for pic­tures of real­ly nice prints folks have done on their Ulti­mak­er. This blog post, which is a bit later than I want­ed (life and such some­times gets in the way of play.. annoying..), is some of my favorites. As you …
from google
october 2011
Welcome to Renee!Renee is the super-friendly Rack based web frame­work.This site was been built using Renee and is avail­able on Github.Concept (Why Renee?)Renee is a new Rack-based library for express­ing web appli­ca­tions. It seam­less­ly inte­grates with Rack to let you mix and match with any other frame­work. Josh Hull thought this up when he start­ed work­ing on a new rout­ing DSL for Goliath.For us, Sina­tra deliv­ered a new and sim­pler way to think about build­ing web appli­ca­tions. The pop­u­lar­i­ty of Sina­tra both as a library and as a con­cept shows how endur­ing this shift has been. Sina­tra was dif­fer­ent from Rails because the DSL was light­weight, easy to read and com­bined rout­ing and actions into just one file.We won­dered though, as Sina­tra fans, if we were to come up with a clean­er and more pow­er­ful DSL, what might that look …
from google
october 2011
Handlettered logos from defunct department stores
McALPIN’S Cincin­nati, OH (1906)Found­ed in 1852 as Ellis, McAlpin & Co. All McAlpin’s stores were con­vert­ed to the Dil­lard’s in 1998.BUL­LOCK’S Los Ange­les, CA. (1940s)Con­vert­ed to Macy’s in 1996.GOLD­SMITH’S Mem­phis, TN. (1946)Found­ed in 1870, con­vert­ed to Macy’s in 2005.The logo was designed by Mar­garet Grace, an employ­ee of the store’s adver­tis­ing depart­ment at the time. The script logo was used in all sig­nage and adver­tis­ing until the mid-90s, when an all-lower case sans serif font was used.DEY BROTH­ERS Syra­cuse, NY. (1950s)All stores closed in 1993.HAHNE & COM­PA­NY Newark, NJ. (1950s)Most stores con­vert­ed to Lord & Tay­lor in 1988.HOCHSCHILD KOHN Bal­ti­more, MD. (1957)Hochschild Kohn went out of busi­ness in 1983.DEN­HOLM’S Worces­ter, MA.Found­ed in 1871. Some stores went bank­rupt, some con­vert­ed to Forbes & Wal­lace in 1973.BUF­FUM’S Long Beach, CA. (1963)Found­ed in 1904. The chain was liq­ui­dat­ed by its par­ent com­pa­ny in …
from google
october 2011
A Collection of Beautiful, Free Fonts
Saturday, October 15 2011

Jonas Lejon

2 tweets & 17 shares


It’s fairly common knowledge that the choice of font you use can have a huge impact on the tone of the site you’re designing. A clean & professional serif might be at home on a site that takes itself seriously, while a quirky sans serif might be a better fit for a site with a playful personality.

As Information Architect Oliver Richenstein famously wrote in 2006, web design is 95% typography – so getting the right typeface for your design is important. We’ve selected some beautiful free fonts that are just waiting to be added to your next design.


Source: http://dirt2.com/fonts/justice-by-dirt2/

Parma Petit

Source: http://www.dafont.com/parmapetit.font

Fertigo Pro

Source: http://www.exljbris.com/fertigo.html

Reznor Broken

Source: http://www.dafont.com/reznor-broken.font

Rough Draft

Source: http://www.fontriver.com/font/rough_draft/


Source: http://www.exljbris.com/callunasans.html

Day Roman

Source: http://www.dafont.com/day-roman.font


Source: http://www.dafont.com/imperator.font

Champagne & Limosines

Source: http://www.dafont.com/champagne-limousines.font


Source: http://imjustcreative.com/kilogram-font-free-heavy-display-font-for-download/2010/02/24/


Source: http://www.dafont.com/walkway.font

Museo Sans

Source: http://www.exljbris.com/museosans.html


Source: http://fontfabric.com/lot-free-font/

Loki Cola

Source: http://www.dafont.com/loki-cola.font


Source: http://www.impallari.com/lobster/

Are there any beautiful fonts that you think deserve a mention? Let us know in the comments.

Like -
Share -
from google
october 2011
Dennis Ritchie: The Shoulders Steve Jobs Stood On
The trib­utes to Den­nis Ritchie won’t match the river of praise that spilled out over the web after the death of Steve Jobs. But they should.And then some.“When Steve Jobs died last week, there was a huge out­cry, and that was very mov­ing and jus­ti­fied. But Den­nis had a big­ger effect, and the pub­lic doesn’t even know who he is,” says Rob Pike, the pro­gram­ming leg­end and cur­rent Googler who spent 20 years work­ing across the hall from Ritchie at the famed Bell Labs.On Wednes­day evening, with a post to Google+, Pike announced that Ritchie had died at his home in New Jer­sey over the week­end after a long ill­ness, and though the response from hard­core techies was immense, the col­lec­tive eulo­gy from the web at large doesn’t quite do jus­tice to Ritchie’s sweep­ing influ­ence on the mod­ern world. Den­nis Ritchie is the father of the C pro­gram­ming lan­guage, and with fel­low Bell Labs researcher Ken Thomp­son, he used C to build UNIX, the oper­at­ing sys­tem that so much of the world is built on — includ­ing the Apple empire over­seen by Steve Jobs.“Pret­ty much every­thing on the web uses those two things: C and UNIX,” Pike tells Wired. “The browsers are writ­ten in C. The UNIX ker­nel — that pret­ty much the entire Inter­net runs on — is writ­ten in C. Web servers are writ­ten in C, and if they’re not, they’re writ­ten in Java or C++, which are C deriv­a­tives, or Python or Ruby, which are imple­ment­ed in C. And all of the net­work hard­ware run­ning these pro­grams I can almost guar­an­tee were writ­ten in C.“It’s real­ly hard to over­state how much of the mod­ern infor­ma­tion econ­o­my is built on the work Den­nis did.”Even Win­dows was once writ­ten in C, he adds, and UNIX under­pins both Mac OS X, Apple’s desk­top oper­at­ing sys­tem, and iOS, which runs the iPhone and the iPad. “Jobs was the king of the vis­i­ble, and Ritchie is the king of what is large­ly invisible,” says Mar­tin Rinard, pro­fes­sor of elec­tri­cal engi­neer­ing and com­put­er sci­ence at MIT and a mem­ber of the Com­put­er Sci­ence and Arti­fi­cial Intel­li­gence Lab­o­ra­to­ry.“Jobs’ genius is that he builds these prod­ucts that peo­ple real­ly like to use because he has taste and can build things that peo­ple real­ly find com­pelling. Ritchie built things that tech­nol­o­gists were able to use to build core infra­struc­ture that peo­ple don’t nec­es­sar­i­ly see much any­more, but they use everyday.”From B to CDen­nis Ritchie built C because he and Ken Thomp­son need­ed a bet­ter way to build UNIX. The orig­i­nal UNIX ker­nel was writ­ten in assem­bly lan­guage, but they soon decid­ed they need­ed a “high­er level” lan­guage, some­thing that would give them more con­trol over all the data that spanned the OS. Around 1970, they tried build­ing a sec­ond ver­sion with For­tran, but this didn’t quite cut it, and Ritchie pro­posed a new lan­guage based on a Thomp­son cre­ation known as B.Depend­ing on which leg­end you believe, B was named either for Thomp­son’s wife Bon­nie or …
from google
october 2011
Kern Type, the kerning game
Friday, October 14 2011

Tommy Sundström

28113 tweets & 69264 shares

type.method.ac - I'm really sorry; I've put a lot of effort into making this game run on as many platforms as possible. Unfortunately, I am unable to cover all scenarios. The game works on Google Chrome, Firefox, Safari, Opera and Internet Explorer 9. If you try one of those and still have problems, let me know.Thanks for your interest in KernType! Mark MacKay — hello@method.ac

Like -
Share -
from google
october 2011
the last time I saw Steve Jobs
I worked at Apple from April of 1999 through July of 2011. I've never writ­ten pub­licly about that expe­ri­ence, but I want­ed to share a lit­tle moment that will always be with me, even though it's not of any great sig­nif­i­cance.After leav­ing my job at Apple, I dropped in for lunch one day. I was exit­ing the main build­ing, Infi­nite Loop One, and just ahead of me was Steve Jobs, walk­ing with the usual spring in his step that never seemed to go away even as he start­ed look­ing more frail. Bump­ing into Steve was a sur­pris­ing­ly com­mon occur­rence for such a large com­pa­ny as Apple.Steve was head­ing towards a car parked next to the curb with its door open, wait­ing for him. The car was idling. A fam­i­ly was stand­ing near the Apple sign out­side the build­ing, a com­mon …

Previously at: http://blog.pluckytree.org/2011/10/last-time-i-saw-steve-jobs.html
stevejobs  apple  biography  from google
october 2011
Going real simple on HTML5 audio
DoneCal users are to 80+% Chrome and Firefox users. Both Firefox and Chrome support the HTML <audio> element without any weird plugins and they both support the Ogg Vorbis (.ogg) file format. change log here

So, I used use the rather enterprisey plugin called SoundManager2 which attempts to abstract away all hacks into one single API. It uses a mix of browser sniffing, HTML5 and Flash. Although very promising, it is quite cumbersome. It doesn't work flawlessly despite their hard efforts. Unfortunately, using it also means a 30kb (optimized) Javascript file and a 3kb .swf file (if needed). So, instead of worrying about my very few Internet Explorer users I decided to go really dumb and simple on this.

The solution basically looks like this:
 // somewhere.js
 var SOUND_URLS = {
   foo: 'path/to/foo.ogg',
   egg: 'path/to/egg.ogg'
 }; // play-sounds.js /* Call to create and partially download the audo element.
  * You can all this as much as you like. */
 function preload_sound(key) {
  var id = 'sound-' + key;
  if (!document.getElementById(id)) {
    if (!SOUND_URLS[key]) {
      throw "Sound for '" + key + "' not defined";
    } else if (SOUND_URLS[key].search(/\.ogg/i) == -1) {
      throw "Sound for '" + key + "' must be .ogg URL";
    var a = document.createElement('audio');
    a.setAttribute('id', id);
    a.setAttribute('src', SOUND_URLS[key]);
  return id;
 } function play_sound(key) {
 } // elsewhere.js
    onComplete: function() {
 $('#lightbox button').click(function() {

Basically, only Firefox, Chrome and Opera support .ogg but it's a good and open source encoding so I don't mind being a bit of an asshole about it. This little script could be slightly extended with some browser sniffing to work with Safari people but right now it doesn't feel like it's worth the effort.

This make me happy and I feel lean and light. A good feeling!
Web_development  from google
october 2011
iOS Fonts
Starting with iOS 5, the same 58 font families are now installed on both the iPad and iPhone. Hooray for more Gill Sans on the iPhone. (Fonts installed on Android: 3.)

from google
october 2011
Talk: Real-time Updates on the Cheap for Fun and Profit
Superheros Neil and Nolan (N&N) just gave their talk on our real-time PuSH system at Web 2.0 in New York. You can download the slides, or view the contents I’ve oh-so-roughly transcribed here:

Oh Hai My name is Nils.

My name is Neil Walker, I’m an Engineer at Flickr.

I mostly work on the back-end infrastructure portion of things. I’m going to be telling you about a system Nolan and I built to send real-time updates about things that happen on Flickr out to the things and people that want to know about them.

My portion of the talk is mostly going to be concerned with the back-end. How did we build the guts of the system and what we think are the key components.

What I’m not talking about.

This talk isn’t about building Twitter, or a full-scale pubsub system built from the ground-up to handle millions of updates per second. Instead it’s geared around what you can do with less. What if you’ve got an existing site with lots of functionality already built and you want to add some real-time notification capabilities to it? What can you do if you don’t have a lot of resources to throw at the problem?

It turns out that you can get pretty far with some bits and pieces that many sites will already have, and how to fit those bits together is what we’re going to cover.

This is Nolan

Hi, I’m Nolan Caudill, a backend engineer at Flickr. I work on most of our backend systems, but focus mainly on geo, the API, internationalization and localization, and general site performance.

The Fun Part

I’m going to focus mainly on why you would want to use the new push api, what problems it solves, and why it’s better in some cases than our traditional pull-based APIs. Also, I’m going to talk about how you get up and running with the new APIs. We know it’s a bit of mindflip from the traditional APIs and we want to help you with the transition on getting up and running with it.

So this was the Wired cover for March 1997. From the article: “Media that merrily slip across channels, guiding human attention as it skips from desktop screen to phonetop screen to a car windshield. These new interfaces work on the emerging universe of networked media that are spreading across the telecosm.” Whatever that means. So that was almost 15 years ago. “Kiss your browser goodbye”! didn’t exactly pan out.

Flickr PuSH

But jumping forward to now, we DO have all those screens. Most of us have 3, 4 or more devices with high-resolution displays on them, almost all of them with web browsers, and varying levels of human interfaces. Some of them even have cameras. Lots of us have 2nd or even 3rd monitors at work. For Flickr, having apps that can be used to explore photos on all those different screens regardless of user interface seems only natural, and that’s what we hoped to inspire with a real-time API. Before we get into the details I’d like to show a simple little application that Aaron Cope, who used to work at Flickr, built on top of our PUSH API, just to see what would happen.

Basically it’s a simple web page that can be run full-screen on almost any device that has a browser. It lets you subscribe to various streams on Flickr like photos from your friends, photos that your friends favorite, photos with particular tags, and photos from a location. It then receives these photos in more or less real-time and displays them full-screen with the title overlaid on top of the photo.

That’s it. No controls, no user interface after the initial point of telling it what you’re interested in.

So Flickr being a social website, you start to get photos of your friends, and the things that happen to them. You also get photos of things that your friends are interested in. As they fave them, they show up in your live stream. Then you might fave the same image, and more of your friends see it, fave it, and so on. It’s a very natural way for a popular object to percolate around your network, and often you don’t have to worry about missing something good because if it’s popular it’ll bubble back up as another one of your contacts faves it later on.

Interesting things start happening when you have devices with screens AND cameras – a photo makes it into someone’s stream, they take a photo of it and upload that, which makes it back into the original uploader’s stream, who faves it, etc. and you get a sort of live conversation taking place with photos. Knowing that when you upload a photo it’s going to appear on someone’s monitor or widescreen TV adds a new dimension to photosharing.

Eventually it can get a bit ridiculous.

A bit of history.

Anyway, we’ll go back to how all this got started at Flickr.

- A while ago we had the need to get new public uploads/updates to search partners in a timely manner. Why? – Being crawled is fine but is expensive for the crawler and crawlee and isn’t always accurate. – Making a specific API for that purpose could do it but is probably going to be clunky, require too much work by both parties, and means that whatever it is that’s hitting your API can potentially affect your site performance, or other API users. Pushing out updates where you control the flow is really the way to go. – What did we build?

‘headers’ => array( ‘Content-type’ => ‘application/atom+xml’, ‘User-Agent’ => ‘Flickr Kitten Hose’ )

Basically a firehose of public uploads/updates (incl. deletions/privacy changes) that we can aim somewhere and turn it on. Similar to the Twitter firehose, but for photos uploaded to Flickr. So essentially stuff happens on Flickr, we transform the events into some easily parseable format, bundle everything up into reasonable-sized blobs and POST it to a web server somewhere that consumes the data.

PubSubHubbub: Thanks, Google

Rather than invent a specific format/protocol we decided to pick something familiar. Something that already has a spec, is well-documented and is well-understood. So we picked a common Publish-Subscribe protocol. Google’s PubSubHubbub has definitions for how to publish a feed to a hub, how to subscribe and unsubscribe to topics and verify subscriptions and all the other good things that people who write specs like to specify. Of course we didn’t actually need a lot of the spec to accomplish our goals for just the firehose bit, but we did have in the back of our minds the thought of expanding on what we built.

So choosing at the start to meet an accepted spec was probably a good idea, and allowed us to get going without having to think too hard about what might come later – because someone else already figured out how that stuff should work.


A hub with no subscription control and a single hard- coded endpoint. If you want to fit the firehose idea into the PubSub metaphor then essentially what we built at first was a hub (i.e all of Flickr) that has one hard-coded “topic” that can be subscribed to – namely all public uploads & updates. Except that the subscribing and unsubscribing part involves humans agreeing to things and then turning the firehose on, instead of machines POSTing to web servers and receiving callbacks, etc. But the pubsub metaphor still fits.


So how did we build it? What I’m going to get into now are what I think are the key pieces of the back-end. I’ll be glossing over some parts of it that are pretty basic and not terribly interesting in the interests of focusing on the good stuff.

Async task system Gearman, etc

The first (and probably the most critical) part of what we built is an asynchronous job queue, or what we often call our Offline Task System. Essentially it’s a way of de-coupling expensive work from the web servers. Sooner or later you end up wanting to perform an operation that takes longer than you want to make a user at the other end wait (or places more load on your web servers than you care to suffer) and so you want to off-load that work somewhere else.

We use this concept EVERYWHERE. Examples: Modifying/deleting large batches of photos. Computing recommendations for who you might want to add as a contact. We have several hundred different tasks, and there are often thousands of them running in parallel. We built our own that fits our specific needs, but a great open-source example is Gearman. Mature, easy to set up and use and scales quite well.

Stuff happens on flickr.

So the very start of the flow of our system begins when stuff happens on Flickr. The obvious example is a photo upload, often involving cats. Other things we’re interested in are updates: Changing the title, the description or other meta-data of a photo. Also we want to provide updates when photos are deleted (or have their visibility switched to private, which in terms of updates should look the same as a deletion)

Insert a task. olt::insert(‘push_new_photo’, $photo_id);

When any of these things happen, we simply insert a task into our offline task system. It’s very low cost, doesn’t block and once that’s complete everything else that happens is completely de-coupled for the web servers.

Task runs.

Insert the event into a queue When the task runs, all it does is take the event it represents, transforms it into a little blob of JSON and sticks it in a queue.

Redis Lists

RPUSH kitten_hose blob_of_json

For the queues we chose to use Redis Lists. For those of you not familiar with Redis yet, it’s an open-source, memory-only, key-value store that supports structured data. Think memcached with commonly-used data structures like hashes, sets, and lists and efficient operations on them. At this point Redis is fairly stable and reliable, the performance is fantastic, and it’s dead-simple to use.

We accept a little bit of a HA compromise for the fact that it’s RAM-only and not clustered (yet), so if it’s down you’ll drop some updates… [more]
push  pubsub  realtimeweb  from google
october 2011
Why did iPhone 4S stick with the 3.5-inch screen?
There were rumors Apple might move to a 3.75 or even 4-inch screen for the 2011 iPhone, but instead iPhone 4S was introduced with the same 3.5-inch screen size Apple has used since 2007. Dustin Curtis thinks it all boils down to what it usually does for Apple — usability.

Touching the upper right corner of the screen on the Galaxy S II using one hand, with its 4.27-inch screen, while you’re walking down the street looking at Google Maps, is extremely difficult and frustrating. I pulled out my iPhone 4 to do a quick test, and it turns out that when you hold the iPhone in your left hand and articulate your thumb, you can reach almost exactly to the other side of the screen. This means it’s easy to touch any area of the screen while holding the phone in one hand, with your thumb. It is almost impossible to do this on the Galaxy S II.

Basically, Apple treats iPad as a two-handed device, iPhone as a one- or two-handed device.

Source: Dustin Curtis via @justin_horn
from google
october 2011
All public government data should be easily machine readable
The Bureau of Labor Sta­tis­tics (BLS) has an annu­al bud­get of over $640 mil­lion (FY 2011), a bud­get they use to cre­ate and then dis­trib­ute detailed labor mar­ket data and analy­sis to pol­i­cy mak­ers, researchers, jour­nal­ists and the gen­er­al pub­lic. I can't speak to the "cre­ation" part of their mis­sion, but on the "dis­tri­b­u­tion" part, the are failing---organizations with tiny frac­tions of their resources do a far bet­ter job.It's not the case that gov­ern­ment IT is invari­ably bad---the Fed­er­al Reserve Bank of St. Louis has an amaz­ing inter­face (FRED) and API for work­ing with their data. Unfor­tu­nate­ly, not all gov­ern­ment sta­tis­tics are avail­able here, espe­cial­ly some of the more inter­est­ing BLS series.The essen­tial prob­lem with BLS is that all of their work products---reports, tables etc.---are designed to be print­ed out, not accessed elec­tron­i­cal­ly. Many BLS tables are embed­ded in PDFs, …
from google
october 2011
Welcome to Google Docs
• Upload your files from your desktop: It's easy to get started and it's free!• Access anywhere: Edit and view your docs from any computer or smart phone.• Share your work: Real-time collaboration means work gets done more quickly.
from google
october 2011
When "clever" goes wrong: how Etsy overcame poor architectural choices
Ross Sny­der, a senior soft­ware engi­neer at craft e-com­merce site Etsy, recount­ed the story of the evo­lu­tion of his com­pa­ny's tech­ni­cal archi­tec­ture to a room­ful of fel­low trav­el­ers at the Surge con­fer­ence in Bal­ti­more. It was a story that, by his admis­sion, is not entire­ly his own—he's only been with Etsy for a year and a half, which accounts for the “after” phase of the com­pa­ny's archi­tec­tur­al pic­ture.But, as he put it, his­to­ry is writ­ten by the vic­tors—or at least those left around to write it. And his ver­sion of Etsy's his­to­ry is part cau­tion­ary tale and part DevOps case study. Sny­der's pre­sen­ta­tion was enti­tled “Scal­ing Etsy: What Went Wrong, What Went Right.” And it seems there was a lot that fell into the first buck­et dur­ing the com­pa­ny's six-year his­to­ry.Read the com­ments on this post
from google
october 2011
Skall det verkligen vara så här ?
Idag hade LSG missat att få med sig mat till 1 klass resenärerna på mitt X2000 tåg.

Sådant kan hända och det finns en bistro ombord så man svälter inte ihjäl men här kommer det underliga . . .

Resenärerna fick som kompensation 100:- i värdecheck att handla för som kompensation för en middag som man betalat 129:- för och som SJ inte kunde leverera.

Men om en resenär betalat 129:- för en vara som man inte får så skall man väl ha minst 129.- tillbaka – och då kontant och inte som värdecheck?

Om jag går tillbaka till min ICA Maxi affär därför att fläskfilén är skämd för att förpackningen gått sönder får tillbaka alla pengarna kontant plus 25:- som kompensation för att man inte kan leverera.

Men SJ drar av 29:- och ger tillbaka pengarna i form av en värdecheck som man bara kan handla på tågen för.

Men – skall det verkligen vara så här ?
LSG_Sky_Chefs  Strul  Värdecheck  X2000  from google
october 2011
Anonymous Publicly Identifies NYPD Officer Who Cowardly Pepper-Sprayed Protesters | Death and Taxes
The NYPD offi­cer who pepper-sprayed female pro­test­ers this past week­end in Union Square and laughed about it after­ward is a career offi­cer who has rel­ished his pro­mo­tions. One must won­der if he also laughed as Wall Street bankers and investors brought the econ­o­my to its knees.The NYPD offi­cer who pepper-sprayed female pro­test­ers this past week­end in Union Square has been pub­licly iden­ti­fied, as claimed in a Paste­bin post­ing by Anony­mous—Deputy Inspec­tor Antho­ny V. Bologna of the NYPD Patrol Bor­ough Man­hat­tan South. A man who always want­ed to be a police offi­cer and who seems to rel­ish being pro­mot­ed.Anony­mous post­ed, “As we watched your offi­cers ket­tle inno­cent women, we observed you bar­ber­i­cal­ly pep­per spray wild­ly into the group of ket­tled women. We were shocked and dis­gust­ed by your behav­ior. You know who the inno­cent women were, now they will have the …
from google
october 2011
Refusing to Kill Daughter, Pakistani Family Defies Tradition, Draws Anger
A Pakistani girl who says she was kidnapped and gang-raped faces a new threat: honor killings, a tradition here, but one that her family refuses to carry outKARACHI, PAK­ISTAN -- Kainat Soom­ro is a 17-year-old Pak­istani girl who has become a local celebri­ty of sorts in her bat­tle for jus­tice in the Pak­istani courts, a dar­ing move for a woman of any age in this coun­try, let alone a teenag­er.She is fight­ing to get jus­tice for a gang rape that she insists hap­pened four years ago in Mehar, a small town in Pak­istan.MORE FROM THE PULITZER CEN­TER:Out­lawed in Pak­istanLife in a Karachi Shel­terColom­bia's Min­ing BoomNepal: Adop­tion LimboWe first met her in the office of the Human Rights Com­mis­sion of Pak­istan. A col­or­ful tra­di­tion­al Pak­istani shawl cov­ered her head. Her father sat next to her as she recount­ed the 2007 inci­dent."I was walk­ing home from my school and I went to the store to buy a toy for my niece," she said, star­ing at the floor of the office. "While I was look­ing at things a guy pressed a hand­ker­chief on my nose. I faint­ed and was kid­napped. Then four men gang raped me."As she shared details of her days in cap­tiv­i­ty and mul­ti­ple rapes, she kept repeat­ing, "I want jus­tice, I will not stop until I get justice." After three days, she was final­ly able to escape she said. As she spoke, her father gen­tly tapped her head. He said he tried to get Kainat's alleged rapists arrest­ed, but instead he was rebuffed by the police.Accord­ing to the Kainat fam­i­ly's account, the trib­al elders declared her kari, (which lit­er­al­ly means black female), for los­ing her vir­gin­i­ty out­side mar­riage.In Pak­istan, women and men who have illic­it rela­tion­ships or women who lose their vir­gin­i­ty before mar­riage are at risk of pay­ing with their lives."These are mat­ters of honor and the lead­ers call a jirga and they declare that the woman or the cou­ple should be killed," said Abdul Hai, a vet­er­an field offi­cer for the Human Rights Com­mis­sion in Pak­istan. These acts of vio­lence are most com­mon­ly labeled as "honor killings."The most recent report from the Human Rights Com­mis­sion of Pak­istan noted that in 2009 rough­ly 46 per­cent of all female mur­ders in Pak­istan that year were in the name of "honor." The report noted that a total of 647 inci­dences of "honor killings" were report­ed by the Pak­istani press. How­ev­er, experts say that actu­al inci­dences of "honor killings" in Pak­istan are much high­er and never get report­ed to the police because they are passed off by the fam­i­lies as sui­cides.Kainat said that despite the pres­sures her fam­i­ly refused to kill her."It is the tra­di­tion, but if the fam­i­ly doesn't per­mit it, then it won't hap­pen. My father, my broth­er, my mom didn't allow it," she said.And that defi­ance has left the fam­i­ly fear­ing for their lives. The fam­i­ly's new home in Karachi has been attacked a num­ber of times.But, accord­ing to Abdul Hai, Kainat is lucky: "The woman or the girl …
from google
october 2011
Spamming a label printer with #cookiehammer
[John] has always loved stock tick­er machines. These machines are high­ly col­lectible, so short of find­ing one that wasn’t hurled from a Man­hat­tan sky­scraper in 1929, a stock tick­er is out of reach for the casu­al enthu­si­ast. There is anoth­er way to get a stock ticker-like device though: hack a label print­er to print out stuff from Twit­ter.The build is real­ly quite sim­ple. A Dymo ther­mal label print­er was mod­i­fied to accept stan­dard 2.25″ point of sale receipt paper. Now that the print­er can shoot out line after line of text, [John] wrote a lit­tle bit of Ruby code using a Twit­ter API, RMag­ick for graph­ics pro­cess­ing and a Dymo print­er dri­ver.Every 30 sec­onds, the code does a Twit­ter search for a spe­cif­ic hash­tag and prints those tweets. #cookiehammer was the first thing that came to mind, so it stuck. Right now there’s a few tweets for #cookiehammer, but we expect [John] will have to put a new roll of paper in his print­er fair­ly soon.It may not be as infor­ma­tive as a stock tick­er machine, but we think [John]‘s build has CNN beat. Check out the walk through after the break.Filed under: misc hacks
from google
october 2011
distrusting git
tl;dr git destroyed my data; my team now has severe trust issues with gitWe ask a lot from our source con­trol sys­tems. We want them to be flex­i­ble, fast, dis­trib­uted, clever and even easy-to-use. But the num­ber 1 thing we should demand from a source con­trol sys­tem is that it doesn’t destroy our data. Prob­a­bly most impor­tant­ly, it shouldn’t ever lose stuff that has been com­mit­ted, but just behind that it real­ly shouldn’t destroy data in our work­ing direc­to­ry.When you find out that your source con­trol sys­tem has lost your data you end up in a very bad place. Once your source con­trol sys­tem destroys your data once, you imme­di­ate­ly have a severe break-down of trust between your­self and your tool. You revert to using cp -R to cre­ate back­ups before doing any­thing with the tool, just in case it …
from google
october 2011
Sinatra 1.3 is out! - The Changelog - Open Source moves fast. Keep up.
Sina­tra 1.3.0 is out with two big news items. The Chair­man is now trav­el­ing with his own band. Sina­tra Con­trib, the community-sourced col­lec­tion of exten­sions, is now ver­sioned with Sina­tra itself, ensur­ing com­pat­i­bil­i­ty. Sina­tra Con­trib pro­vides some niceties on top of Sina­tra for com­mon tasks like con­fig files, con­tent_for, respond_with and other things you might miss from Rails.Per­haps the big­ger news is that Sina­tra gigs can be streamed. No mat­ter if you run event­ed servers like Thin, Rain­bows! or Ebb or sequen­tial servers like Uni­corn, Pas­sen­ger, or Mon­grel, you have a sin­gle API:Of course, you’ll need an event­ed serv­er to keep con­nec­tions open to things like:Small­er but just as cool changes include:request.accept? for Accept headers• informal?, success?, redirect? and client_error? based on HTTP status code.• Support for If-Unmodified-Since headerCheck out the offi­cial announce­ment or the changel­og for a com­plete list of updates. …
from google
october 2011
How To Make An eBook
Mak­ing an eBook is easy, regard­less of your cod­ing expe­ri­ence. This is good, because 99.9% of your time should be spent on writ­ing and get­ting your book out there, rather than on tech­nol­o­gy.EPUB And KindleAny elec­tron­ic book can be called an eBook, but because over 90% of all eBooks are read on Ama­zon’s Kin­dle, Apple’s iOS devices (iPad, iPhone and iPod) and the Barnes & Noble Nook, I’ll focus on the for­mats for those plat­forms:EPUBThis is an open standard adopted by Apple (iOS), Barnes & Noble (Nook) and many other makers of eBook readers (such as Sony).Thankfully, Amazon has said that its next Kindle will also support EPUB, but the newest version of Kindle doesn’t support it.(Update: Unfortunately, Amazon has decided NOT to support EPUB in the next version of their Kindle.)• KindleThis is a proprietary format that Amazon uses for its Kindle, which is a modification of the Mobipocket format.• PDFPDF is inherently made for print and doesn’t display well on digital devices. But if you really need to get data out to an iOS or Android device now, then it’s a useful format. We’ll have to wait one more generation for the Kindle to support it.Aside to geeks: The cur­rent ver­sion of EPUB is based on XHTML 1.1, which was offi­cial­ly pro­posed in 1999. That was the year when Inter­net Explor­er 5.0 was released and grabbed over 50% of brows­er mar­ket share from Netscape Nav­i­ga­tor. This is great because XHML is an open stan­dard that many devel­op­ers know; unfor­tu­nate­ly, it’s very old.What Kind Of Book Makes The Best eBook?EPUB was truly designed to dis­play text, pos­si­bly with some inline images. While cre­at­ing an EPUB illus­trat­ed chil­dren’s book, comic book, trav­el book or cook­book is pos­si­ble, it’s a lot more work and doesn’t work very con­sis­tent­ly across plat­forms. A good rule of thumb is that eBooks are best for books with a lot of words (think New York Times best­seller list).eBooks don’t han­dle pic­tures well.When decid­ing whether your book is a good can­di­date for an eBook, keep in mind that …
from google
october 2011
Get digital plastic surgery thanks to openFrameworks and some addons
[Kyle McDon­ald] is try­ing out a new look, at least in the dig­i­tal world, with the help of some open­Frame­works video plu­g­ins. He’s work­ing with [Arturo Cas­tro] to make real-time facial sub­sti­tu­tion as real­is­tic as pos­si­ble. You can see that [Arturo's] own video has a dif­fer­ent take on shad­ing and color of the facial alter­ations that makes them a bit less real­is­tic than what [Kyle] was able to accom­plish (see that clip after the break).The setup depends on some facial track­ing soft­ware devel­oped by [Jason Sarag­ih]. That pack­age is wrapped in ofx­Face­Track­er (already linked at the top of this arti­cle) which makes it play nice­ly with open­Frame­works. From there, it’s just a mat­ter of image pro­cess­ing. If you think you’re up to the chal­lenge, grab your own copies of the source code and get to work. We’re shocked by how real this looks, even when [Kyle] grabs his cheeks and stretch­es them out. If some­one can fix some of the arti­facts around the edges of the sam­pled faces this would be ready to use when video-conferencing.It kind of makes us think of tech­nol­o­gy seen in The Run­ning Man.[Thanks Luke]Filed under: video hacks
from google
october 2011
How to Recreate the Look of Instagram Filters with Vintage Cameras and Films
Insta­gram’s fil­ters are meant to mimic the look of vin­tage and toy cam­eras, but have you ever won­dered which cam­eras and films you’d need to make pho­tos with the same look? The folks over at 1000mem­o­ries decid­ed to tack­le this ques­tion and, after a good amount of research, came up with a neat info­graph­ic show­ing the dif­fer­ent cam­era and film com­bi­na­tions you can use to recre­ate pop­u­lar Insta­gram fil­ters.You can down­load a higher-res ver­sion of the poster here. They’ve also detailed their method­ol­o­gy over in this blog post.Old-School Insta­gram Fil­ters [1000mem­o­ries]
from google
october 2011
Instagram Engineering • Sharding & IDs at Instagram
Sharding & IDs at InstagramWith more than 25 pho­tos & 90 likes every sec­ond, we store a lot of data here at Insta­gram. To make sure all of our impor­tant data fits into mem­o­ry and is avail­able quick­ly for our users, we’ve begun to shard our data—in other words, place the data in many small­er buck­ets, each hold­ing a part of the data.Our appli­ca­tion servers run Djan­go with Post­greSQL as our back-end data­base. Our first ques­tion after decid­ing to shard out our data was whether Post­greSQL should remain our pri­ma­ry data-store, or whether we should switch to some­thing else. We eval­u­at­ed a few dif­fer­ent NoSQL solu­tions, but ulti­mate­ly decid­ed that the solu­tion that best suit­ed our needs would be to shard our data across a set of Post­greSQL servers.Before writ­ing data into this set of servers, how­ev­er, we had to …
from google
october 2011
What's contained in a boarding pass barcode? | shaun ewing | the web site
What’s contained in a boarding pass barcode?Any­one who has flown with­in the past few years would have seen the now ubiq­ui­tous bar­code on the board­ing pass that’s scanned upon board­ing the air­craft.Over the years I have seen many peo­ple post images of these board­ing pass­es online, often while review­ing new tech­nolo­gies such as mobile or web check-in. In most cases any per­son­al­ly iden­ti­fi­able plain-text infor­ma­tion has been obfus­cat­ed yet the bar­code has been left intact.Even­tu­al­ly curios­i­ty got the bet­ter of me and I decid­ed to find out more infor­ma­tion on the bar­code stan­dard, and the infor­ma­tion con­tained with­in them.History of the barcodeIn 2005 the IATA (Inter­na­tion­al Air Trans­port Asso­ci­a­tion) com­menced a five year project to deploy Bar Coded Board­ing Pass­es (BCBP) across its mem­ber air­lines to elim­i­nate mag­net­ic board­ing pass­es. This change would allow air­lines to use cheap­er board­ing pass …
from google
october 2011
Passive RFID tag cloning
Here’s an open source RFID clon­er design that is about the same size as a stan­dard RFID key card. It doesn’t need a bat­tery to cap­ture key codes, just the mag­net­ic field gen­er­at­ed by an RFID read­er. You can see the func­tion­al­i­ty demon­strat­ed in the video after the break. By hold­ing the bot­tom but­ton as the clon­er is moved in range of the RFID read­er, the micro­con­troller goes into learn­ing mode. Now just hold up the card you wish to clone and the LED just above the but­tons will light up when it has cap­tured the code. Now the device will act just as the orig­i­nal RFID tag did.This was devel­oped by [Ramiro], the same per­son who built the bare­bones RFID emu­la­tor we saw a few days ago. When research­ing that story we com­plete skipped over this gem. He’s post­ed a ton of infor­ma­tion on the tag itself. It doesn’t look like he has any PCBs or kits left, but the schemat­ic and code are avail­able for down­load. You should check in on the design con­sid­er­a­tions sec­tion because it dis­cuss­es the read/write func­tion that isn’t built into the cur­rent ver­sion. That’s why you see some add-on com­po­nents on the hard­ware used in the demo video.It seems like this is a lot more user-friendly than the last RFID spoofer we looked at.Filed under: Micro­con­trollers, secu­ri­ty hacks
from google
september 2011
coding in the rain · Modern Ruby Development
Mod­ern Ruby Devel­op­mentRails and Ruby have changed dra­mat­i­cal­ly over the years. For those of us that have been build­ing soft­ware on Ruby and Rails for some time, our devel­op­ment stack is like­ly due for an upgrade. Recent­ly two things led me to review how I build Rails apps. First, I have a new project I intend to build with Rails 3.1. The other event was the release of rbenv as an alter­na­tive to RVM.The fol­low­ing is a walk­through of how I con­fig­ure my Mac OS X machines for Ruby and Rails devel­op­ment. It is very sim­i­lar to the con­fig­u­ra­tion that 37sig­nals recent­ly described.Pre-requisitesI'm assum­ing you are using Mac OS X 10.7 Lion. Most of it will like­ly work fine under Linux (par­tic­u­lar­ly Ubun­tu). I have no idea nor do I care if it works on Win­dows. If you are …
from google
september 2011
SD ljög om skandalfest - Åkesson fastnade på bild
STOCKHOLM. I onsdags kunde Nyheter24 avslöja att Sverigedemokraternas Kent Ekeroth ännu en gång gått över gränsen med sina fyllefester.
– Efter att ha sett och hört vissa deltagare där så blir man skrämd, sa en anonym riksdagsledamot som är rädd för hot om hon går ut med namn.
Nu kan Nyheter24 avslöja nya detaljer kring festen och festdeltagarna där bland annat partiledaren Jimmie Åkesson var en av de som skrämt upp ledamoten.
När det uppdagades att Kent Ekeroths 30-årsfest stört andra riksdagsledamöter klockan tre på natten ringde vår reporter upp SD:s pressekreterare Eric Myrin för att prata om festen. Pressekreteraren nekade dock till att han visste något om att festen ens ägt rum.
– Nej det är inget jag känner till, sa han då till Nyheter24:s reporter.
Så du vet inte om någon sådan fest ägt rum eller ej?
– Det är omöjligt för mig att svara på. Vi har inga interna regler för hur man får använda riksdagslägenheterna utan vi följer riksdagsförvaltningen. Det är mycket möjligt att det är rykten eller missförstånd, sa Eric Myrin till Nyheter24.
Nu visar det sig att Eric Myrin inte var helt uppriktig i sitt samtal med vår reporter. Han har nämligen fastnat på en bild från festen som ägde rum den 17 september. En bild som nu cirkulerar på nätet.
Varför ljög du om festen?
– Jag fattade inte att det var den festen. Reportern beskrev den som en annan fest och jag trodde då att det var en annan fest.
Har det varit fler fester nyligen?
– Nej inte som jag har varit på.
Men hur kunde du inte koppla att det var samma då?
- Han beskrev det som en vild och högljudd fest med massa fylla. Det var inget sådant, säger Eric Myrin, till Nyheter24.
Trots att Sverigedemokraterna förnekar att festen var stökig så tvingades riksdagens egna vakter att avbryta tillställningen runt tretiden natten till söndagen. Riksdagsledamoten beskriver den också som vild med mycket spring och spill i trapporna.
Med på festen var även den absolut högsta toppen inom partiet. Partiledaren Jimmie Åkesson och ungdomsförbundets ordförande Gustav Kasselstrand syns på flera bilder som nu cirkulerar på nätet. En bild visar hur en glad Jimmie Åkesson omfamnar två okända tjejer.
En annan visar Eric Myrin tillsammans med Kent Ekeroth och några till i vad som ser ut att vara en livad ringdans. En tredje bild visar Gustav Kasselstrand hålla i en drink samtidigt som han sitter på en stol med den svenska flaggan runt halsen. Alla bilder har dock tagits bort i efterhand då Nyheter24 kontaktat bloggen.
– Att man dricker lite på festen är inte konstigt. Det var ingen som betedde sig dåligt, säger Eric Myrin till Nyheter24.
En av de unga tjejerna som var med på festen bekräftar bilden av sprit och fylla och beskriver den så här:
"Vi fick inte ta bilder egentligen men jag kunde inte låta bli att ta några. Det var iallafall jävligt kul och jävligt annorlunda. Vi minglade runt bland alla partimedlemmar, drack sprit och snacka skit. Snut övervak och hela köret haha"
Har du ljugit flera gånger tidigare om andra saker?
– Jag tycker att det där är en tramsig fråga, säger Eric Myrin, till Nyheter24.
from google
september 2011
Create An Animated Bar Graph With HTML, CSS And jQuery
Peo­ple in board­rooms across the world love a good graph. They go nuts for Pow­er­Point, bul­let points and phras­es like “run it up the flagpole,” “blue-sky think­ing” and “low-hanging fruit,” and every­thing is always “mov­ing forward.” Back­wards is not an option for peo­ple who facil­i­tate par­a­digm shifts in the zeit­geist. Graphs of finan­cial pro­jec­tions, quar­ter­ly sales fig­ures and mar­ket sat­u­ra­tion are a middle-manager’s dream.How can we as Web design­ers get in on all of this hot graph action? There are actu­al­ly quite a few ways to dis­play graphs on the Web. We could sim­ply cre­ate an image and nail it to a Web page. But that’s not very acces­si­ble or inter­est­ing. We could use Flash, which is quite good for dis­play­ing graphs — but again, not very acces­si­ble. Besides, design­ers, devel­op­ers and deities are falling out of love with Flash. Tech­nolo­gies such as HTML5 can do many of the same things with­out the need for a plug-in. The new HTML5 <canvas> ele­ment could even be adapt­ed to the task. Plen­ty of chart­ing tools are online that we might use. But what if we want­ed some­thing a lit­tle more tai­lored?There are pros and cons to the wide range of resources avail­able to us, but this tuto­r­i­al will not explore them all. Instead, we’ll cre­ate our graph using a pro­gres­sive­ly enhanced sprin­kling of CSS3 and jQuery. Because we can.What Are We Making?We’re mak­ing this. And more! Here are some pos­si­bil­i­ties on how you can extend the tech­niques explored in this tuto­r­i­al:A progress bar that indicates how long until the end of all humanity in the event of a zombie plague;• A graph indicating the decline in safe outdoor activities during a zombie plague;• A frighteningly similar graph indicating the decline in manners during a zombie plague;• The increase of people who were unaware of the zombie plague because they were sharing with all of their now-deceased friends on Facebook what they did on FarmVille.Or you could cre­ate a graph or quota bar that sim­ply illus­trates some­thing use­ful and less full of dread and zom­bies. So, let’s …
from google
september 2011
Feature: Tutorial: OS X automation with MacRuby and the Scripting Bridge
Mac OS X pro­vides rich script­ing and automa­tion tools that can sim­pli­fy every­day tasks—if you know how to use them. The ros­ter includes the ven­er­a­ble com­mand line, the graph­i­cal Automa­tor util­i­ty, and the tra­di­tion­al Apple­Script natural-language script­ing envi­ron­ment. Although these tools all have value in cer­tain sit­u­a­tions, they each have some real lim­i­ta­tions.For instance, Apple­Script ben­e­fits from extreme­ly tight plat­form inte­gra­tion and pow­er­ful sup­port for manip­u­lat­ing user inter­face ele­ments, but its eccen­tric syn­tax and lim­it­ed func­tion­al­i­ty con­strain the scope of its applic­a­bil­i­ty. Apple­Script sim­ply isn't designed to serve as a general-purpose script­ing lan­guage.Read the com­ments on this post
from google
september 2011
I was once a Facebook fool
It was inter­est­ing observ­ing the flur­ry of Face­book inte­gra­tion announce­ments in the past 24 hours, espe­cial­ly regard­ing music ser­vices. Back in the day, I had helped con­vince then-Apple employ­ee Dave Morin to join Face­book to build what became the Face­book Plat­form, and had hacked togeth­er one of the first music appli­ca­tions, Audio, on the then-day-old plat­form.I never real­ly talked about what hap­pened to Audio; how­ev­er, in see­ing that so many busi­ness­es and peo­ple seem hell-bent on inte­grat­ing ever-further with Face­book, I fig­ured I'd pro­vide a cau­tion­ary tale.At the time of my cre­ation of Audio, it turned out that Face­book had already cut some sort of deal to help anoth­er music appli­ca­tion -- thus, in some strange way com­plete­ly unknown to me, I was oper­at­ing out­side of the "plan." While Dave Morin worked qui­et­ly and brave­ly to defend me against the …
from google
september 2011
Simple Two-Factor SSH Authentication
In a two-part post I'm going to show you some tricks you can do with SSH logins. This post cov­ers set­ting up two-factor SSH authen­ti­ca­tion with the Google Authen­ti­ca­tor app.I was recent­ly get­ting some servers in shape so I can pass the Pay­ment Card Indus­try stan­dards ques­tion­naire and one require­ment was two-factor authen­ti­ca­tion access to the serv­er. I queried whether SSH key + passphrase was accept­able but didn't get a clear answer so I fig­ured I'd explore set­ting up anoth­er authen­ti­ca­tion fac­tor myself, plus it piqued my inter­est.After a bit of research I found it was pos­si­ble using a PAM mod­ule but it doesn't work along with SSH key authen­ti­ca­tion (only pass­word authen­ti­ca­tion) and I only use SSH key logins for my servers.The magicI want­ed to find the sim­plest method of imple­ment­ing this so I start­ed look­ing at what we …
from google
september 2011
Be Prepared for Ruby 1.9.3 and 1.9.4: What’s New and What’s Different
On August 1, 2011, Ruby 1.9.3 preview 1 was released. The final version isn't yet out (as of September 23) but Ruby 1.9.3 is going to be the next, full production-level release of MRI Ruby. But what's the deal with 1.9.3 (and its successors, Ruby 1.9.4 and 2.0)? Keep reading!

The Summary
Ruby 1.9.3 is a relatively minor improvement on the Ruby 1.9.2 we already know and love. In short:

a focus has been placed on performance with file loading, File and Pathname all significantly improved
Ruby 1.9.2 mostly fixed down the language specification for 1.9; 1.9.3 is mostly work on a 'better implementation'
you can tune the garbage collector via environment variables (more on this in a post coming soon!)
Ruby's license changes from dual Ruby + GPLv2 to dual Ruby + 2-clause BSD
improved GC performance with a lazy garbage collector
a 'better strategy' for the GIL / GVL
test/unit supports parallel testing
Random.rand tweaks (and rand() now accepts ranges)
io/console, a new library in the stdlib
4 new encodings (so far) - cp950, cp951, UTF-16, and UTF-32
extra String methods
a number of tweaks to formatting strings
Module#private_constant and Module#public_constant
a smattering of other bits and pieces, but this is the TLDR overview!

For some examples of the above, however, read on.

Yuki 'yugui' Sonoda on Ruby 1.9.3
At RubyConf Taiwan (held August 26-27, 2011), core team member Yuki 'yugui' Sonoda gave a talk called Ruby 1.9.3 and Ruby 1.9 Development which outlined her current thinking on Ruby 1.9.3, Ruby 1.9.4, and Ruby 2.0. It's not very long and worth a watch.

You can watch the video on Vimeo or see the slides on SlideShare. Alternatively, you may see the video embedded above.

Yugui's talk was only short but the key points were that:

Ruby 1.9.2 essentially fixed down the language design for 1.9; 1.9.3 is just a 'better implementation'
Ruby 1.8 has "no future" (she stated this a few times) but it will be "supported" for a few years to come
there is no intention to release a Ruby 1.8.8
"You need to switch to Ruby 1.9"
Ruby 1.9.3 will be out very soon
the license was changed to joint BSD because the release of GPLv3 forced a rethink on licensing
the locking strategy related to the GIL / GVL has been improved, resulting in improved performance
test/unit's parallelization features are well suited for testing Ruby's stdlibs more quickly
you can "safely switch to Ruby 1.9.3 from Ruby 1.9.2" as there are "few incompatibilities"
the new "lazy GC" will improve the response time of the garbage collector and decrease overall GC throughput - more info in this article, for the curious
Yugui is not particularly familiar with RubySpec - it seems to continue to not be a focus for core MRI implementers

A Selection of 1.9.3 Changes
I've cherry picked a few changes in 1.9.3 to highlight.

Faster loading - the load.c patch
Recently, I wrote all about the load.c file loading performance saga in Ruby 1.9.2. These issues have begun to be addressed and a nifty patch has enabled Ruby 1.9.3 to post significantly improved loading times for apps with large trees of files to load. You could see anywhere from a 5% to 40% reduction in load times for your apps.

Time#strftime supports %:z and %::z

Time.now.strftime("%:z %::z") # => "+01:00 +01:00:00"

Time#strftime now supports some extended formats for timezones. :z includes the minutes and ::z gives the full HH:MM::SS.

String#prepend and String#byteslice
Among some changes to the String class are a couple of new methods. First, prepend:

a = 'world'; a.prepend('hello '); a # => "hello world"

String#prepend prepends one string to another, in-place. The result is equivalent to using a[0,0], in this case.

Next, byteslice will let you get access to sections of a string at the byte (rather than character) level:

a = 'hello'; a.byteslice(2, 2) # => "ll"

New character encodings
CP950, CP951, UTF-16, and UTF-32 encodings have been added. Previously, UTF-16 and UTF-32 were available in big-endian (BE) and little-endian specific forms. For example: Encoding.find("UTF-16LE"). I have not yet confirmed if the new UTF-16 and UTF-32 encodings support the byte ordering marks that they should, but am currently assuming so. CP950 and CP951 are Microsoft encodings for Chinese character sets.

Changes to 'Random'
The Random class now accepts ranges on its rand class method. In 1.9.2, this was only allowed on its instance method. For example:

Random.rand(5..9) # => [a number between 5 and 9]

A side effect of this is that Kernel.rand now also supports ranges in 1.9.3. For example:

rand(5..9) # => [a number between 5 and 9]

#__id__ moved from Object to BasicObject
BasicObject is the new grand-daddy of the inheritance tree in Ruby 1.9 and in 1.9.3 it gains access to the functionality of the object_id method by way of __id__ which has been moved into BasicObject from Object. This may help those of you using BasicObject for delegators, proxies, and the like.

BasicObject.new.__id__ # => 2152881920

If you want to pick up on more changes, see the Ruby 1.9.3 NEWS document or, perhaps, check out my Ruby 1.9 Walkthrough screencast ($16) which has an entire section dedicated to things that are new in Ruby 1.9.3.

The Future: Ruby 1.9.4
In her talk, Yugui mentioned two extra production releases of Ruby to come after Ruby 1.9.3. The first was unnamed and was said to be a 1.9 release with minor language changes to 1.9.2/3. In the Q&A, someone asked Yugui if this would be called Ruby 1.9.4 but she said it was still under discussion but hoped it would be called 1.9.4. This unnamed next release would, however, have complete backwards compatibility for code written in Ruby 1.9.2/3.

The Future: Ruby 2.0!
The second release after 1.9.3 "should be called Ruby 2.0", however. It will have significant changes but Yugui notes that "it should be comfortable with 1.9.3" and that you should be able to "safely switch" to 2.0, indicating that any significant changes wouldn't involve removing core language elements or permanently changing core syntax features.

It has previously been said, however, that Ruby 2.0 could be "several years" away, so don't get too excited about this yet. Now is the time to start weighing if you want to influence Ruby 2.0's design, however!

Still getting to grips with Ruby 1.9? Try my walkthrough

I recently released a screencast called Ruby 1.9 Walkthrough, a mega walkthrough of what's new in Ruby 1.9.2 (and Ruby 1.9.3) from the perspective of Ruby 1.8.7. If you're still primarily a Ruby 1.8 based developer and aren't entirely sure about what's new in Ruby 1.9, check it out.
News  from google
september 2011
Build cheap panning camera mounts for time lapse photography
Pan­ning time lapse pho­tographs always look pret­ty cool, but there’s that whole “mak­ing a pan­ning time lapse” rig that gets in the way of all the fun. [Get­away­mo­ments] put togeth­er a tuto­r­i­al quite a while ago show­ing how to use Ikea egg timers as cheap and dis­pens­able pan­ning units, and has updat­ed his instruc­tions with a pair of refreshed designs.He stum­bled upon two new egg timers at Ikea, the Stam and Ord­ning, which sell for $1.99 and $5.99 respec­tive­ly. The Stam is a small plas­tic model that can be fit­ted with a set screw, to which most cam­eras can be mount­ed. A small bush­ing can also be installed in the timer’s plas­tic base, allow­ing it to be mount­ed on any stan­dard tri­pod.The Ord­ning is a beefi­er unit capa­ble of with­stand­ing more abuse than its plas­tic brethren, hence the larg­er price tag. A few min­utes on the drill press makes room for a metal bush­ing, allow­ing the Ord­ning to be installed on any tri­pod as well.The hack isn’t high tech, but we’re impressed with the results he was able to get with these sim­ple kitchen timers. For the cost and time required to build them, they are sure to give most other pan­ning rigs a run for the money.Con­tin­ue read­ing to see a short instruc­tion­al video demon­strat­ing how to build one of your own.[via Make]Filed under: dig­i­tal cam­eras hacks
from google
september 2011
Yahoo blocked e-mails about Wall Street protests
Com­pa­ny apol­o­gizes after dis­clo­sure of blocked emails comes to light, blames spam fil­ter
from google
september 2011
Lxardoscope is a Linux+Arduino oscilloscope
[Pri­vati­er] wrote in to let us know about lxar­do­scope, his project that lets you use an Arduino as hard­ware input for a Linux-based oscil­lo­scope dis­play. This imple­men­ta­tion offers two chan­nels with about 3000 sam­ples per sec­ond from each. He touts some of the GUI options like ver­ti­cal res­o­lu­tion between 2mV and 10V per divi­sion. That part kind of stumps us because we don’t see how a mea­sure­ment of 10V (or more) can be taken using the schemat­ic includ­ed. But you’re com­pre­hen­sion may sur­pass ours so do take a look your­self.He is using an Arduino Uno for his test­ing. But to get around some issues he’s expe­ri­enced with other USB-based solu­tions he imple­ment­ed a ser­i­al port con­nec­tion instead. You’ll need to remove the ATmega chip from the Arduino board after flash­ing the code to it, and then build a cir­cuit around it which includes a power source where -2.5V is ground and 2.5V is VCC. All in all, you’ll need a 16 Mhz crys­tal, HEF4069 hex invert­er, ATmega8-family micro­con­troller, and a few pas­sive com­po­nents to build this on a bread­board.Filed under: arduino hacks
from google
september 2011
Scandinavia Report: one newspaper redesigns, another introduces new iPad app
TAKEAWAY: My Scandinavia reports continue. Today, the new look of Sweden’s newspaper, Dagens Nyheter; in Norway, the financial daily, Dagens Naeringsliv, introduces its first app edition

A mild change: nice , easy, but no wow

In Sweden, Dagens Nyheter introduced a new look this week.

It is a newspaper we know well, and that we redesigned once.  As most Swedish newspapers, DN is orderly,clean,  well groomed and easy to read. It always has been and I guess it will always be.

This redesign advances the “clean and well groomed” status of the newspaper, and it uses the beautiful typographic combination of Publico and Guardian Sans, which provide each page with elegance and a sense of gravitas.

Overall, however, and I have only seen one edition, I wonder how much was truly changed here. More importantly, how did this redesign advance the DN design to the next level?

The front page is poster like for the most, except that text hurries in at the bottom of position, sort of in a last minute effort not to miss the train.

Photos are well used, and, of course, as Scandinavian newspapers do so well, white space brings us that Nordic fresh air relief that so many American newspapers are missing these days.

Although I am not wowed (and who says that newspapers need to wow us with the foundation of their design?), I just ask the question: When is a redesign necessary? When is it an exercise in pleasing editors who simply “got tired” of the old look (which was not bad to begin with)?


First iPad app for Norway’s Dagens Naeringsliv

In neighboring Norway, the other DN introduces its first iPad app, and it is a great start for this 2.0 version. It has personalilty, it respects the DNA of the newspaper to a T (those poster front pages are replicated here), and the texture of the article reading pages is exquisite, as is the translation of the weekend magazine to the tablet format.

What is missing here, and it is very early in the process, are the pop up moments, the more tablet-oriented functions.  We do a lot of reading and turning of the pages here, but I know that in the future we will begin to see more tablet moments.

We wait for that, knowing that in Norway, the DN guys are innovators.


The Bild poster of the Pope unveiled

Yesterday we showed you (scroll down for that post)  how, Bild,  the German daily was welcoming the visit of Pope Benedict XV! to Berlin by displaying a giant (19-story-high) poster of a smiling Pope on the memorable front page that read: We are Pope!

Here Frank Deville updates us with a video of the unfolding of the poster, and some new photos.


TheMarioBlog post#859

For Bild of Germany: turning the Pope’s visit into a giant posterevent!

TAKEAWAY: When Pope Benedict XVI comes to Germany, Bild zeitung prepares well, and, as it always does, it is over the top——in this case a giant poster of the smiling Pope covering 19 floors of the Axel Springer Building, Bild’s home, inBerlin.

A welcome fit for a (German)Pope

Watch the video as the poster is set up for positioning over 19 floors of the Axel Springer Haus inBerlin

Frank Deville sends us this set of pictures from today’s Bild.

When the announcement was made that German-born Joseph Ratzinger
had been named Pope, the always fun and irreverent Bild shared the pride of every German on its front page with a headline that read: We ArePope!

It was a front page that resonated with the readers, and with the media colleagues—-we saw reproductions of that front pageeverywhere.

Well, now Pope Benedict XVI is coming to Germany for a four-day visit, including one day in Berlin (home to Bild) and, typical of the larger than life approach to things that the ever popular Bild takes, it is unveiling a giant poster to welcome the Pope. The poster will hang on the side of the Axel Springer building in Berlin, covering 19 floors, with a replica of that famous We Are Pope! frontpage.

When you talk about a newspaper establishing links with its community, doing things over the top, and expressing joy, all at the same time, nobody does it likeBild.

It is no surprise that five million read itdaily.

Poster facts: It measures 45 by 64 meters. It took 8 days to put all the strips of the poster together; a specialized group of engineers worked on putting the poster together; and it will take one day to hang the poster, with the smiling Pope image, as he arrives inBerlin.

TheMarioBlog post#858
from google
september 2011
Hackers break SSL encryption used by millions of sites
Beware of BEAST decrypting secret PayPal cookiesResearchers have dis­cov­ered a seri­ous weak­ness in vir­tu­al­ly all web­sites pro­tect­ed by the secure sock­ets layer pro­to­col that allows attack­ers to silent­ly decrypt data that's pass­ing between a web­serv­er and an end-user browser.…
from google
september 2011
Bootstrapping a $30k profit/month company from our internship earnings (Part 4)
Before we get start­ed with Part 4, we want­ed to let you guys know that we're hir­ing for a full-time remote iOS/Mac devel­op­er, so if you're inter­est­ed and have pre­vi­ous app dev expe­ri­ence, then please click here. Also our first episode of App Tear­down is out, start the down­load now and it'll be ready by the time you fin­ish read­ing this post :)Les­son #16: Estab­lish mul­ti­ple rev­enue streams - if one dies, at least your busi­ness won'tFol­low­ing on from our pre­vi­ous blog post where we explained how we man­aged to achieve $1000/day in rev­enue through our Talk­ing apps, our new chal­lenge then became to try and con­quer the newly launched Mac App Store. Post Christ­mas, adver­tis­ing CPM rates were begin­ning to decline on our free iOS apps, and to mit­i­gate this, we turned our atten­tion to cre­at­ing more paid apps …
from google
september 2011
John Sculley on Steve Jobs and the Experience of a Lifetime
By Janet GuyonIn 1983, when John Scul­ley was 43, he had a choice. He could remain head of Pepsi-Cola Co. and jock­ey with sev­er­al other exec­u­tives to be named suc­ces­sor to then-PepsiCo Chief Exec­u­tive Don­ald Kendall in a typ­i­cal cor­po­rate exec­u­tive shootout. Or, as Apple's Steve Jobs put it to him then, he could give up sell­ing "sugar water" and "come with me and change the world."Scul­ley's choice would prove life-changing for both Jobs and the East-Coast soda exec­u­tive. He took the gam­ble to join Apple as its CEO, never know­ing that Jobs, then 28, him­self want­ed the job, but had been denied it by the Apple board due to his tem­pera­men­tal nature and rel­a­tive lack of man­age­r­i­al expe­ri­ence.What began as a close and happy part­ner­ship degen­er­at­ed into an irrepara­ble busi­ness dis­pute. Jobs left Apple in 1985 only to return …
from google
september 2011
Backchannel Transcript for TEDxLondon
I spent a good part of yesterday with a front row seat at the TEDxLondon event held in the acclaimed Roundhouse. But mostly I was in my office, running the livestream through my MacBook air and Tweeting quotes and reflections to my nearly 14 followers on Twitter.

A while back I tinkered around with the code of my personal backchannel tool, Knitter Chat, so that it could capture colearners tagged Twitter posts as well as the audience members’ Knitter postings. Just before TEDxLondon started, I crawled into the code and reset it to capture anything tagged with #TEDxLondon between 14:00 and 20:35 London time — and it worked, for the most part.

Anyway, I’ve been reworking the code on Knitter to handle the volume and export it into Wikispaces, a much more sophisticated wiki service than the PMWiki server that I run. I concluded this morning that neither Wikispaces nor a couple of other high-end community editing tools could handle files of such size, even when divided into three parts for the three sessions. So I went back to my PMWiki server — the one that I use for the backchannel transcripts for my presentations and keynotes.

So here are links to the three sessions. You can edit and insert text if you are not intimidated by the coding. There is a guide at the bottom of the page, if you choose to click edit and enter the password (teacher).

Very Educational!

Session 1: What’s Wrong?
Session 2: What’s Right?
Session 3: What’s Next?

I also uploaded Wordle word clouds from the three sessions, What’s Wrong?, What’s Right? and What’s Next?

More reflections will likely follow!
conferences  education  information  learning  teaching  technology  warlick  backchannel  educationrevolution  TEDxLondon  twitter  from google
september 2011
Chat History
Clark and I met on the Thurs­day before Labor Day, August 30, 2007. I don’t know exact­ly when we first said I love you, but the first email exchange con­tain­ing the phrase, which he casu­al­ly includes before sign­ing off, is dated Octo­ber 3 of that year.Near­ly four years later, I some­times type his email address in the search box in my Gmail. Hun­dreds of results pop up, and I’ll pick a few at ran­dom to read. The ease of our every­day inter­ac­tions is what kills me. The way we spoke to each other about what I’d bring home for din­ner or whether it was a PBR or a Grolsch kind of night. In near­ly every con­ver­sa­tion, there is some­thing that releas­es the pres­sure from my chest by forc­ing a giant laugh.Clark: did you eat? Me: yes i had soup and chips but what­ev­er some­one else has smells del­ish Clark: k just as long as you ate some­thinghow do you spell Bodasi­fa?from Point Break? Me: let me look it upBod­hisatt­va Clark: ?real­ly?satt­va? Me: yepit’s a bud­dhism thingI can break down Clark’s ill­ness into one diag­no­sis (metasta­t­ic melanoma), one prog­no­sis (between 4 and 14 months to live), three surg­eries, three clin­i­cal tri­als, seven hos­pi­tal stays, three doses of chemother­a­py, and five weeks of hos­pice care. The first surgery, a deep lymph-node dis­sec­tion of the left groin, and its sub­se­quent days-long hos­pi­tal stay, spanned the first week of April 2008. The sec­ond surgery, which removed the can­cer’s recur­rence from under­neath the ten­der flesh of the first, was June 11. He was hos­pi­tal­ized from Novem­ber 11–19 and again from Decem­ber 1–6. On Feb­ru­ary 20, 2009, he had emer­gency surgery to remove a tumor the size of a base­ball from his gut. He start­ed chemother­a­py on April 15.Me: i am sorry i wigged out last night. Clark: oh baby do not say sorry Me: i real­ly was just exhaust­ed! that’s obvi­ous. Clark: I total­ly under­standi know you were so tired and I know that you wantto make sure I’m going to be okay and safeand …
from google
september 2011
5 subtle ways you’re using MySQL as a queue, and why it’ll bite you
This guest post is from our friends at Per­cona. They’re host­ing Per­cona Live Lon­don from Octo­ber 24-25, 2011. Live is a two day sum­mit with 100% tech­ni­cal ses­sions led by some of the most estab­lished speak­ers in the MySQL field.In the Lon­don area and want to go? We’re giv­ing away a free pass this week. Keep an eye on the @engineyard twit­ter feed for a chance to win.I work for Per­cona, a MySQL con­sult­ing com­pa­ny. To aug­ment my mem­o­ry, I keep a quick-reference text file with notes on inter­est­ing issues that cus­tomers ask us to solve. One of the cat­e­gories of fre­quent prob­lems is attempts to build a job queue in MySQL. I have so many URLs under this bul­let point that I stopped keep­ing track any­more. Cus­tomers have end­less prob­lems with job queues in their data­bas­es. By “job queue” …
from google
september 2011
Instapaper’s (anti-)social network
Ben Brooks noticed and blogged about how Instapa­per’s social fea­tures, intro­duced ear­li­er this year, are min­i­mal:There’s just a list of arti­cles that peo­ple you chose to fol­low decid­ed that they liked. All with­out know­ing who, or if, any­body will ever see that they liked that arti­cle.It’s a fas­ci­nat­ing­ly pri­vate social sys­tem.That was exact­ly the idea, and I’m very happy to see it per­ceived that way.Social fea­tures are tricky. Social dynam­ics in real life are com­plex, so every social mechan­ic we con­struct or word choice we make will carry unin­tend­ed bag­gage, con­no­ta­tions, and ambi­gu­i­ties. (“Like”. “Friend”. “Fol­low­er”.)Social net­works also need to address dif­fi­cult issues with iden­ti­ty, pri­va­cy, harass­ment, spam, and infor­ma­tion over­load.These sys­tems require a lot of time and money to devel­op, main­tain, and sup­port. And when they’re ready, they need to com­pete with all of the other social net­works for peo­ple’s time and atten­tion.With Instapa­per’s fol­low­ing sys­tem, I want­ed to deal with as lit­tle of the dif­fi­cult bag­gage as pos­si­ble, even if it meant omit­ting some of the “sticky” social dynam­ics that can sig­nif­i­cant­ly boost user counts and engage­ment. The result is a very small social feature-set that pig­gy­backs on other estab­lished social net­works: Twit­ter, Face­book, and email.There are no pub­lic user­names, avatars, or pro­file pages. Nobody’s quit­ting Face­book for Instapa­per. Com­pa­nies aren’t rush­ing to estab­lish an Instapa­per fol­low­ing. No newly engaged cou­ples have rushed to update their sta­tus­es on Instapa­per.To label each story in the inter­face with the per­son it came from, Instapa­per just uses the label from how­ev­er you found them. If you found me by search­ing peo­ple you fol­low on Twit­ter, I’ll be “mar­coar­ment”. If you found me through Face­book, I’ll be “Marco Arment”. And if you found me by email address, I’ll be “me@marco.org”. Instapa­per could cross-reference these, but it doesn’t.1There are no noti­fi­ca­tions what­so­ev­er for fol­low­ing and unfol­low­ing. Nobody can tell who fol­lows them, how many peo­ple do, or even if any­one does. In addi­tion to remov­ing the emo­tion­al roller­coast­er of fol­low­er counts and unfol­lows, this may actu­al­ly increase fol­low­ing activ­i­ty: if peo­ple real­ize that …
from google
september 2011
RDF, where art though
In comments on a
post on G+ I said something I might regret:

"There are plenty of RDF-based applications around, but none
really have much broad public appeal."

Oshineye responded with "why do you think that

Ok, overnight I remembered there's at least one app (or set of
apps if you prefer) that uses RDF and has a lot of adoption:
Drupal. According to Wikipedia
it's used on at least 1.5% of Web sites worldwide, and has RDF in
its core. Then there's data.gov.uk, a public-facing national
government site that's RDF through-and-through. I'm a little out of
touch, there are no doubt quite a few other good examples of where
I'm wrong.

But given that RDF has been around for 5 years*, it's
the way of doing data on the Web and virtually every
Web-oriented app uses data somewhere, why isn't it ubiquitous?

(* solid specs came out in 2004 although SPARQL wasn't until
2008 so I'm splitting the difference for a rough date for when it
became usable)

RDF isn't something that's going to be in your face anyway, so
"broad public appeal" is slightly off-target. Developer adoption
may be a better key. Whadever.

In terms of it as a database tech, compared to relational DBs
(MySQL etc), custom data handling (Twitter uses Ruby message
queues), novel DBs (Facebook uses a key-value store Cassandra apparently) RDF stores
don't get much of a look-in. Ok, arguably the big scale things need
to be custom to hone performance, but why, alongside the Big Data
handling, don't we see RDF augmentation?

For consuming apps and desktop apps, I can't actually think of
any well-known ones off the top of my head (I think quite a few of
the music apps on Linux use librdf
under the covers). I don't have a mobile device - any iPhone

What I find a little bizarre (and please give me
counter-examples), is that in the areas where RDF really shines -
Web-oriented data integration and reuse - there are hardly any
well-known apps out there at all, using any technology.
There are a handful of feed aggregators and things like techmeme, but the level of
integration there is pretty trivial. (Before Kingsley jumps down my
throat - OpenLink Virtuoso
is seriously good at this kind of stuff out of the box - but what
I'm after is where these things are being used by twitter-sized

There's certainly something to what
Lee Feigenbaum said the other day, the wrong question is
usually asked, it should be: What can I do with Semantic Web
technologies that I wouldn't do

In terms of app-building, right now most parts of
most things can be built relatively easily using other
technologies, so unless the RDF stack is part of the developer's
on-hand toolkit (like e.g. LAMP) it won't be first choice. I do
suspect that while the false perception that RDF is complex per se
isn't so prevalent these days, there's still a notion around that
RDF is complex for the benefits it offers. i.e. linked
data isn't perceived as a significant value-add, so why bother? The
primary objectives can be acheived by pushing around little JSON
objects ("jobbies"?) in a fairly
arbitrary fashion, so why look further? But data on the Web
surely isn't a niche thing...

Feel free to shoot me down in flames from all angles over this
one (I'm not interested in advocacy here so don't care if I expose
the wrong message) - I also suspect there's still
something in the idea that people simply don't get it.
While developers seem to have no problem representing pretty much
anything in local databases, the idea that
anything can be represented on the Web in a similar way
hasn't been grasped. I reckon there's good evidence in virtually
every high-profile project. Things tends to be focused on HTML
(with a little Javascript) and the browser experience. For
service-oriented systems the unwritten assumption is that the
services will tie into the same view. I'm certainly not saying that
this focus is wrong (those user-facing components are vital), just
that it can lead to a blinkered view of what is possible. Only
relatively recently have developers at large started looking at
things like the identity of people on the Web. You
still don't see the same attention given to everything else in the
world - products, ideas, activities. Ok, you might point to
activity streams and the like, but the subject of those activities
still largely tends to be doc-oriented: messages or posts. You
might point to schema.org and
microdata as ways in which people in the Web development community
can put data on the Web. But scratch the surface and the main goals
underneath are things like SEO, most of the data being expressed is
document metadata, not data about the real world.
(Next time you go shopping, notice your interactions with the world
from finding your car keys onwards, compare and contrast with the
Amazon experience.)

The other day I posted
a question on G+ that probably should have gone here: All the
necessary components were in place for online social networks, in a
distributed form, before Facebook & co. came along: blogs,
aggregators, the various protocols. So why were Facebook & co.
so successful? (got some good comments there, and was very
pleased to find out Andreas
Kuckartz is researching the question)

The question of data on the Web seems to lie in a similar
socio-politico-technical morass. On federation,
I'm afraid I'm inclined to agree with Eric
Siegel : "I predict decentralization is inevitable, but its
very very far away." I feel pretty much the same about the Web
of data, though perhaps not so far away (unless I'm confusing
small and far
away :)

[ooh - a good point on that from Seb
Paquet I'd missed before: The folks who grokked
decentralization didn't master social experience design and UI
design as well as Zuck, and decentralized infrastructure is harder
to monetize so getting funding was difficult.]

One final question dedicated to folks on Planet RDF, from danbri in response to (the
Facebook re-presentation of) my post yesterday:

If RDF is so great, we should all be rich by now?

Another quote, it must have some relevance - via the BBC,
from Sir William Preece chief engineer of the British Post Office
in 1876: "The Americans have need of the telephone, but we do
not. We have plenty of messenger boys."

Still no system here yet, comments
to G+ again.
from google
september 2011
« earlier      
3d accessibility advertising aftonbladet ai ajax algorithms amazon android animation api apple arduino art article audio bbc blog blogg blogg100 bloggar bloggartikel blogging blogs book books browser business code color comics comments community copyfight copyright css culture data database davidhall del.icio.us delicious design development diy drawing education electronics email extension facebook film filter firefox flash flickr folksonomy fonts food format:pdf fra funny gadgets game google gps graphics greasemonkey hack hacks happy_mutants hardware history howto html http humor identity image images inspiration internet iphone ipod itunes jaikutråd java javascript jonudell journalism journalistik juridik language law learning library linguistics linux liu london lysator mac machinelearning macosx maker map maps marketing math media medieteknik-student metadata microformats microsoft mobile movies mp3 music musik news opensource pdf perl photo photography php plugin podcast podcasting politics politik presentation privacy programming python radio raspberrypi rdf recommendation reference research review rss ruby rxmlparseerror science search searchengine security semanticweb software spam speech spotify språk sql standards statistics svenska sverige sverigesradio svt sweden syndication tagging tags technology technorati testing text timehop tips tools tutorial tv tv4 twitter typography usability usb valdemarsvik via:airbag-longboard via:boingboing via:del.icio.us via:del.icio.us/joeclark via:del.icio.us/mymarkup via:del.icio.us/staffanmalmgren via:lyskom via:slashdot via:unmediated video visualization web web2.0 webdesign webdev webstandards wiki wikipedia windows wordpress writing xml yahoo

Copy this bookmark: