Show HN: port-to-process, a sysop script to show what's running on a given port - <AUTHOR> https://github.com/sixarm/port-to-process <comment><AUTHOR> I'm seeking hacker advice for this sysop script, to make it more useful on more systems. Currently handles ss, lsof, netstat, fuser, on macOS and Linux. Thanks!

<comment><USER2> Why is this a shell script? Shouldn't it be just a few documented ways to get such information with mentioned tools? Script is just too much for this, you have to trust the author, trust the source, install it, learn it, run it. While you could've just read few lines of text and run appropriate commands in the terminal.

<comment><AUTHOR> > Why is this a shell script?

So this can run.

Also, so I can run one command that works on a range of systems.

> Shouldn't it be just a few documented ways to get such information with > mentioned tools?

You're welcome to do that. The README.md file is documentation. I welcome constructive feedback.

> you have to trust the author

I am the author, so that's covered. :)</comment></comment></comment>


Sony demonstrates fast PlayStation 5 load times, hints at cloud gaming future - <AUTHOR> https://www.theverge.com/2019/5/21/18633791/sony-playstation-5-demo-load-times-cloud-gaming <comment><USER2> I'm still very much on the fence when it comes to cloud gaming/game streaming/games-as-a-service/etc.

On one hand, I appreciate having older games be avilable for download after the companies decide to cease physical production. It allows for older games to still be enjoyed without having to deal with the ridiculous markup on the original cartridges.

On the other hand, the question of ownership still has yet to be answered. Even for platforms like the Wii that allowed you to buy/download games to permanently keep on the console via the Wii Shop, after a while it was still shut down. Now no one can access it, regardless of whether they purchased products or not. And with game streaming, this problem only gets worse because you completely rely on the servers to host/process the game for you.

What happens if (when) Google decides to shut down Stadia after years of regular use? Will subscribers be allowed to download the full game to run independently on their own machines? Can/should this be legally enforced?

These questions haven't been answered, and I think they ought to be before I would ever consider game streaming "ready". I'll stick to physical media on dedicated hardware in the mean time.

<comment><USER3> > What happens if (when) Google decides to shut down Stadia after years of > regular use?

Personally I say it will depend on the business model for Stadia when it releases. Will it follow a all you can eat subscription model or a pay for what use use model or even a pay as you go model.

For the subscription and pay as you go model you are paying for access for a period of time and not the game directly. So when the platform shutdown so does your access to the games.

Steam / valve supposedly has end of the world preparations in place in case they go out of business so consumers won't lose their game library but have never said publicly what those plans were (and not talked about such plans in a while so who knows if those doomsday plans are even still in place).

What other cloud gaming platforms that are already running now (Shadow) are offering is basically renting access to computer hardware with them handling maintenance, updates and upgrades but you bring your own library of games to the platform. If you leave or the service shuts down you are able to take your library of games with you.

What I'm more concerned about is the exclusives. See it doesn't bother me too much if one platform goes away as long as I can get the title on another platform. Which is the same be it music, movies, tv shows or games. As I'll just "acquire" the lost game, another service/platform and depending on price and how many use i intend to use it I might jut purchase it again (think upgrading from vhs to dvd or dvd to boy-ray). But honestly their would only be a few titles that I would personally repurchase.

Now atm fast internet isn't as everywhere as we would like to think it is. I only have to go a couple of miles down to road and I go from having access to low latency, unlimited 80/20 or even 350/20 (VDSL or DOCSIS) to having slow, unreliable, high error correcting (because those lines are on the far limits of there connection back to the exchange) ADSL or higher speed but higher latency mobile broadband (with a unloaded connection still having a 60-75ms ping back to services hosted within the ISPs network). To a few miles in the other direction and getting Gigabit fibre to the premises.

So personally I don't foresee game streaming to be much of a threat to digital downloads just yet which lands us in the same place we are in now.

But exclusives are what trouble me. Not because I won't get to play them (actually I can see it being the opposite and might just drop in and out of the service when their is an exclusive I want to play, like what I do with Netflix), but because I fear those games may just get lost in the void when such services shutter.

There is a strong retro scene preserving older games and hardware. As hardware ages current hardware is more able to emulate older systems and keep those games playable and alive. Even recent consoles such as Wii are getting emulated but newer generation console such as the 360/PS3 got their DRM busted open and will allow "transferring of licenses" long after the supported platforms are shuttered (aslong as the hardware itself doesn't die _cough_ REOD _cough_ ).

But with exclusive titles on streaming platforms who's code might never leave the dev house it's created in or the data centre it's ran on will anyone get the chance to preserve that content for generations to come? Will I be able to share the experiences I get from such titles with my kids or grandkids or will someday those titles simply disappear into the ether never to be seen again like some past Doctor Who episodes?</comment></comment>


Ask HN: simple Basecamp-like editor? - <AUTHOR>

Is there a simple Basecamp-like open source editor somewhere that just does the basics? I really only want bullets, bold, numbers and perhaps a few other formatting options. Links and bullets alone would also pretty much do it. <comment><USER2> <https://github.com/37signals/wysihat> Pretty sure thats what they use.

<https://github.com/80beans/wysihat-engine> might help too.

</comment><comment><USER3> Fckeditor? Or whatever it's called this month</comment>


Just as surely as (a+b) = (b+a),  mathematicians love their blackboards - <AUTHOR> http://www.concordmonitor.com/x-6888872 <comment><USER2> Oh I miss the times I were an executive blackboarder. Blackboards made of glass were the best. Glass roughened on the writing side, and painted dark green on the backside. The depth of the glass made your writings cast a shadow which gave your writing a pleasing organic expression.</comment>


Ning Adds Social Gaming (Heyzap- YC W09) & E-Commerce Rev. Channels For Networks - <AUTHOR> http://techcrunch.com/2010/06/16/after-going-premium-ning-adds-e-commerce-and-gaming-revenue-channels-for-networks/

<comment><USER2> Social games are the new ads.</comment>


Ask HN: What are the best government (.gov) designed websites? - <AUTHOR> Government websites are known to look outdated, which ones caught your eye?<p>https://www.uscurrency.gov <comment><USER2> The ones I use most are:

[https://www.sec.gov/](https://www.sec.gov/)

[https://www.ssa.gov/](https://www.ssa.gov/)

[https://data.bls.gov/](https://data.bls.gov/)

[https://dmv.ny.gov/](https://dmv.ny.gov/)

[https://www.irs.gov/](https://www.irs.gov/)

All are useful and well-designed in my opinion.

I don't think they should be judged on "looking outdated" though. Functionality and security are what's important, and if it's too visually polished, I look at that as maybe even a negative indicator of functionality.

</comment><comment><USER3> [https://www.boston.gov/](https://www.boston.gov/) looks pretty modern.

</comment><comment><USER4> For Australia the mobile version of [http://m.bom.gov.au/vic/melbourne](http://m.bom.gov.au/vic/melbourne) is great

<comment><USER5> Wow, the mobile site is better than the app by leaps and bounds (Android).

</comment></comment><comment><USER6> [https://www.gov.uk/](https://www.gov.uk/)

I found these talkson the process of building and maintaining it very useful

[https://vimeo.com/121348831](https://vimeo.com/121348831) [https://www.infoq.com/presentations/gov-uk- devops](https://www.infoq.com/presentations/gov-uk-devops)

</comment><comment><USER7> Sweden's (though it's not a .gov)

[https://sweden.se/](https://sweden.se/)

<comment><USER8> Sweden has really improved in this regard recently. I also like

\- [http://rkrattsbaser.gov.se/sfsr](http://rkrattsbaser.gov.se/sfsr) (searchable legal database of the legislative organ of govt)

\- [http://riksdagen.se/](http://riksdagen.se/) (homepage of the legislative organ of govt, where full transcripts of proceedings are uploaded after at most a day)

\- [http://www.gov.se/](http://www.gov.se/) (general govt portal website)

However, a special mention is necessary for [https://www.systembolaget.se/](https://www.systembolaget.se/). Sweden has a government monopoly on alcohol, and the state-owned seller is Systembolaget. They were really early with having a well designed website. Their search is advanced and filterable in almost anything you'd want. They were really careful not to break the web by ensuring the back button works, and more importantly, that the current view is reflected in the address field so you can share what you see by copying the addrews and sending it in an email, and so on. Really important stuff that so many get wrong.

</comment></comment><comment><USER9> The UK's (gov.uk) is pretty modern. Also companies house (the uk company register) (beta.companieshouse.gov.uk).

</comment><comment><USER10> Usability.gov; I found their take & format on use cases useful:

[https://www.usability.gov/how-to-and-tools/methods/use- cases...](https://www.usability.gov/how-to-and-tools/methods/use-cases.html)

<comment><USER11> Hard to take seriously when they have a takeover modal

<comment><USER10> Hmm, I didn't get any modals / popups

</comment></comment></comment><comment><USER12> [https://www.india.gov.in/](https://www.india.gov.in/)

[https://apps.mgov.gov.in/index.jsp](https://apps.mgov.gov.in/index.jsp)

</comment><comment><USER13> [https://earthquake.usgs.gov/earthquakes/map/](https://earthquake.usgs.gov/earthquakes/map/)

Quickly displays important data.

</comment><comment><USER14> Weather.gov is much better than private-sector, privacy-sucking and adware- laden equivalents.

<comment><USER15> For example... [https://forecast.weather.gov/MapClick.php?lat=39.09&lon=-76....](https://forecast.weather.gov/MapClick.php?lat=39.09&lon=-76.85&unit=0&lg=english&FcstType=graphical)

You can't get this detail with any other service I can find.

</comment></comment><comment><USER16> Irish VAT site.</comment>


7 Reasons Game Dev. Is the Perfect Side Hobby for Software Developers - <AUTHOR> https://spin.atomicobject.com/2018/10/12/game-dev-side-hobby/#.W8CybRwitw4.hackernews <comment><USER2> I just want to qualify point #3 "It can be monetized and marketed." This was once true about 7 to 10 years ago, but no longer. There are some that work tirelessly for years hoping for a pay off at the end, the vast majority of which you'll never hear about. I just don't want people to get a false impression about their chances of producing a monetary success. If you're hoping to make money off your game and just getting started: view it as a lottery ticket.

Other than that, yes, producing games is lots of fun.</comment>


EU businesses sign open letter against copyright directive articles 11 and 13 - <AUTHOR> https://nextcloud.com/blog/130-eu-businesses-sign-open-letter-against-copyright-directive-art-11-13/ <comment><USER2> Signed. Here is the link to add your signature: [https://nextcloud.com/press/pr20190319](https://nextcloud.com/press/pr20190319)

</comment><comment><USER3> What I find odd about the protest against this is that it is mostly coming from Germany. Why is France not protesting against this more?

<comment><USER4> The French government is very much for Articles 11 and 13, while the German govt ... can't make up their minds. One of the German coalition parties is against, including the justice minister, but she still voted in favour of it. Quoting this [1]:

> Wenn Barley im Kabinett nicht zugestimmt hätte, hätte sich Deutschland im > Kreis der EU-Staaten enthalten müssen –- dann wäre die nötige Mehrheit nicht > zustande gekommen.

Translated:

> If Barley had not agreed in the cabinet, Germany would have had to abstain > in the circle of EU states -- then the necessary majority would not have > been achieved.

The French government is so much for the directive that the French ambassador even tried to convince SPD party members... which is diplomatically very impolite, you don't just meddle with interior politics of another country [2].

[1]: [https://www.heise.de/newsticker/meldung/EU-Copyright- Artikel...](https://www.heise.de/newsticker/meldung/EU-Copyright- Artikel-13-und-Upload-Filter-Barley-verteidigt-Ja-zur-EU-Reform-4316759.html)

[2]: [https://netzpolitik.org/2019/frankreich-draengt-spd- abgeordn...](https://netzpolitik.org/2019/frankreich-draengt-spd-abgeordnete- zu-ja-bei-der-urheberrechtsreform/)

<comment><USER3> Thx for the reply, but it doesn't really answer the question: Why is the French government so uniformly for this reform and why are there no demonstrations against this in France, while at the same time in Germany this is a pretty dividing issue.

Does the French use and understand the internet differently? Do they have more trust on the government to not mess this up? Or do they currently just have different, more pressing, issues on their mind?

<comment><USER5> I wonder if the fact that France, and the French government, have a very protectionist approach to their own culture factors into this. Anything that limits the power of the US to spread its 'culture' is seen as a net win.

</comment></comment></comment></comment><comment><USER6> Due to reordering article 13 is now article 17: [https://twitter.com/Senficon/status/1109153304964222976](https://twitter.com/Senficon/status/1109153304964222976)

</comment><comment><USER7> I don't know for sure but it seems to be mostly music copyright companies pushing for articles 11 and 13. There reasoning seems a bit unclear but then again music licensing are some bizarre aspects to it. But I think it's important to understand the who and why behind articles 11 & 13 in order to understand what the proposed issue is. It's not unlikely that the media and copyright industry would try to reach farther than they need either intentially or unintentially due to misunderstanding the technical details.

For the first example, The British Phonographic Institute (BPI) has a statement argueing that big tech companies, under current safe harbor laws, are allowed to profit off user uploaded content if it contains music. The statement says:

> This so called "safe harbour" from liability means that sites can provide a > vast global jukebox of music whilst arguing they don't even need to > negotiate a licence to do so.

I can't think of a single site that operates in this manner. Besides upload filters, Youtube allows copyright holders to flag videos for copyright violation. Does this work differently in the EU than the US currently? The system seems to be very effective to the point that it's abuse is widely critized. Are other sites currently implementing a subpar system? Are there EU hosted sites that are currently providing these "global jukebox's" ? I guess I haven't seen a single online site in a while that provides unlicensed music in the manner that BPI describes. The best example was Grooveshark but that's been defunct for years.

[https://www.bpi.co.uk/news-analysis/bpi-brit-awards-ceo- geof...](https://www.bpi.co.uk/news-analysis/bpi-brit-awards-ceo-geoff-taylor- calls-on-meps-to-support-artists-boost-creativity-and-back-the-eu-copyright- directive/)

I don't think money would be spend on lobbying if they didn't think there would be a return; therefore there must be some industry, site, or platform that EU copyright holders think they can extract rent from or push more people into buying music. Given that the most likely form of music copyright infringement is having music in the background of a video uploaded to some social media site, I guess it seems that copyright holders are after the ad revenu of user-generated/uploaded content sites (Facebook, Reddit, etc). If their music appears in the background of a video, they want a slice of the ad- revenue the site collects. But I think many sites would opt to just muting the audio (like Twitch already does).

If videos with background music are the major target of this legislation and would impact any site that allows users to upload videos, the expense of building an identification system and forking over a portion of the ad-revenue is likely less than using ML to selectively remove/replace the background music while leaving other sounds in-tact. In the short term I expect sites to just mute copyright infringing portions.

<comment><USER8> > mostly music copyright companies pushing for articles 11 and 13

bit simplistic thinking, but this in itself is enough to take a stance against the articles

</comment></comment><comment><USER9> _Especially Article 13 is dangerously experimenting with the core foundation of the Internet's ecosystem. Making companies directly liable for the content of their users forces these businesses to make billions of legal decisions about the legality of content. Most companies are neither equipped nor capable of implementing the automatic content filtering mechanisms this requires, which are expensive and prone to error._

Crap grammar and rubbish sentence construction, whilst opining, will rarely make friends.

The letter is a dreadful example of how to not plead a case. It has several bold sections that are are shouty - use italics instead.

 _Although the purpose of these regulations is to limit the powers of big US Internet companies like Google or Facebook,_ This may be true but again it is not the way to take the moral high ground. Do you have proof of that assertion?

If I was one of those 130 businesses and was charged for that letter then I would feel seen off. I do own a small business in the UK and I will not put my tiny weight behind that rubbish. I acknowledge some of the issues mentioned are potentially a problem but the message is garbled so badly as to be unusable.

<comment><USER10> I see you're a novice to legal-ese, while pedantically forming your opinion based on... Sentence construction? Not the content?

I guess we'll just have to deal with a Europe without memes. We'll see only slower, mass-market-only creators on the internet. The small businesses, the artists, the actual innovators will have no seat at the table... _because you cannot wrap you head around a multi-clause sentence._

If you're going to be that _American_ about this, you can keep your Brexit.

On the off chance that you're here to learn instead of just quasi-Schrute-ing on everything? I would suggest you watch a couple documentaries: "Rip: A Remix Manifesto," and "Everything is a Remix," to learn how creativity works. Any efforts to restrict derivative works, such as from these small outlets, demolishes the human ability to create. These are creative commons works, so I trust you to find them without having to buy a DVD/bluray.

</comment></comment><comment><USER11> _EU businesses sign..._

Isn't this more accurately " _Some_ EU businesses sign..."

Form what I know about Article 13 from HN, it was created at the behest of a group of EU businesses.</comment>


The future of UI is text - <AUTHOR> http://partyline.rocks/blog/futureofui/ <comment><USER2> No way. I've been designing and coding interfaces for 10 years, and time after time one of the biggest constraints for what is on/off the screen is the user's memory.

Want to know why the command line is hard for plebs? It's because they don't know what the options are. They don't even know what they don't know.

The whole point of a GUI is to convey the possibilities. Show users a menu and they get to pick something. This isn't going to change anytime soon. At least not until terminal commands are taught in school alongside the alphabet and multiplication tables.

<comment><USER3> This simply is an artifact of the original design of CLI. You start by writing the command or function, and then you provide parameters or arguments. The order in which these things are provided leads to poor discoverability.

Instead of starting with the command, we should start with an argument. Given a "thing" (that likely exists in your UI), such as a file, a song, a person, a chunk of text, show me the list of commands that accept it as a parameter. You'll quickly discover that a chunk of text can be passed to functions such as "tweet", "copy to clipboard", "create memo", "search on Google", "translate". Congratulations, you just invented the contextual menu, which people have been using for decades.

"Things" are easy to discover; you can see them. Commands that interact with them, are not as easy to discover; you can't see them. Let people touch or name things (with or without a query language), and once they grabbed the instance they care about, show them what can be done with it. It's that simple.

Before:

> /tweet "some random thoughts" // where you had to know 'tweet' existed as a > command

After:

> "some random thoughts" -> tweet // where 'tweet' was auto-suggested, along > with 'search', 'translate', 'copy', etc.

<comment><USER4> This is brilliant. Do you have suggestions for where I can go to read more about this idea?

<comment><USER5> This question seems to point in this direction of changing our shell syntax from `vo` to `ov`, based on Jef Raskin's Humane Interface [http://ux.stackexchange.com/questions/48051/how-to-extend- th...](http://ux.stackexchange.com/questions/48051/how-to-extend-the-noun- verb-paradigm-to-multiple-nouns) .. I imagine pluggable shell grammars would allow open ended exploration this way.

<comment><USER6> I see this strongly related to many combinators in FP too.

(system command arguments)

flip -> (system arguments command) curry -> (system arguments) command

# and for the humane touch:

thread (system (completing-read)) (completing-read)

etc etc

Oh, and BTW, GUIs didn't buy ergonomy, sometimes you need to open an application then the data (aka /tweet "bla"), early systems had a simple 1:1 map 'type' 'program' with an 'open-with' intermediate. Then they added 1:N ... One day it will be a tiny Hindley-Milner unifier ;)

</comment></comment></comment></comment></comment><comment><USER3> This is an ad for Partyline. The thesis, sadly, is poorly demonstrated.

This should have been called "The present of UI input is text for this particular use case".

Text (or speech) as an input method is alright when you know exactly what you want. However, this is not a very good exploration interface, where you need to interact with things that are presented in a 2D/3D space. Text also isn't very expressive when it comes to consuming content.

The future of UI, in most cases, is no UI. Let some AI study and understand you, and let it make decisions on your behalf.

<comment><USER7> Wolfram Alpha suffers a bit from that, I think: You can query a great lot of things but for many of them it requires you to a) know about that you can query that, b) knowing _how_ to query for that, c) how to give options, parameters. The natural language interface sounds great and makes for awesome demos (like »Wow, they can actually understand that?«), but it's horrible for discoverability, especially in cases where you can try five different ways of saying the same thing but only the sixth would actually yield a result.

<comment><USER3> The shortcomings of natural language interfaces are obvious, and I cannot understand why so many people believe it to be the future.

Humanity needs a formal language, which requires formal thinking. Ambiguity is not a problem when a language is used to browse, explore and clarify thoughts, but this kind of interaction needs to be feedback-driven.

You can't just input an ambiguous natural language query and expects accurate results. However, you can start with an ambiguous natural language query, and quickly make it into a formal one thanks to smart auto-completion. Only when the query reach a formal threshold should it be executed.

<comment><USER8> Formalization could be done in interaction with the computer. For a basic example today, we can look at how Google correct your query and suggest other queries, or any other form of auto-complete and auto-correct

</comment></comment></comment></comment><comment><USER9> 1) argue that non-power uses will love the text-based interfaces 2) support your claim with a bunch of examples from software development workflows.

Sigh.

<comment><USER10> It's not exclusive to slack, for example: twitch chat there are a bunch of text commands that people love to use. When people use emojis and other such things they usually use a text macro. If you've noticed with programs like photoshop and illustrator, it's recommended for novices to learn all of the keyboard shortcuts.

If anything this points to the future of UI being a combination of text and point and click.

<comment><USER11> _It 's not exclusive to slack, for example: twitch chat there are a bunch of text commands that people love to use._

People who use Twitch a lot love to use them. People who don't use Twitch much don't bother. This backs up the argument that power users like macros.

 _When people use emojis and other such things they usually use a text macro._

True, but that might be because PC keyboards don't have emoji. There's no other option. People certainly don't use a macro on mobile; they use a an emoji keyboard because that's what they prefer.

 _If you 've noticed with programs like photoshop and illustrator, it's recommended for novices to learn all of the keyboard shortcuts._

There's an assumption when you're learning something with the end goal of understanding that application that you're on the first steps to becoming an expert (aka power user). If someone is only learning how to achieve a single end result they don't start with the shortcuts. For example, someone who just wants to learn how to resize and crop images in Photoshop just learns the two or three features they're going to use and then they stop.

I don't know very many people outside of the software industry who are happy with a command line interface, and even fewer who're happy with macros on a command line.

Also, if Partyline is the future, then I don't like it. The two examples in the article are inconsistent;

 _/ partyline create Signup endpoint is 500'ing label:bug_

vs

 _/ partyline create:task Write about the future of text-based interfaces_

Why is the first one using a "create" verb with a "bug" label and the second using a "create:task" verb? Why not "create:bug" in the first one, or "label:task" in the second?

<comment><USER12> _True, but that might be because PC keyboards don 't have emoji. There's no other option. People certainly don't use a macro on mobile; they use a an emoji keyboard because that's what they prefer._

I actually set up the few emoji I use as macros, so I don't have to switch keyboards. Then again, I fall into the power-user category

</comment></comment></comment></comment><comment><USER13> Come on, nobody's used CAD programs with integrated GUI and command line both equally accessible?

It's super intuitive, entirely customizable, and every button press results in a listable text record of each command with combined access to either windowed variables (spline radii, inputting coordinates for start and finish points, entering macros on the fly, routines, accessing algorithms)

This has all been old news for decades.

Now, adapting Autodesk's approach for other fields?

Can't be impossible. Still, engineers in many fields have enjoyed such flexibility as a matter of course. Take a page from their experiences.

<comment><USER14> You make a good point. I haven't used autocad before but after trying other cad programs and being frustrated with the lack of cli control it makes sense. What you explain sounds awesome!

Unfortunately, the current paradigm of tools for gui's (and even cli's) remain incredibly static and inflexible in their approach and design. It's not a problem that we don't know how to do it, as the autoccad example shows, but rather developers and companies lack the gumption to figure out how to make portable libraries and platforms based on it.

By this I mean, that the autocad program would have to have some kind of dynamic data and code system with rules and an internal grammar for composing them. It reminds me of the old joke "every program evolves until it reimplement common lisp -- poorly". This can be done in C++ and java, etc, but you end up basically building your own dynamic lisp like system. This often gets encapsulated in design patterns built into complex class hierarchies.

Basically, my take is that while it's possible to build on autodesk's and others examples, most efforts are either too academic and esoteric or just poorly executed. I think the culture in development is getting to a point this approach could be widely adopted.

<comment><USER15> Funny you mention Lisp, because that's exactly what AutoCAD has:

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

<comment><USER14> Bam! And that strengthens my argument. I didn't realize they actually _had_ a lisp embedded.

<comment><USER16> Not 'had', 'have'.

</comment></comment></comment></comment></comment><comment><USER17> The Anti-Mac Interface ([http://www.nngroup.com/articles/anti-mac- interface/](http://www.nngroup.com/articles/anti-mac-interface/)) argues for the advantage of text over GUI in a more vivid way:

> The see-and-point principle states that users interact with the computer by > pointing at the objects they can see on the screen. It's as if we have > thrown away a million years of evolution, lost our facility with expressive > language, and been reduced to pointing at objects in the immediate > environment. Mouse buttons and modifier keys give us a vocabulary equivalent > to a few different grunts. We have lost all the power of language, and can > no longer talk about objects that are not immediately visible (all files > more than one week old), objects that don't exist yet (future messages from > my boss), or unknown objects (any guides to restaurants in Boston).

</comment><comment><USER18> Mildly off topic but re

>In the past, we thought the future of computing would look complicated: lots of buttons, multiple screens, and crazy interfaces.

... followed by a shot of the 1960's Star Trek ship's deck, then saying we're headed for command lines instead. Since 50 years have passed since that set was designed I thought I'd google how designs have changed. Here's the space shuttle

[http://cdn.visualnews.com/wp- content/uploads/2013/03/Discove...](http://cdn.visualnews.com/wp- content/uploads/2013/03/Discovery_Flight_Deck_5.jpg)

and here's a modern ship

[http://www.motorship.com/__data/assets/image/0020/705404/THE...](http://www.motorship.com/__data/assets/image/0020/705404/THE- VIEW-FROM-THE-BRIDGE.jpg)

Still looks more like lots of buttons, multiple screens, and crazy interfaces than command line to me. Still give it another half century.

</comment><comment><USER15> How do you reconcile this with the declining popularity of desktop and laptop computers, and the increase of smartphones, tablets, and other keyboardless touchscreen devices? I haven't noticed an increase in keyboarding skills either, which are absolutely essential to use a CLI well.

I _wish_ CLIs would become more popular amongst the general population, but it seems GUIs (which are also becoming "flatter" and less discoverable, ironically enough) have taken over completely for almost everyone.

<comment><USER19> Voice recognition? So you might say, the future of UI is saying what you want to happen, either by typing it or speaking it outloud.

<comment> nommm-nommm How many people actually prefer the "tell me why you called?" phone menus over "press 1 for billing" phone menus?

</comment></comment></comment><comment><USER20> Slack is not a text interface. Slack _has_ as text interface for many common operations, but you can't ignore how much GUI Slack has.

The future of UI is having graphical and text interfaces at the same time. Throw in touch, speech and sight for fun if you want. None of it is going away. Most programs need a simple and very well thought out GUI, aimed both at new users and at discoverability of features for experienced users, and more powerful text based interfaces and keyboard shortcuts for power users. This is what the best programs do now, and what Slack does too.

The interesting thing about having both/multiple kinds of UI is that it guides the overall design structure of a program. Having both GUI and text interfaces forces MVC patterns to emerge, and it requires having a strong underlying foundation for your data and the operations that manipulate it.

*edited for typos

</comment><comment><USER21> As someone who lives in one or more terminals during the day, in my opinion, "the future of UI is text" is misleading: it is the past, present AND future.

</comment><comment><USER22> Text is good, but not for everything. How would you represent a tree or graph data structure in text to a human and let them manipulate it?

I understand that this works for some things. A command-line interface is good for giving commands! Yet using it to paint is a lot harder.

Essentially, text interfaces are good at manipulating text. As a software developer you're often manipulating _only_ text. So you think text interfaces are good, always. This is a syllogistic fallacy.

<comment><USER23> > How would you represent a tree or graph data structure in text to a human > and let them manipulate it?

Tree:

        '(root (left (left-left left-right)) (right (right-left right-right)))

Graph:

        '(graph (#1=node1 #2=node2) (#2# #3=node3) (#3# #1#))

Solved problems since at least the early 90s.

> Yet using it to paint is a lot harder.

Sure, but drawing is only one activity among many possible activities.

> As a software developer you're often manipulating only text.

I think that's true for most users: they are reading articles (text); writing comments (text); sending social updates (rich text); watching videos ( _not_ text); playing games ( _not_ text, but may have textual content, e.g. in-game chat).

<comment><USER24> I'm not really convinced S-exprs are particularly good examples of representing trees and graphs to humans while expecting them to be as easily readable and writable as the graphical forms.

You lose spatial intuition with this representation. You could make up for it on small trees somewhat with indentation and vertical spacing, but you'd lose it again for larger trees and graphs. We don't pictorially represent our trees like this [1], for instance, which is roughly how the S-exprs visually appear.

When I author graphs in LaTeX, it is often easier to run through a compilation cycle to see what the result looks like and which edits are needed, rather than mentally reasoning about the edges by looking at the code.

[1] [http://i.imgur.com/43Dc8YB.png](http://i.imgur.com/43Dc8YB.png)

</comment></comment></comment><comment><USER25> I ask myself this question as it pertains to the future of music. Digital Audio Workstations such as Ableton Live and Logic Pro dominate the scene when it comes to making music with a computer (at least in pop music), and companies such as Splice are trying to create collaborative networks around them.

Text based interfaces and audio programming languages such as SuperCollider open up a whole new world of musical creativity, and would lend themselves to collaboration (IMO) better than GUI based ones. The obvious hurdle for people is learning how to create things/music/art with text.

[https://supercollider.github.io/](https://supercollider.github.io/) [http://sccode.org/](http://sccode.org/) music written with supercollider: [https://open.spotify.com/track/4VecDB1uhp44posWgt85yN](https://open.spotify.com/track/4VecDB1uhp44posWgt85yN)

</comment><comment><USER26> What most people don't realize is that GUI and command line aren't mutually exclusive. There's nothing preventing developers from creating apps that have a beautiful and informative GUI while providing a way to use text-based, specific commands. Use the best from both worlds.

It would be great if there was a system-wide, standardized way to do this in every app, but until an OS with this ability exists, we'll just have to do it ourselves.

<comment><USER27> Well, people joke about Emacs being an OS. If you take them seriously, I think it's an example of an OS where you can run graphical applications but have a standardized way to run text-based commands from any app (using execute- extended-command, bound by default to Meta-x).

It's not really practical to use Emacs as your only OS right now, but it certainly has many of the applications I need day to day: a text editor (obviously), a web-browser (that can display images, but currently does not run JavaScript), a PDF viewer, email clients, feed readers, command shells, several videogames, etc.

</comment></comment><comment><USER28> When I first used Cortana as part of Windows 10 I was quite disappointed when I found out it lacked quick commands like this. Sure it has _some_ understanding of what is written such as "remind me to call Jim at 2pm" but it is very limited.

I was hoping I would be able to things like the following -

      * backup Fizz Buzz project (and have it intelligently backup the Fizz Buss Visual Studio project to a default location)

      * open Fizz Buzz issue 131 (and have it open a browser to the github issue tracker to the correct issue #)

      * email the Fizz Buzz project plan to Jim (you can *kind of* do this but it hardly ever works as you would want)

      * open Fizz Buzz todo.txt when I next login

      * copy the Fizz Buzz project plan to my Dropbox projects folder

You know things that I will otherwise need to open the command prompt for or do some mundane UI task. Sure some of these things will require applications have such support but from what I can tell Cortana offers no real way to do this other than integrating with the Windows search service.

Considering most (all?) of these things could be done with PowerShell cmdlets it is annoying there is no way to script Cortana via PowerShell in such a way.

Maybe one day.

<comment><USER29> A lot of those things seem like commands specific to your environment though (read: things someone would have to develop out). Does Cortana offer some sort of API allowing you to add additional "commands" that she understands? That would be pretty neat.

<comment><USER28> I checked a few months ago but there was nothing specifically for desktop apps only universal ones and even then they were mostly voice-oriented things so you can "plug in to Bing". Ugh.

As far as I can tell it is not [yet?] possible to integrate features from a classic Win32 application into Cortana to do things like I listed. Shame as _that_ would have been very cool.

My examples are very specific to my domain for sure but they were just some examples for my use, the general concept of using Cortana as an actual digital assistant to automate/speedup boring and often done tasks.

</comment></comment></comment><comment><USER30> Sorry, I don't buy the premise.

The future of UI (for the general public) is probably voice-based like "Hey Siri/Google/etc, I'd like a sandwich" and a sandwich is ordered and delivered to you. "Tweet 'Who's down for a sandwich party?'" and a tweet is tweeted.

Whenever I hear or read someone argue that "command line is the future" I think of my dad; barely able to make a bookmark in a browser and not really knowing how folders work. And he's been using a Mac for decades.

<comment><USER31> Typing to Siri or Google is essentially a command line interface.

</comment></comment><comment><USER32> One of the huge limitations for text based interfaces is the same as the elephant in the room for people starting programming, especially when they start dealing with others libraries/modules: It's not easily discoverable if you don't know what to look for - there's no intuition. A GUI, at least one that's reasonably well-designed, you can play around in and learn fairly quickly.

Having seen the pain of many users even when trying to dig down through a GUI they're unfamiliar with, I think that while text based interface are often more powerful there's a long way to go before they're more popular.

</comment><comment><USER33> An almost comically ridiculous premise. "/partyline create:task Blah" requires a user to remember both the initial slash and then that two words must be joined with a colon, with no spaces. There's a reason why many companies have "Find us on Facebook" rather than a URL - because regular people are bad at understanding computer syntax; slashes and colons and joining up words without spaces are more or less unique to using a computer, and people who don't have to program computers for a living really don't care to learn their idiosyncrasies.

</comment><comment><USER34> The headline does not match the article. The article raves about one particular feature on Slack, then shows that their tool works well with it. This is not an article about UI. This is marketing.

Even worse, it is marketing that failed -- all it has done here is invoke disagreement from a tech community.

<comment><USER35> Well, it did get an add for Partyline on the frontpage of HN. Not sure that's failing, even if people disagree with your premise.

</comment></comment><comment><USER36> This is a really shallow post, it doesn't deal with any of the complexities involved and just makes an unsubstantiated statement.

</comment><comment><USER37> Multi-line chat in BBS's in the 1980s used slash-commands such as these in chat apps...I'm sure I'm not the only one here old enough to remember those.

Sigh...like so many other things, what is old is new again.

Forcing people used to touch interaction with their phones to grok command line UX seems more like wishful thinking then the Next Thing.

<comment><USER38> Yep. Slack is a pretty poor re-implementation of IRC, and I'm pretty bummed both my previous and my current company forced me to use it.

If we're going to go this route, let's at least use something not so patronizing and infantile, like HipChat.

And I'm pretty sick of all these "Slack is going to change/has changed THE WORLD!!!" articles in general.

<comment><USER39> You don't love it when software soothes you during loading screens with cuddly inspirational messages?

</comment></comment></comment><comment><USER40> Regardless of whether the author is right, it's worth thinking about because it may well be the case that humans have a better affinity for graphic representations of spoken language than for pictorial representations of things in the world.

Ordinary people type web addresses into browsers...or heaven forfend, at least "microsoft" into their Google toolbar for IE8. There's a point at which information redundancy is overwhelming even for people who don't care about information theory or how the web works or anything else.

The WIMP interface was a great innovation. But it was built for a time when women were in the typing pool, entrepreneurs were called "businessmen" and managers were afraid of catching keyboard kooties. The meteor hit and CEO's type their own correspondence and answer phone calls on their direct line [which lives in their pocket].

There's a case [and a reasonable counter case] to be made that WIMP was the installation program for widespread computing. Once the important system is up and running it can be discarded. The degree to which this is plausible correlates to the inverse to which one sees WIMP as an end in itself. Yesterday, it was rounded corners on shiny buttons, today it's flat sharp corners. In the interim, people have learned from experience that pixels can't cut human fingers. A buggy whip industry would count this as progress.

</comment><comment><USER41> Text as UI success I believe is tied to how connected the related task is to the messaging tool you are in and how easy the platform makes it for the user. There are a number of tasks that could be good text candidates in a slack interface such as project management, time calendaring, tools used by the slack team. I think it's silly to jump to the conclusion that text is the future of ui. I would agree that text is making a come back for relevant tasks within popular messaging tools.

</comment><comment><USER42> The future of Slack is that they'll do what every other chat application has done in the past 2 decades: they keep "innovating" on a solved problem, add "features" that get in people's way to the point that it becomes unusable and people switch to the new "disrupting chat technology". It happened to HipChat before Slack and I doubt Slack will break the cycle.

Given that I don't think I'll be looking to Slack as "the future of UI".

</comment><comment><USER43> I agree with the idea of the article. But it will not be limited to slack, check out the home page of this Ride Sharing service for example: [https://www.wadeeny.com](https://www.wadeeny.com) (disclosure, I am a co- founder)

I am the one who designed it, and I can confidently say that engagement is way higher than using traditional forms and button. The bounce rate is extremely low, almost everyone at least tries interacting with the bot.

Now this is not a testimony that text will always beat traditional web UI, I think a big factor in this case is the fact that it seems so unconventional and people are curious to try it out. Also depends on the purpose of the interface you are creating. Like 1971genocide pointed out, UI is good for giving commands and not learning for example.

In our case, it was important for us to get a limited number of very precise information from the user. Therefore having a Text based interface worked out.

<comment><USER44> it is actually very interactive, and does draw people in to enter the information. I think there should be a healthy mix between UI and Text to achieve a good usability which is what you and slack do

</comment></comment><comment><USER45> I very much disagree. Computing is going more and more towards integrated devices (phones, tablets, etc.) and companies are making serious investment in voice. Siri, Cortana, Amazon Fire, even my PS4 claims it can be controlled with voice. Once this reaches a certain level of utility it will become dominant. "Hey computer, open that word document I was working on yesterday. No, the one about the Davis merger".

That is more a long-term goal. Currently the future of UI is physics systems. The little bit of UI animation that happens today often uses interpolation routines (e.g. easing in it's many forms). Interpolation is time based and has annoying limitations like it is hard to coordinate multiple animations, it is hard to update animations smoothly on the fly and it can be non-trivial to reverse out of an in-progress animation.

I think we'll see a strong movement towards natural looking physical based movement throughout the UI.

<comment><USER39> Neal Stephenson's essay "In the Beginning was the Command Line" has this bit:

> Americans' preference for mediated experiences is obvious enough, and I'm > not going to keep pounding it into the ground. I'm not even going to make > snotty comments about it—after all, I was at Disney World as a paying > customer. But it clearly relates to the colossal success of GUIs and so I > have to talk about it some. Disney does mediated experiences better than > anyone. If they understood what OSes are, and why people use them, they > could crush Microsoft in a year or two.

There's so much expertise in animation, games, 3D, physics, illustration etc while most UIs are boring, boxy, and slow. The UIs inside of simulated computers in computer games are cooler than the actual UIs!

I wonder what will happen with virtual reality UIs. With movement tracking you could really get next-level point and click. I want my IDE to be a VR spaceship mission where I write code with some kind of sign language syntax!

</comment></comment><comment><USER46> Slack is not text. Slack is an engine designed to provide multimedia in specific, arbitrary formats. The fact that you can modify things by typing text does not make an argument that the future of UI is text.... maybe event streams and highly leverage-able tools, but that's not intrinsic to text.

</comment><comment><USER47> Jef Raskin[0]'s Archy[1] anyone?

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

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

</comment><comment><USER48> So graphic designers are going to use text, instead of Photoshop?

Pixar artists will be switching to CLI, over direct-manipulation graphical interfaces?

Sound-designers will use text to look at waveforms?

The title is overly broad because it focuses on only a certain class of applications.

</comment><comment><USER49> I share this view and even use this idea in some of my projects (for example at [http://testsheet.biz](http://testsheet.biz) the test tree is edited in a plain text form. This allows to edit several tree nodes at once, including the whole tree; and also to quickly move groups of tests around by copy/paste; to introduce new nodes quickly. So, much quicker and easier that in any tree widget).

Together with intelligent completion (similar to programming environments) text UI could in many cases be significantly more convenient than widgets for mouse. And it can be much cheaper develop.

</comment><comment><USER50> A much more interesting discussion of this topic [http://cristal.inria.fr/~weis/info/commandline.html](http://cristal.inria.fr/~weis/info/commandline.html)

</comment><comment><USER51> In 2007 Donald Norman wrote a piece on command-line interfaces that's pretty cogent: [http://www.jnd.org/dn.mss/ui_breakthroughcomma.html](http://www.jnd.org/dn.mss/ui_breakthroughcomma.html)

Text UI is a great way to hide complexity but difficult to teach and form habits around. The learning curve is steep and probably something we need to invest more in because "have you read the man page" isn't gonna cut it for most.

</comment><comment><USER52> Waste-of-time advertisement posing as article is waste-of-time.

</comment><comment><USER53> Fortunately I've just released an ncurses wrapper that deals in printing strings exactly how they're formatted.

To update the view call update_content(0,"Some\nLines.") on the appropriate Pane object.

[https://pypi.python.org/pypi/window](https://pypi.python.org/pypi/window)

</comment><comment><USER54> Text is good for efficiency.

Not for learning. When I see a UI of an app - I can at one instant see all the possible things that can be done using it.

text starts becoming a problem when their is a combinatronical explosion in what you can do with your app.

I cannot imagine Photoshop, Maya or After Effects to be text based.

Its a fairly interesting computer science question to me.

<comment><USER55> The MEL language is a huge part of MAYA, and it's the guts that do lots of the work. Part of the magic of MAYA is the killer GUI for making models, etc...

The real heavy lifting comes from the tight integration between MEL and that GUI, which permits all sorts of things to be made and then quickly manipulated using the SAME MAYA GUI.

<comment><USER54> I agree - having done Python programming in Maya. The scripting allows you to really super-charge your work.

But What I meant is When I started working with Maya initially - I was already put off by the extremely complex GUI. Trying to program ? I do not think many programmers appreciative the deep learning curve needed - and the average modeler is not adequately equiped.

<comment><USER55> I had similar experiences. And that applied to MCAD too, not just general 3D modeling. That is a complex UI space to manage.

The data is complex, there are nearly always multiple interaction modes, selections, etc... going on too.

Back when I learned on 8 bit computers, it was kind of easy because they didn't do much. One soon found themselves into the guts of the machine doing assembly language to make any magic happen. All from books, magazines, peers, etc...

Looking at listings was high value.

Well, today we've got YouTube and it's awesome! I can watch somebody model, or program, or do both.

It is a deep curve, but we've got so much better learning now. Back when I learned CAD and things like MAYA, I had to do it old school. Get the book, go. I had the advantage of some peers who would give me some help, or do a quick tutorial. Know what? I videotaped one of those, a little precursor to what we have today.

There is a worry I have of hobbling great UI models by over engineering this learning curve bit. Where we can simplify, we should, but not at the expense of the peak use capability possible by experienced and adept users.

MAYA, and many CAD packages are bending that line, and it hurts at times. People who know their stuff could be sharing it just as much as relearning or working around the changes needed to reduce the need for said sharing.

</comment></comment></comment></comment><comment><USER56> Isn't this called ChatOps? Slack acts as an hub for all the api wrappers. Ex: you should be able to type commands that execute on behave of you rather than ssh into your machine to type the same command. The title should read the future of DevOps is chat. UI is a different topic

</comment><comment><USER57> Bit-related sidenote: Does anyone know a way to position the cursor inside a terminal running bash when editing a command except navigating with the left/right arrow keys?

This is by far the thing that eats the most time when I'm working on the commandline.

</comment><comment><USER55> I personally would frame this as "the console" and it's the place where one can input text in the interface, and it may well be a secondary, external channel apart from the main or primary GUI.

All that has been done before. It should be done more.

</comment><comment><USER58> I don't think there's any substance in this claim. The examples are very niched.

<comment><USER59> The whole post is just a thinly masked ad...

</comment></comment><comment><USER60> A few years back there was plenty of text based interfaces like gnome-do. IIRC there is a web cli extension for firefox that is based on RDF intents which allows to command website using text.

</comment><comment><USER61> If the future of interfaces is foing to be text, i think it will be more because minecraft playing children than slack users, just my 2c

</comment><comment><USER62> I use slack everyday. I didn't know it did any of the stuff mentioned in this article. That's the problem command line.

</comment><comment><USER63> A good title to promote your product, sure, but there's little substance or truth in the claim really.

</comment><comment><USER64> Future is the matrix. Animation CPU said, that text is form, all user manipulations will be in native form - voice, touch, think, where text is local case.

[https://www.youtube.com/watch?v=ubNfWarTawI](https://www.youtube.com/watch?v=ubNfWarTawI) \- how UI replication will be used in the matrix

[http://acpul.tumblr.com/](http://acpul.tumblr.com/)

</comment><comment><USER65> [https://vimeo.com/115154289](https://vimeo.com/115154289)

</comment><comment><USER66> The future of UI is text....specifically Hypertext Markup Language.

</comment><comment><USER67> Makes argument for text. Uses images to illustrate point.

</comment><comment><USER68> The future is the Xerox PARC paradigm, not AT&T.

</comment><comment><USER69> Anything like Partyline for Bitbucket? :)

</comment><comment><USER70> So that's why Apple products are selling so poorly.

</comment><comment><USER71> move to top</comment>


a16z Programming Test - <AUTHOR> https://www.hackerrank.com/tests/530697662bd88 <comment><USER2> HN policy for years has been to allow two kinds of job ad: (1) job posts by YC startups, and (2) the Who's Hiring threads. We kill job ads that are neither of these.

(Incidentally, PG designed the /jobs posts to be the one privilege that YC startups get on HN. Other than that, the site policy is to treat them the same way as everybody else.)

It's not uncommon for posts to be in a grey area between job ad and story. A programming test for an interview process doesn't seem all that grey, though, so I've been killing these. Sorry to be a hard-ass about this, but I don't want to be accused of enforcing the policy erratically.

Edit: I'll unkill the post (but otherwise leave it demoted) so the discussion can remain open.

Edit 2: The argument has been put to me that this is newsworthy because A16Z are doing it. Since that's corroborated by external sources (e.g. Twitter), and the post has gotten a lot of upvotes even while it was buried, that's reasonable—so we'll restore it as news rather than as an ad. Besides which, HN is one of the few places where a programming test counts as interesting.

<comment><USER3> Can an actual list of policies be posted somewhere ? - I don't ever recall there _ever_ being a discussion of such a policy before. Certainly there have been highly voted non-HN job posts in the past (e.g. Khan Academy)

<comment><USER2> I'm reluctant to mess with the informal way that HN has been run over the years, so there isn't likely to be a complete list of rules. We do intend to augment the HN guidelines, though—just not any time soon. The new team has to get settled in first.

In the meantime, I've been posting feedback comments most places that issues like this come up. You may need to look to the bottom of the threads to see them, because we usually mark them off-topic.

And you can always get answers to questions by emailing firstname.lastname@example.com.

<comment><USER3> The informal way things worked was by the community not upvoting posts or in some cases flagging them; if the new HN position is that moderators will manually intervene to enforce these informal policies then that's the major change. Publishing the policies is minor in comparison.

<comment><USER2> The informal way things worked before is exactly the same as how they work now. There is no "new HN position". The only difference is that we're trying to be more transparent, and that's not a policy change—it's that we have more time to put in to answering questions, and users made clear it was something they wanted.

</comment></comment></comment></comment></comment><comment><USER4> I wonder if this could act as a negative filter for good programmers. Who worth their salt is going to invest 3 hours of their time just to submit a resume? Wouldn't you want to talk to the employer first to see if they're a good fit?

In a tight labor market, people willing to do this are more desperate than others. So it's going to filter for desperate developers who passed a 3 hour basic skills test.

Old fashioned prior experience and education is probably still a better first filter. This would probably make more sense specifically for junior hires right out of school or with no experience.

<comment><USER5> Well, empirically we're getting quite a lot of people attempting it! :) Three hours is pretty lenient (you could blaze through it in less time), though the last question is challenging. We think the questions are kind of fun as well.

Without something like this we'd just have 100s-1000s of unstructured resumes in different formats to rank against each other. This process is more fair and (IMO) allows someone without a college degree, or from outside the US, to compete on a level playing field.

<comment><USER6> > Well, empirically we're getting quite a lot of people attempting it!

> Without something like this we'd just have 100s-1000s of unstructured > resumes in different formats to rank against each other.

So instead of hundreds or thousands of unstructured resumes in different formats, you have hundreds or thousands of completed programming tests. Even assuming that you automatically filter out submissions that fail testing, given that there are a lot of ways to solve a problem, you'd still be stuck evaluating potentially hundreds of correct submissions.

More importantly, a test doesn't seem to be aligned with your top priority:

> ...but the most important requirement is significant independent programming > experience as demonstrated by your GitHub account, personal projects, > academic publications, or startup success.

Are you assuming that all of the folks most accomplished in the real world are going to complete your programming test successfully?

Since you ultimately seem to be interested in folks who can build dashboards, I would think you'd be far better off asking candidates to build a dashboard prototype using sample data you provide. There are lot of really smart developers out there with advanced degrees who could solve programming quizzes all day long but couldn't design and implement a useful dashboard application.

<comment><USER7> > You'd still be stuck evaluating potentially hundreds of correct submissions.

I'm guessing the MVP of hackerrank was the web code editor + lint/findbugs/whatever for filtering. A lot of people have spent a lot of time writing open source projects that convert code to metrics, so making a reasonably prioritized list is probably fairly easy.

> There are lot of really smart developers out there with advanced degrees who > could solve programming quizzes all day long but couldn't design and > implement a useful dashboard application.

Agree!

I think this is a great critique of HackerRank as a business idea -- while they are new, it's just a hurdle that weeds the busier coders out of your hiring pool... if they become established there will be books on cramming for it, and will no longer separate the wheat from the chaff.

(ie [https://web.archive.org/web/20130114163457/https://raganwald...](https://web.archive.org/web/20130114163457/https://raganwald.posterous.com/i-dont- hire-unlucky-people) meets [http://en.wikipedia.org/wiki/Goodhart's_law](http://en.wikipedia.org/wiki/Goodhart's_law))

<comment><USER8> To be honest I think it's the other way round - if you can do programming tests all day long you will succeed at most coding jobs. However there are a lot of developers who can't tackle an interview that with a nights sleep and no pressure can easily code a intuitive and effective architecture.

Sorry - programming tests raise far more false negatives than false positives (and this from a person who considers himself a false negative in most tests)

<comment><USER7> I'm not sure what kind of coding work you do, but I assure you the vast majority of web development work has little resemblance to coding questions. You are almost never designing an algorithm: that was already done for you by whoever designed the library you are using.

Majority of the tasks IME:

\- code reading & refactoring

\- figuring out why two libraries aren't playing nice

\- bug triangulation

\- optimization ( _not_ the algorithmic type, but rather the fix-the-auto- generated-SQL-query / frontend asset packing kind)

\- repetitive/simple/obvious bits of jQuery

Maybe there's some kind of online test that could exercise those skills, but if you ask me the main performance changers for modern web development are, they're: really knowing the stack (problem anticipation, what to use, how to use the various tools to quickly get search keywords), google fu, and most importantly having done it a couple hundred times (muscle memory).

<comment><USER8> That's terribly negative. If you are doing agency work maybe (same website, same functionality, just different skin) but that vast vast open plains of http-based development are around and going to be around joining parts of the business, public world together in ways they do not know or imagine.

Yes, binary trees are pretty much coded for you, and you would be a fool to roll your own hashing algorithm for production, but thats still not a reason to keep your head down.

The next decade is going to be fun. Trust me

<comment><USER7> I don't understand this response. To be clear, I think web development is fun. I very much enjoy it and don't resonate with "keeping my head down".

I guess to reiterate my point: once you've done web development for a couple years, coding most websites is less about solving new problems and more about applying known solutions.

To reiterate how this point relates to the question of coding interviews: in as much as they don't test for lots of known solutions, and the ability to apply known solutions quickly, they aren't filtering for productive coders.

How does your response relate to the points at hand?

<comment><USER8> but web development is not about "making new websites"

Think micro-services supplying REST APIs over HTTP - that's going to be same-y after a few years yes, but _behind_ that is a world of business apps, integration challenges, complex algorithms and calculations - sorry I just see "web development" as "anything that has of will have an http access point" which I mentally count as "pretty much everything from here on in"

Programming tests do generally test for ability to apply known solutions quickly - it's about all they do do. You just have to know the known solutions (oh look calculate primes).

As for finding productive coders - well the amount of false negatives is large, and the false positive rate is probably higher (plenty of people who can waltz through these tests i find fairly poisonous to morale) so I am not a big fan - but if you need to make a first cut this is a good start

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This doesn't quite make sense to me. Or, it makes sense, but not for the reasons presented on the surface.

If you're Andreesen Horowitz, you have access to a nearly-unlimited supply of capital. You also have incredible access to information and dealflow throughout the industry. In situations in which you are not capital constrained, the most efficient way to establish a workforce is to acquire it from somewhere else; that's why acqui-hires make so much sense, because you've basically had someone else do the hard (and often completely unpredictable) work of figuring out if people can work together in a successful manner (which, I should note, is different from determination of whether the thing they're working on is successful). If I were A16Z, I would arbitrage my information advantage to secure a high quality engineering team by acquiring a company that had smart people but a lame product; going through a traditional hiring process would be a waste of my time (and since everyone is throwing money at my firm, it would also be a waste of time that could be better spent on figuring out where to deploy my capital).

A16Z is rich enough to buy people, if it really wants people, for internal use (whether it is for their own company needs, or for some idea that they want to incubate inside of the firm). And even if they don't want to buy a whole set of people, they have enough wisdom and experience to know that you want to hire within a cohort of successful people rather than randoms (to see this in practice, take a look at Don Melton's post about Eazel alumni ending up at Apple on the front page right now). This tells me that their programming test has more to do with some sort of evaluation of this Hacker Rank service ("tell you what, we will run our own test on the service to see what happens!") or some other sort of analytical adventure.

Or, you know, maybe it is really a programming test after all. Maybe they are hoping to find some sort of diamond-in-the-rough engineers who are socially and career-wise disconnected from an existing network. Some sort of "black swan programmer" or something. But I highly doubt it.

So basically, if you go through this test, you're helping A16Z evaluate something; that something, however, probably isn't you.

<comment><USER10> Rich people are cheap.

Why acquihire someone who knows how much they can ask if you can pay close to nothing to that test website (it's a genetic service) and get a clueless buy competent nerd that will be glad to work alone on a project for peanuts?

That's why we're poor and they have "unlimited capital"

<comment><USER9> There are a lot of stupid rich people in this world, it's true. It's also somewhat of a dirty little secret that some of Silicon Valley's most successful VCs are stupid rich people.

The team at Andreesen Horowitz, however, are not among these stupid rich people. If anything, they have disrupted the standard operating procedure among their peers by outsmarting them, and the nature of how they have outsmarted their peers is strongly connected to an appetite for attaching high valuations to small groups of really smart people. Their organizational M.O. has been the exact opposite of bargain-bin talent hunting, which is why this whole Hacker Rank thing comes off so weird to me.

I want to be clear that I don't think A16Z is up to anything evil. Just something sneaky (which is fun!). These are smart people, and for them to publicly engage with the hacker community in this manner is indicative of some sort of really smart hypothesis being tested.

</comment></comment></comment><comment><USER11> An entire page detailing what you want from me, coupled with a 180 minute test. Yet in all of this there are only 4 bullet point sentences describing what you're offering me. That deal is not for me.

<comment><USER12> They are establishing the tone of the relationship .. [& edit: it is a great filter for the personality type they want.]

</comment></comment><comment><USER13> > machine learning (scatterplots & histograms, logistic/linear regression, > R/Matlab)

So, someone taking Statistics 101 is considered to know machine learning in the startup circus? (Not that this would really surprise me, given the tendency to appropriate terms that had a certain meaning for purposes that have only a passing similarity to the original meaning.)

<comment><USER5> We could certainly rattle off more terms :) Kernel density estimation? Deep learning? Semi-supervised learning?

But it's amazing how far you can get with some simple scatterplots, histograms and linear/logistic regressions.

a) Most of the time, more data beats better algorithms: [http://anand.typepad.com/datawocky/2008/03/more-data- usual.h...](http://anand.typepad.com/datawocky/2008/03/more-data-usual.html)

b) Even those seemingly simple things get complicated when you have a lot of data: [http://komarix.org/ac/lr](http://komarix.org/ac/lr)

</comment></comment><comment><USER14> I seriously hope this doesn't become a norm. I hate timed tests.

<comment><USER6> As an employer, I would seriously hope this _does_ become the norm.

If some employers want to implement recruiting processes that require developers to complete tasks that don't reflect real-world development, it makes it that much easier for other employers to differentiate themselves and attract competent developers who aren't interested or desperate enough to play these games.

Frankly, in today's market I feel sorry for any experienced developer who is going to complete a "programming test" in which referencing a website or book other than language documentation is forbidden. I reference websites and books all the time, and I don't know a single developer who doesn't.

<comment><USER7> This was too awesome a comment to pass up, so I ended up browsing your thread history / googling you. I found a lot of great posts as well as the hilarious [https://news.ycombinator.com/item?id=5967671..](https://news.ycombinator.com/item?id=5967671..). but sadly no real name / business name.

What company do you run? Are you in the Bay Area? Can I buy you coffee? I have a feeling you could teach me things that are both true and that hackernews would downvote... And that there's a reasonable chance I could return the favor.

Background so you can filter me more easily: I'm a very good programmer (7 years experience coding on small teams made of up jQuery core, rails core, and MIT AI Lab alums. Several offers from YC companies. 4 papers & patents. Currently doing machine learning for the Scripps Institute of Oceanography). I'm also an avid reader of psychology (cognitive biases mostly), marketing (Joe Sugarman is amazing), and business books (I'm a raging Munger and Deming fan).

So I'm guessing if we did meet for coffee you at least wouldn't find it boring.

Email me? firstname.lastname@example.com

</comment></comment></comment><comment><USER15> Cool, but... Why is A16z building an engineering team?

<comment><USER16> My guess is to have an in-house team that can help out the companies they fund. I know that Netflix's cloud architect, Adrian Cockcroft, left to join a venture capital firm to advise on scaling issues for companies that firm funded[0].

0 - [http://gigaom.com/2014/01/07/netflixs-cloud-architect- adrian...](http://gigaom.com/2014/01/07/netflixs-cloud-architect-adrian- cockcroft-is-leaving-to-join-battery-ventures/)

<comment><USER17> "My guess is to have an in-house team that can help out the companies they fund."

Nope.

<comment><USER18> I'm really curious... a hint?

</comment></comment></comment></comment><comment><USER19> I'd take the test to see what's inside but... 3 hours? Can I get a t-shirt if I complete it at least? :)

</comment><comment><USER20> Does this mean Mattermark [https://mattermark.com/](https://mattermark.com/) have started a tech arms war amongst the larger VC firms to create their own toolsets to differentiate their deal flow from others?

Mattermark has gone some way to provide proof that data can make a difference, at least at highlighting opportunities that might not have been visible before. I wondered whether this would result in herding investors towards some companies, which means differentation and opportunity comes from spotting things the others miss... finding the outliers that Mattermark miss.

Interesting that the test is "make a dashboard", well into the standard skillset for most analyst programmers who work for financial institutions (I built a lot of this stuff for the finance sector in London).

</comment><comment><USER21> Programmer == Labor; don't ever forget it.

The overwhelmingly largest share of returns accrue to capital. It's a good idea to resist being cast in the role of simply "programmer" over time, for this reason.

</comment><comment><USER22> Doesn't accept my (NZ) mobile number as valid :(

<comment><USER23> You can also email test-help AT a16z DOT com and we can send you a direct link (where you won't need to receive credentials by phone)

<comment><USER24> I love that people do this. Do you really thing someone is going to write a web scraper and NOT include obvious things like converting AT -> @ and DOT com -> .com?

Also, who even worries about spam any more? I haven't seen actual spam in my inbox in years.

<comment><USER25> Should we just go "AT AT AT" or something instead? Or perhaps adapt from Mandarin speakers, who literally call the @ sign "the little mouse" ;)

Spam remains an issue if for whatever reason you're still using rulesets/blacklists/greylisting and the like, instead of Bayesian filtering.

</comment></comment></comment></comment><comment><USER8> My problem is I like taking these tests to find out what I don't know (quite a lot usually). To be fair though code reviews usually tell me more than tests these days.

The constraint that gets me is the honor code - I cannot use an IDE with code completion?! but that leaves nano or notepad ...

<comment><USER26> I think you misread that.

"You _may_ use reference language documentation or use an IDE that has code completion features. "

<comment><USER8> oooooooohhhhhhhhh

what's the first thing your teachers said ? Read the instructions carefully :-)

</comment></comment></comment><comment><USER27> The test's restriction on consulting material from websites and books, excluding the official reference documentation boggles my mind. Unofficial 3rd party documentation is standard kit for a developer, especially when using community driven programming languages.

</comment><comment><USER28> I didn't upload a resume (just a note saying I didn't have one) but did take the test.

Hopefully they send some feedback... I'm not looking for a job, just wanted to know how I would do if I were:)

Besides, I love programming challenges.

<comment><USER28> I was actually disappointed when I didn't get feedback right away after doing the test.

Something to be aware of if you are considering doing this... it looks like it really is for employment and not a challenge.

I guess one of the first question "Are you ready to go to work in Menlo Park CA" (No) should have probably clued me in:)

Oh well... they will "be in contact". Right.

<comment><USER28> And... my suspicions were confirmed. I still have no idea how I did on the test and they have provided no feedback.

So, unless something changes, which I don't predict, it was a waste of time I wouldn't recommend doing the test nor applying to work at a company like this.

</comment></comment></comment><comment><USER29> Is anyone in their programming job given several distinct questions and only 3 hours to solve all of them?

A more realistic programming test would be a single, complicated problem with an "end of day" time restraint.

</comment><comment><USER30> Have you guys thought about possibly employing smarterer.com rankings? I took your test, I think smarterer may yield a better evaluation, although you can't write code on a clock.

</comment><comment><USER16> 1:30 am on the night before a physics test - why must this challenge be so tempting! There goes that studying :)

</comment><comment><USER31> Is that last question typical of interviews in the States? What is it selecting for? Aptitude in Maths?

</comment><comment><USER32> Random question - how are "scatterplots and histograms" machine learning?

<comment><USER33> This is a very difficult question and, thus, illustrates the transcendent brilliance and astoundingly "deep domain knowledge" of A16Z. An answer is available only on the bleeding edge of the most brilliant insights of research in machine learning. Ordinary people can't expect to understand such depth! All bow down to the incandescent brilliance of A16Z -- after all, one of their founders used C++ to write a GUI application to read a text markup language and display the formatted results! Maybe this was the first time, I mean after Word, TeX, and some others?

</comment></comment><comment><USER34> Is this just for full-timers, or will there ever be an option for internships?

</comment><comment><USER35> Will this be an ongoing opportunity or is there a deadline to submit this by?

<comment><USER5> It's an ongoing opportunity, but we will be hiring the first set of people soon. So it will be to your advantage to apply sooner rather than later.

</comment></comment><comment><USER36> aside from the fact that tests generally don't work i find this hilarious.

"the most important requirement is significant independent programming experience as demonstrated by your GitHub account"

a great way to find newbie hipsters and not experienced and seasoned devs. or at least limiting yourself to one community

<comment><USER5> Hmm. In all fairness, the full quote is:

      A BS/MS/PhD in Computer Science or the equivalent is nice
      to have, but the most important requirement is significant
      independent programming experience as demonstrated by your
      GitHub account, personal projects, academic publications,
      or startup success. Your accomplishments are much more
      important than your paper credentials.

</comment></comment><comment><USER33> Looks to me like A16Z is blowing it. If Ben Horowitz prides himself on good management of technical work as suggested by his blog posts, then he didn't work very hard on the project of the OP.

Issues:

(1) Engineering School. Uh, guys, here in the US we have universities with schools of engineering -- MIT, Johns Hopkins, CMU, Georgia Tech, etc. Running a good engineering school is a lot of hard work. But this A16Z project has A16Z being their own engineering school, that is, specifying 'course material', testing for it, and deciding on pass/fail. Somehow it seems a bit arrogant for A16Z to believe that they can do the work of an engineering school.

A16Z gets really off the track with their,

> A BS/MS/PhD in Computer Science or the equivalent is nice to have, but the > most important requirement is significant independent programming experience > as demonstrated by your GitHub account, personal projects, academic > publications, or startup success.

Wow! "PhD in Computer Science" ... "is nice to have, but"...! Gee, guys, just shut down MIT, Johns Hopkins, CMU, Georgia Tech, etc. because now A16Z is here with "the right stuff"!

Next, for their "as demonstrated by ... academic publications", sorry, A16Z, "academic publications" are not at all about "programming experience". Instead, the usual criteria are "new, correct, and significant" where "programming" really does not count more than, say, just the word processing for the paper.

(2) Machine Learning. Good grief! That "machine learning" is about "scatterplots & histograms, logistic/linear regression, R/Matlab" fills a "much needed gap in the literature" and "would be illuminating if ignited". Their definition is for a 'statistical data assistant' mostly just for 'descriptive statistics'. Ever hear of J. Tukey? Ah, I'll be nice to you guys; not fun to be too harsh on small children!

Then there is their unforgettable,

> If you also know enough data science/machine learning to design useful > metrics for dashboards and workflows, that's a major plus.

Uh, ever hear of reliability and validity? You have three hours to respond here with a relevant description! You are not permitted to use Google or Wikipedia!

(3) Ego. It appears that the A16Z specification was written by someone who has enough ego to believe that their own 'skill set' is just "the right stuff".

(4) Linux. People programming on Microsoft's platform can have done well but encountered only a small fraction of the topics in the A16Z document. The document is mostly about Linux. Sorry, guys, I'm writing in Visual Basic .NET; no, C# has too much of the deliberately 'idiosyncratic' syntax of C which I find too error prone and hate.

(5) Three Letter Acronyms (TLAs). It appears that A16Z is using obscure TLAs as code word filters. Hmm.

So, they have ORMs. Gee, what the heck is that? So, Google a little and get a Wikipedia entry and discover ORM abbreviates 'object-relational mapping'. Okay. Sure, if write the software with objects and keep the data in a relational database, then need move data between objects and tables. Given the huge variety of objects and tables, tough to believe that there is a significant 'subject' here.

Then there is their ETL. Google again and discover that that TLA abbreviates "extract, transform, and load". So that is essentially 'extracting' data from whatever original sources, 'transforming' the data as needed by the work to be done, and 'loading' the data into a data base. Okay. Sounds entirely routine. I'm surprised they didn't also list (A) LRT, look at a screen, read it, and type in what need, (B) PSS for put on shoes and socks, (C) SDP for start car, drive to the office, and park the car, and especially the crucially important (D) GSL for Google a question, select the promising results, and learn what needed. One more: WTH, waste time on Hacker News!

Okay, A16Z, two can play this game: Think of a large server farm or internet protocol network. Since this 'facility' is subject to errors of wide variety, it is important to monitor the facility for unexpected problems of wide variety, say, from software errors, hardware failures, system administration errors, security breaches, etc. To do this collect some data, say, from Microsoft's instrumentation means, HP's Mercury Interactive, what a relational database management system or Cisco box can report, etc. So, maybe 100 times a second, collect numerical data on each of 25 variables. Now we want a detector of 'anomalies', including for problems never seen before, that is, 'zero-day' problems. Such monitoring is essentially hypothesis testing. So, we want a suitable hypothesis test. Due to the fact that the multi-dimensional probability distribution of that 25 dimensional data is essentially impossible to describe at all accurately, we need an hypothesis test that is 'distribution-free'. Since the data is 25 dimensional, our test must also be 'multi-dimensional'. We want false alarm rate known in advance and adjustable in small steps over a wide range. And we want a good shot at doing nearly as well as the Neyman-Pearson result but with much less data than that result requires. Okay, A16Z, your mission, and I'd like to see you accept it, is to say how to do that. Of course, since you guys are so good and brilliant, you already know my published paper for the answer. But there is a typo in the paper. Where is it? You have three hours to post your response here.

Also needed, find a fast way to do the specified computations. I found a way, but that is not in the paper. You have 24 hours to post the answer to this part! Don't report your answer in some silly way such a running code. Instead, report your answer in clear English with any appropriate mathematics written as high quality mathematical writing, e.g., W. Rudin. Go for it, guys!

Uh, you won't find the answer on Google or GitHub! And asking around Silicon Valley won't help, either. You might want to rush off to the RAD lab project of Patterson and Fox funded by Google, Microsoft, and Sun for when they worked on such problems, but that won't help, either.

My view: Here A16Z showed that their understanding of computing is still down at the level of a junior high self taught programmer.</comment>


Ask HN: How to spammers make this magic happen? - <AUTHOR> Got a spam email that had the name of someone close to me but not super close (eg a friend of a friend or a family member that I only sort of know). The actual email address is a fake one so it isn't a hacked account. They someone pair that name with my name and send the email to me. How can they do this at scale? Do they scrape Facebook? <comment><USER2> I guess one of your friend of a friend laptop has got a virus</comment>


Intel SGX Remote Attestation is not sufficient [pdf] - <AUTHOR> https://www.blackhat.com/docs/us-17/thursday/us-17-Swami-SGX-Remote-Attestation-Is-Not-Sufficient-wp.pdf <comment><USER2> Blackhat 2017 presentation based on the paper: [https://www.youtube.com/watch?v=9A9XNx9_Vyc](https://www.youtube.com/watch?v=9A9XNx9_Vyc)</comment>