Shared posts

17 Aug 13:47

Commas for Developers

Consider this sentence:

I went to the moon, it has low gravity.

Or this one:

We drove 30 miles, the car ran out of gas.

If those look okay to you, then read on. (Otherwise, scram. You’ve got work to do.)

If your writing — in tweets and especially on your blog and product pages — is full of misspellings and improper capitalization and other errors, I will lose trust in you and your product. If you’re careless with language, are you also careless with software development?

There’s a simple rule you’re missing: you can’t join independent clauses with a comma.

The “independent clauses” part sounds all grammar-police-y. I can hear your eyes rolling. (They sound like toothpicks.) So I’ll give you an easier way to remember this rule: you can’t join two separate sentences with a comma.

In the example sentences above, you can almost be forgiven for thinking that they’re not independent clauses. (Almost.) But they are independent. The easy way to test is just by replacing the comma with a period. You’d get:

I went to the moon. It has low gravity.

We drove 30 miles. The car ran out of gas.

You might also rewrite them in other ways:

I went to the moon, which has low gravity.

We drove 30 miles and the car ran out of gas.

You have an array of options: semicolons, colons, dashes, and words such as “and” and “but.” You can turn independent clauses into dependent clauses. But you can’t jam two sentences together with a comma.

When you do, my opinion of and trust in your work goes down.

This is not, by the way, some prissy thing about proper manners. Fuck that shit. I’m not trying to squash your voice. This is about quality and trust.

(For more information, see Comma splice on Wikipedia.)

14 Aug 11:18

A Brief History of Plural Word…S [Video]

by Geeks are Sexy

All it takes is a simple S to make most English words plural. But it hasn’t always worked that way (and there are, of course, exceptions). John McWhorter looks back to the good old days when English was newly split from German — and books, names and eggs were beek, namen and eggru!

[TEDeducation]

13 Jul 17:32

Why Mobile Web Apps Are Slow

by John Gruber
Dtsomp

Awesome analysis with very interesting points.

Drew Crawford:

So what I’m going to do in this post is try to bring some actual evidence to bear on the problem, instead of just doing the shouting match thing. You’ll see benchmarks, you’ll hear from experts, you’ll even read honest-to-God journal papers on point. There are — and this is not a joke — over 100 citations in this blog post. I’m not going to guarantee that this article will convince you, nor even that absolutely everything in here is totally correct — it’s impossible to do in an article this size — but I can guarantee this is the most complete and comprehensive treatment of the idea that many iOS developers have — that mobile web apps are slow and will continue to be slow for the foreseeable future.

Remarkably detailed analysis. Must-read piece. The comments are rather fascinating as well — denial runs strong among the web app true believers.

04 Jul 17:26

Puppetizing the workstations

by jhaals

Spotify is a very frequent user of Puppet. We have given many talks and presentations on the subject but these have all been based on systems in our production environment. None have discussed how we use Puppet on internal clients (desktop machines).

In fact the Puppet community itself hasn’t paid much attention to the use of puppet for clients. Puppetlabs hosted a lunch table about “Puppet for Mac” during last year’s PuppetConf. The table was full of people interested in bringing puppet to the desktop. One thing I noticed during the conversation was that very few were actually using puppet on the desktop.

We all face the same problems when managing a fleet of workstations. An open conversation on how common problems can be solved will benefit the community. This is our experience on puppetizing our workstations.

Facts

We launched Puppet for Mac OS X in late 2010 and started puppetizing Windows machines in 2012. Puppet didn’t do much more than installing a few applications in the beginning, but we quickly realized it can do so much more! Our setup today encompass over 1500 nodes, thirty modules which configure applications, printers, network and some security measures.

Every new machine gets pre installed with puppet using DeployStudio. The user only needs to run through the initial setup guide.

We schedule a run of our puppet script every fifteen minutes. The script takes care of node naming (username-serialnumber) and potential certificate issues due to reinstalling a machine with the same certname.

Bandwidth

Spotify is available in twenty eight countries, each with employees requiring software. Some software/updates we supply with puppet are fairly heavy and the bandwidth to the office can be extremely poor. So we had to come up with a solution!

Since we already have some shiny Mac Minis acting as DeployStudio replicas at the different offices we figured, why not use them as a local cache? I spent a day puppetizing apache on these machines to use mod_cache to cache our software. Node’s would then fetch software from the local network repository instead from of our master in Sweden. Everything handled by puppet based on the node’s IP address. This managed to speed up some puppet runs by 1000%

Requesting Software

Spotify loves automation and so do the people in IT. We don’t want to receive a request for Microsoft Office by email and then manually tag nodes with the Office class to install it. Instead we created a self-tagging website. It takes the computer’s certname and opens a web browser that allows the user to select the software they want. Let the user do the tagging!

software

System information

System information is great for troubleshooting workstations and everyone loves technology but that doesn’t imply you know how to determine your vlan or MAC address. It’s hard to navigate non-tech people to run $ facter in the terminal.
A Systeminfo.app runs facter for the user, all they need to do is to copy and paste that information to the support technician.

Dekstop Notifications

Some updates might cause problems to the user experience if they are performed whilst the user is working in the application. Some applications even restart without notice when performing a background update. I tried to improve this by adding desktop notifications via puppet. It could be a notification about pending software updates or a notification about cake in the cafeteria!

notification_example 

The future

Each team should have a puppetized development environment. Why should newcomers spend days configuring something that everyone has done before?

We’ve started to use Boxen in a smaller scale. A masterless puppet setup with lots of custom providers and apps to automate workstations. Thanks to Boxen I managed to automate everything (except ssh keys and Login.keychain). Let’s reinstall clients on a weekly basis!

The truth is that workstations can be both hard and time consuming to automate. Every software manufacturer have their own way of updating and managing their applications. We can’t stop people from using the best tools because they’re hard to automate so we need to be the “puppeteers” that make it work!

We’re constantly on the lookout for skilled engineers. If you are passionate and understand the needs for automation you should really come to Spotify. We’re hiring!

IT Technician Stockholm
IT Technician NYC
SRE Engineer

30 Jun 15:21

Explaining the chain of events that led to the outage

by sharhalakis

image by @jesterorb

28 Jun 11:42

Και άλλο κραξιματικό - Ταξιδωτικό

by noreply@blogger.com (Prophet Estarian)
27 Jun 20:45

Instant Server

Instant Server:

Click the button to get a virtual private server.

Specs? Ubuntu 13.04, 64-bit, 614 MiB of RAM, 8 GiB storage. It’s an ec2 micro instance.

The server is destroyed after 35 minutes (unless you pay to keep it running).

27 Jun 09:44

These road-based power lines charge electric vehicles

One solution often seen with electric buses , and sometimes with electric trucks, is to power them via attachment to overhead power lines.

16 Jun 10:30

2 cents

by noreply@blogger.com (Zaphod)
Προαπαιτούμενη ύλη: http://www.techiechan.com/?p=1996
Αποδειχθηκε πως αυτο που μετράει πλέον ειναι το μονοπώλιο στην ενημέρωση. Ο ΕΛληνας πολίτης δεν ειναι κάποιος μέγιστος διαφωτιστής. Ενα γομαρι ειναι που αναπαράγει ότι του λέει η τηλεόραση. Γι αυτο και οι κυβερνώντες κατάφεραν να τσακίσουν (αν και με προσπάθεια) τον Δεκέμβρη, το Σύνταγμα, τόσες απεργίες (με έσχατη αυτή των καθηγητών), το θέμα με τις Σκουριές το παλεύουν ακόμη κτλ.

Εδω και μερικά χρόνια (ειδικά απο πέρισι) ζούμε ενα ιδιοτυπο 1984 αλά Όργουελ. Τα πράγματα γίνοναι σταθερά χειρότερα (ναι ρε, και οι αριθμοι ειναι χειρότεροι: η ανεργία ανεβαίνει, το μέσο (και μεσαίο) εισόδημα πέφτει, το ΑΕΠ πέφτει, το χρέος δεν πέφτει, δολοφονικές ομάδες φασιστών σουλατσάρουν οργανωμένα στο δρόμο ανενόχλητες) αλλά η ρητορεία σκίζει απο αισιοδοξία. Την πήραμε την δόση, πρεσάρισμα για την νέα δόση, τα ρετιρέ των 1200 ευρώ, πρωτογενές πλεόνασμα (ε-ε-ε-ερχεται!;) , εξοδος στις αγορες οπου να ναι, succes story, greecovery και άλλες πίπες. Η αλήθεια ειναι όμως πως:

"Η οικονομία πάει σκατά. Ελπίζω το -5,6% στην ανάπτυξη να σας έπεισε για το πόσο αστείο είναι το success story. Ο προυπολογισμός πηγαίνει ακόμα πιο σκατά και απλά το κρύβουν στην αρχή του χρόνου, όπως έκαναν πάντα άλλωστε. Θυμάστε πέρσι που χρωστούσαν κάτι μηνιάτικα στους εργαζόμενους της εθελ και τους πλήρωσαν 1ιούλη για να μη γραφτούν στα έξοδα πρώτου εξαμήνου? Μιλάμε για τέτοια μαγικά.

Και επειδή υπάρχουν ακόμα κάποιοι που φαντασιώνονται πρωτογενή πλεονάσματα, όταν λέμε ο προϋπολογισμός πηγαίνει σκατά, εννοούμε πολύ πολύ σκατά.

Οι ιδιωτικοποιήσεις πηγαίνουν ακόμα πιο σκατά κι αυτό φάνηκε από το πως οι θεοί πούλησαν τον οπαπ στο μελισσανίδη μόλις προς 2 φορές τα κέρδη του, ένα επίτευγμα που αν δεν στείλει στη φυλακή αυτούς που το έκαναν, θα είναι μεγάλη ξεφτίλα για οποιαδήποτε επόμενη κυβέρνηση. Διότι δεν μιλάμε για επιχείρηση, αλλά για μηχανή που κόβει χρήμα. Το ίδιο συμβαίνει και με το πανάκριβο μονοπώλιο του φυσικού αερίου. Η αποτυχία πώλησης του οποίου ξεκίνησε το σημερινό ντόμινο."

Πέραν της πλάκας. Αν δεν είχαμε να κάνουμε με μια μίξη ανίκανων με επικίνδυνα ηλίθιων για κυβέρνηση θα μπορούσε θεωρητικά η τρικομματική να δουλέψει.διοτι μεγάλο μέρος του προβλήματος ήταν η άγνοια κινδύνου που είχαν οι μονοκομματικές κυβερνήσεις μέχρι πρότινος. Λογικά ο ένας θα έβαζε φρένο στην μαλακία του άλλου και το πράγμα θα πήγαινε οκ και συμβιβαστηκά χωρίς ακρότητες..

Αυτα όμως χωρίς να υπολογίσουμε τον Αντωνάκη που θυμήθηκε ένδοξες εποχές όπου οι δολοφονίες βαφτίζονταν τροχαία ατυχήματα, οι δοσίλογοι πατριώτες και η Βίσση μουσικός. Εχοντας πιάσει τον χοντρό από τα **** με την Λίστα Λαγκάρντ, έχοντας τους ΔΗΜΑΡιτες τοσο χαρουμενους που διοριζαν και αυτοι στελεχη ως κυβερνητικό προσωπικό, μα τόσο χαρούμενους που θα έλεγαν παρών σχεδόν σε οτιδήποτε, και έχοντας λάβει το χρίσμα απο τα εξωτερικά αποφάσισε να δειξει πως ...κυβερνάνε με πυγμή. Κατέντησε να μας κυβερνά Ερντογανικά μια ΝΔ του βία 27%. ο Ερτνογάν είχε και ενα 50αρι προίκα παρεμπιπτόντως.

Τελος πάντων ξεφεύγουμε. Αποδείχθηκε πως το Σύνταγμα έφαγε το δακρυγόνο (και το ξύλο) της αρκουδας, οι χαλυβουργοι τον ήπιαν, οι καθηγητες δαιμονοποιήθηκαν, οι κάτοικοι στις Σκουριές έγιναν όργανα του ΣΥΡΙΖΑ και άλλα πολλά που βαριέμαι να γράψω. Ο λόγος που η καταστολή επιβραβεύτηκε εκλογικά ήταν πως ο μέσος συντηρητικούλης Ελληνας δεν έμαθε ποτέ την μεριά τους, η ενημέρωση στα μεγάλα κανάλια (μην κοροϊδευομαστε, κανεις δεν διαβάζει εφημερίδες, για τα dvd τις παίρνουν) ήταν μονομερής και κατευθυνόμενη. Τα ιδιωτικά κανάλια εχουν αποδείξει πλέον πως είναι ανάξια εμπιστοσύνης. Θες γιατί τους έχουν πιάσει απο τα **** με τις άδειες, θες τα διαπλεκόμενα, θες που τα αφεντικά τους είναι απλα φιλοι (λεμε τωρα) της εκάστοτε κυβέρνησης, τελος πάντων δεν είναι τυχαίο που οι πιο πολλοι νεοι Ελληνες ενημερώνονταν απο το ιντερνετ (με όλα τα μειονεκτήματα που αυτό μπορεί να έχει).

Αυτο που φυσάνε και δεν κρυώνει με καμία παναγία στο Μαξίμου ειναι πως έχασαν το μονοπώλιο της ενημέρωσης. Η παντελώς πανηλίθια ιδέα κλεισίματος της ΕΡΤ για 3 μήνες εύλογα έκανε όχι μόνο και τους γέρους, και τους παπάδες (τον κορμό δηλ της ΝΔΣΟΚ που είχε στηρίξει την καταστολή) κτλ να τσαντιστούν, την Μέρκελ να τρομάξει και μερικούς να ελπίσουν πως ένας γύρος ακόμα μπορεί να παίξει και με όχι βέβαια αρνητικό αποτέλεσμα όπως προηγουμένως μιας και πλεον η ενημέρωση μπορούσε να διαχειριστεί.

Το κόλπο θα δούλευε οπως και στο Σύνταγμα στο μυαλο του Αντώνη. Δηλαδή αν έκλεινε η ΕΡΤ χωρις παρατράγουδα θα ήμασταν (λεμε τώρα) ΟΚ. Θα πήγαινε και για διακοπές καβάλα στ΄άλογο. Αν γινότανε καμια τύπου κατάληψη θα είχαμε το mega και το skai ρεζέρβα για το κατάλληλο επικοινωνιακό blitz. Οταν θα ήταν ώριμες οι συνθήκες (μετά απο 1-2 μέρες κινδυνολογία απο Πρετεντέρη κτλ για λεηλασία δημοσίου, μπάχαλους, βρωμιάρηδες, τεμπέληδες και όλα τα σχετικά) θα έμπαιναν τα ΜΑΤ και θα καθάριζαν. Οι βαρέως δαρμενοι καταληψίες θα δικάζονταν ως μπάχαλοι, το κτίριο της ΕΡΤ θα γινότανε μπουρδέλο και ο Αντώνης θα πήγαινε και πάλι για εκλογές καβάλα στο άλογο.

Το πόσο έξυπνο και πόσο δούλεψε αυτό το σχέδιο, μάλλον το είδατε. Ο κόσμος στην ΕΡΤ πυκνώνει., οι αστυνομικοί στας επαρχίας δεν έχουν και τόση όρεξη να τρέχουν 24/7 να φυλάνε τις κεραίες ουτε να δείρουν τους συμπολίτες τους που τις φυλάνε, οι γιαγιάδες που δεν βλέπουν εκκλησία πρωινιάτικα ρίχνουν χριστοπαναγίες. Μια ενδεχόμενη επίθεση στην ΕΡΤ τώρα σε live μετάδοση θα είχε χειρότερο αντίκτυπο απ΄όσο μπορείτε να φανταστείτε. Ασε που (η αξιωματική αντιπολίτευση αν δεν το θυμάστε) ο ΣΥΡΙΖΑ έχει στελέχη 24/7 εκει (οπως και το ΚΚΕ, οι Καμμένοι και πολλοί άλλοι).

Στην παρούσα φάση αυτό δεν μπορούσε να γίνει. Εδώ μια παρένθεση. Μονο ενας ηλιθιος θα έλεγε πως η ΕΡΤ ηταν αντικυβερνητική. Αυτο που θέλανε δεν ηταν μια φιλοκυβερνητική ΕΡΤ. Ηταν η απολυτη υποταγη. Ηταν η καθαρη υπαγόρευση των ειδήσεων. Ηταν το "οταν λέω βάτραχος θα πηδάς". Αυτο ήταν το πρόβλημα. Ηταν η μανιωδης απαιτηση όχι απλα να μην διαφωνείς ποτέ αλλά να συμφωνείς και ενθουσιωδώς. Ο μη ενθουσιώδης συμφωνών είναι κρυφοσιριζαίος στα μάτια τους. Και δεν χρειάζεται πολύ φιλοσοφία. Θυμηθείτε:




Τις τελευταίες μέρες λοιπον με την απεργία της η ΕΣΗΕΑ τους έβαλε τα 2 πόδια σε ένα παπούτσι. Οχι προφανώς γιατι τους....φίμωσε, κανεις δεν είπε στον Αδωνι να σκάσει, αλλά διότι εκλεισε το μονοπώλιο επικοινωνιακου blitz που είχαν κατα νου. Και χωρίς φροντιστήριο απο τον Πρετεντέρη ούτε δαιμονοποιηση του αντιπάλου μπορεί να γίνει., ούτε η καταστολή να πουληθεί στις φιλελεύθερες γιαγιάδες.

Αυτο ειναι το πρόβλημα του Άδωνι και όχι προφανώς η φίμωση του, διοτι τέτοια δεν υπήρξε. Κανεις δεν του είπε (οπως λενε αυτοι ας πουμε) να σταματήσει να μιλάει. Ακομα και στην υπο κατάληψη ΝΕΤ έγινε δεκτός. Κανεις δεν του απαγορευσε κατι. Απλα οι δημοσιογραοι εκαναν απεργια, κατι λογικο αν σκεφτεις πως ξαφνικα ο μισος κλάδος έμενε χωρίς δουλειά. Αλλα δεν μπορούσε να έχει το μονοπώλιο, και όταν μπορεσε να βγει σε πανελλήνια εμβελεια για να πει κάτι, οι δημοσιογράφοι δεν ηταν πλεον υποχρεωμένοι να τον ανέχονται αγόγγυστα

Έχει τα μούτρα η ΕΣΗΕΑ που απαγορεύει να ακουστεί η φωνή της ΝΔ, να μιλά για φασιστικές πρακτικές. Οι άνθρωποι είναι Σταλινικοί στην ουσία.
— Άδωνις Γεωργιάδης (@AdonisGeorgiadi) June 15, 2013

Ο φιμωμένος ακουγεται. Κοιτα κατι πράγματα. Απλα δεν τον αφηνουν να προσβαλει αναπάντητα

(το γέλιο που έπεσε με φωτογραφίες του Άδωνι ως τζάνκι της τιβις ή με τις ερωτήσεις αν το blue sky που εμφανίζεται έχει άδεια, δεν περιγράφεται)

Τελος πάντων, για να καταλάβετε τι σημαίνει αντικειμενική ενημέρωση για κάποιους αρκεί μια εικόνα:



Στον πανικό τους αρχισαν να πετάνε απο μόνοι τους τα χαζά που κανονικά θα έλεγε ο καθε Πρετεντέρης και υπολόγιζαν σε διάφορους πρόθυμους να τα ανακινήσουν. Δυστυχώς η κυρα Μαρία στο χωριό δεν πιάνει Blue Sky, δεν έχει ιντερνέτι και κυρίως είτε βλέπει μαύρο αντι για Κυριακάτικη λειτουργία είτε πειρατική εκπομπή
Αυτες τις μέρες άκουσα πως:
* Εκλεισε η Μεσογείων (παπάρια)
* Εχει γινει τιγκα στο σκουπίδι το ραδιομέγαρο (παπάρια)
* Εχουν κλέψει το υλικο απο το κτίριο (χοντρά παπάρια)
* Τωρα κυκλοφορει πως η ΕΡΤ ειναι φερέφωνο του ΣΥΡΙΖΑ. Παπάρια. Ξεχνάμε όμως πως ο ΣΥΡΙΖΑ πλεον ειναι αξιωματική αντιπολίτευση που στηρίζει τους απολυμένους. Δεν είναι μια γκρουπα της φωτιάς.
* Το μεγάλο πνευμα τις δημοκρατίας, ο Μουρούτης ντε, θυμήθηκε μέχρι και τον Δήμαρχο Αθηναίων να εγκαλέσει διοτι δεν μάζεψε τις αφήσες του ....Συριζα. Επαναλαμβάνω. Ο συμβουλος του πρωθυπουργου ζήτησε απο τον Δημαρχο Αθηναιων να κατεβάσει τις αφισες της αξιωματικής αντιπολίτευσης.

Στην παρούσα φάση λοιπόν, που η κυβέρνηση ξεφτυλίζεται πανευρωπαϊκως και μετά μανίας, που μας φτύνουν ολούθε και ο Άδωνις καταγγέλει το δελτίο καιρού, ειναι πιθανή μια επίθεση στην ΕΡΤ που θα "επαναφερει την ταξη"; Θεωρω πως ναι, αλλα σε 2 παραλλαγές:

* Ειτε θα ερθει το αναμενομενο blitz με σπασιμο της απεργιας απο τα καναλια και 2-3 μέρες προπόνησης
* Είτε ο Σαμαρας θα γίνει Ερντογάν και θα μας κάνει χειρότερο μπουρδέλο απ ότι ηδη είμαστε


Α, αιτιασεις για την διεφθαρμενη ΕΡΤ που κτλ κτλ δεν ειναι του θέματος (πηγαίνετε στο προηγούμενο). Το παρον ασχολείται με την γνώμη της κυρα Μαρίας , την αποτυχία χειρισμου πραγμάτων απο την κυβέρνηση και με το γιατί δεν την έχουν πέσει τα ΜΑΤ στην ΕΡΤ ακόμα
14 Jun 11:32

Jackie Chan reccounts getting hit by Bruce Lee while filming 'Enter the Dragon'

by biotv
In George Stroumboulopoulos Tonight's Best Story Ever series, on CBC, martial artist and actor Jackie Chan remembers the best experience of his life, when Bruce Lee accidentally hit him in the head with a stick, during the making of Enter the Dragon.


via
12 Jun 15:28

Game of Thrones - where you've seen them before

by biotv
Imgur user Mattie 432 lists a previous role for each of the actors from HBO's Game of Thrones.




View the rest
via
10 Jun 10:45

A look at Japan's underground bicycle parking system

by biotv
Danny Choo of Culture Japan shows us how the famous Japanese underground bicycle parking system works.


via
04 Jun 20:31

Google Currency Conversion Tips

by Alex Chitu
Here are some tips and tricks that will help you use Google Search as a currency converter. It's an old Google feature that has been updated and it's now more convenient to use and offers more information.

Note: all the Google searches from this post are enclosed by brackets. For example, you should type usd= when you see [usd=]. If you use google.com instead of your country's Google domain, replace "your country's currency" with "US dollar".

1. The quickest way to convert almost any currency to your country's currency is to search for the currency code, followed by "=". For example [gbp=] for British pounds or [czk=] for Czech koruna. You can also search for [100 gbp], [50 czk], so "=" is no longer necessary when you add a number.


2. The quickest way to convert US dollars to euros is to search for [$], but you can also search for [usd=]. Search for [$100], [100$] or [100 usd] to convert 100 US dollars to euros.


3. The quickest way to convert a currency to any other currency is to type the two currency codes. For example, you can search for [gbpeur], [gbp eur] or [gbp to eur] to convert British pounds to euros. This also works when you search for [100 gbpeur], [100 gbp eur] or [100 gbp to eur].


4. To convert multiple amounts of money in different currencies to your country's currency, use a query like [50 gbp + 100 czk + 200 sek]. To convert them to another currency, use a query like [50 gbp + 100 czk + 200 sek = eur].

5. If you don't know currency codes, your queries will be a bit longer, but you can perform any conversion using a single query. Some examples:

[sweden to euro]
[50 sweden = euro]
[sweden to dollar]
[100 sweden = $]
[swedish to japanese currency]
[sweden to japan currency]
[swedish to indian money]
[sweden to india money]

6. You can use multiple currencies when performing simple arithmetical calculations even if you don't know currency codes. For example, search for [50 uk currency + 100 czech money + 200 dollars=euro].


7. After performing any simple currency conversion, Google shows an interactive widget that lets you change the amount of money or the currencies. You can click the currency name to select a different currency from a long list.


8. How to quickly swap the two currencies? Let's assume you search for [1 yen to yuan] and you realize that you need to convert the Chinese yuan to the Japanese yen. Click the "Japanese yen" drop-down and select "Chinese yuan" from the list. Google places the currencies you use at the top of the list.


9. The shortest query that shows Google's currency calculator is [$], but you can also search for [currency], [currency converter], [currency calculator].

10. You can also use currency names instead of codes and country names. For example, search for [lira to real], [1000 forint to pound], [500 yuan to canadian dollar], [500 peso to ringgit]. By default, peso=Mexican peso, crown=Czech koruna, dollar=US dollar, pound=British pound sterling.

11. Google's currency conversions aren't very precise. By default, Google only shows results with 2-digit precision and that's not always enough. If you search for [algerian dinar in eur], Google shows that "1 Algerian Dinar equals 0.01 Euro". To get a precise result, use a simple trick that forces Google to use the old interface: divide by 1 and search for [1 algerian dinar in eur/1]. The new result: 1 Algerian dinar = 0.00964425063 Euros.

04 Jun 19:50

Incident Management at Spotify

by David Poblador i Garcia

A few weeks ago Spotify had one of the biggest incidents in the last few years. It caused a major outage for a big chunk of our European users. For a few hours the music playback experience was damaged. Our users would see high latency when playing music and some of them were unable to log in.

At Spotify we take these types of incidents seriously. Our mission when dealing with outages is to avoid having the same incident twice. We want to be able to learn something new with each incident. However, sometimes we fail.

First symptoms: two months before the outage

Two months before the big outage we had an incident connected with one of our smallest backend services: Popcount. Popcount (this is our internal name) is the service that takes care of storing the list of subscribers for each of our more than 1 billion playlists.

All our backend services and clients that communicate with Popcount are designed to fail fast in the event that the service is not available or too slow. Failing fast is key to scaling. We try to build our systems in such a way that partial failures are handled gracefully. For instance, it is better not to display the list of playlist subscribers for a while than to delay showing playlist data for a long time, completely damaging the user experience.

However, there was a piece of legacy code in our desktop client that did not honor that requirement. That particular code caused our clients to retry fetching Popcount information for every request that timed out. To make matters worse, the legacy implementation had no backoff logic at all. This put a lot of pressure on the Popcount service and made it reach a state where servers were overwhelmed in such a way that recovery was almost impossible: the slower the service became, the more requests it started receiving. Turning it off wouldn’t have helped either: the amount of pending requests coming from our clients was too big to be served without damaging the service again.

The Popcount developers quickly deployed a fix: in the event that the service became slow, we would fast fail and return an empty list of subscribers. With that fix in place, our Popcount system started making forward progress and very soon our clients went back to normal.

Remediations: why are they important?

For every incident we hold a post-mortem meeting. The goal of this meeting is producing a list of remediations that we need to put in place in order to prevent that incident from happening again and assign an urgency to each of them. We invite all the teams that are connected with a system involved in the given incident. If the severity of an incident is minor or it is connected with a very isolated part of our infrastructure, the post-mortem meetings are limited to a few key engineers. Post-mortem meetings are not about blame, they are about improving our systems and our processes!

One of the remediations for the Popcount incident was fixing the faulty retry behavior in our desktop client when fetching data from the Popcount system.

Distributed systems are hard, prioritizing bugs and assigning the right urgency is often non-obvious. There are many challenges we face when we release software to millions of users, and sometimes assessing the relative urgency of a fix is not easy. In this particular case, we focussed in the mitigations (fast fail behavior in Popcount) instead of in the root cause (the client bug).

We did not set the proper priority for the bugfix, and, guess what…

The night of April 27th

It was a rainy Saturday night in Stockholm. Some of our engineers were online on IRC, and discovered that Popcount was unhealthy again. We thought the fast fail logic we introduced in Popcount a few weeks before would prevent Popcount from dying again.

Request delay for Popcount in one of our Datacenters

Request delay for Popcount in one of our Datacenters

What happened? Why was Popcount being hammered with requests again? A few days earlier we started rolling out our new cool Discovery feature to a percentage of our users. We had unknowingly added a dependency between our Discovery service (Bartender is our internal name) and Popcount. Some of the content we display in our discovery page display playlist counts, hence the Bartender service was fetching data directly from Popcount. The fast fail logic we introduced before did not help much: the service was getting more requests than it could handle. We realized too late that Popcount was underprovisioned.

Our Site Reliability and Infrastructure teams thought that removing that dependency via a hotfix would solve the problem. But we were wrong.

By the time we applied the fix, the Popcount request queues in our Accesspoints (the servers our clients connect to) had built up and some excessive logging in the Accesspoints making them die like flies. We intentionally had added more verbose logging of errors for debugging purposes, and we managed to shoot ourselves in the foot with it. Their I/O responsiveness was nonexistent and the wrong retry behavior in our desktop clients was making things worse and worse. Saturday night is usually a very busy night for our servers, and that did not help either.

By that time our service was notably degraded and we were in a situation where most of our Accesspoints were unreachable or responding extremely slowly. It was time for drastic measures.

We needed to do something to allow them to start breathing and the only possible solution was firewalling them off. Some of them were so unresponsive that we had to perform a hard reset before applying the necessary firewall rules. A few minutes later, things were responsive again. We removed the firewall blocks and the service started working smoothly as usual.

Why did that help? Well, our clients have a nice retry behavior when they are disconnected from the Accesspoints. They have an exponential backoff logic and offlining those servers for a while triggered the backoff that helped us make forward progress.

Lessons learned

  • We should have prioritized fixing the backoff bug in the client after the first Popcount incident, we did not assign the right severity. We thought having the fast fail mechanism in place would be enough to keep the service up in case we experienced high latencies.
  • Logging is nice, but logging too much can be damaging when many error messages or warnings are produced.
  • We should spend more time testing extreme cases (high latency, low bandwidth) for our backend systems

Sometimes, things you do to try to understand problems better (adding extra logging, to name one) can really come back to bite you.

Remediations in place after the second incident

After the outage (infamously known as OPS-6000 in our incident tracking system), we held a post-mortem meeting where we invited the entire Technology and Product departments. Many people had the opportunity to attend a post-mortem meeting for the first time.

We came up with a list of remediations, all of them are in place now. Some of them:

  • All the data served by our discovery service should be statically cached with a TTL.
  • Fix the faulty retry behavior for Popcount in our desktop client.
  • Move valuable Accesspoint log messages into a separate log. In case we hit a similar IO problem in the future, we can easily discard non important messages. We also introduced rate limiting for those messages.
  • Implement some syslog fixes to prevent too frequent flushes to disk.

Educating the company on why and how we failed is just as important as the fixes (it was even a remediation for this incident).

One more thing: we are hiring! If you are excited about helping us work on scalability challenges like this one, we have open positions in our Site Reliability Engineering and Infrastructure departments:

You can also check out our open positions in many other departments.

31 May 19:16

Levinux

Levinux:

Levinux (download ~18 MB) is a tiny virtual Linux server that runs from USB or Dropbox with a double-click (no install) from the desktop of a Mac, Windows or Linux PC—making it the perfect learning environment, and a great way to run & keep your code safe for life! Think of it as an introduction to old-skool “short stack” development—more relevant now then ever as Linux/Unix gets embedded into everything.

Via TinyApps

25 May 18:12

I was struck by lightning yesterday—and boy am I sore

by Jason Marlin

(credit: Aurich Lawson / Derek Riggs)

Around Memorial Day weekend four years ago, Ars Technical Director Jason Marlin was simply minding his own business in a new home office, enjoying Carolina thunderstorms after recently moving to Asheville, North Carolina. He'll never forget what happened next. Since our pals at Mosaic recently dug deep into the aftermath of lightning strikes, we thought we'd share Jason's first-person account once more. This story from our archives first ran in May 2013.

"Sir, look at me—did you have any shoes on?" asked the emergency medical tech. "Were you wearing shoes when you were struck?"

"Huh?" I wondered, a little dazed. "What's with the shoe obsession?"

Read 12 remaining paragraphs | Comments

25 May 18:04

3D-printed tracheal splint supports baby's airways, saves life

by Nicole Lee

3Dprinted tracheal splint supports baby's airways, saves life

They say necessity is the mother of invention, and nowhere was it more necessary than in the case of Kaiba Gionfriddo's life. The infant was born with a condition called tracheobronchomalacia that results in weakened support for the trachea, and his fate seemed all but decided until researchers at the University of Michigan proffered an unlikely solution: a 3D-printed tracheal splint. The splint was custom-made just for the child and designed to hold the trachea in place as the bronchus builds around it, giving it strength. In two to three years, the trachea will be able to stand on its own, and the polycaprolactone biomaterial used to create the splint will be absorbed into the body. After a successful operation, Kaiba was taken off ventilator support -- and he hasn't needed it since. From 3D-printed skull prosthetics to this recent innovation, it's clear 3D printing has a far more noble future than just making pizza.

Filed under: Science, Alt

Comments

Via: Gizmodo

Source: New England Journal of Medicine

23 May 15:38

Evernote adds Reminders to Mac, iOS and web applications (video)

by Nicole Lee

Evernote adds Reminders to Mac, iPhone, iPad and Web

Sure, Evernote is great for jotting down recipes and syncing notes to the cloud, but users lacking in the memory department still had to rely on external alarm apps to remind them of their to-do lists. That all ends today with the introduction of Evernote's Reminders feature for Mac, iOS and web applications. Simply tap the alarm clock icon on each note and set the desired date and time you want to be reminded of it. You'll then get an in-app alarm or an email reminder sent to you if you've set it up that way. That particular notebook will also now have a Reminders section on top to help you keep track of your various projects. Sadly, there's no word on an Android implementation just yet -- perhaps we should ask Evernote to set a Reminder for that.

Filed under: Internet, Software

Comments

Source: Evernote

10 May 22:27

Penguins in spa-a-a-ce! ISS dumps Windows for Linux on laptops

by Iain Thomson

'We needed an operating system that was stable and reliable'

The crew of the International Space Station (once they've fixed their leak) will trade their old Windows XP laptops for Debian-powered systems to use in their Operations Local Area Network (Ops LAN).…

05 May 18:31

Windows 8 Repair Tool [Pic]

by Geeks are Sexy

win8rep

Yep, that looks about right.

[Via MUO]

04 May 15:08

καλό πάσχα via



καλό πάσχα

via

30 Apr 16:54

Come to the Nerd Side

by info@getDigital.de

Forget about cookies. And cake is just a fake. But pi exists! Though… only on the nerd side of life! So come on over and join us ;).
More information and bigger images
29 Apr 21:11

Game Dev Tycoon developers give pirates a taste of their own medicine

by Kyle Orland
Greenheart Games

Over the years, game developers have gone to great lengths to prevent players from pirating their games, from physical paper wheels to intrusive DRM. Other developers don't block piracy outright but instead attempt to shame or inhibit pirates by coding disruptive "features" that activate when a cracked version is detected. The developers at Greenheart Games took the second tack for their new title Game Dev Tycoon, but they did so in what has to be the most hilarious way we've ever seen.

On the Greenheart Games blog, developer Patrick Klug details how he intentionally seeded a "pirated" version of Game Dev Tycoon at the very moment that the title went up on the developer's store yesterday. This illicit version plays exactly like the official paid version for the first few hours, letting players control a miniature game development studio trying to release successful titles in a simulated marketplace.

After a while, though, those playing the pirated version will be confronted with a message that, as Klug puts it, takes "the unique opportunity of holding a mirror in front of them and showing them what piracy can do to game developers."

Read 5 remaining paragraphs | Comments

24 Apr 17:25

Η Dell σχεδιάζει εργοστάσιο συναρμολόγησης στη Θεσσαλονίκη

by Mythozz
Καρπούς φαίνεται να αποδίδει η σύνδεση του σιδηροδρομικού δικτύου της ΤΡΑΙΝΟΣΕ με τα κύρια λιμάνια της χώρας. Ήδη η Dell, ακολουθώντας το παράδειγμα της HP, ετοιμάζεται να χρησιμοποιήσει σαν κόμβο εισόδου της στην Ευρωπαϊκή αγορά το λιμάνι του Πειραιά και τις προηγμένες εγκαταστάσεις της Cosco. Επίσης οι πληροφορίες λένε ότι πρόκειται να κάνει ένα βήμα παραπέρα, εντάσσοντας στον σχεδιασμό της τη δημιουργία μονάδας συναρμολόγησης υπολογιστών στη Θεσσαλονίκη.Αν και ορισμένοι αναλυτές εκτιμούν ότι τα σχέδια είναι μακροπρόθεσμα, δεν αμφισβητείται η αναβάθμιση του ρόλου της Ελλάδας ως κεντρικού κόμβου διακίνησης εμπορευμάτων προς την Ευρώπη. Στόχος της Dell, είναι η Ελλάδα να αποτελέσει τη βάση για τη διανομή των προϊόντων στα Βαλκάνια και την Τουρκία, αν και δεν υπάρχει ακόμη επίσημη ανακοίνωση από την εταιρία.

Το ολοκληρωμένο άρθρο του myphone.gr περιέχει ακόμη 51 λέξεις ...
21 Apr 10:00

ASM

I first learned to program on a TI-59 programmable calculator.  My dad "the physicist" would bring it home on weekends and I would monopolize it for the next two days.  I'd make games and type in programs from Byte magazine.  It was a magical device. I don't know what it was about programming that enthralled me, but I was obsessed with it.  It was an odd skill to have back then, even at the level of programmable calculators.  Computers were still the stuff of science fiction or only owned by huge companies or universities and housed large noisy air conditioned rooms with punch-card machines.

One summer the college got two Commodore Pet computers that were destine for the local High School.  My friend, Tom McFarlane and I spent that entire summer in the computer lab programming those Commodore Pet computers.

It was my first experience with BASIC and it blew the socks off of the TI-59.  Tom and I devoured everything about those Commodore Pet computers.  We wrote every game we would could think of from Space Invaders to Astroids to Space Wars to little platformers (although we didn't know that's what they were called).  We challenged and pushed each other and became masters of the PEEK and the POKE.

I do blame the Commodore Pet from one nasty habit that's followed me for over 30 years.  Tom and I realized that if we removed all the comments (the REM statements) from our BASIC code, the game would run significantly faster.  To this day, I find myself deleting comments or whitespace under some misguided pavlovian notion that my code will run faster.

The summer ended and the Commodore Pets made their way to the High School, were I was starting as a freshmen.

As I continued to read about programming and computers (mostly in Byte magazine) this odd and strange concept kept coming up: Assembly Language.  What was it?  How did it work?  And more importantly, what could it do for me?

I started to realize that assembly language was real programming.  BASIC was just an imitation of programming.  A layer that sat on top of this thing called Assembly Language.  You weren't really programming the computer if you weren't programming it in assembly language.  That was getting right down to the metal and I had to know what it was.

Lore said it was fast.  Faster than BASIC and this was very appealing to me.  We were pushing the limits of BASIC, removing features from our games just to speed them up.  If assembly language could help with that, even a little, then it was something I had to learn.

Armed with the knowledge that the Commodore Pet used a 6502, I spent the weekend hand writing this program that would fill the screen with @-signs.  I wanted to see how fast this assembly language really was.  I wrote the same program in BASIC.  I needed a baseline.

After class on Monday, I headed to the computer room and found a free Pet computer and typed in the BASIC program. It filled the screen in a little over 1 second.  Fast.  Could assembly language top that?

I typed in my little assembly language program and entered the SYS command to start it executing... and... nothing.  The machine locked up.  No error message, it just locked up.  Odd.  I power cycled the Commodore Pet, started over and soon found my mistake.  Program entered.

My finger poised above the ENTER key.  I was trying to remember how fast the BASIC program filled the screen. I need to be able to tell if assembly language was faster.  I might need to run several tests, maybe add a timer, just to be sure.

I hit the ENTER key.

The screen instantly filled with @-signs.  Instantly.  So fast that I could not even begin to see them being drawn on the screen.  One moment the screen was blank, then next instant it was full of @-signs.  Instantly.

I just stood there.  "Holy shit" I said to myself.  My heart was pounding.

This truly was a religious experience.  Someone had pulled back the curtain to heaven and given me a glimpse of God.  The speed was staggering.  Stunning.  I had no words for it.

That was the last day I ever programmed in BASIC.  Assembly language was my savior.  I gave into it completely.

I was changed forever.

10 Apr 16:44

Hacker sends this through the mail to record a video of the process

by Mike Szczys

hacked-hardware-sent-through-mail

[Ruben van der Vleuten] wanted to get a look at the adventure a package experiences when shipped from one place to another. So he threw together this mishmash of components to record the experience. We certainly enjoyed watching the fast motion video found after the break. We wonder what the shipping agency thinks about this sort of thing?

Camera, digital storage, and battery technology have gotten to the point that it’s both cheap and easy to do this sort of surveillance. But there are a few logistical things that [Ruben] took into account to make this work quite well. First off, he need to hide the camera in a way that would ensure the package didn’t look suspicious. He ended up writing his name on the side of the box and boring a hole through one of the black letters which is smaller than a pea and very hard to spot. To make sure he wasn’t recording a ton of empty (dark) frames he also included electronics to sense motion. When the package is moving the video is always rolling. when not moving the hardware wakes for just 3 seconds every minute to shoot video.

[Thanks Brandon]


Filed under: lifehacks
09 Apr 21:36

ΕΟΠΥΥ. Βγαίνω μπροστά!

by Chris Pantazis

ΓραφειοκρατίαΠριν το ΕΟΠΥΥ ήμουν στο ΤΣΜΕΔΕ. Το ΤΣΜΕΔΕ ήταν ένα απαράδεκτο ταμείο άλλα τουλάχιστον είχες τη δυνατότητα να πας σε όποιον γιατρό ήθελες, να εξεταστείς και μετά να πας την απόδειξη στο ταμείο να πάρεις μέρος των χρημάτων πίσω. Κάτι που ήταν στο πλαίσιο της λογικής.

Πρόσφατα το ΤΣΜΕΔΕ (όπως και όλα τα ταμεία) εντάχθηκε στο ΕΟΠΥΥ.

Όπως και εγώ, έτσι και η κόρη μου έχει μια μικρή δυσκολία στο γράμμα ‘σ’. Εγώ δυστυχώς την κουβάλησα όλα αυτά τα χρόνια και μερικές λέξεις δυσκολεύομαι να τις πω, κάτι που μου δημιουργεί ένα μικρό τρακ πριν μιλήσω σε κοινό. Αυτό δεν ήθελα να το έχει και η κόρη μου. Έτσι αποφάσισα να την πάω σε κάποιο λογοθεραπευτικό κέντρο τώρα που είναι μικρή για να μάθει να μιλάει σωστά. Περιγράφω τη διαδικασία ακριβώς όπως είναι με απλά(;) βήματα.

1. Τηλέφωνο στο 1535. Αναμονή μερικούς μήνες.

2. Αναμονή 2-3 ώρες στο νοσοκομείο παρόλο το ραντεβού. Λαμβάνω ιατρική γνωμάτευση (πρέπει να περαστεί πρώτα από πρωτόκολλο και μητρώο, όμως. Σφραγίδες)

3. Στο τοπικό ΙΚΑ για σφραγίδα από ελεγκτή ΕΟΠΥΥ (γιατί μια σφραγίδα παραπάνω πάντα χρειάζεται)

4. Φάκελος από το λογοθεραπευτικό κέντρο ο οποίος μεταξύ άλλων περιέχει φωτοτυπίες από τα πτυχία των λογοθεραπευτών (!)

5. Κατάθεση φακέλου και σφραγισμένης γνωμάτευσης  στο ΥΠΑΔ (Αιγάλεω)

6. Μηνιαία κατάθεση αποδείξεων από το λογοθεραπευτικό κέντρο στο ΥΠΑΔ στο Αιγάλεω.

7. Δεν περιγράφω άλλο!!

Και τώρα ας απαντήσει κάποιος στην ερώτηση: Αν το κράτος δεν μπορεί να αναθέσει σε κάποια εταιρεία να αναλάβει να φτιάξει το πληροφοριακό σύστημα που θα συνδέει γιατρούς, κέντρα, νοσοκομεία, ασφαλιστικά ταμεία, φαρμακεία ώστε να μη χρειάζεται να δαπανά ο κάθε πολίτης δεκάδες ώρες σε ουρές και αναμονές και μάλιστα χωρίς κανένα όφελος για κανέναν, ας το αναθέσει σε μένα και μάλιστα δωρεάν. Ναι, αυτοπροσφέρομαι, εδώ είμαι… για σας!!


Filed under: Life Tagged: γραφειοκρατια
06 Apr 16:17

Put a Burger in Your Shell

by John Gruber

Best Unix tip ever.

 ★