Another shot from Missions. this is the code that’s failing the previous unit test.
Nice to see they still use vim on Mars.
If any contemporary technology survives until the age of inter-planetary space travel, it will be `vim`.
Misplaced Lens Cap
RMH
Show & Tell

❣ Chile in a Photography ❣

shark vs the universe
Stranger Things
Xuebing Du

PR's Tumblrdome
YOU ARE THE REASON

★
Noah Kahan
The Stonewall Inn
𓃗

#extradirty
TVSTRANGERTHINGS
almost home

blake kathryn

if i look back, i am lost
seen from China

seen from Malaysia

seen from India

seen from Germany

seen from Kenya
seen from Iraq
seen from India

seen from Syria
seen from United Kingdom

seen from Kosovo
seen from Ecuador
seen from France
seen from United States
seen from Türkiye

seen from Germany
seen from Iraq
seen from Portugal
seen from Vietnam

seen from Finland
seen from Italy
@al-the-x
Another shot from Missions. this is the code that’s failing the previous unit test.
Nice to see they still use vim on Mars.
If any contemporary technology survives until the age of inter-planetary space travel, it will be `vim`.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
It is useless to get up early and stay up late, trying to make a living. The LORD provides for those he loves, even while they are sleeping. Ps 127:2 And we are all loved...
Colorizing log output from Google Appengine...
At the day-job, we use Google App Engine for our server-side infrastructure. It's all written in golang by people much smarter than I, so I don't have to interact with it much, except to run the thing on my local machine. I keep it running in a spare window under tmux and rarely look at it... until something goes wrong.
The local development version of App Engine uses a Python runtime, regardless of the development SDK you're using, and the log output is pretty blandly monochrome, making the occasional peek when Bad Things Happen fairly painful. Most of the answers on the internet dealing with colorizing output for Google App Engine revolve around (rightly) altering the logger configuration... for your Django app. Since we don't have one of those, I needed a different solution.
Now in technicolor!
I found a few promising options -- colorize (Perl) for one -- but there was a lot of promise in a little utility called ack that I've been meaning to try out as a replacement for grep. Beyond supporting native pager piping and "smartcase"-style patterns, it can also pass-through partial matches to the rest of a pipeline, applying color on the way through. Exactly what I needed.
Based on a blog from powdahound in 2009, I put together a few ZSH functions to colorize the output of dev_appengine.py:
https://gist.github.com/al-the-x/73b51da8662480ac144aa5080a8eb2c5
As usual, I'm pretty late to the ack party, and there's plenty of help on Stack Overflow and in the official documentation. Happy ack-ing!
Nothing is more dangerous than an idea if it's the only one you have.
Emil-Auguste Chartier, Propos Sur La Religion (1938)
Helpful commands to remember when you configure `vim` to resolve merge conflicts with `git`.
Oldie but goodie, as I find myself referencing those blessed :diffget commands less-than-frequently enough to actually commit them to memory... Yay for no merge conflicts!

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Recommended as an intro to the concept of "antifragile" by Nassim Taleb, which may be related to the practice of Agile Development. Worth listening to...
Installing Windows for the first time in 10 years... On my Mac.
I’m not hating, but it’s been a while since I touched a copy of Windows, less since I’ve installed one, but I’ve got a gig coming up teaching Django basics to a Windows-heavy team of (non-software) engineers, so naturally the topic came up. After a couple of missteps and retries, I got Windows 10 installed on my Macbook Air 6,2. Here's how...
[[more]]
First lesson: Boot Camp is awesome until it sucks...
I wouldn't have learned this particular lesson if I hadn't run into problems with using Boot Camp. The idea behind Boot Camp on Mac OS X is pretty simple: make it as easy as possible to install Windows on your Mac. That's great, until it doesn't work exactly right, then you fall down the Google hole and turn up some really scary trolls.
What Boot Camp does, as best I can tell, is three little steps:
Replace the standard EFI bootloader on your Mac with a BIOS-compatible boot loader. EFI is a more up-to-date standard that most OSs support at this point, including Windows... albeit not well.
Generate a bootable Windows ISO on a USB drive that contains additional support software to let Windows and Mac play nice... nicer... Hardware drivers and the like, mostly, but also a little boot-selector app that's mostly useless.
Create a FAT32-formatted partition on your internal drive (and only your internal drive), as long as it meets some basic requirements... Many of which it will not. This is where most of my problems arose.
The whole program is very dependent on exactly the right conditions in order to do anything. For example, if you have ever created another partition on your drive for any reason -- such as when installing a beta version of Mac OS X -- your drive is now incompatible. If you've enabled FileVault, Boot Camp will fail... and won't tell you why. And then you get to the Windows installer...
What Boot Camp doesn't tell you...
First off, you're gonna need a copy of Windows downloaded onto your Mac. This may seem like a no-brainer, but if you're running a 128GB Macbook Air like me, every ounce of disk space is valuable. Second, you'll need a USB stick around 8GB or more... that you're totally okay wiping. Having more than 8GBs won't really help, but the install disk won't write onto less because the Windows ISOs are all just over 4GBs.
Also, Boot Camp doesn't seem to like SD cards, despite being bootable. :(
Second, Boot Camp will refuse to partition your drive -- words the casual user should probably never utter -- unless the drive is one single contiguous partition already. So no old beta partition lying around or segregated space on the drive for backups. The poor folks who bought the "Fusion Drive" Macs in 2013 have had it rough on the forums due to the screwy partitioning that is a fact-of-life with those hybrid SSD/HDD monstrosities.
Third, any Windows later than Vista actually refuses to install on a FAT32 partition, so you'll have to reformat it as NTFS in the Windows Installer, which gets barely a sneaky side-link in the official Boot Camp documentation.
I also discovered that you cannot have any other external drives attached when installing Windows, although this is a "feature" of the Windows Installer, not Boot Camp, apparently. In my case, I have a Nifty Minidrive in my SD card slot for holding my in-progress media library (videos, y'all). Since it's completely flush with the case, it's very easy to forget. So I stared at the error message and the list of mounted drives for a while, Googled some unhelpful answers, and completely FUBARed the process by doing The Things You Should Never Do (see below) trying to figure it out.
The Things You Should Never Do
Don't delete the BOOTCAMP parition that Boot Camp Assistant makes for you! Doing so will cause Boot Camp Assistant to become practically worthless. Additionally, you'll discover that Disk Utility can't resize the primary partition to fill the drive, at least not while that partition is mounted as the root filesystem.
Don't attempt to re-partition with the Windows Installer! Following some bad advice from the Internets, not only did I delete the BOOTCAMP partition (that I had already reformatted as NTFS), I also told Windows Installer to create a new partition for me. So it created 4, one of which was "hidden" when I tried to undo it.
Don't screw around with fdisk or gpt to "manually repair" your drive! There's a lot of posts on Stack Overflow that encourage you to download this or run these crazy commands and don't screw up because you will destroy your drive! I've rebuilt a fair share of Linux drives over the years not to take fdisk or fsck or anything that involves "blocksize" or "sectors" lightly. In my case, just booting from another disk allowed me to correct the problem.
“Creative fantasy, because it is mainly trying to do something else (make something new), may open your hoard and let all the locked things fly away like cage-birds.”
I have no words to process this right now. JRR was and ever is spot-on in his perceptions of language, story-telling, and fantasy. If I could capture a tenth of what he communicated, I would be hailed a genius.
Helium makes tools for iPhone photographers, filmmakers and mobile journalists. Turn your iPhone into a customizable camera system with our products.
A friend of mine in Durham has a Kickstarter starting soon, and his product looks amazing... I totally want one for my Sony Xperia! If you're a hipster "iPhoneographer" (his word, not mine), then this thing will blow your sockets:
multiple screw-on lenses in standard sizes
standard accessory attachment points
solid aluminum frame
Check it out!
kik, left-pad, and npm
Earlier this week, many npm users suffered a disruption when a package that many projects depend on — directly or indirectly — was unpublished by its author, as part of a dispute over a package name. The event generated a lot of attention and raised many concerns, because of the scale of disruption, the circumstances that led to this dispute, and the actions npm, Inc. took in response.
Here’s an explanation of what happened.
Timeline
In recent weeks, Azer Koçulu and Kik exchanged correspondence over the use of the module name kik. They weren’t able to come to an agreement. Last week, a representative of Kik contacted us to ask for help resolving the disagreement.
This hasn’t been the first time that members of the community have disagreed over a name. In a global namespace for unscoped modules, collisions are inevitable. npm has a package name dispute resolution policy for this reason. That policy encourages parties to attempt an amicable solution, and when one is impossible, articulates how we resolve the dispute.
The policy’s overarching goal is this: provide npm users with the package they expect. This covers spam, typo-squatting, misleading package names, and also more complicated cases such as this one. Entirely on this basis, we concluded that the package name “kik” ought to be maintained by Kik, and informed both parties.
So far, this followed a process that is routine, though rare. What happened next, though, was unprecedented.
Under our dispute policy, an existing package with a disputed name typically remains on the npm registry; the new owner of the name publishes their package with a breaking version number. Anyone using Azer’s existing kik package would have continued to find it.
In this case, though, without warning to developers of dependent projects, Azer unpublished his kik package and 272 other packages. One of those was left-pad. This impacted many thousands of projects. Shortly after 2:30 PM (Pacific Time) on Tuesday, March 22, we began observing hundreds of failures per minute, as dependent projects — and their dependents, and their dependents… — all failed when requesting the now-unpublished package.
Within ten minutes, Cameron Westland stepped in and published a functionally identical version of left-pad. This was possible because left-pad is open source, and we allow anyone to use an abandoned package name as long as they don’t use the same version numbers.
Cameron’s left-pad was published as version 1.0.0, but we continued to observe many errors. This happened because a number of dependency chains, including babel and atom, were bringing it in via line-numbers, which explicitly requested 0.0.3.
We conferred with Cameron and took the unprecedented step of re-publishing the original 0.0.3. This required relying on a backup, since re-publishing isn’t otherwise possible. We announced this plan at 4:05 PM and completed the operation by 4:55 PM.
The duration of the disruption was 2.5 hours.
What worked
We stand by our package name dispute resolution policy, and the decision to which it led us.
Given two packages vying for the name kik, we believe that a substantial number of users who type npm install kik would be confused to receive code unrelated to the messaging app with over 200 million users.
The dispute resolution policy minimizes disruption.
Transferring ownership of a package’s name doesn’t remove current versions of the package. Dependents can still retrieve and install it. Nothing breaks.
Had Azer taken no action, Kik would have published a new version of kik and everyone depending upon Azer’s package could have continued to find it.
It was abrupt unpublishing, not our resolution policy, that led to yesterday’s disruptions.
The community stepped in.
It’s pretty remarkable that Cameron stepped in to replace left-pad within ten minutes. The other 272 affected modules were adopted by others in the community in a similar time. They either re-published forks of the original modules or created “dummy” packages to prevent malicious publishing of modules under their names.
We’re grateful to everyone who stepped in. With their explicit permission, we are working with them to transfer these to npm’s direct control.
What didn’t work
Unrestricted un-publishing caused a lot of pain.
There are historical reasons for why it’s possible to un-publish a package from the npm registry. However, we’ve hit an inflection point in the size of the community and how critical npm has become to the Node and front-end development communities.
Abruptly removing a package disrupted many thousands of developers and threatened everyone’s trust in the foundation of open source software: that developers can rely and build upon one another’s work.
npm needs safeguards to keep anyone from causing so much disruption. If these had been in place yesterday, this post-mortem wouldn’t be necessary.
Poor communication made matters worse.
In the immediate wake of yesterday’s disruption, and continuing even now on blogs and Twitter, a lot of impassioned debate was based on falsehoods.
npm did not “steal” Azer’s code.
left-pad was open-source code, and explicitly allows republishing by any other author. That’s what happened in this case.
This incident did not arise because of intellectual property law.
We’re aware that Kik and Azer discussed the legal issues surrounding the “Kik” trademark, but that wasn’t pertinent. Our decision relied on our dispute resolution policy. It was solely an editorial choice, made in the best interests of the vast majority of npm’s users.
npm won’t suddenly take your package name.
Our guiding principle is to prevent confusion among npm users. In the rare event that another member of the community requests our help resolving a conflict, we work out a resolution by communicating with both sides. In the overwhelming majority of cases, these resolutions are amicable.
It took us too long to get you this update. If this were a purely technical operations outage, our internal processes would have been much more up to the challenge.
What happens next
There are technical and social aspects to this problem. Any reasonable course of action must address both of these.
We will make it harder to un-publish a version of a package if doing so would break other packages.
We are still fleshing out the technical details of how this will work. Like any registry change, we will of course take our time to consider and implement it with care.
We will make it harder to maliciously adopt an abandoned package name.
If a package with known dependents is completely unpublished, we’ll replace that package with a placeholder package that prevents immediate adoption of that name. It will still be possible to get the name of an abandoned package by contacting npm support.
We are updating our internal policies to help our team stay in sync and address community conflict more effectively.
To Recap (tl;dr)
We dropped the ball in not protecting you from a disruption caused by unrestricted unpublishing. We’re addressing this with technical and policy changes.
npm’s well-established and documented dispute resolution policy was followed to the letter. This is not a legal dispute.
We’ll continue to do everything we can to reduce friction in the lives of JavaScript developers.
In a community of millions of developers, some conflict is inevitable. We can’t head off every disagreement, but we can earn your trust that our policies and actions are biased to supporting as many developers as possible.
So I don't forget when someone six months from now asks (trolls) me: "What do you think about the kik incident? Isn't npm dead now?"

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
nedb - Embedded datastore for node.js
Lightweight in-memory or on-disk, MongoDB-style database for development purposes found while checking out Feathers JS. Looks interesting as an instructional alternative to the complexity of MongoDB.
Wow your users. Build incredible real-time applications in record time.
New JS framework mentioned by my TIY peeps. From the demo and "Getting Started" docs, me likey. Now to go build something!
Open Source IDE for building HTML5 games in 2D or 3D
When I finally get to start building games with the kids, I'll need Superpowers. I'll also need a nerdy editor, so maybe this can serve as both...?
When sed won't cut it and awk is just too much, sometimes perl is the right tool after all...
Full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.
Officially my new favorite Markdown editor. The inline formatting makes the preview window almost unnecessary. Synchronize documents with Google Drive, and collaborate with comments. It works -- as an editor -- offline, too!
The ported desktop application -- Classeur -- is also very promising but still lacking some features of the original.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Please don’t write your build file with Babel... Yet.
This is a trend that I blame on the generator-gulp-webapp project primarily, but I'm seeing the same mistake on other generator and OSS projects. If you believe the hype, transpilation of new and cutting-edge JavaScript sytnax (EcmaScript 2015 / ES6 / Harmony) to current JavaScript syntax (ES5) is the cat's meow, and Babel is leading the pack. The pressure is on developers to catch up already! Start writing ES6 everywhere! It's the future of the web!
In at least the world of task runners and build systems, here's a few good reasons to hold off a minute on ES6...
Before choosing your first programming language, you should also check out this infographic on What Is Programming And What Do Programmers Do. So you want
Best. Infographic. Ever.