Support from readers like you keeps The Journal open.
You are visiting us because we have something you value. Independent, unbiased news that tells the truth. Advertising revenue goes some way to support our mission, but this year it has not been enough.
If you've seen value in our reporting, please contribute what you can, so we can continue to produce accurate and meaningful journalism. For everyone who needs it.
THIS WEEK, ONE angry programmer broke a whole mess of the software the internet runs on with the simple deletion of one simple program consisting of 11 lines of code.
Everything is OK now. But it’s a strange case that involves copyright lawyers, a petulant developer, and a behind-the-scenes look at how tech titans like Facebook, Spotify, and Netflix make the sausage.
It all starts with a developer named Azer Koçulu, who wrote an otherwise unremarkable piece of code called Kik, an extension for the popular programming language Node.js.
Koçulu put his Kik module up on NPM, essentially an App Store for Node.js programmers, as a free download for developers to work into their apps at their leisure.
The other Kik
Kik, the popular social network of the same name, took notice and sent Koçulu an email requesting that he change the name of his module. By Koçulu’s own admission in a blog post, Kik’s initial request was reasonable. Still, Koçulu wouldn’t budge.
“When I started coding Kik, didn’t know there is a company with the same name. And I didn’t want to let a company force me to change the name of it,” Koçulu writes.
Given that Kik did have copyright on its side, Koçulu says that NPM CEO Isaac Schlueter took away his ownership of the module in question without asking.
Upset, Koçulu announced in that blog entry that he was removing his Kik from NPM entirely – as well as all of his other code.
Kik creator Ted Livingston Michael Seto / Business Insider Ignition
Michael Seto / Business Insider Ignition / Business Insider Ignition
It’s likely that nobody would have noticed – except that Koçulu is also the person who created a very silly, very basic, but very popular NPM module called “npm left-pad.” It’s 11 lines long and doesn’t actually do anything complicated, but it’s been downloaded over 575,000 times.
Advertisement
And when it vanished, developers on Reddit, Twitter, and elsewhere definitely took notice.
A house of cards
This is where things get sticky.
A module like npm left-pad is basically a shortcut so a developer doesn’t have to write a whole bunch of basic code from scratch. If a developer calls on an NPM module, it’s basically shorthand for “put this code in later,” and a software compiler will just download the code when the time is right.
Most of the time, this works just fine. But sometimes, software ends up relying on what’s essentially a house of cards: One Node.js module calls on another, calls on another, calls on another. Again, usually it works fine – right up until npm left-pad is taken offline.
Boom – down went the house of cards. Popular software projects like Babel, which helps Facebook, Netflix, and Spotify run code faster, and React, which helps developers build better interfaces, were suddenly broken and no more work could be done with them. Overall, over a thousand software projects were affected, according to the npm blog.
Fixing the problem would require that programmers sift through all of those dependencies, making sure that absolutely nothing relied on that one silly 11-line bit of code.
And so, after a mass outcry from developers all over the world, NPM was forced to “un-un-publish” the code in question, handing it over to a new owner.
In a series of Twitter posts, NPM CTO Laurie Voss says that the company wasn’t totally comfortable handing over what’s still Koçulu’s intellectual property, but much of the software industry had ground to a halt over the issue.
Even within npm we're not unanimous that this was the right call, but I cannot see hundreds of builds failing every second and not fix it.
All told, the storm is over, and npm left-pad is back online. But the wounds are still deeply felt: “Have We Forgotten How To Program,” asks one blog entry urging developers to rethink how they build their apps.
Readers like you are keeping these stories free for everyone...
A mix of advertising and supporting contributions helps keep paywalls away from valuable information like this article.
Over 5,000 readers like you have already stepped up and support us with a monthly payment or a once-off donation.
If that happens then indeed Democracy and Law in Ireland are only a facade and I unreservedly apologize for defending the Guards and State in the past.
After this week, the idea of impartial justice, media and policing are lying in pieces on the floor.
I would rather be exposed to the inconveniences attending too much liberty than to those attending too small a degree of it. – Thomas Jefferson
Watch, they can’t tell you that for operational reasons, officials secrets act and all that shite, it just show how stupid the guards really are, they should stick to putting people out of there homes and catching people for no tax on the vehekilllllllllllll, whistttttttt
One of them are going down. Either Shatter, Callinan, or O’ Brien. The scurrying for cover is well under way. My money is on O’ Brien. My preference would be Shatter or Callinan to get the boot.
Breathtaking! It only took the Garda Commissioner five days to conduct an investigation into bugging at the GSOC and he categorically states that there was no authorised OR unauthorised Garda involvement. ” Mick, were you involved? No sir! Ok then . Paddy, were you involved? No sir! Ok then . I’ll make my announcement and put this thing to bed. I’ll have to feed these bloody chickens that came home to roost !”
As said by a dead writer … O what a web we weave when we try to deceive.. well it fits the bugging of the GSOC offices` .The garda commissioner seems to think that we all are sheeple oh did i make a mistake there
Yes Harry, you made a mistake! The Poet Sir Walter Scott wrote in ‘Marmion’- ‘Oh what a tangled web weave, When first we practise to deceive!’ But sure seeing as most (sorry, make that ALL!) of what you write on here is crap, why should failing to quote a well known line from a poem be any different for you!
That is a very far fetched statement to think that the British or French would think there could possibly be any sort of intelligence in any Garda file is totally far fetched, intelligence and garda don’t go well in the one sentence
Lm,,,, your intelligence is absolutely mind blowing, that skull of yours must be a pretty lonely place for that lone brain cell.
Let’s face it, you hate the GARDAI.
I wonder who you go crying to when you’re in trouble ? The Army, GSOC, Provos, ah yes, you’re a real gem !!
Anything positive going on there at all ????
Its interesting how the line from pro-establishment commentators has changed from ‘there was no bugging’ and the ‘GSOC bugged themselves’ to now it was the French that done it.
A study in the art of deflection and obfuscation in itself.
It must be very exciting at the press office briefings to anticipate what the red herring special of the day is going to be.
Keep up the good work interns.
Believe me and I swear on this, I do not hate the guards, I have very good friends who are in the guards who can’t wait for the pension to kick in, let’s face it they are a law onto themselves that can do what they want when they want, that what I don’t like about guards but I don’t hate them, I have my tax,insurance and licence up to date and that’s all that matters, so after that I am free to do whatever I want, legal or otherwise
Now Dominic you will be glad to know the word is out that the Sunday times is going to publish the report from the security company that done the sweep so that should bring clarification to some questions
Shatter is also minister of Defence, Army intelligence would have access to surveillance equipment. The Defence Forces regularly play a role in defence of state agencies from hacking.
Minister gets one agency (defence) to spy on gsoc to find out what gsoc knows about his other agency (Gardaí)
“I suspect or potentially suspect! ” how exactly do you potentially suspect something? You either do or you don’t. One can certainly be a potential suspect but the amount of spin these guys try to use is just shameful. Imagine where they’d be without their advisors, speech writers and press officers. Potentially defunct springs to mind.
I watched Watergate unfold, and this has the same taste to it. Deny, deny. Accuse the victim. Blame the press. Deny, deny.
I am confident that there are more people out there who have direct knowledge of this matter, and they will come forward.
Watergate took more than a year to blossom. John Dean didn’t start cooperating with the investigation for 11 months. It will take some time. There are differences, certainly. Your best hope is with the Dail and it is imperative that TDs keep up the pressure. The Sunday Times in all probability will have much more to say about this episode as well. Ireland being a relatively small country, things can move along more quickly than they did in America over the Watergate scandal.
We are living in interesting times.
its a crazy world when Shatter cant ask people what they know, The politicians have just become embroiled in a web of lies among themselves and us ,the world would be a better place if people just stop lying faking and pretending.
Shatter desn’t ask because he is afraid they might answer and what does he do then.
We all know who was behind this subversion of democracy and law in the state.
Outside of that fact what is equally disturbing is the lack of concern by the Guards and Cabinet that a vital wing of the Justice system was under surveillance, probably illegal surveillance.
This is the most pointless story in years and years! So many more important newsworthy events occurred, in the past few weeks, that deserved air time more than this nonsensical event!!!
Seamus that was an investigation into corrupt police officers giving information to the media for money. Are you saying the state should ignore this problem
'It feels off to me': Panda customers react to being sent photos of the inside of their bins
Eimer McAuley
2 hrs ago
5.1k
8
Unbelievable scenes
16-year-old hits last-gasp winner in Liverpool's remarkable thriller with Newcastle
4 hrs ago
5.6k
30
Emerge festival
Teenage girl dies and two other people in hospital after falling ill at Belfast music event
10 hrs ago
32.8k
Your Cookies. Your Choice.
Cookies help provide our news service while also enabling the advertising needed to fund this work.
We categorise cookies as Necessary, Performance (used to analyse the site performance) and Targeting (used to target advertising which helps us keep this service free).
We and our 226 partners store and access personal data, like browsing data or unique identifiers, on your device. Selecting Accept All enables tracking technologies to support the purposes shown under we and our partners process data to provide. If trackers are disabled, some content and ads you see may not be as relevant to you. You can resurface this menu to change your choices or withdraw consent at any time by clicking the Cookie Preferences link on the bottom of the webpage . Your choices will have effect within our Website. For more details, refer to our Privacy Policy.
We and our vendors process data for the following purposes:
Use precise geolocation data. Actively scan device characteristics for identification. Store and/or access information on a device. Personalised advertising and content, advertising and content measurement, audience research and services development.
Cookies Preference Centre
We process your data to deliver content or advertisements and measure the delivery of such content or advertisements to extract insights about our website. We share this information with our partners on the basis of consent. You may exercise your right to consent, based on a specific purpose below or at a partner level in the link under each purpose. Some vendors may process your data based on their legitimate interests, which does not require your consent. You cannot object to tracking technologies placed to ensure security, prevent fraud, fix errors, or deliver and present advertising and content, and precise geolocation data and active scanning of device characteristics for identification may be used to support this purpose. This exception does not apply to targeted advertising. These choices will be signaled to our vendors participating in the Transparency and Consent Framework. The choices you make regarding the purposes and vendors listed in this notice are saved and stored locally on your device for a maximum duration of 1 year.
Manage Consent Preferences
Necessary Cookies
Always Active
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work.
Social Media Cookies
These cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit. If you do not allow these cookies you may not be able to use or see these sharing tools.
Targeting Cookies
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.
Functional Cookies
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then these services may not function properly.
Performance Cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not be able to monitor our performance.
Store and/or access information on a device 158 partners can use this purpose
Cookies, device or similar online identifiers (e.g. login-based identifiers, randomly assigned identifiers, network based identifiers) together with other information (e.g. browser type and information, language, screen size, supported technologies etc.) can be stored or read on your device to recognise it each time it connects to an app or to a website, for one or several of the purposes presented here.
Personalised advertising and content, advertising and content measurement, audience research and services development 205 partners can use this purpose
Use limited data to select advertising 165 partners can use this purpose
Advertising presented to you on this service can be based on limited data, such as the website or app you are using, your non-precise location, your device type or which content you are (or have been) interacting with (for example, to limit the number of times an ad is presented to you).
Create profiles for personalised advertising 128 partners can use this purpose
Information about your activity on this service (such as forms you submit, content you look at) can be stored and combined with other information about you (for example, information from your previous activity on this service and other websites or apps) or similar users. This is then used to build or improve a profile about you (that might include possible interests and personal aspects). Your profile can be used (also later) to present advertising that appears more relevant based on your possible interests by this and other entities.
Use profiles to select personalised advertising 129 partners can use this purpose
Advertising presented to you on this service can be based on your advertising profiles, which can reflect your activity on this service or other websites or apps (like the forms you submit, content you look at), possible interests and personal aspects.
Create profiles to personalise content 54 partners can use this purpose
Information about your activity on this service (for instance, forms you submit, non-advertising content you look at) can be stored and combined with other information about you (such as your previous activity on this service or other websites or apps) or similar users. This is then used to build or improve a profile about you (which might for example include possible interests and personal aspects). Your profile can be used (also later) to present content that appears more relevant based on your possible interests, such as by adapting the order in which content is shown to you, so that it is even easier for you to find content that matches your interests.
Use profiles to select personalised content 51 partners can use this purpose
Content presented to you on this service can be based on your content personalisation profiles, which can reflect your activity on this or other services (for instance, the forms you submit, content you look at), possible interests and personal aspects. This can for example be used to adapt the order in which content is shown to you, so that it is even easier for you to find (non-advertising) content that matches your interests.
Measure advertising performance 184 partners can use this purpose
Information regarding which advertising is presented to you and how you interact with it can be used to determine how well an advert has worked for you or other users and whether the goals of the advertising were reached. For instance, whether you saw an ad, whether you clicked on it, whether it led you to buy a product or visit a website, etc. This is very helpful to understand the relevance of advertising campaigns.
Measure content performance 80 partners can use this purpose
Information regarding which content is presented to you and how you interact with it can be used to determine whether the (non-advertising) content e.g. reached its intended audience and matched your interests. For instance, whether you read an article, watch a video, listen to a podcast or look at a product description, how long you spent on this service and the web pages you visit etc. This is very helpful to understand the relevance of (non-advertising) content that is shown to you.
Understand audiences through statistics or combinations of data from different sources 116 partners can use this purpose
Reports can be generated based on the combination of data sets (like user profiles, statistics, market research, analytics data) regarding your interactions and those of other users with advertising or (non-advertising) content to identify common characteristics (for instance, to determine which target audiences are more receptive to an ad campaign or to certain contents).
Develop and improve services 122 partners can use this purpose
Information about your activity on this service, such as your interaction with ads or content, can be very helpful to improve products and services and to build new products and services based on user interactions, the type of audience, etc. This specific purpose does not include the development or improvement of user profiles and identifiers.
Use limited data to select content 53 partners can use this purpose
Content presented to you on this service can be based on limited data, such as the website or app you are using, your non-precise location, your device type, or which content you are (or have been) interacting with (for example, to limit the number of times a video or an article is presented to you).
Use precise geolocation data 68 partners can use this special feature
With your acceptance, your precise location (within a radius of less than 500 metres) may be used in support of the purposes explained in this notice.
Actively scan device characteristics for identification 39 partners can use this special feature
With your acceptance, certain characteristics specific to your device might be requested and used to distinguish it from other devices (such as the installed fonts or plugins, the resolution of your screen) in support of the purposes explained in this notice.
Ensure security, prevent and detect fraud, and fix errors 129 partners can use this special purpose
Always Active
Your data can be used to monitor for and prevent unusual and possibly fraudulent activity (for example, regarding advertising, ad clicks by bots), and ensure systems and processes work properly and securely. It can also be used to correct any problems you, the publisher or the advertiser may encounter in the delivery of content and ads and in your interaction with them.
Deliver and present advertising and content 133 partners can use this special purpose
Always Active
Certain information (like an IP address or device capabilities) is used to ensure the technical compatibility of the content or advertising, and to facilitate the transmission of the content or ad to your device.
Match and combine data from other data sources 100 partners can use this feature
Always Active
Information about your activity on this service may be matched and combined with other information relating to you and originating from various sources (for instance your activity on a separate online service, your use of a loyalty card in-store, or your answers to a survey), in support of the purposes explained in this notice.
Link different devices 71 partners can use this feature
Always Active
In support of the purposes explained in this notice, your device might be considered as likely linked to other devices that belong to you or your household (for instance because you are logged in to the same service on both your phone and your computer, or because you may use the same Internet connection on both devices).
Identify devices based on information transmitted automatically 124 partners can use this feature
Always Active
Your device might be distinguished from other devices based on information it automatically sends when accessing the Internet (for instance, the IP address of your Internet connection or the type of browser you are using) in support of the purposes exposed in this notice.
Save and communicate privacy choices 112 partners can use this special purpose
Always Active
The choices you make regarding the purposes and entities listed in this notice are saved and made available to those entities in the form of digital signals (such as a string of characters). This is necessary in order to enable both this service and those entities to respect such choices.
have your say