Planet node.js
No Builds on May 21 2013

When we first started writing code at Getable I set a simple contraint; no builds.

Nobody is allowed to checkin a script that we run either before deployment or before checkin. As our application grew we were tempted more than once to solve a problem with a build step. Instead, we resisted and found what was ultimately a better solution.

Anything that would be a build step is written as normal code in node.js, without the writing to disc part. The routes we write for resources that would normally be the output of a build process we generate the first time they are requested and cache them in memory indefinitely which is easy since all of our routes use jaws.

We have two scripts to run the application, one for debugging and one for production. Debug sets a single global that we check in if statements to enable source maps. The debug script also watches the files in the working directory for changes and flushes the cache, obviating the need for "dynamic rebuilds."

And we "build" a lot of stuff this way. All the front-end resources use browserify, the css is built using rework, and a bunch of other js files (jQuery, engine.io, etc) are concatenated together, minified, and loaded before the rest of the application code.

Deploying is as simple as pushing to git and restarting a process. We check our dependencies in to git and try to avoid compiled dependencies.

Tests can run without any rebuilding and they use the same code as the production app but with sourcemaps enabled since they set the debug global.

That's it. Short post :) Simple ideas are simple, create constraints to keep them that way.

Rounded Corners 431 — Action in the inbox on May 20 2013

§ Fish shell goes 2.0.

§ Source Code Typography:

This sort of “code formatting” isn’t about correctness, it’s about aesthetics, all in aid of making the code easier to read. Typography doesn’t address what should be written but rather how it should be presented to make what was written as readable as possible.

§ How We Built eBay’s First Node.js Application.

§ What’s the shrewdest, smartest maneuver you’ve ever seen in business?.

§ Typographic Design Patterns And Current Practices (2013 Edition).

§ Using Node.js for OS X services.

§ Not dead yet. Email as an Interface, or as Gmail calls it, “actions in the inbox”.

§ I Don’t Want Your Fucking App.

Rounded Corners 430 — Free coffee, next exit on May 20 2013

§ Everything you wanted to know: JavaScript Regular Expression Enlightenment.

§ AWS Redshift: How Amazon Changed The Game.

Having vanilla SQL along with a familiar data model, and the added speed of a system built for these types of queries is probably justification enough to pick this over Hadoop+Hive if BI is what you’re after. The hosted/as-a-service aspect is just frosting on the cake at that point.

§ Free coffee, next exit:

No, your solution doesn’t have to be simple or obvious. But the story about what it accomplishes does.

§ Here’s Why I Don’t Read Your Resume:

What matters is the public persona that you have full control over. No disappointing job or office politics or bad manager is preventing you from contributing out in the world.

§ Looks like Web components are the new single-page app MVC frameworks. Here’s Polymer is a new type of library for the web, built on top of Web Components.

§ An interesting option for debugging Node.js and Chrome applications, from Adobe. Yes, I did just say that.

§ isaacs:

OH: “there are no side effects from knowing haskell”

Rounded Corners 429 — Tail wagging on May 20 2013

§ Yes, you can send server-side events to Google Analytics.

§ The real issue is not skeuomorphism: Tail wagging:

The reality is that skeuomorphism enshrines and validates a failure of vision, and even worse, a failure to capitalise on the medium. That’s a betrayal of a designer’s implicit duty of trust to make something that is the best, and to treat all other goals as secondary. I think that’s a responsibility that Ive feels very strongly. I doubt that anyone has ever had to remind him of it.

§ Everyone needs to have this at the top of their backlog — Dan Williams:

As a user, I would like to use the back button in my browser

§ Two Models of Computation: or, Why I’m Switching Trains:

I used to say at interviews that my best skill was holding the whole system in my head. Now I recognize that this was a crappy way to reason. It doesn’t scale, and I can’t pass that understanding on to others as a whole. The wiser goal is to eliminate a need to load everything into one head.

§ Insights from Hosain Rahman, Josh Reich, Heather Payne, & More at the 2013 99U Conference:

Don’t structure your team in a certain way just because everyone else does. At Simple, there are no designers, “just a bunch of people who make shit.”

§ Introduction to SEO and Content Indexing: beyond the meta keywords.

§ Peter Richardson:

These machine learning jokes write themselves. Eventually.

Node v0.10.7 (Stable) on May 17 2013

2013.05.17, Version 0.10.7 (Stable)

  • uv: upgrade to v0.10.7

  • npm: Upgrade to 1.2.21

  • crypto: Don't ignore verify encoding argument (isaacs)

  • buffer, crypto: fix default encoding regression (Ben Noordhuis)

  • timers: fix setInterval() assert (Ben Noordhuis)

Source Code: http://nodejs.org/dist/v0.10.7/node-v0.10.7.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.7/node-v0.10.7.pkg

Windows Installer: http://nodejs.org/dist/v0.10.7/node-v0.10.7-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.10.7/x64/node-v0.10.7-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.10.7/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.10.7/node-v0.10.7-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.10.7/node-v0.10.7-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.7/node-v0.10.7-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.7/node-v0.10.7-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.10.7/

Website: http://nodejs.org/docs/v0.10.7/

Documentation: http://nodejs.org/docs/v0.10.7/api/

Shasums:

95d64001ccd5a17c2c25f1ae4b0358b6131e7cb8  node-v0.10.7-darwin-x64.tar.gz
c34f991cc0752679002f763b2b3c8927babb08d8  node-v0.10.7-darwin-x86.tar.gz
673c287bcf671eced6aa94637b7c91e5149f4c56  node-v0.10.7-linux-x64.tar.gz
9f14d4f9add721148f0c15f093d3e6b1fa3820c9  node-v0.10.7-linux-x86.tar.gz
1fb7dc4195a9dd228039f5f7ca2cb9f7c35b105a  node-v0.10.7-sunos-x64.tar.gz
d84cd8afb50df44483b9dab0c65d5c81f07ac4a2  node-v0.10.7-sunos-x86.tar.gz
d7794a7da103d639fdec4b9e7236a5a0a4330297  node-v0.10.7-x86.msi
0524ad9268095c9ed435708268e6aad7968309f7  node-v0.10.7.pkg
f2bde505faf6ffed3084c8e550a9e6d4311f13d5  node-v0.10.7.tar.gz
5f50384766dd5435dba4989d95032452754150bf  node.exe
809f12f84c8495d101ce6ae443890e8533695ab0  node.exp
5a7355e2f75ae3f72deab75f4c9f93e4e5325584  node.lib
6e45953bd7488a4236c43fea93b05da0854158a7  node.pdb
fc5e3b2b1c74e53f1d214a9e2d5af30fe5247381  x64/node-v0.10.7-x64.msi
aa67bbd421f26b37fa09ce30d5e626106677853e  x64/node.exe
b289989a156d4d7055554962e6f00ba3e380aeea  x64/node.exp
0dbecc5007c9e28ad488d2058157f8360eaed958  x64/node.lib
e4b63472787a3db6a3d85237e8c7fb4d973f797b  x64/node.pdb
The Fiction Of Leadership on May 17 2013

Node core has one creator, one dictator, and a short list of committers. I am not the creator, the dictator, or on the committer list.

I'm the dictator of several tiny GitHub projects and a conference. I'm the CTO of a company with a small but amazing engineering team.

I make decisions, I have opinions, and I agree and disagree with many people about many things in public.

People listen to me because I've gained some amount of credibility with them over time. Other people don't listen to me and probably for similar if opposing reasons.

People who write node listen to me more than people who don't. I was around in the earliest days of the platform and have written node nearly every day since. Since node is fairly young experience is a scarce resource but every year that resource grows and people who were there early matter less.

I don't make decisions for people. Substack doesn't make decisions for people. Isaac doesn't make decisions for people, except in core. We all write code, we state our opinions, and people choose which to listen to. Isaac, Substack and I almost never all agree about any one thing.

There is no "node leadership" in the larger community in that there is nobody with the authority or even the credibility to end, remove or push out another project or person. There's no illuminati, no committee, and the effect of decisions made by core, which is a dictatorship, are nearly over.

And yet, people sometimes claim that the "node leadership" are stifling their ideas.

Several people are influencers in the node community. People are influenced by them because they have built up a fair amount of credibility for their ideas and solutions. Nearly all of those influencers disagree with underscore and async, the two most depended on libraries in the node ecosystem, which gives some insight in to the ability of so called leadership to stifle ideas or projects.

All of these influencers, especially me, are often wrong. I was very dismissive of underscore and async, which I now use regularly.

No matter what your idea is you will get no more than 50% of the node influencers to agree with it so it's best not to even try. The success of your idea does not hang on me, or Substack, or Isaac endorsing or using it. Most of what the influencers actually produce is dismissed by nearly all other influencers. We sometimes don't even agree that we all like node.js.

I wrote a post that encouraged people with certain ideas to pursue them outside of node's walls not because I disagree with those ideas but because I truly believe they will be more successful that way. Before coming to node I spent time in Python's alternate concurrency systems (Twisted, asyncore, stackless) and the reason why node has succeeded where they failed has a lot to do with node not trying to make an existing community happy and creating a new one instead.

One day someone will write something much better than node and I'll use it, but I don't believe that will happen inside of node's ecosystem because I've never seen it happen before. Grand new projects succeed when they build new communities not seek the approval of people already invested in something else.

If it makes me a negative person to suggest that people will have more success following the path of successful projects than failed ones then I guess I'm an asshole.

It is unlikely that I will stop having opinions, and expressing them, nor will other people in the fictitious "node leadership" but your success and the acceptance of your ideas isn't dependent on our approval and any great idea we didn't already think of we're likely to dismiss out of ignorance, arrogance, or both, so it's best to just ignore what we think and have fun building software.

No idea is served well by complaining about the opinions of people who disagree with it and nobody is going to be convinced your detractors are wrong by complaining about them saying it instead of refuting their ideas with your own.

Conférence le Cloud Computing près de chez vous on May 17 2013
Le Cloud Computing par Vincent RABAH

L'équipe de l'association GRANIT propose une conférence, le 28 Mai prochain au Musée des Transmissions à Cesson Sévigné à partir de 17h : Le Cloud près de chez vous. Nous y présenterons des solutions de Cloud Computing et de DataCenter.

PROGRAMME de la Vespérale Cloud Computing

Au cours de cette soirée les thèmes suivants seront présentés :

  • Papa Abdoulaye N’DIAYE, Responsable produit de la ligne de produit DataCenter TDF présentera : Les Datacenters de proximité et réseaux très haut débit en région, pour que vos entreprises restent connectées et proches de leurs clients,
  • Samuel Liard, Consultant Apptom Mobile & Cloud présentera : Le Cloud Computing dans la vraie vie ou comment votre entreprise peut profiter du Cloud concrètement,
  • Vincent Rabah, Responsable Technique Cloud Computing chez IPSIS présentera : B2GaaS dans le Cloud Orange Business Service, une offre cuisinée au beurre, pour l'international.

Pour rappel : les Vespérales sont GRATUITES pour les adhérents de GRANIT, 20 euros pour les non-adhérents.

Après la conférence, nous vous invitons à prendre un apéritif de l'amitié pour pouvoir échanger

Ceux qui le souhaitent peuvent également se joindre à nous pour dîner à la Brasserie "Chez Edgar" à Cesson (20 euros le repas)

Lien d'inscription pour la Vespérale

Lien d'inscription pour le repas

Nodestack, Round 2 on May 17 2013

Last October, Nodejitsu got together with our partners, Joyent, 10gen, Clock, and MongoLab, and brought you Nodestack. It was a one day online conference with the goal of examining the technology stack emerging around Node.js, and answering critical industry questions about adopting and maintaining this technology in your own company. The conference was a great success so we're back, and we're bringing you a series of smaller webinars to delve deeper into more specific technical matters.

Join us on Tuesday 9:00 AM - 10:30 AM PT for Nodestack: State of the Stack, where Charlie and Nuno will be holding it down with Isaac Schleuter and Aaron Heckman:

#

Charlie will be tag teaming with izs to discuss 0.10. Then Aaron from 10gen will be discussing Replica Sets & Text Search in MongoDB 2.4, and finally, Nuno will close out the session with a talk about running Production Node on SmartOS.

There are still a few tickets left. See you there!

An Update on Price Changes on May 16 2013

In our April 30th blog post, Nodejitsu announced price increases for customers running on Individual Plans on our hosting platform. You can find the new numbers and details of additional platform changes here. This post is a reminder that these changes are taking place, and a response to a few questions from our customers.

Initially we gave two weeks notice, and scheduled price changes for Wednesday May 15th. Many customers have felt this was not enough time. My team and I heard your feedback, and have pushed the changes out one more week. Wednesday May 22nd is now the day that our new prices will go into effect.

We also received questions regarding the ascending price of our plans. For example, some people have wondered why a Micro plan (1 drone) costs $9 whereas a Small plan (3 drones) costs $33 dollars. This is because our Micro plans (our lowest hosting tier), are being slightly subsidized. We want to continue encouraging experimentation on our PaaS, albeit at a higher price point than before.

In the same spirit of experimentation, Nodejitsu is upholding our commitment to offer a free drone, the equivalent of one Micro plan, to host an open source app to any node.js developer. You simply need to apply through opensource.jit.su.

Nodejitsu's success thus far is due entirely to the support of the node.js community. We understand these price changes have upset some of our customers, but these changes allow us to serve our community sustainably and continue contributing open source software to the node ecosystem. These changes also provide our small but talented team with an opportunity to improve our PaaS, dealing more quickly with production incidents and fixing underlying issues. The goal is to provide our customers with a better product. My team and I are excited to move forward towards a strong future for node, and we look forward to doing so with many members of the node community on our platform.

Artik Istersen Mars'a Uzay Mekigi Gonder on May 15 2013

Aradan 4 gun gecti, Reyhanli ile ilgili hicbir bilgi akisi yok. Yayin yasagini sadece bir kucuk muhalif televizyon kanali kirip halki konusturuyor, onlar da, halkin tamamen galeyana nasil geldigini gosteriyorlar.

Hayatla ilgi ve alakamiz bu kadar; kim nerede galeyana geliyor, kac kisi oluyor ve kac bina yikiliyor.

Bu insanlar hastaneye nasil gider, giderlerse sigortalari var mi, paralari var mi, o kadar evi yikilan insanin battaniyesi, cadiri var mi, ogrencilerin memleketlerine donebilecek harcliklari var mi, hicbir yerde, tek satir dahi bilgi yok.

Reyhanli halkina “nasilsiniz?” diyen dahi yok gozlemledigim kadariyla. Bahsettigim o tek videonun cekilis amaci da, ortasinda bir yerde gosterdikleri bir derginin reklami. Dergiyi gosterip konusma yapan adam tam bir ajan stereotipi.

Tam bir toplumsal pejmurdelik hali icindeyiz. Iletisim araclarina en ihtiyac duydugumuz zaman. Basit bir uygulama dahi oradaki insanlarin veya orayla iletisim kurmaya calisanlarin ihtiyaclarini karsilayabilir.

O kadar insanlarin arasindaki baglari guclendirdigini soyleyen Turkcell’in, diger GSM operatorlerinin, ve diger teknoloji sirketlerinin hic mi aklina birsey organize etmek gelmez?

Eksi Sozluk’un bir baslik acip, Reyhanli ve cevresinden gelen herkese yazma izni vermesi zor birsey midir?

Bir ulus bir felaket aninda ancak bu kadar duyarsizlasabilir.

Velakin sasirdim desem de yalan olur. Hayatla az bucuk baglanti kurmaya calisan herhangi birinin coktandir gozlemledigi sorunlarin iyice ayyuka cikisidir bu durum.

50 yil once bir sair soyle bir laf ediyor; “Biz sehirlere sanki medenilesmek icin degil birbirimizi bogazlamak icin geliyoruz.”

Durumu en iyi aciklayan sey budur. Bir turlu medenilesemedigimiz icin dogru duzgun iletisim araclarimiz yok. Insanlar koca bir felaketin ardindan yapayalniz birakilmis, ve kucuk bir caba dahi sarfetmiyoruz.

Bir suru Facebook ve Twitter klonumuz, e-ticaret ve arkadaslik sitelerimiz, “hot” deyince tek sira halinde dizilip bir kucuk cesaret ornegi dahi gosteremeyen onlarca online haber sitemiz var.

Kendini yeni medyanin oncusu sayan Dipnot TV’de bile Reyhanli’nin haberini gecelim, bir foto galerisi dahi yok.

Hani artik muhabire ihtiyac yoktu? Hani artik interneti olan herkes haber muhabiriydi?

Derhal medeniyetlesmeden, yazilim gelistirmekten, ve sosyal medyadan ne anladigimizi gozden gecirmeliyiz.

Artik ister startup’inizla dunya rekorlari kirin, ister Mars’a uzay mekigi gonderin. Sayet akli basinda torunlarimiz olursa bugunu yazip cizen, bu duyarsiz, pejmurdelikten baska birsey olmayan toplumsal halimizi bizim bugun gordugumuz travmatik, blur haliyle degil tam oldugu gibi, en gercek haliyle gorecekler ve yazacaklar.

Dunya dondugu surece gercegi saklayamaya calisanlar, kendilerine boyun egen ve canak tutanlarla beraber, er veya gec lanetlenir.

Bugun yazilim yapanlara dusen gorev ise medeniyetin onune cikan problemler icin cozum uretmektir. Bir ipin ucundan tutmanin vakti geldi.

Tum bu karamsar tablo hakkindaki fikirlerimizi ortaya koymamiz ve ne yapabilecegimiz hakkinda kolektif bir kulturle sonuca ulastigimiz tartismalar uretmemiz gerekiyor. Yazilimci olarak elimizden ne gelir, ne gibi problemleri nasil cozeriz, en azindan herkesin katilabildigi yazismalar yapabiliriz bu konuda.

Su an kisisel olarak attigim adim Ana Kaynak projesinin bir sonraki surumunu gelistirmeye baslamak oldu. Bunun hakkinda bilgi almak isterseniz bana ulasin. Kisaca ozetlemek gerekirse, Ana Kaynak Reyhanli veya herhangi bir diger konu basliginda gercek zamanli bilgi akisi saglayan portallari bir araya getiren platform olmayi hedefliyor.