WhyTheName - <AUTHOR> https://wiki.debian.org/WhyTheName <comment><USER2> This alone was worth opening the page:

> argonaut-* > (server-client distributed deployment infrastructure) for some > of the package descriptions in the suite this name is a groan-inducingly > obvious Greek-mythology pun, but others don't even mention that its message > protocol is encoded in JavaScript Object Notation (JSON "Jason")

</comment><comment><USER3> > mysql-* a Structured Query Language server named after the original > developer's daughter "My" (cf. also mariadb)

Learned something new today... It's crazy to think how we take some of these technologies for granted while never stopping to think about the individual human beings that made it all possible to begin with.

Anyone know of a good podcast or website that does a deep dive into the history of how different computer technologies (esp open source ones) came to be the way they are?

<comment><USER4> Command Line Heroes is exactly what you want. [https://www.redhat.com/en/command-line- heroes](https://www.redhat.com/en/command-line-heroes)

<comment><USER5> Seems really neat! Is each season based around a concept i.e. season 4 is hardware and season 3 seems to be languages?

</comment></comment></comment><comment><USER6> Whoever wrote this, hats off.

>chromium - web browsers on Linux spent a decade going through a cycle of slick new slimline web browsers gradually getting buried in creeping features until they were as weighed down with chrome grills and ornamental fins as a fifties US car, at which point everyone would switch to some new minimalist alternative. Meanwhile these GUI widgets came to be referred to as "chrome", which explains why Google would choose to advertise their browser as if it was manufactured entirely out of deadweight bling...

<comment><USER7> The term "chrome" is older than web browsers:

[http://www.catb.org/~esr/jargon/html/C/chrome.html](http://www.catb.org/~esr/jargon/html/C/chrome.html)

</comment></comment><comment><USER8> One interesting bit that I found missing on that page is ncmpcpp, which is a simple one (in a way), and also contains its entire genealogy in the name.

First there was mpc, the music player (daemon) client.

Then someone made the ncurses version, so of course that was named ncmpc.

Then someone decided to add more features and rewrite it in C++, and voila.

<comment><USER9> There's similar story to urxvtcd which is my nickname here, haha. They have an entry on rxvt:

Rob Nation's fork of the X11 Virtual Terminal; originally "Robert's" xvt, later "our" xvt.

Then they added "u" for unicode support. And then urxvt can run a daemon to which clients connect for faster startup or something, so we have urxvtc and urxvtd, and finally there was a script on some distro I used which checked for a daemon, run it if it not existed, and then run client, so urxvtcd.

Could have made one with color support included in the name too, like urxvtcd256.

<comment><USER10> ... which is only part of the tale. Some of the rest involves the fact that "rxvt-unicode-256color" is too many characters for the termcap/terminfo databases on some operating systems.

</comment></comment></comment><comment><USER11> Forgive me if this is a bit morbid, but we are lucky as computer scientists and engineers to have a largely "living history" over the last century of innovation.

Documentation is great in some respects but we should try and go out of our way to interact and cherish the pioneers of early computing more before they pass on.

What do I mean by "more"; when we have forums, mailgroups, IRC, conferences etc.?

I guess more books, more interviews and more documentation.

One thing I like to do with junior developers is when I see them using a terminal command that they just copy and pasted from stackoverflow, I try and coach them to read up about it on manpages or documentation online, so they can get a better feel of what the history was behind that tool.

<comment><USER12> I hope you're right, most of what we know about Plato's teachings came from his students that took good notes.

That said, I do have trouble finding the "history" of a particular technical idea. There's a lot of interesting things that are a certain way but haven't been documented about "why" because the author never thought to put them down.

Indeed the most interesting things to posterity are the ones we don't even think about.

<comment><USER13> > I hope you're right, most of what we know about Plato's teachings came from > his students that took good notes.

You're thinking of Socrates, not Plato. Plato is the one of the few ancient writers where it's believed that basically his the entire body of work has been preserved. What we know of Plato's philosophy, we know from Plato directly.

Socrates, however, did not write anything down: he was famously opposed to the concept of writing, thinking it induced forgetfulness. His philosophy is thus almost entirely known through his students, primarily through Plato. There are a few others (Xenophon was also Socrates' student and wrote about him), but Plato is by far the most significant.

</comment></comment></comment><comment><USER14> Incredibly ironic that Debian is missing from this page.

<comment><USER15> For those wondering, Debian is a portmanteau of Ian Murdock's and his gf/wife/ex-wife's, Debra, first names. Deb-ian.

I wish I could have thanked Ian in person for making the Linux community a better place. It's still the only Linux distro I'll use.

<comment><USER16> This means /ˈde.bi.ən/ in this case. Source: [https://www.debian.org/intro/about#history](https://www.debian.org/intro/about#history)

<comment><USER17> FWIW, the Debian GNU/Linux FAQ [0] states:

> _The project name is pronounced Deb '-ee-en, with a short e in Deb, and > emphasis on the first syllable. This word is a contraction of the names of > Debra and Ian Murdock, who founded the project. (Dictionaries seem to offer > some ambiguity in the pronunciation of Ian (!), but Ian prefers ee'-en.)_

\---

[0]: [https://www.debian.org/doc/manuals/debian-faq/basic- defs.en....](https://www.debian.org/doc/manuals/debian-faq/basic- defs.en.html#pronunciation)

</comment></comment></comment></comment><comment><USER18> A thread from 2015: [https://news.ycombinator.com/item?id=9322904](https://news.ycombinator.com/item?id=9322904)

(Link for the curious. Reposts are ok after a year: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html))

</comment><comment><USER19> It would be fun to have a list of projects that contrived the reasoning after choosing the name.

The DNF package manger always springs to my mind when naming comes up. Originally it didn't stand for anything, despite the use of DNF in sports to denote "Did Not Finish" (hardly a great connotation for most software). Though it appears to have since been coined as "Dandified YUM".

<comment><USER20> > contrived the reasoning after choosing the name

I believe you're looking for the word "backronym"? There's a few notable ones I can think of, like Amber Alert, and SOS.

<comment><USER19> > I believe you're looking for the word "backronym"?

TIL.

</comment></comment></comment><comment><USER21> I wish the topics here on HN would include a bit more context so it wasn't necessary to click on each link to find out what the post was about.

I love these sort of naming derivations, and it shows a certain creativity and irreverent humor found in the free software world. I wish that naming was a simpler aspect of software development -- often times it's the ultimate form of bikeshedding.

<comment><USER22> The name of the post was originally something like "etymology of Debian package names", but an admin decided that they did not like that name and changed it.

</comment></comment><comment><USER23> a bit tangential, while this is cute, what I've never been able to find is a definitive digestible guide to the final Debian package names. what does -dev -doc etc. really mean? (I often need a -dev package for stuff I'm not even building for some reason) why do some libs tack on a 'lib' at the front while some do not? why are package versions often seemingly unrelated to upstream versions? and sometimes packages come is multiple versions (like GCC) and yet often they don't.. seemingly randomly. for instance i just looked up lxqt which is listed as version 13... I don't know what version that corresponds to upstream.. 1.13? Maybe? it's all incredibly beginner unfriendly

maybe someone has a good reference?

<comment><USER24> > what does -dev -doc etc. really mean?

-dev packages ship the header files for C/C++ libraries, and in some odd cases also static libraries.

-doc packages ship documentation (unsurprisingly). Usually they only exist for things like libraries and interpreteres, where the documentation can be sizable and is only needed by a (small) subset of the users that have the package installed.

> I often need a -dev package for stuff I'm not even building for some reason

That's because to compile something that links against a library, you need to have the header files available.

> why do some libs tack on a 'lib' at the front while some do not

Aside from a few leftover historical oddities (primarily zlib), all shared libraries should be prefixed with lib.

> why are package versions often seemingly unrelated to upstream versions?

They should be. Exceptions are made for "native" packages (which usually provide Debian-specific software or integrations) and upstreams that don't really follow any versioning scheme.

> sometimes packages come is multiple versions (like GCC) and yet often they > don't

In the steady state there should be only one version of every package. During the transition to a new version, especially of very core packages such as GCC, there might temporarily be more. It's unfortunately happened in the past that multiple versions ended up in stable, but that was because the Linux kernel required a specific GCC version.

> for instance i just looked up lxqt which is listed as version 13... I don't > know what version that corresponds to upstream.. 1.13?

The LXQT package is a "native" package that only provides integration between Debian and LXQT, and as such it doesn't follow LXQT's version numbering. If you instead look at any actual LXQT software (e.g. lxqt-session), they follow the upstream versioning (0.14). I agree that it's a bit confusing, but it's a result of the development process.

<comment><USER23> Thank you for taking the time to explain :)

And yeah, zlib is a weird one. It's listed as zlib1g sometimes and the files are libz from what I remember

I have a followup if you don't mind. I'm trying to rack my brain for old confusions I've had... For instance I look up libssl. There is a libssl-dev, but no corresponding libssl. There are other libssl libs but all the names are inconsistent: libssl1.0.0 with no libssl1.0.0-dev and then there is a libssl1.0.2, but it has no libssl1.0.2-dev haha. But I do see a libssl1.0-dev and when I click through it have 1.0.2 as a dependency... So what's going on?

<comment><USER24> > And yeah, zlib is a weird one. It's listed as zlib1g sometimes and the files > are libz from what I remember

Fun fact: the "g" in the zlib1g package names comes from the transition to the GNU C library back in 1997, and zlib hasn't had any ABI-incompatible changes since then (ABI-breaks are the point where libraries are usually renamed, so that you can (temporarily) have both installed while users of the library are migrated to the new version).

If it would be introduced nowadays it would just be called libz1, consistent with other libraries.

> I have a followup if you don't mind. I'm trying to rack my brain for old > confusions I've had... For instance I look up libssl. There is a libssl-dev, > but no corresponding libssl. There are other libssl libs but all the names > are inconsistent: libssl1.0.0 with no libssl1.0.0-dev and then there is a > libssl1.0.2, but it has no libssl1.0.2-dev haha. But I do see a > libssl1.0-dev and when I click through it have 1.0.2 as a dependency... So > what's going on?

The usual structure is to have libfoo-dev with the development headers of the newest version, and then libfooX (with X the version number) with the shared libraries. There's usually only one of each, but during development older versions of the shared library might be around so that you can run binaries using them until they've been recompiled to link against the new version. There sometimes have been exceptions if it's very hard to get all software ported to the new version in time, but that's quite rare.

As far as I can see for OpenSSL, Debian 8 (jessie) shipped OpenSSL 1.0.0 (libssl-dev and libssl1.0.0). Debian 9 (stretch) had both OpenSSL 1.1 as default (libssl-dev and libssl1.1), and (as one of those exceptions) also OpenSSL 1.0 for legacy software (libssl1.0.2 and, again as an exception because the libssl-dev name is already taken, libssl1.0-dev). Debian 10 (buster), the current version, ships only OpenSSL 1.1.0 (libssl-dev and libssl1.1).

(In the case of OpenSSL it's even more confusing because 1.0.1 was a backward- compatible release with 1.0.0, but 1.0.2 wasn't. So the packages named 1.0.0 were actually version 1.0.1. Fortunately upstream has fixed their versioning scheme since then, so it will get better. That's also the reason old versions included the full version number, and now there's only the major and minor version -- since patch releases are compatible.)

<comment><USER23> thank you so much for that deep dive into the history and issues involved. I hadn't considered that it's tricky to have multiple -dev headers floating around. You can have packages link to different versions as needed, but you don't wanna hard code version paths into source code. Sounds like a tricky problem to solve cleanly.

Thank you again for sharing your unique unsight. This is stuff that's really hard to find otherwise. I just wish all these details where in the package descriptions. It would be so incredibly helpful. Especially in -dev packages where the description isn't going to be seen by "casual" users anyway

</comment></comment></comment></comment></comment><comment><USER25> I had always assumed that Expat was called that because James Clark lived in Thailand.

</comment><comment><USER26> I was expecting an entry for exuberant-ctags...

</comment><comment><USER27> Hm, I would guess that sylpheed is at least partly named after the video game Silpheed?

<comment><USER28> "1.5. What does the name Sylpheed mean?

It means light weight, like air. This comes from the name of the wind spirits, the Sylphs."

[https://sylpheed.sraoss.jp/doc/faq/en/sylpheed- faq-1.html#d0...](https://sylpheed.sraoss.jp/doc/faq/en/sylpheed- faq-1.html#d0e187)

</comment></comment><comment><USER29> Was disappointed to see Debian itself not in the list. Why is Debian called Debian?

<comment><USER30> Ian Murdocks (debians founder) then girlfriend, later wife, is named Debra. You can probably extrapolate the rest.

</comment></comment><comment><USER31> I would love to see an article about how people pronounce some of the strange names and acronyms we have ended up with. Quick survey? 'etc', 'gif', 'uefi', 'wget', 'cifs' ?

<comment><USER32> I once made a British sysadmin T|N>K * when I referred to eff tee pee dot ick ack ook, a repository of open source software.

(* tea piped through nose out to keyboard)

<comment><USER33> ick ack _uck_ , please!

</comment></comment></comment><comment><USER34> > anthy

[https://en.wikipedia.org/wiki/Revolutionary_Girl_Utena](https://en.wikipedia.org/wiki/Revolutionary_Girl_Utena)

> corosync

Not useful for Corona!

> figlet

Surprisingly - not a portmanteau of figure + piglet!

</comment><comment><USER35> "WhyTheLuckyStiff" \- although off topic, let's remember the time of the cheery comics and the epics of Ruby programming :-)

</comment><comment><USER36> They're going to have to use Rabbis to decipher this stuff in the future.

</comment><comment><USER37> yp prefix, eg ypwhich ypcat, etc. Stands for Yellow Page, later became Sun NIS because Yellow Page is a trademark.

</comment><comment><USER38> I wonder how up-to-date this is.

<comment><USER39> Last update 2020-02-10:

[https://wiki.debian.org/WhyTheName?action=info](https://wiki.debian.org/WhyTheName?action=info)

</comment></comment><comment><USER40> > an arbitrary animal name specifically chosen to get a tomcat onto the > O'Reilly book cover

actual LOL

</comment><comment><USER41> Missing 'dd'

'dd' stands for copy and convert.

'cc' was taken by the C compiler.

<comment><USER42> False.

'dd' is a JCL utility from IBM mainframes. Both the Unix command name and syntax are directly lifted from the mainframe version of the ... _data definition_ ... utility.

[https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/...](https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieab600/ddst.htm)

[https://groups.google.com/forum/m/#!msg/alt.folklore.compute...](https://groups.google.com/forum/m/#!msg/alt.folklore.computers/HAWoZ8g-xYk/HDUVxwTVLKAJ)

[https://groups.google.com/forum/m/#!msg/alt.folklore.compute...](https://groups.google.com/forum/m/#!msg/alt.folklore.computers/K4uzWBugSPE/GwSgDUEU_3wJ)

<comment><USER43> DD in JCL is not an utility, but keyword. Its functionality is something between shell's IO redirection and mounting volumes inside docker containers. The syntax itself is not that obscure in the context of JCL and IBM OSes.

</comment></comment></comment><comment><USER44> _> Apache-Licensed PINE, where pine was the old (non-DFSG-free) "Program for Internet News and E-mail" \- formerly known as "Pine Is Nearly Elm", named after a yet older electronic mail program. Nowadays contains its fork realpine, which the developers insist is re-alpine (alpine development restarted, since the original team seems to not be doing much) and not real- pine…_

Ok, I guess…?</comment>


Apple is untrusting macOS devices - <AUTHOR> https://www.reddit.com/r/apple/comments/by6cvy/apple_is_disconnecting_trusted_devices/ <comment><USER2> This appears to be a lone case issue, and the thread doesn't resolve what is actually going on.

I'm curious how "devices" became pluralized. Is there more than this thread about a single device describing the issue?

<comment><AUTHOR> Highly unlikely. Just to be sure I confirmed with Apple support yesterday. Here's what a Senior Advisor named Ryan told me: "Your trusted devices will periodically require you to re-authenticate your account to ensure that the device still belongs to you." In my case I was able to side-step my way back into my account after defeating the 2FA.</comment></comment>


Responsive vertical Timeline.css - <AUTHOR> http://christian-fei.com/tutorials/how-to-lazy-load-disqus-comments/#13

<comment><USER2> How many times are you going to repost this?</comment>


Ask HN: What is the wiki software used at golden.com? - <AUTHOR> I have been searching for a good looking wiki software for some months. It seems like golden.com fits the bill for me. (Eg: https://golden.com/wiki/Dashblock). I like the fonts and buttons etc. I am using mediawiki for my site but I have not seen good skins for it.
Any one here where or which wiki software/UI themes are being used by golden.com?
Thanks! <comment><USER2> We built it from scratch.</comment>


Empire of Code is the first game for coders where you can win without any coding - <AUTHOR> https://empireofcode.com/game/ <comment><USER2> Discussed a few days ago: [https://news.ycombinator.com/item?id=10583954](https://news.ycombinator.com/item?id=10583954).

</comment><comment><USER3> I grow weary of all these "games for coders" because they end up just being algorithm optimization games. Why not a game where every week the API you code against changes in random, non-backwards-compatible ways and maybe you get advance warning and documentation and maybe you don't. And your code should randomly error or fail to deploy because some personnel are on vacation, or left to get new jobs and so on.

<comment><USER4> They already included that feature! It uses Python 3!

</comment></comment><comment><USER5> "Login to play"

Nahhhhhhhhhhhhhh.

If you want people to play your game, forcing them to sign up first isn't the best way to do it. Let me try it out, then maybe say that you need to sign up to go past the first level or save your progress.

<comment><USER6> You have to sign up so you can pay real money for virtual goods!

</comment></comment><comment><USER7> This is just a crap game where you can pay real money to speed up progress, probably vaguely similar to Clash of Clans.

Apparently the "innovation" is that you can solve simple programming problems (i.e. write algorithmic code that passes tests) instead of paying real money (not clear if it's only in some or all cases).

Avoid.

<comment><USER8> >This is just a crap game where you can pay real money

I can't find anything about in-game purchases. They also don't have a mobile version yet. What are your reasons to say all of this?

<comment><USER6> I played the game for a few minutes. I had the option of spending $99.99 to purchase a red lightning bolt thing.

<comment><USER8> Huh, $99.99 for the bolt thing? The company looks legit, they announce a partnership with Jetbrains on their blog, for example.

[http://www.checkio.org/blog/](http://www.checkio.org/blog/)

<comment><AUTHOR> Do you know some other places where you can buy BOLT for just $99.99 :)

</comment></comment></comment></comment></comment><comment><USER9> For me, it still doesn't get any better than [http://robozzle.com/](http://robozzle.com/), but I have yet to try out Empire of Code.

<comment><USER10> I had a lot of fun with [http://codecombat.com](http://codecombat.com) , I'll check that out too.

</comment></comment><comment><USER11> A bit off-tangent. Does anyone remember a really old game (probably pre-2000) where you are some dude stranded on a remote planet and you have these robots that you could code to do tasks (like mine, defend from alien attack?) I remember you are near your spaceship and you get a couple of the robots.

</comment><comment><USER12> What's the point of "login with github" if you still ask for my email? Not interested...

<comment><AUTHOR> Don't lose the best game ever just because of that :)

</comment></comment><comment><USER6> This uses Python 3 without mentioning it, so it's easy to write correct Python 2.7 code and have it judged wrong.

<comment><AUTHOR> Agree!

</comment></comment><comment><USER13> Completely fails to load in IE?

</comment><comment><USER14> JavaScript vs. Python, huh?</comment>


H.P. Lovecraft – Against the World, Against Life (2004) [pdf] - <AUTHOR> https://web.archive.org/web/20060507063256/http://blog.urbanomic.com/dread/archives/houellebecq-lovecraft.pdf <comment><USER2> Strong rec: if you've ever wondered about H. P. Lovecraft but lacked the time to read your way through his writings (and all six volumes of his letters), this is Houellebecq giving you the Cliff's Notes version. (Lovecraft is considered a major literary figure in France, hence the interest among academics.)

(Disclaimer: I might have written the odd piece of Lovecraft-influenced fiction in the past ...)

<comment><USER3> Laundry files?

<comment><USER2> Yup.

<comment><USER4> Odd coincidence that I literally just finished reading _The Atrocity Archives_ about ten minutes ago. Great book, loved it. Thought the series might have been the inspiration for the movie _Cabin in the Woods_ , but seems not.

</comment></comment></comment></comment><comment><USER5> I've always been disappointed in the lack of recognition Dream Quest of Unknown Kadath gets. Several years ago, I read all of Lovecraft's works in a stretch, and while I enjoyed them all, Dream Quest really stood about. By the end my heart was racing and I was reading as fast as I could to find out what happened next. It's _very_ rare for me to have any reaction to a story beyond the pleasure of reading or the appreciation of good prose.

But Dream Quest is consistently absent from lists of favorites or of Lovecraft's best writings. Maybe I just have bad taste. :) To be fair, it is a little different in theme than Lovecraft's later writings: less scientific horror and more fantastical horror.

<comment><USER6> Dream Quest felt really different from the rest, but I really liked it as well. I was reading a collection of all his short stories at the time and it's pretty cool to see little stories that tie in to this storie's dreamverse from time to time.

<comment><USER7> I feel Kadath would be an excellent television series for boys aged 10-12. It has bravery and adventure and imagination and virtue, and horror but not blindingly so.

<comment><USER6> That or a video game. Could easily be a mix of adventure / puzzle with some action thrown in (Places like the forest, the moon, the underdream and kadath)

</comment></comment></comment></comment><comment><USER8> I'm a bit shocked to read about the extent of Lovecraft's racism. I had noticed it in his writings, but I thought it was the voice of his characters.

I never think much about the creators of the stories or the music I enjoy, exactly because I'm worried I might find something unpleasant, like Lovecraft's racism. Frex, I'm happy I don't understand a word of what many of the bands I listen to sing, otherwise I'm pretty sure I'd never listen to them again. [1] I was lucky not to know all this about Lovecraft, as I didn't know stuff about other writers I enjoyed when I was younger, otherwise I don't think I'd have managed to enjoy them in the same way.

And I was really, really into Lovecraft's stuff as a teenager. I think I've read pretty much everything he's published, plus a whole lot of his disciples' stories. A couple of shorts have escaped me, by happy coincidence (The Colour out of Space and The Shadow out of Time) and I'm keeping them for a special moment.

[1] [https://www.youtube.com/watch?v=TvGPAVTYfXI](https://www.youtube.com/watch?v=TvGPAVTYfXI)

</comment><comment><USER9> This is an interesting companion piece to ST Joshi's 2-volume biography of Lovecraft: I am Providence.

Joshi, while somewhat controversial due to his alleged whitewashing of Lovecraft's racial views (as well as some obvious editorializing in IaP), is currently THE Lovecraft authority. I am Providence is the best resource out there right now for insight into HPL views, life, and publishing history.

</comment><comment><USER10> I've read one of his books (Call of Chtulu) for the 1st time recently. I had not been warned about the high amount of racism that is to be found in his writing. It felt awkward until the last page!

The only time I have been that disturbed by a book, it was novel from Houellebecq...

<comment><USER11> Which one?

<comment><USER10> "Whatever" (in French :"L'extension du domaine de la lutte")

<comment><USER11> It's weird that I had not read about it on HN, given the wikipedia description: " _The novel tells the story of a depressed and isolated man stuck in a tedious but well-paying programming job._ "

</comment></comment></comment></comment><comment><USER11> I can't find this on archive.org. I want the epub download (if available), does anyone have it?</comment>


Instacart workers seek strike as jobs get busier, riskier - <AUTHOR> https://apnews.com/f5738dfa1c308affeac71d82a43c0214 <comment><USER2> They seem to understand that demand for this type of gig work has significantly increased, which might usually mean a strategically good time to strike...

But they don't seem to properly recognize that the available supply of idled gig workers has just gone through the roof.

<comment><USER3> And Instacart doesn't recognize that the demand for this work is a reason they should be paying their shoppers[1] more, charging more to customers as necessary.

[1] I assume Instacart has a special term for them but don't care to look it up.

<comment><USER2> You're kind of making my point- demand is meaningless if you don't also account for supply. Also demand for the service correlates to instacarts demand for shoppers, but they're not exactly the same thing.

As long as supply of workers is bigger than demand of workers, overall demand for the _service_ is basically irrelevant with respect to shoppers pay.

I'm not saying they should or shouldn't be paid more.

I'm saying that at a time when you're easily replaceable isn't the time to be a difficult employee/contractor.

As far as charging more, in many/most states it's now a moot point, as emergency declarations means no price increases because of gouging laws. I don't agree with it, but that's where we are. Yet another case of regulations having unintended consequences.

<comment><USER3> Ah, sorry, you're right, I misread your point and agree about demand being higher.

But I'm not sure that I agree that supply has increased in tandem -- at the very least, in the short-term, because there's an onboarding period. Since a lot of the jobless have access to unemployement benefits, they don't need to start right away. And further, even those who do like gig work will probably prefer food delivery, which has less interaction with others and thus lower risk of contracting the virus.

</comment></comment></comment></comment><comment><USER4> I wonder if Instacart some something similar to Grayball. Wouldn't be too hard to parse names with facebook accounts and group associations.</comment>


An eleven years old start-up - <AUTHOR> http://www.adormo.com/blog/various/we-are-here-to-stay/

<comment><AUTHOR> > Your persistence is admirable

Thanks! The first 8 years were easy. I set up these websites, they gave me money to travel and I traveled. The second part, Adormo, required and required persistance, because I got many people involved in the project. But I am so sure about the validity of the core ideas that I simply go ahead with no real effort.

> Suggestion: Tell us more about your current success and future plans.

We are in the ending phase of 1.0 development but launched already several sites. Some are doing very well and earning really good commissions (e.g. <http://www.lignanos.com> is big in the Russian market). The next step is to start growing faster in many key cities. We are looking into investments now, to speed up growth, as the business model has proven to be valid.

Thanks for the interest!

> I started this business in 2011 and never stopped.

yes, thanks, corrected already!

</comment><comment><USER2> Your persistence is admirable. Suggestion: Tell us more about your current success and future plans. Also,

 _I started this business in 2011 and never stopped._

did you mean to say that you started in 2001 rather than 2011?</comment>


Upcoming Gmail Features - <AUTHOR> http://googlesystem.blogspot.com/2010/07/upcoming-gmail-features.html <comment><USER2> Any gmail guys out there? Something I desperately, desperately want is this:

I use one gmail account with several email addresses. I want the ability to specify that certain people should be associated with certain addresses. I.e. firstname.lastname@example.com gets associated with my Apache address. Clients get associated with my @dedasys.com address. Family with @welton.it, and so on and so forth. I hate it when I accidentally send something from @gmail.com to clients.

<comment><USER3> There's a Labs extension that can undo a send operation if you can click fast enough. But I agree, this would be a very nice feature to have.

<comment><USER4> No need to click if you have keyboard shortcuts on. Just hit 'z.'

</comment></comment></comment><comment><USER5> Not directly related to the article but it reminded me that I discovered today the most amazing Google Mail feature ever: the "Forgotten Attachment Reminder." Basically it looks at the body of your email and if it detects that you mentionned an attachment but you didn't actually attach anything to the e-mail, it reminds you before sending. This is very useful for disorganized people like me who forget to actually attach the file two times out of three.

</comment><comment><USER6> Since we're all requesting features... I want the ability to send messages to the spam folder with a custom filter. I receive certain types of spam that always get through, despite flagging it multiple times. They're easily killed with the "create filter" feature, but I end up having to send them to the trash, which is less than ideal, because now my trash is full of spam.

So, in summary, please add "send to spam" to the custom filter actions.

<comment><USER7> I think they want you to manually flag spam using the Spam button, rather than using an automated filter, mainly to avoid false positives.

</comment></comment><comment><USER8> I've asked the GMail team repeatedly for a way to tag messages while I'm composing them. It saves many clicks after sending -> go to sent mail, select the message, apply a label, go back to inbox. It seems like a great value-add for the zealous label-users.

<comment><USER9> In the meantime, you could use keyboard shortcuts: gtxl(label name)[ENTER]gi

</comment></comment><comment><USER3> I know this has been requested thousands of times in every forum on the web, but if someone from Google is listening, could you add a switch to stop automatically adding contacts?

<comment><USER10> I never really used the Google contacts feature until getting an Android phone. At that point I had to spend an hour getting my contacts into a usable state; most of that time was spent clearing out nearly six years' worth of contacts that were auto-added courtesy of Gmail.

<comment><USER11> What they should do is to allow you to remove everything that you haven't replied back to.

<comment><USER12> That should be something you can hack with the Contacts Data API:

[http://code.google.com/apis/contacts/docs/3.0/developers_gui...](http://code.google.com/apis/contacts/docs/3.0/developers_guide.html)

</comment></comment></comment></comment><comment><USER13> I suggested having a "Compose" button instead of a link in 2004. I noticed no one, including myself, was looking for a link when they wanted to write a new email because the other active Gmail actions like "Search" and "Delete" all had buttons.

<comment><USER14> What has buttons and what has links in Gmail is totally inconsistent.

Also, has anyone ever figured out a way to edit the Quick Links that are created from the Google Labs "quick links" plugin? It seems like you can create them, but not delete or edit them.

</comment></comment><comment><USER15> Here's a relatively simple request.

Add the ability to sort by attachment size. I want to be able to clear out some old files and have to resort to attaching Mac Mail to it just so that I can sort.

<comment><USER16> I've heard gmail's data store makes this an expensive operation. It doesn't want to load all your messages and sort/page through them by their content. But can't give you a citation on this.

Presumably, this is why all views are chronological: it filters a time-indexed stream of messages.

<comment><USER15> I don't buy this. Gmail allows you to sort/select using other parameters. This would simply be another search param.

Note that I'm not disputing the fact that this may be an expensive operation. But I am able to go in through IMAP and issue the equivalent instructions, sort by size in client, then issue IMAP delete/purge requests, the net result is the same so why not enable this.

</comment></comment></comment><comment><USER17> I would like my mail to be automatically archived on viewing, unless I take specific action to keep it in the inbox, à la Emacs Gnus. (Emacs Gnus hides read email unless the user has ticked it.)

</comment><comment> adam-_- Maybe I'm weird but I don't want stuff I've labelled ending up in spam. I've never seen one of these messages being actual spam, usually just a mailing list posting.

</comment><comment><USER18> I really want the ability to add a time delay to emails before they're sent. It's such a simple feature, I don't know why it hasn't been added yet.

<comment><USER19> When you send a message, you have the ability to Undo that sending for about ten seconds. It's in the yellow banner at the top.

<comment><USER18> That's not what I mean. I want to be able to write an email and specify that it should be sent at a certain time in the future, rather than right now.

</comment></comment></comment><comment><USER20> I wish it would stop suggesting everyone I email join GMail!</comment>


Consistently Formatting C - <AUTHOR> http://blog.9lines.org/?p=26

<comment><USER2> This is great, except for the times that you take advantage of the fact that programming is essentially ascii art sometimes. I grant that these examples are edge case in occurrence, but breaking the formatting really helps there.

And... I just can't bring myself to think that a rigid adherence to formatting will benefit any codebase as much as folks would like to think. As "edge case" as my reasons for wanting to break it, the straw men built up to show why it matters are even more ridiculous.

And this is completely ignoring that, once again, the largest collaboratively maintained source tree on the planet (that I am aware of) does not need this level of formatting adherence. Why do we think other projects do?

<comment><USER3> The largest collaboratively maintained source tree on the planet (that I am aware of) is the Linux Kernel. Just submit a 'badly' formatted piece of code to someone like Greg Kroah-Hartman and see what happens.

Quoting a formal study[1]:

"It is not merely a matter of aesthetics that programs should be written in a particular style. Rather there is a psychological basis for writing programs in a conventional manner: programmers have strong expectations that other programmers will follow these discourse rules. If the rules are violated, then the utility afforded by the expectations that programmers have built up over time is effectively nullified."

[1] Soloway, Elliot, and Kate Ehrlich. 1984. "Empirical Studies of Programming Knowledge", IEEE Transactions on Software Engineering SE-10, no. 5 (September): 595-609

[2] <http://goo.gl/2bHwq>

<comment><USER2> My point was more that I would wager most "auto styler" tools will change code that is in the kernel. You are really just bringing up more of what I consider "straw men" in this argument. Terribly formatted code is of course terrible. Much of what folks argue about being "good code" is just nitpicky wastes of time. Take this snippet from the kernel:

                if (pages) {
                    pages[i] = virt_to_page(start);
                    if (pages[i])
                        page_cache_get(pages[i]);
                }
                if (vmas)
                    vmas[i] = vma;

This is just an arbitrary snippet, as I really have no familiarity with the code. But, alone in this snippet I already see at least two things that would make most format obsessed people go stupid. (Three in the actual code, but I don't know if the tabs will be visible to folks on this forum.)

Edit: I forgot to add that I realize this segment actually conforms to the linux style guide. So... yeah, doesn't really say much other than to show that the kernel crew disagrees with most anyone you will ever hear online. It does not take too much effort to find snippets that actually do violate their own rules.

</comment></comment></comment><comment><USER4> You are better off putting your options into .astylerc. This is what I have in mine:

        # Use K&R formatting style
        style=kr

        # Indent class and struct blocks so that the blocks 'public', 'private' and
        # 'protected' are indented. This option is effective in C++ files only
        indent-classes

        # Indent 'switch' blocks so that the 'case X:' statements are indented with
        # the switch block. The entire case block is indented.
        #
        # For example:
        # switch (foo)
        # {
        # case 1:
        # 	a += 1;
        # 	break;
        #
        # case 2:
        # {
        # 	a += 2;
        #	break;
        # }
        # }
        #
        # becomes
        #
        # switch (foo)
        # {
        #     case 1:
        #         a += 1;
        #         break;
        #
        #     case 2:
        #     {
        #         a += 2;
        #         break;
        #     }
        # }
        #indent-switches

        # Indent C++ namespaces (this option has no effect on other file types)
        # Add extra indentation to namespace blocks.
        # For example:
        # namespace foospace
        # {
        # class Foo
        # {
        #     public:
        #         Foo();
        #         virtual ~Foo();
        # };
        # }
        #
        # becomes
        #
        # namespace foospace
        # {
        #     class Foo
        #     {
        #         public:
        #             Foo();
        #             virtual ~Foo();
        #     };
        # }
        indent-namespaces

        # Indent multi line preprocessor definitions ending with a backslash
        # For example:
        #
        # #define Is_Bar(arg,a,b) \
        # (Is_Foo((arg), (a)) \
        # || Is_Foo((arg), (b)))
        #
        # becomes:
        #
        # #define Is_Bar(arg,a,b) \
        #     (Is_Foo((arg), (a)) \
        #      || Is_Foo((arg), (b)))
        #
        indent-preprocessor

        # Indent C++ comments beginning in column one.
        # For example
        #
        # void Foo()\n"
        # {
        # // comment
        #     if (isFoo)
        #         bar();
        # }
        #
        # becomes:
        #
        # void Foo()\n"
        # {
        #     // comment
        #     if (isFoo)
        #         bar();
        # }
        #
        indent-col1-comments

        # Pad empty lines around header blocks (e.g. 'if', 'for', 'while'...).
        #
        # isFoo = true;
        # if (isFoo) {
        #     bar();
        # } else {
        #     anotherBar();
        # }
        # isBar = false;
        #
        # becomes:
        #
        # isFoo = true;
        #
        # if (isFoo) {
        #     bar();
        # } else {
        #     anotherBar();
        # }
        #
        # isBar = false;
        #
        break-blocks

        # Insert space padding around operators. Any end of line comments will remain
        # in the original column, if possible. Note that there is no option to unpad.
        # Once padded, they stay padded.
        #
        # if (foo==2)
        #     a=bar((b-c)*a,d--);
        #
        # becomes:
        #
        # if (foo == 2)
        #      a = bar((b - c) * a, d--);
        #
        pad-oper

        # Insert space padding after paren headers only (e.g. 'if', 'for', 'while'...).
        # Any end of line comments will remain in the original column, if possible.
        # This can be used with unpad-paren to remove unwanted spaces.
        #
        # if(isFoo(a, b))
        #     bar(a, b);
        #
        # becomes:
        #
        # if (isFoo(a, b))
        #     bar(a, b);
        #
        pad-header

        # Remove extra space padding around parenthesis on the inside and outside. Any
        # end of line comments will remain in the original column, if possible. This
        # option can be used in combination with the paren padding options pad‑paren,
        # pad‑paren‑out, pad‑paren‑in, and pad‑header above. Only padding that has not
        # been requested by other options will be removed.
        #
        # For example, if a source has parens padded on both the inside and outside,
        # and you want inside only. You need to use unpad-paren to remove the outside
        # padding, and pad‑paren‑in to retain the inside padding. Using only
        # pad‑paren‑in would not remove the outside padding.
        #
        # if ( isFoo( a, b ) )
        #     bar ( a, b );
        #
        # becomes (with no padding option requested):
        #
        # if(isFoo(a, b))
        #     bar(a, b);
        #
        unpad-paren

        # Delete empty lines within a function or method. Empty lines outside of
        # functions or methods are NOT deleted. If used with break-blocks or
        # break-blocks=all it will delete all lines EXCEPT the lines added by the
        # break-blocks options.
        #
        # void Foo()
        # {
        #
        #     foo1 = 1;
        #
        #     foo2 = 2;
        #
        # }
        #
        # becomes:
        #
        # void Foo()
        # {
        #     foo1 = 1;
        #     foo2 = 2;
        # }
        #
        delete-empty-lines

        # Attach a pointer or reference operator (* or &) to either the variable type
        # (left) or variable name (right), or place it between the type and name
        # (middle). The spacing between the type and name will be preserved, if
        # possible. To format references separately use the following align-reference
        # option.
        #
        # char *foo1;
        # char &foo2;
        #
        # becomes (with align-pointer=type):
        #
        # char* foo1;
        # char& foo2;
        #
        # char* foo1;
        # char& foo2;
        #
        # becomes (with align-pointer=middle):
        #
        # char * foo1;
        # char & foo2;
        #
        # char* foo1;
        # char& foo2;
        #
        # becomes (with align-pointer=name):
        #
        # char *foo1;
        # char &foo2;
        #
        align-pointer=name

        # Set the minimal indent that is added when a header is built of multiple
        # lines. This indent helps to easily separate the header from the command
        # statements that follow. The value for # indicates a number of indents and is
        # a minimum value. The indent may be greater to align with the data on the
        # previous line.
        # The valid values are:
        # 0 - no minimal indent. The lines will be aligned with the paren on the
        # 	preceding line.
        # 1 - indent at least one additional indent.
        # 2 - indent at least two additional indents.
        # 3 - indent at least one-half an additional indent. This is intended for large
        # 	indents (e.g. 8).
        #
        # The default value is 2, two additional indents.
        #
        # // default setting makes this non-bracketed code clear
        # if (a < b
        #         || c > d)
        #     foo++;
        #
        # // but creates an exaggerated indent in this bracketed code
        # if (a < b
        #         || c > d)
        # {
        #     foo++;
        # }
        #
        # becomes (when setting --min-conditional-indent=0):
        #
        # // setting makes this non-bracketed code less clear
        # if (a < b
        #     || c > d)
        #     foo++;
        #
        # // but makes this bracketed code clearer
        # if (a < b
        #     || c > d)
        # {
        #     foo++;
        # }
        #
        min-conditional-indent=0

        # Set the  maximum of # spaces to indent a continuation line. The  # indicates
        # a number of columns and must not be greater than 120. If no # is set, the
        # default value of 40 will be used. A maximum of less than two indent lengths
        # will be ignored. This option will prevent continuation lines from extending
        # too far to the right. Setting a larger value will allow the code to be
        # extended further to the right.
        #
        # fooArray[] = { red,
        #          green,
        #          blue };
        #
        # fooFunction(barArg1,
        #          barArg2,
        #          barArg3);
        #
        # becomes (with larger value):
        #
        # fooArray[] = { red,
        #                green,
        #                blue };
        #
        # fooFunction(barArg1,
        #             barArg2,
        #             barArg3);
        #
        max-instatement-indent=9

<comment><USER5> Do you mean to have indent-switches commented out?

<comment><USER4> Yes :D.

<comment><USER6> Freak!

</comment></comment></comment></comment><comment><USER7> That Bash script looks a little irky…just imagine more than one level of directories, and `` is both none-portable and overly ugly, at least compared with $()…not to mention that Shell expansion (for i in $basedir/⁕.{c,h}) should work equally well :)

Anyway, I would rather suggest something like:

      find . \( -name '*.c' -o -name '*.h' \) -exec printf "Doing Stuff on {}\n" \; -exec head -n 1 {} \;

<comment><AUTHOR> Your bash foo eclipses mine, thank you for the bash schooling! I've updated the script on my original post and gave you credit, hope that's okay.

<comment><USER7> Sure, feel free to do whatever you like with that. Bash is more or less the only scripting language I know/use, so it is only natural to find shortcuts over the years :)

<comment><USER8> > Bash is more or less the only scripting language I know/use

I feel sorry for you.

Try Python, especially if you're doing anything involving string processing.

<comment><USER7> Thanks, but I used Python once for a little FUSE module (long story…) and didn't particularly like it. If anything, I'd rather try Perl - but then, you can do so much with a sensible Shell and the coreutils, the need to even write a proper script rather than a large concatenation of pipes is a rare event for me.

So I guess I'll stick to Bash and use whatever-is-best if that's not enough.

</comment></comment></comment></comment></comment><comment><USER9> Having it as a git pre-commit hook seems dangerous to me — what if there's a bug in the formatting tool that breaks something in the code? Then you have non-functioning code committed. It's a lot better if you can just have the self-discipline to run the formatter when you're done making changes. Alternatively, you could have it in your build script, so you'll likely catch the formatter-related problem when you're testing your code.

<comment><USER5> Or what about a pre-commit hook that, instead of transforming the version you're committing, just compares a transformed version to the version you're trying to commit? You could warn on commit if they don't match, plus maybe provide an option to override the warning and commit anyway.

<comment><AUTHOR> I like this. If someone writes a version which does this let me know and I'll post a link on the post.

</comment></comment></comment><comment><USER10> Two stories regarding coding standards.

~

At my old day job (sprawling planet-eating Java), the codebase had gone through many hands over the course of ten or so years. The "age" of some code or feature could usually be determined by looking at how it was written: newest code used the Java foreach construct, older code (usually by one particular developer) used explicit for constructs, and the oldest code reimplemented (poorly) collection classes without generics.

Additionally, the fist (coding style) of each person who'd worked on a section became apparent: my own code tended to have a large number of anonymous inner classes and monkey closures, as well as somewhat heavy use of interface and abstract classes. Another coder liked static factory methods a lot, as well as very shallow inheritance hierarchies (in order to make debugging simpler). The oldest code was the poster child for 90s Java: EnterpriseFactoryProxyFacadeAdaptorSingletonProviders, overly wordy code to accomplish simple tasks, etc.

It was interesting to open a file or function to implement a feature or bugfix and then twitch when you realized that it was from one of the more...time- pressed...veteran... developers. By contrast, opening code in a particular style (indenting, commenting, etc.) I recognized as my own or another coworker brought relief.

~

At the same time I was working on this, I worked on a large library with some friends doing gamedev. We agreed on a coding standard, had some rather arcane arguments, and ultimately settled on something that drew heavy inspiration from Insomniac's coding guide--not exactly alike, but we at least had an opinion on nearly everything they cover.

Whenever working on that code, I have a very different feeling. Despite the fact that we're all working on it at the same time, and despite the fact that we all have some remnants of our fists, the codebase still feels fairly uniform and like home.

Variable naming is basically the same, choice of verbs and methods is the same, indentation is nearly the same (as are the cases where liberties are taken), commenting is consistent where it matters (fists show through in individual writing styles, but documentation for interfaces and function signatures is standardized), and overall there is a high amount of consistency.

Even deeper, the amount of cleverness is roughly equivalent throughout the code--as we use C++, this cannot be undersold. We've come to a consensus on when and how to use templates, and in what ways, and when to use defines, and how we treat inheritance and interfaces and abstractions. We have house rules on how things should behave; in a language where you can overload and redefine operators, restraint is important.

~

Overall, having a common coding standard--and moreover, one that everyone has closely examined and discussed and agreed on--really helps decrease cognitive load. It gives better "faith" in your codebase, and reduces the annoyance of working on somebody else's code. It reduces the impedance mismatch of abstractions as they work together, and helps to reassure you when its three in the goddamn morning and why the christ am i getting these compiler warnings sheezus didnt anybody read through this before committing argh at least we have unit tests.

It's also something a lot of people seem to dismiss as bike-shedding, and sometimes it can seem like that. It's at least worth considering, especially if you work with people you care about--coding on a team should be like a relationship, and any successful relationship involves developing a common background and shorthand for communicating.

<comment><USER11> I think this has been one of the impediments to the commercial use of Lisp. The syntax of a language is sort of the ultimate style guide. You loop using the built-in loop construct. You do something for each element using the built-in foreach construct.

But without even much built-in syntax, much less a universal style guide, every Lisp programmer creates his own favorite language. That's part of the joy of it for an individual project and part of the cost for a group project.

</comment></comment><comment><USER12> There is actually a tool in the clang extras repository for this called clang- format. It supports three different styles ("LLVM", "Google", "Chromium") although I'm not sure where those are documented exactly.

<http://clang.llvm.org/docs/ClangFormat.html> (a little outdated from HEAD)

<comment><USER13> Google style is probably [http://google- styleguide.googlecode.com/svn/trunk/cppguide.x...](http://google- styleguide.googlecode.com/svn/trunk/cppguide.xml) , Chromium <http://dev.chromium.org/developers/coding-style>

</comment></comment><comment><USER14> Hah. I thought the article was about cleaning harddrives :D</comment>


Show HN: Mistype.co – let your users tell you about mistakes - <AUTHOR> http://www.mistype.co

<comment><USER2> I really like this concept. I've used [http://www.emendapp.com/](http://www.emendapp.com/) for this in the past, but I never knew if anyone was actually paying attention. It's a passive service that webmasters need to check themselves.

Your service is more proactive, and thus I expect it will also be more useful once it gains some traction.

<comment><AUTHOR> Proactive is key there, yes. If webmaster put Mistype on site, he probably care about content enough to fix typos.

Thanks :)

</comment></comment><comment><AUTHOR> I finally made some fixes and it seems to work.

Source code is available at [https://github.com/marinintim/mistype](https://github.com/marinintim/mistype)</comment>


Ask HN: Review our app: masterbranch.com - <AUTHOR>

Hi HN We would like to have some feedback about the app we are building.
Masterbranch is a site which makes CVs for developers based on their real experience (Open Source by the moment). In a future there will be tools for people who haven't worked in open source. Now we are focusing in supporting different forges and with time keep growing and giving support for more but we are also trying to polish what we already have.
We have few employers registered, and they think the service might be nice and useful, but we would like to know more about how other developers like us see the site, what they like, what they dislike... Any feedback is welcome and appreciated  :)
Our aim is to be useful for developers to get great and cool jobs and give employers a good tool for hiring talent and to reduce the hiring error in technical recruitment.
Thank you for your kind attention
Cheers <comment><USER2> I'm interested in seeing how you classified a developer in certain categories.

I just searched my Github profile (I am josegonzalez on Github, savant elsewhere) and noticed on the sidebar that it had a bunch of links to types of developers. One of them was "CakePHP Developers". How did you categorize me in this section, and will you make such methods known? I'm curious as I run CakePackages.com (<http://cakepackages.com>) and your algorithm is pretty accurate. Since part of that particular app is indexing CakePHP-related code AND developers, it would be nice to see how you are categorizing developer's repositories (I've been thinking of using PHP's reflection class to do categorizing for my purposes, but I want to know how to auto-find CakePHP developers themselves...)

I love the idea, and as soon as I sort out my OpenID provider (HEY ADD FOAF+SSL SUPPORT!), I'll be signing up for this service :)

<comment><AUTHOR> Hi, For the algorithms our inspirational reading was "Programming Collective Intelligence" <http://oreilly.com/catalog/9780596529321>

As all the recommendation algorithms the basis is the text, and dictionaries with technologies, and of course a long time blacklisting words by hand.

We didn't think about ssl but, could be a nice feature. Is already wrote down in our roadmap. I like it.

About <http://www.foaf-project.org/> give me some days and I'll put it. I can tell you when this is done through GitHub's message system.

We are really appreciating and considering every ideas all of you are giving here. Thanks a lot.

</comment></comment><comment><USER3> Recently I wanted to hire a consultant for an open source project. I had no idea how to do this because there's no easy way to find out who the right people are and who is interested in working on bug fixes that are interesting to me as a corporate user of their work. I googled and found that the project I needed work done on had a page for this but I only found it by searching (and I didn't expect to find anything when I did).

Maybe there are sites out there that do this and I'm just unaware of them. It seems like if you can solve that problem you'd have a nice feature on your hands. Maybe it's a separate site from what you're doing now. Don't know. It seems like it might be a common problem for people wanting to use a variety of open source tools and aren't plugged into the developer community for that project.

Just a thought I had today and I saw your site trying to do something related so I figured I'd share it. Good luck.

</comment><comment><USER4> Hey this is a great idea. I know I'd rather hire from a pool of open source developers whose contributions I can take a look at ahead of time.

I think your biggest challenge is not in finding employers, but getting the community of developers registered on it. I would probably position it less as a job hunting site and more as a 'show off your projects' type site. Once you get enough developers on the site then adding a job board section becomes a no brainer.

Have you thought about integrating StackOverflow as well? E.g. not just the code they've written, but the programming advice they've given.

<comment><AUTHOR> We have been thinking about StackOverflow info, but we have some doubts about it. How to measure, how to compare it with the code info, etc. We prefer first work with the code, trying to "do one thing a time and do it well". Nevertheless hopefully in a not very long time we will try to start giving tools to improve CVs with non FOSS.

Regards

</comment></comment><comment><USER5> I came across this website a few days ago and I like the idea and execution so far :)

In my opinion, you should be able to manually edit project description and add extra information to it.

Also more forges like lauchpad, ohloh? and others are needed.

P.S. At what rate do your spiders crawl GitHub and other websites?

It looks like that many projects with recent updates are missing.

<comment><AUTHOR> Glad to hear about you like the idea.

We will add more forges, it is in our roadmap.

Crawling speed depends on the forges and if we have the project info or if is pending to be got for the first time.

Hopefully, the speed will become more stable and new projects, and contributions come up earlier in Masterbranch.

</comment></comment><comment><USER6> <http://www.masterbranch.com/developer/nv/139036> "NV has worked in 2 Open Source projects."

It's not true. <http://github.com/NV> — 27 repositories.

<comment><AUTHOR> Hi. We do not have all the projects yet, but they will be there soon.

</comment></comment><comment><USER7> Forgive my ignorance, there is talk of "CV" or "CVs" everywhere on the site. Without googling for it, I would have no idea what it was or is. I think it's an overused abbreviation on your main and about pages.

<comment><AUTHOR> Hi, We now that in the US the most used word is resume, but CV is widely used in the rest of the world.

<comment><USER8> I actually first thought the site was about version control, given the name and the CVs references (which I assumed was a typo).

</comment></comment></comment><comment><USER9> clickable link: <http://masterbranch.com></comment>


Learn to say NO - <AUTHOR> http://akhil.me/2013/learn-to-say-no <comment><USER2> _" Say no to teachers who expect you to just remember and not understand. Education is beyond the questions at the end of the chapter of the textbook."_

I agree fully with the first sentence, but take mild exception to the second sentence as I happen to be writing 'questions at the end of the chapter' right now! _My_ questions at the end of the chapter are designed to try to increase understanding (but I'm sure everyone says that).

I think the value of essays like this would be increased with specific anecdotes and stories. Parables if you like.</comment>


Nifty UML generator - <AUTHOR> http://www.yuml.me/

<comment><USER2> Awesome - really great idea and great execution</comment>


Patterns - <AUTHOR> http://caper.ws/patterns/ <comment><USER2> This seems to be a hypertext version of _A Pattern Language_ .[1]

[1] [https://en.wikipedia.org/wiki/A_Pattern_Language](https://en.wikipedia.org/wiki/A_Pattern_Language)</comment>


PROCJAM's Seeds zine – Issue 3 - <AUTHOR> http://www.procjam.com/seeds/issues/3/ <comment><USER2> Is there any way to subscribe to an RSS feed with the magazine issues?

<comment><USER3> I haven't used RSS since Google pushed Reader into a volcano. It's sad and stupid, but I bet a lot of people were in a similar boat.

<comment><USER4> What's sad and stupid about it is that there are plenty of good web-based RSS readers out there (Feedbin, Feedly, The Old Reader etc) that will accept an OPML export of a Google Reader account, and most sites still publish RSS feeds. So there was no reason other than laziness for so many people to stop using it.</comment></comment></comment>


Xi Jinping's Great Leap Backward - <AUTHOR> http://www.theamericanconservative.com/articles/xi-jinpings-great-leap-backward/ <comment><USER2> Any given political systems works well in some cases, and poorly in others. American representative democracy works when the country is relatively unified on issues, but falls apart when the population is polarized (hence the lack of meaningful legislation since the Clean Air Act under Nixon). Authoritarianism works well when the ruling cohort is benevolent and technocratic, but falls apart when corruption, incompetence, or political instability take hold (various Chinese and Russian leaders fit the bill here).

All this is to say, things are complicated. The standard of living for hundreds of millions of people in China has increased unimaginably since Deng's time: the middle class is still exploding, infrastructure is immaculate, pollution is improving, and global opportunities for middle class Chinese are opening dramatically. But at the same time, Xi's tightening of power, the burgeoning surveillance state, the brutality being perpetrated in Xinjiang and Tibet, and the ongoing censorship are extremely troubling. Maybe things will change, and the population will grow extremely discontent. Maybe quality of life will continue to increase rapidly, China will become the dominant global superpower, and people will laud Xi as a visionary for decades to come. It's just tough to say.

</comment><comment><AUTHOR> I assume we will be getting some what-abouters. So let me ask them what is their own political philosophy, like do they think Xi is great, or do they support liberal democracy but are angry at how the US fails to hold up its ideals, or what?

Also, I assume we will be getting some people who will say the article is a pack of lies, so let me ask them to give us what they think is the truth on the matters the article covers, like the history of China, or how Xi has changed things from the system that Deng installed.

<comment><USER3> Please don't take HN threads into political and national flamewar. I'm sure you didn't mean to, but that's where a comment like this one leads, which is a reason for several of the site guidelines, including this one: " _Comments should get more civil and substantive, not less, as a topic gets more divisive._ "

Could you please (re-)read [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html) and be more careful about using this site as intended?

<comment><USER4> If that's considered starting a flamewar, then this site is too sensitive to hold political conversations in the first place.</comment></comment></comment>


Show HN: Arc Studio Pro – Collaborative Editing/Version Control for Screenplays - <AUTHOR> https://arcstudiopro.com <comment><AUTHOR> Hey, Michi here, from Arc Studio Pro.

As MartinMond said, this is indeed an attempt to bring a GitHub style workflow to a field outside of software development.

The app is written in Clojure(Script), implementing OT for collaboration.

Happy to answer any questions!

<comment><USER2> First off, amazing job - the UX design is outstanding. I've been wishing for something like this for music composition for the longest time, something that would combine the ease of use and live-collaboration aspects of Google Docs with custom workflows and object types as you have here. (Unfortunately, the presentation layer for the music domain requires implementing an entire DAW or notation interface on top, both of which are herculean efforts that I haven't tried to tackle yet!)

That said, I'll probably end up using this for lyrics! (When I used to write for musical theater in college, our writing workshop would basically use Google Docs, using screenplay formatting and typesetting in all caps for singing. This would have revolutionized the workflow there, even without music-specific features. Individual songs have "beats" and evolving themes just like anything else!)

On the tech side, did you use something like [https://github.com/jahfer/othello](https://github.com/jahfer/othello) for OT, or roll your own? And do you think in hindsight that CLJS was the right language/toolset for the job? I've always been interested in its ability to treat immutable data as a first-class citizen, but I haven't had a chance to do it yet.

<comment><AUTHOR> Thanks for the kind words! Would be great to learn what kind of format you'd use for writing lyrics. email@example.com

The OT is custom and clj/s was the perfect tool for the job. Highly recommended.

</comment></comment></comment><comment><USER3> Nice. I was soliciting feedback from screenwriters in prep for a similar service; I would've taken a fundamentally different approach to it, but you've covered a lot of the bases I had in mind.

If you're looking for people to give it a whirl, I'll pass it to anyone I know to solicit feedback, though the hard part might be in breaking their workflows for the better.

Is there any specific industry feedback you're seeking?

<comment><AUTHOR> I've often had the same experience, people's workflows are pretty ingrained (in general, not just screenwriters). But I've done some pitches where a writer had a lightbulb moment, and realized that collab and versioning really would make things easier.

I put great emphasis on the app behaving similar to current screenwriting tools, and the collaboration/versioning features just being there when they are needed, so the change in somebody's workflow can happen gradually.

I'm curious which approach you had considered. And would love to get feedback from writers/filmmakers of all backgrounds: firstname.lastname@example.com

<comment><USER4> I work for a movie production company and have been thinking of creating something similar - especially the collaborative and versioning feature as in github for screenwriting. If you like I could ping you via E-Mail as well, since there are some features crucial for (at least our) workflow. Revision aka colored (replacement)pages, excerpts for set dressers etc. But so far it looks really great and I hope it'll be able to replace Final Draft at our company someday.

<comment><USER5> CelTx has most of those features already. Last time I checked them out they were working on collaborative features; I don't know if they've released those yet.

WriterDuet already has collaborative features--indeed, that was the original goal of the app. It also includes support for replacement pages and everything else you've suggested that you need.

</comment></comment></comment></comment><comment><USER6> Congrats on launching your tool.

It seems polished and thought out. There is clearly a lot of work and thought behind it.

Can you share a little on how it compares with the competition?

\- writerduet

\- amazon storywriter

\- rawscripts

\- Celtx

\- Scrivener + Dropbox

\- Google Docs + fountain support

and of course who knows how many more I am missing. Such a crowded field.

<comment><AUTHOR> It's true that the space is really crowded, but we also felt that all the other tools focused on formatting and not much else.

We wanted to consider the whole screenwriting process: collecting first ideas, outlining, distraction-free writing and formatting, collaborating, requesting and managing feedback, versioning...

Also, we want to take collaboration and versioning much much further than any existing tool and accommodate complex workflows, especially for larger writing teams. We're just getting started... :)

<comment><USER5> _It 's true that the space is really crowded, but we also felt that all the other tools focused on formatting and not much else._

I think you need to do your homework again. Formatting is by far the smallest part of what most of your competitors offer. For example, WriterDuet offers collaborative screenwriting, and has--for at least 2 years. WD and FD have also offered versioning for at least a few years, and include "revision" pages for changes made to scripts after production has already began. Both of these programs have already been used to write Hollywood movies collaboratively.

 _We wanted to consider the whole screenwriting process: collecting first ideas, outlining, distraction-free writing and formatting, collaborating, requesting and managing feedback, versioning..._

Almost every single one of your competitors already does this...Celtx and Final Draft even add production planning capabilities to the mix (though FD requires paid addons for that functionality). Did you actually use any of them before you decided to jump into this market? It sort of seems like you didn't do you homework and decided that just because you were a programmer you could design things better than the people who actually use these for a living. (FD, WD, and Celtx were all designed--and in the case of WD and Celtx were also programmed--by people who earned their living writing screenplays or producing films.)

</comment></comment></comment><comment><USER7> Do you expect that the feature roadmap will justify the monthly rental fee?

I could probably tolerate the monthly rental as long as new features are coming in and bugs being sorted out. But at some point, there are diminishing returns and users are paying for ... I'm not sure.

The devs to sit back and sip mat-tai's in Tahiti while they collect rent?

Also, considering that Amazon's screenwriting tool had the lifespan of a gnat in a campfire, do you have plans to avoid that situation?

<comment><USER5> I think it's unfair that you're being downvoted for a very serious question related to the basic fundamentals of their business plan.

In a nutshell: how does Arc Studio plan on competing in this space, charging a relatively high monthly fee, when it offers fewer features than most of its competitors and when its primary feature is already offered by multiple competitors?

Or specifically: WriterDuet already does everything that Arc Studio Pro wants to do, but WD _already has those features_ and charges roughly the same monthly price. WD has also been used to write several screenplays, including _The Last Jedi._ How does Arc Studio Pro plan to compete with WD?

</comment></comment><comment><USER8> Note to the architect: this is irrelevant now to my reality. I let her go and won't see her again. She will no longer be rendered in my reality.

</comment><comment><USER9> Hi Michi -- since the cloud and OT model is so similar to Google Drive, have you considered integration with that, as a Drive app, using Drive revisions?

I love the idea of Arc Studio, but I also keep _everything_ in my Drive... that might make it harder for Drive and non-Drive users to collaborate, but I'm not sure.

But besides that, +1000! It's about time there was a cloud-based webapp for screenwriting.

<comment><AUTHOR> Thanks for the kind words!

We do plan to offer backups to Google Drive and Dropbox, i.e. you can have your screenplays placed there automatically and periodically, to avoid data lock in.

Or are you thinking of a closer integration, e.g. being able to edit from Google Docs?

<comment><USER9> Not edit from Google Docs, but have the original stored in Drive, utilizing Drive's own built-in revision history. And even have it be an "Arc Studio" filetype, that when double-clicked would open the webapp directly.

I'm just very Drive-centric, not sure what your userbase is like, but it would just feel very natural to have my screenplay files next to all my Google Docs and Sheets files where I write/track everything else for every project of mine.

</comment></comment></comment><comment><USER10> It seems this fits much closer to GitHub's original vision than what GitHub is now. Remember when they put the US laws online? A tool like this adopts a proven process from software engineering to other fields. I wonder if it's an acquisition target for GitHub?

</comment><comment><USER11> How does this compare with Highland? [https://johnaugust.com/screenwriting- software](https://johnaugust.com/screenwriting-software)

<comment><AUTHOR> Arc Studio Pro and Highland are very different.

Highland is macOS only and more of a minimal editor built around the fountain format (think markdown for screenplays), and has a very unique formatting UI.

Arc Studio Pro wants to support the full process and offers collaborative editing, automatic versioning, feedback management, outlining and visualization tools, etc.

Both apps offer a free version, so give them both a try.

</comment></comment><comment><USER12> I just tried the editor. Really smart how Characters, Scenes, Dialogs etc. are handled.

Re Cookie policy: I think that is only for the EU? You could probably remove the modal for others (like me, in TH).

</comment><comment><USER13> I haven't tried it, but it looks very promising.

</comment><comment><USER14> Any fountain.io support?

<comment><AUTHOR> Yes, fountain can be both imported and exported.

</comment></comment><comment><USER15> Looks neat!</comment>