Hacker News new | past | comments | ask | show | jobs | submit login
The Open Sourcerer's Magic Spell Book (javascriptjanuary.com)
90 points by rbanffy on Jan 29, 2018 | hide | past | favorite | 21 comments



I know it's javascriptjanuary.com but having this:

> node -e require('https').get('https://gist.githubusercontent.com/PurpleBooth/109311bb0361f..., b => b.on('data', c => process.stdout.write(c+'')))" > README.md

instead of plain curl seems weird to me.


Especially as he mentioned the Unix Philosophy:

> [...], try to remember the Unix Philosphy [sic] and break it down into tiny parts that go well together, this way it's going to be way easier to initially release it and maintain it in the future.


The unix philosophy != command line tools usually preinstalled on your system.


Honestly, as an engineer that enjoys using JS and often writes cute little scripts using Node.js I fully agree that curl seems like a much better fit here.


Well, as you say, it IS javascriptjanuary.com, but I was more put off by the fact it seems it'd be nicer as this:

  node -e "require('https').get(url, b => b.pipe(process.stdout)))" > README.md
rather than this:

  node -e require('https').get(url, b => b.on('data', c => process.stdout.write(c+'')))" > README.md
(and also that there's a typo with the quoting at the beginning).


Can you 'npm i -g curljs' yet?


For being a "Open Sourcerer's Magic Spell Book", it's depending on a lot of non-open source registries and services...

List of non-open-source services being used and depended on: Github, the npm registry, Gist (by Github), TravisCI, CodeClimate, Snyk, FOSSA and Shields.io


This tracks with the current trend in Open Source, Libraries and Tool-kits are open but Finished Software is not. This is the primary motivation for the opposition of GPL and other copy left licenses in favor of non-copy left so they can insure the "open" code can be locked down in the final consumer product

Sad really that Open Source has diverged so much with Free Software..


If you're going to make this comparison, you need to do it right.

You want to describe vividly the glass-cannon power that magicians painstakingly front-load years and years of study and practice in order to earn. Systems of magic each have distinct feelings. Flashy elemental battle-magic or musty, slow-building necromancy? Physical-object-focused enchantment or natural, sometimes creepy druidry?

What's the end goal? Eternal life? Cowing your enemies? Subverting political orders? Fathoming the unfathomable?

Just calling software tools spells is just so... lazy.


It shouldn't be that hard, either

I write some words in an unpronounceable, inhuman tongue. I speak these words to a special stone covered in tiny, intricate runes too small for the eye to see and animated by bottled lightning. If either the words are the runes are off by even a single stroke, then nothing happens.

But if I get it exactly right, then I can see through eyes which are not my own. I can communicate across countless leagues as easily as across the room. I can bind daemons to watch over the world around me and act on my behalf. I can gaze with godlike clarity over the past, and even discern shapes and motions in the clouds of the future. I can bind my work to an inanimate physical object and give it false life under my command.

We teach these Arts to small children, and often use them to show how cute our pets are to one another. It's so easy and so commonplace in our world that we've ceased to register it as Strange. But computers still let us do real, honest to goodness Magick and anyone who tells you differently isn't paying attention.


Sometimes you don't want to engage in a battle, or raise an army of the undead.

Sometimes you just want your tower swept and mopped.


Illusion magic: Game programming

Evocation: Cracking/pentesting

Abjuration: Cybersecurity

Conjuration: UI programming

Divination: Data science/forecasting

Transmutation: Backend developer

Necromancy: Sysadmin

Enchantment: Facebook/Google/Amazon/ad industry


I'd call Enchantment hardware hacking / Arduino. If anything the advertising industry is Psionics. I'd slot game programming under Conjuration and all of front-end, including UI, as Illusion.


Oh good, another open-source tutorial that over emphasises the need for Codes I’d Conduct.

Note that in this article, having a CoC comes before a howto on technical contributions or before writing code itself.

Can anyone explain to me what happened circa 2015 that forced every open source code base to require these silly, poorly thought out and rarely fairly endorsed social contracts?


To answer your question, probably Gamergate.

In an article about maintaining an open source project, it seems to me like covering contribution guidelines (which I would consider a CoC to be part of) is pretty important.

In my experience, many projects maintain codes of conduct not because they've had frequent problems, but as a statement that the maintainers welcome contributors from all backgrounds, skill/experience levels, etc., and that they won't tolerate behavior that alienates others.

Regardless, every project has some sort of CoC, even if it is never explicitly stated. Putting it in writing makes it clear to everyone (including the maintainers), and that seems like a good thing to me.


I agree the whole thing is just plain silly. I don't need a CoC to be a decent human being. I am an adult and don't need a code of conduct on how to behave.


>> In the year 2003 when there was no npm, no GitHub, no nothing.

Erm, there was SourceForge.


I think you're mistaken. Before Node.js, people distributed programs in the back of magazines and users copied them onto their punch cards. They were dark times.


A real open source Magic Spell Book 'Sorcerer Linux':

A new "grimoire", which is a catalog of software supported for immediate installation, is made available daily. When new sources are available, the spells in the grimoire are updated. A user's desktop is updated by first installing a current grimoire. If necessary, the installed Sorcery is updated. Finally, installed software can be updated according to the user's decision. Users can also add new spells to the grimoire on their local machine and submit the new spell for inclusion in the general distribution.

Fun metaphors and a decent (old) Linux distro with it's infrastructure written in Shell Script for purity.

And to install software you would 'cast' a 'spell'.

Source: https://en.wikipedia.org/wiki/Sorcerer_(Linux_distribution)



Maybe it seems longer than it is because I'm on mobile, but a lengthy post with such an opaque title could really benefit from an executive summary, or even a short subtitle such as:

"Guidelines for open source maintainers."




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: