WebAssembly Is Not a Stack Machine (2019) - <AUTHOR> http://troubles.md/wasm-is-not-a-stack-machine/ <comment><USER2> Discussed at the time (with comments from one of the designers of WASM): [https://news.ycombinator.com/item?id=19069587](https://news.ycombinator.com/item?id=19069587)

<comment><USER3> And at least one other WASM implementer as well. A lot of good comments there.

<comment><USER4> I think that's actually a rather poor discussion, revolving around what is or isn't "ad-hominem", or which unimportant details of the history of WASM are inaccurate, or what the name of things should be.

All of the technical concerns raised by the post are either left unaddressed, or deferred to future extensions of WASM. In other words, the author must be correct in his analysis and the standard has made questionable trade-offs from the outset.

I can think of at least one reason why you might want a register machine: Not every platform is going to use or allow JIT, and a register machine would perform better here, i.e. like Dalvik in the early days of Android.

<comment><USER3> Read past the first thread ;)

</comment></comment></comment></comment><comment><USER5> It's misleading to say that register machines carry no liveness or that they defeat liveness. That's a bit much. Computing liveness on a register machine with dense integer numbering of locals is not that expensive. It's certainly cheaper than running a good backend. And a good backend will certainly modify the code in a way that requires liveness to be recomputed.

It's also misleading to say that register machines defeat SSA. It's not hard to convert from a register machine to SSA - the algorithm is almost linear. Powerful backends (like WK's B3) recompute SSA after some transformations anyway.

I think that wasm combines elements of a stack machine and a register machine in a way that leads to a compact format and multiple reasonable paths to converting to the sort of IR you'd want for converting a platform agnostic form like wasm into any contemporary instruction set. I'm no wasm fanboy but as far as binary IRs for transporting code into optimizing compilers go, this one is pretty slick.

</comment><comment><USER6> Looks like the proposal to fix this was merged into the standard in April.

[https://github.com/WebAssembly/multi- value](https://github.com/WebAssembly/multi-value)

</comment><comment><USER7> The changes noted for future: loop counters as arguments, returning multiple arguments sound a bit like re-inventing the Forth VM, which does things this way. Might not hurt to review some papers in that sphere that may have walked this ground before. (?)

[https://www.researchgate.net/publication/2414672_A_Prelimina...](https://www.researchgate.net/publication/2414672_A_Preliminary_Exploration_of_Optimized_Stack_Code_Generation)

</comment><comment><USER8> I'm not sure the timeline described ("only at the last minute did it switch to stack-based encoding for the operators") is accurate, but it is the case that for a while we were working towards more of a register-oriented encoding instead of the stack oriented one that shipped. The representation of trees and operands was also different. I think what ultimately shipped was probably right, but the semantics described by the article for blocks are incredibly gross and if I had known about them I would've blocked them. The author's conclusion that this is due to wasm's asm.js-derived heritage is accurate (also, arguably the 'lots of locals' model was unavoidable since everyone was compiling wasm using JS runtimes anyway.)

Incidentally this claim is false: "No streaming compiler had yet been built, hell, no compiler had yet been built." Early in development we had at least two different compilers used to generate test cases - one compiler for a home- grown imperative language written by Nick Bray, and another compiler for a subset of C# that I wrote [1]. Having those two compilers generating code early on was useful given that neither emscripten or LLVM were capable of compiling real apps so we were flying blind without them. Development of LLVM integration also started _very_ early, the problem is just that it took a long time until it was usable.

As for whether the lessons from those compilers were actually paid attention to or acted upon, well...

P.S. I still don't understand the reasoning behind "blocks have return values". Does any popular programming language out there do this except maybe some of the ML-derived ones? I've never run into it in production software. It's certainly not something a typical compiler would generate unless the source language had it as a primitive.

1: [https://github.com/kg/ilwasm/blob/master/third_party/tests/R...](https://github.com/kg/ilwasm/blob/master/third_party/tests/Raytracer.cs)

<comment><USER9> > P.S. I still don't understand the reasoning behind "blocks have return > values". Does any popular programming language out there do this except > maybe some of the ML-derived ones?

Most languages have something like `cond ? expr1 : expr2` which would naturally compile to an if-else block with a return value.

<comment><USER8> 'if' is a separate instruction from 'block' in wasm, though - the conditional having a return value makes sense given that there are two paths it can take and a value might want to flow out. the logic behind applying that to all basic blocks is confusing to me.

</comment></comment></comment><comment><USER10> It seems to me that this is only a problem when you try to write wasm directly. If you compile from rust then this analysis is already done for you on a higher level. or what am i missing?

<comment><USER11> The issue is that all the analysis the rust compiler did is not present/inferable from the wasm artifact. Since the compiler that has to translate wasm to machine code cannot make more assumptions than those that are in the wasm specification, it has to redo the analysis for certain things. That is time consuming for an optimizing compiler (how much really I don't know), and I think impossible for a streaming compiler.

</comment></comment><comment><USER12> The block argument and multiple return value proposal is a very good proposal. [https://github.com/WebAssembly/multi- value/blob/master/propo...](https://github.com/WebAssembly/multi- value/blob/master/proposals/multi-value/Overview.md)

Any idea how likely is this to make it in to the spec?

</comment><comment><USER4> Always write an implementation first - and make it a good one. Then derive a standard from it.

"Oh, but the implementation details will leak through!"

So what? This is an ivory-tower concern. When you are designing a standard, you _must_ have your mind on possible implementations, which is far more difficult without having created an actual implementation. You can't design in a total vacuum, otherwise your standard can't be implemented properly at all.

<comment><USER13> That's how we got the open version of MS Word. For small values of 'open', because 'do it like Word '95 did it' is not a very good way of describing a standard.

<comment><USER9> I just checked and was somewhat surprised to learn that AutoSpaceLikeWord95's behavior is actually pretty well specified:

[https://docs.microsoft.com/en- us/dotnet/api/documentformat.o...](https://docs.microsoft.com/en- us/dotnet/api/documentformat.openxml.wordprocessing.autospacelikeword95?view=openxml-2.8.1)

I'm sure there are still gaps in the specification overall; I don't actually know much about it, but I believe competing implementations have trouble reproducing the exact layout of Word documents, which should be possible with a good specification, and is mostly possible with HTML.

But I don't see anything wrong with that particular attribute. Backwards compatibility is important.</comment></comment></comment>


Microsoft shows popup in Windows 10 to advertise its shopping extension - <AUTHOR> http://www.myce.com/news/microsoft-shows-popup-windows-10-advertise-shopping-extension-chrome-users-81250/ <comment><USER2> I wish I could understand what goes on in the minds of marketers. Actually, wait: I don't really want to know, I just want them to stop.

Who green-lights stuff like this? Why is it now considered "OK" to just shove stuff in the user's face, for _whatever_ reason, out of the blue?

I mean heck, I _could_ fork a version of my UNIX shell to spam ads and prompts every other time you enter a command, wouldn't that be fun? At what point are we just going to ruin all usability in our software on the altar of the Ad Empire?</comment>


A new experiment: Browser-based web apps with .NET and Blazor - <AUTHOR> https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/ <comment><USER2> Does anyone know if there is any collaboration between support for WebAssembly in .NET Core/CoreRT[0] and Mono[1]? Or are they two totally separate efforts?

[0] [https://github.com/dotnet/corert/blob/master/Documentation/h...](https://github.com/dotnet/corert/blob/master/Documentation/how- to-build-WebAssembly.md)

[1] [http://www.mono-project.com/news/2017/08/09/hello- webassembl...](http://www.mono-project.com/news/2017/08/09/hello-webassembly/)

<comment><USER3> The CoreRT and Mono folks certainly do talk to each other.

As I understand, Mono is going to be moving forwards with WebAssembly much faster than CoreRT will do. Mono has officially committed to it already, whereas for CoreRT it was more of an exploratory spike.

Also it makes much more sense for Mono to be the .NET runtime for WebAssembly. Mono is already Microsoft's preferred production-grade .NET runtime for most client scenarios (iOS/Android native apps, Unity games) and is designed for that kind of portability. WebAssembly is another client platform like those.

</comment></comment><comment><USER4> :-( this doesn't bode well From the article, here is a sample ([https://blazor-demo.azurewebsites.net/](https://blazor- demo.azurewebsites.net/))

Error 403 - This web app is stopped.

Jokes aside, this could be a really awesome.

</comment><comment><USER5> This is such a neat idea. Really cool.

I'm looking forward to targeting webassembly in Visual Studio. This is going to be awesome.</comment>


Background of .plan files: the 1977 Finger Protocol - <AUTHOR> http://en.wikipedia.org/wiki/Finger_protocol

<comment><USER2> I feel like such an oldie reading things like this :-) Watching the younger generations rediscover things that I have lived through is making me gravely aware of my own mortality today. I'm expecting somebody to point out an article on Kermit next, or be astonished that once upon a time some people used email from a VAX vt100 terminal to access the public ftp server on nic.funet.fi :D

</comment><comment><USER3> While I've never seen anyone use .plan or .project files, the finger command is still widely used on MIT's network. In fact, MIT's user search (<http://web.mit.edu/search.html>) is just a front-end for the finger command.

It does raise some privacy concerns though, as you can see here: <http://amap.mit.edu/>

</comment><comment><USER4> Also, there was something called "Faces" or "Picons" which were kind of a precursor to Gravatar which showed you images that corresponded to emails, domains, and more. Indiana University had a Web service for performing these lookups using finger[0] (looks like it has since been turned off). For example, here is Richard Stallman[1] and here is Dennis Ritchie (RIP)[2].

[0] [http://web.archive.org/web/20070630172305/http://www.cs.indi...](http://web.archive.org/web/20070630172305/http://www.cs.indiana.edu:800/finger/gateway)

[1] [http://web.archive.org/web/20070630172449/http://www.cs.indi...](http://web.archive.org/web/20070630172449/http://www.cs.indiana.edu:800/finger/gnu.ai.mit.edu/rms/w)

[2] [http://web.archive.org/web/20070630172341/http://www.cs.indi...](http://web.archive.org/web/20070630172341/http://www.cs.indiana.edu:800/finger/research.att.com/dmr/w)

<comment><USER5> See: <http://en.wikipedia.org/wiki/X-Face>

</comment></comment><comment><AUTHOR> I posted this after being really inspired by the HN post about John Carmack's .plan file[1], and then doing some research to discover what exactly a .plan file is.

[1] <http://news.ycombinator.org/item?id=3367230>

<comment><USER6> news.ycombinator. _org_ ?

<comment><AUTHOR> That is what I get in Chrome when I tab to autocomplete "n". At some point I must have typed in "news.ycombinator.org" out of curiosity, and Chrome decided to favor it.</comment></comment></comment>


Moscow bans protest 'due to lack of political repressions' - <AUTHOR> http://rt.com/news/moscow-political-repressions-protest-banned-198/

<comment><USER2> I don't even believe RT when they're reporting on Russian repression. The last RT article I saw suggested that Obama might use a domestic deployment of the US military to enforce his new secret cybercrime law. I can't see what this particular subject has to do with HN, but even if I could, I wouldn't want to be "learning" about it from RT.

Flagged.

<comment><USER3> Seriously... If you read an "interesting" article on RT, the next step before posting it to [e.g.] HN should _always_ be to search for a more reputable source...

[Of course even the wackiest tabloids do occasionally report real news...]

</comment></comment><comment><USER4> Seems to be real. Here's an article in non-governmental news site: <http://lenta.ru/news/2012/11/20/oo/>

Reminds me when my mother first started researching issues of domestic violence in USSR. When requesting criminal statistics she was told "Soviet families do not have this problem."

</comment><comment><USER5> In Soviet Russia, state protests you!

</comment><comment><USER6> "We can't let you protest about cover-ups in the system, there are no cover- ups, what are you talking about?!"</comment>


Advice on YC Application - <AUTHOR> https://medium.com/p/947e234fd74f

<comment><USER2> Among other things that picture contains a very young Patrick Collison, just above the projector.

<comment><USER3> When was that image taken?

It would be interesting to see a collection of images from each batch to see a lot of the YC founders when they were just getting started in the accelerator.

<comment><AUTHOR> That was PG talking about Prototype Day at Y Combinator Summer 2009

</comment></comment></comment><comment><USER4> Haha, same photo I used in my article about applying to YC: [https://medium.com/p/b0a75aa7401f](https://medium.com/p/b0a75aa7401f) :)</comment>


Fake news 2.0: personalized, optimized, and even harder to stop - <AUTHOR> https://www.technologyreview.com/s/610635/fake-news-20-personalized-optimized-and-even-harder-to-stop/ <comment><USER2> The filter side AI, aided and abetted by human users, will effectively act as a GAN for the attacking AI. The consequences of such a relationship will be troubling to say the least. I guess we need to start building the immune systems to outpace the resistance to it.</comment>


Does the infamous "Happy Birthday to You" copyright hold up to scrutiny? - <AUTHOR> http://www.slate.com/id/2298271/pagenum/all

<comment><USER3> It's kind of cringe-worthy that a copyright from 1935 isn't public domain, regardless of the circumstances of its issue.

<comment><USER4> US lawmakers have signaled that nothing created after 1928 will ever become public domain. Why 1928? That is the copyright date for Mickey Mouse and he is worth too much money to let become public domain.

If you doubt that congress has messed with copyright over the years here a is (7 page!)"cheat sheet" for when something will become public domain. [http://copyright.cornell.edu/resources/docs/copyrightterm.pd...](http://copyright.cornell.edu/resources/docs/copyrightterm.pdf)

<comment><USER5> Pedantic here - while Mickey Mouse was created in 1928, the cut-off for public domain works is 1923. Also there was a long period of time where works needed to be registered (and re-registered) so there are plenty of works that have fallen into the public domain since 1923 (Night of the Living Dead being a prominent example).

<comment><USER4> You are exactly right and Congress "fixed" that. Currently no copyrights will expire until at least 2019. Anyone want to bet Congress passes another copyright law before then that extends copyright terms?

</comment></comment></comment></comment><comment><USER6> As a former copyright activist, we used to hold up "Happy Birthday To You" as the quintessential example of everyday activities that were copyright infringements, like when Lawrence Lessig went through the formalities to perform the song at the anniversary of Free Culture [1].

Yet the questionable legitimacy of the "Happy Birthday To You" copyright claim is something I only recently started to hear about, first from Ben Sisto's Ignite NYC talk [2] and then again from several other copyright activist friends.

While even litigating the validity of Warner's copyright over "Happy Birthday" would be a symbolic victory for copyright activists, it likely wouldn't get very far. And let's not forget that Congress could be moved to pass a law granting "Happy Birthday" its own copyright exemption in response to the actions of a court.

[1]: <http://www.wired.com/wired/archive/13.07/posts.html?pg=7> [2]: <http://www.youtube.com/watch?v=mkUFlZ05EiI>

</comment><comment><USER7> For critics of copyright law, it really doesn't matter whether WMG has a great case or not. At the end of the day, they extract $2 million per year, and many businesses (such as restaurants) must expend resources to avoid or defend themselves from lawsuits. So there's a serious problem.

<comment><USER4> Even worse in my mind is that this supposed incentive to creativity is destroying our culture. A parent at my daughter's school wanted to video a school performance and then distribute copies for the cost of duplicating them. He is a lawyer so he looked into what he would need to do to be above board with regard to copyrights of the songs. To make a long story short - <USER2> is not possible - he would need to negotiate a deal with each copyright holder. This problem is blocking other people also: [http://www.outsidethebeltway.com/wkrp-and-stupid- copyright-l...](http://www.outsidethebeltway.com/wkrp-and-stupid-copyright- laws/)

</comment></comment><comment><USER8> I remember learning about this in a college IP law class. After that, I started to notice how every restaurant sang their own unique version of this song.

<comment><USER9> It made me notice that when McDonalds started playing music, they played exclusively classical music, which I thought to be out of place. Now I wonder if they're using public domain works, or perhaps arrangements thereof which they have copyrights on.

I'm starting to think that we need a free music movement, where people start creating music that can be used freely in personal videos, school plays and whatnot without all these copyright shenanigans. A good place to start would be the public domain classical music. There's a lot of good stuff there.

<comment><USER10> It's certainly possible. I'd note there are a variety of services who exist solely to provide "in store music" to stores, which handle all the copyright/broadcast rights etc....and they are generally pretty affordable.

Still I wouldn't be surprised if there was a discount for stations that are pure public-domain or if small franchises were just playing it themselves (though presumably the recording/performance itself is still protected and they might not be in the clear legally if they were say, just playing a CD)

>I'm starting to think that we need a free music movement,

It already exists, it's called the Open Source Movement (well, amongst others). There is a variety of music available under say, a Creative Commons license...and many websites devoted purely to free-music.

<comment><USER9> Not all CC licenses are free for commercial use, though. In fact, most of them aren't. And you're right that one has to have _all_ the relevant copyrights to avoid legal hot water. I think that there's a different right for just about every little piece, from the arrangement of the music to the lyrics to the recording and performance rights.

Combine those two points and you see that getting strings-free music is a little harder than usual. And precedents like that nonsense about a 5-note hook from a long time ago don't help when it comes to issues of derivative works.

<comment><USER10> >Not all CC licenses are free for commercial use, though. In fact, most of them aren't.

Sure, it wasn't my intention to imply that. I'm talking explicitly about music that is completely free to use, and music licensed under certain CC licenses is just an example to illustrate the point.

Thank's for clarifying for other readers though.

It was also not my intention to imply that getting free music is easy. Of course much music is commercial, many people are reluctant or unable to give away products of any type.

My point was only that there are in fact _a lot_ of people creating music and releasing it explicitly to provide music which can be used for any purpose commercial or not, and a variety of websites which catalog this music.

These people/websites are a boon to many, like podcasters who require into/outro/background music.

I'm not saying this movement could not use more momentum, support, etc....the contrary in fact. I'm saying only that it already exists.

<comment><USER9> Fair enough. I'm just trying to advocate for more music and fewer strings attached. I know that some exists, but, as you point out, things are still far from simple.

</comment></comment></comment></comment></comment></comment><comment><USER11> Everytime I read about Warner Brothers (or any of the big 4), it seems like it is only a matter of time until their house-of-cards business model is dismantled. However, like this article say, it seems like even when they don't have outdated IP laws protecting their dubious claims to works, they still wield the threat of expensive litigation.

Someday, IP laws will be forced to change. But currently the biggest impediment is large corporations like WB gumming up the legal system to prevent any minority opinions.

<comment><USER12> You make it sound like these absurdly long copyright terms are some relic of the past and it's only a matter of time before they're shortened. In reality they have been repeatedly extended over the last century (as recently as 1998) and there's no indication that this trend has turned.

</comment></comment><comment><USER13> Err... maybe I just didn't read the article closely enough, but if both the music and the words predate 1900, how can there possibly be a valid copyright on it today? I mean, I'm sure it would cost big bucks to prove in court that it should be public domain, but WB wouldn't actually have a leg to stand on, would they?

<comment><USER14> Because there is nothing showing the tune and the words together (i.e. sheet music) with some kind of statement that involves copyright. It's a shaky leg, but a leg nonetheless.

<comment><USER15> But even if they were combined without permission, wouldn't that invalidate the later copyright? I know copyrights aren't exactly like patents, but was it really possible to take something someone else had written (decades earlier!), and copyright it yourself?

</comment></comment></comment><comment><USER16> 1978? Really? So Marylin Monroe was a time traveller? <http://www.youtube.com/watch?v=k4SLSlSmW74>

(Also, if she _was_ a time traveller, I wonder whether copyright laws are prepared for cases where time travellers are infringing copyright before the work was created)

</comment><comment><USER17> However, someone with foresight would instead US copyright Spanish language birthday songs and repeat the same business model based on an expanding demographic. </irony></comment>


Numba: a JIT compiler for Python that works best on code that uses NumPy - <AUTHOR> https://numba.pydata.org/numba-doc/dev/user/5minguide.html <comment><USER2> Having ported a decent chunk of code to work with Numba, the key is to minimize where you're interfacing with Numba.

You need to be careful of inadvertently introducing new types. Especially, numba doesn't (last I checked) recognize homogenous tuples (Tuple[Foo, ...] in typing) so each new length requires recompilation.

Similarly, every call is doing inference on its arguments, including Jitclass constructors. If you're making calls with a large number of arguments, you may be killing your performance gains even absent compilation.

If you're trying to make code that can run with or without numba, e.g. the same logic may not run in a loop, definitely avoid jitclasses.

All in all, just_temp's remark that you have to "write it like Fortran" is pretty close. The reason I found it worked was that I had a lot of business logic type stuff segregated to an early section that spat out structures that were very regular and primitive. That meant the code that had to be fast was already very Fortran like.

</comment><comment><USER3> Related from 2018: [https://news.ycombinator.com/item?id=17678758](https://news.ycombinator.com/item?id=17678758)

2017: [https://news.ycombinator.com/item?id=15301766](https://news.ycombinator.com/item?id=15301766)

2013: [https://news.ycombinator.com/item?id=5927787](https://news.ycombinator.com/item?id=5927787)

[https://news.ycombinator.com/item?id=5757231](https://news.ycombinator.com/item?id=5757231)

[https://news.ycombinator.com/item?id=5680722](https://news.ycombinator.com/item?id=5680722)

2012: [https://news.ycombinator.com/item?id=4430780](https://news.ycombinator.com/item?id=4430780)

[https://news.ycombinator.com/item?id=3692055](https://news.ycombinator.com/item?id=3692055)

</comment><comment><USER4> I had considered Numba in the past but it just seemed not worth the overhead. A few talks from this year show that they have really expanded the library, to the point where much of the scientific python stack use it instead of Cython. It can target things like ARM devices and is more flexible in the types it can take (dicts!) For reference [https://www.youtube.com/watch?v=cR8E70GTO8c](https://www.youtube.com/watch?v=cR8E70GTO8c) and [https://www.youtube.com/watch?v=6oXedk2tGfk](https://www.youtube.com/watch?v=6oXedk2tGfk)

<comment><USER5> What kind of overhead do you mean? Performance? Or cognitive?

<comment><USER4> Cognitive. Things like having to strip down abstractions and "write it like Fortran". The fact that it can deal with numpy arrays no problem and can actually deal with more common python objects like dicts means that there is less overhead

</comment></comment></comment><comment><USER6> Just use Julia. You get the benefits and libraries that compose well with others.

</comment><comment><USER7> There's also Cupy, which is Numpy with CUDA acceleration, a drop in replacement for most of Numpy, that you can easily also use CUDA kernels inside Python and even run Numba functions generated with @numba.cuda.jit.

</comment><comment><USER8> Really wish they would implement texture memory for CUDA, I used numba initially but switched to pycuda for that feature alone. I gained a 2-3x runtime speed up for a raytracing based simulation.</comment>


Grooveshark employees found guilty of mass copyright infringement - <AUTHOR> http://www.engadget.com/2014/09/30/grooveshark-copyright-infringement/

<comment><AUTHOR> Definitely the end of an era, I'm listening to it right now, and always thought it was too good to be true.

They are up to their necks in litigation (though very realistically, rightfully so), it seems, and based on the endgadget article they've done some pretty bad stuff (deleting file lists, uploading music themselves)...</comment>


Ask HN: What is the best backend framework for working with js-heavy frontends? - <AUTHOR>

So, I'm currently making my first app using backbone.js, and I love the experience! So far, I've only used mock data and done everything client side. Soon I'll have to choose a backend framework, and I know and love Django, but it doesn't seem like a great fit for a single-web-page backbone app. Does a specialized framework for such js-heavy apps even exist? If not, are there any that are better at it than others? Basically all I want to do is shuffle json data to and from the frontend, and store it. <comment><USER2> Since you seem to have the hang of JS already, you could try Node.js for the backend. You can reuse the same Models you've created in backbone, and choose your favorite DB from among Node's offerings (MongoDB, CouchDB, Redis or just plain ol' MySQL).

<comment><AUTHOR> Thanks for your input! I've been dabbling a bit with node.js already on small projects, and I like what I see so far. I was hoping to use GAE though, but I guess that is not really a requirement. I do however worry that my relative inexperience with node.js would make it harder (for me) to really integrate everything I need like authentication etc. Of course, I might be wrong!

In pure development speed I think doing it in Django would be the fastest for me, but I hate using the "wrong" tool for the job.

<comment><USER2> It's easier than you think. See [http://fzysqr.com/2011/03/27/nodechat-js- continued-authentic...](http://fzysqr.com/2011/03/27/nodechat-js-continued- authentication-profiles-ponies-and-a-meaner-socket-io/)

The good news about node.js is that it's fresh and there are tons of howtos and tutorials out there already.

</comment></comment></comment><comment><USER3> I'm working on a gem backbone-rails to help people quickly get going with backbone.js and rails 3.1. <https://github.com/codebrew/backbone-rails>

Rails 3.1 asset pipeline greatly helps/simplifies building modular client side apps. I highly recommend trying it out.

<comment><AUTHOR> I would, if I knew any ruby! For now (at least for the prototyping) I've settled on Flask as it is fairly minimal, works great on GAE, has great documentation and I wanted to try it out anyways :)

If I ever get to learning Ruby / Rails I sure will try it out though!

</comment></comment><comment><USER4> ext-js v4 on top of groovy on grails. grails utilizes hibernate so it can sit on top of most databases.</comment>


CKAN v1.0 Released - <AUTHOR> http://blog.okfn.org/2010/05/18/ckan-v10-released/ <comment><USER2> In my opinion, this is a really bad title. Something called "CKAN" was released, according to someone named "okfn". That doesn't tell me anything, if I'm not already familiar with either.

It seems to be about "open knowledge" (CKAN = Comprehensive Knowledge Archive Network), but I had to check to find out.

<comment><USER3> It's "debian for data" i.e. a centralised repository of free data with some housekeeping and rules of thumb to help the individual databases be used together.

CKAN is also a play on CPAN (P is for Perl).

<comment><USER4> Which is a play on CTAN, T is for TeX</comment></comment></comment>


Rugged Android phone surprisingly thin, light - <AUTHOR> http://linuxgizmos.com/rugged-android-phone-surprisingly-thin-light/

<comment><AUTHOR> the screen kills it for everyday use... but it is nice to see more players.

(also, cringe at very opinionated title, but mods will change it if i add anything more informative than the cooked press-release title of the article)</comment>


Mumbai Hackers and Founders Meet - Round 3 - <AUTHOR> http://www.facebook.com/event.php?eid=183401495047729

<comment><AUTHOR> Time for the third round of Hackers and Founders - Mumbai meet!

So, a dinner meet for Mumbai based hackers and founders. If you love <http://news.ycombinator.com/> \- you should come. If you have started your own startup, or are looking for co-founders or people to join your team, you should come. If you have a cool side project and want to scale it up, you should come.

(This is a Dutch event. Not free. Everyone shares the bill.)

Time: Wednesday, June 29 · 7:00pm - 10:00pm Location: TBD (Somewhere in Bandra)

</comment><comment><USER2> Hi, Can we have a page set up somewhere to register/get info. Thanks

<comment><AUTHOR> We are going to build a web soon. Until that you can RSVP for the event here: <http://www.facebook.com/event.php?eid=183401495047729>

Thanks!

</comment></comment><comment><AUTHOR> Venue Updated to Red Box Cafe, Bandra</comment>


Service that uses AI to identify gender based on names looks incredibly biased - <AUTHOR> https://www.theverge.com/2020/7/29/21346310/ai-service-gender-verification-identification-genderify <comment><USER2> Someone made a funny, novel toy, and they are seriously talking about "harm" it brings?

We seriously need to reevaluate the nature of communication on the internet. Something about it just facilitates the social contagion of oversensitivity and hurt feelings.

<comment><USER3> For example: oversensitive people like to dismiss concerns before they've taken a single second to hear or understand them. Actually _listening_ to people and engaging with their words instead of the reader leaning into their biases and hurt feelings about the subject would improve communication on the internet.

It wasn't a:

>> _" funny, novel toy"_

This was someone trying to build a business on guessing gender based on meaningless data. It did a very poor job even before considering the ethical issues. It couldn't even get it right with the name of the person behind it.

<comment><USER2> > This was someone trying to build a business on guessing gender based on > meaningless data

This claim is baseless. We don't know their dataset or how it was used to train the model.

> It did a very poor job

By what metric? I didn't realize people have done stastical models to show that it was inaccurate.

> It couldn't even get it right with the name of the person behind it.

Yeah because it's machine learning. It's imperfect.

You ran circles around what you want to say. You implied that I was being overly sensitive about how upset people were, but then you went on a tangent.

To address the main point of conflict head-on: making assumptions of people based on a limited dataset. Some people think it's okay, some people think it isn't. I think in this situation, it is fine! They aren't determining who is being sent to prisons or something, they just made a mathematical model to make fuzzy predictions to help with things like advertising.</comment></comment></comment>


Android-Jobs – post android related jobs - <AUTHOR> http://android-jobs.eu/

<comment><AUTHOR> Please contact email@example.com for a free job listing!</comment>


Ask HN: Have you done a programming boot camp? How'd it turn out? - <AUTHOR>

I've been reading a lot about dev boot camps like http://devbootcamp.com/ and http://www.appacademy.io/ that are designed to rapidly turn you into an entry level developer. There are lots of similar ones that I've found but they all claim that it's possible to teach you enough to interview with after 3 months of intense work.<p>Has anyone done one of these programs and have any thoughts one way or the other? I'm considering one but it's a serious financial investment for me and I'm skeptical about the risk/reward. <comment><USER2> I didn't but I know of someone who went through one of those programs and did land a job (but its because its structured that way i.e. to help these new devs find entry level work). The pay obviously reflected entry level and in the specific case of the dev I know, he still struggles a lot on the job but they hired him fully understanding that he needs guidance and thus proceeds accordingly. He gets stuck a lot at work and obviously isn't a self proficient programmer at this point but can ultimately understand and get stuff done (with help).

Every program will be different but I suspect a lot of the results will be the same given how fast the time frame is for them to go from non-programmer to programmer.

</comment><comment><USER3> _Disclaimer: I'm the founder of Protocademy (<http://protocademy.com>)._

I researched this for a long time (more than a year). What I gathered from it was that a lot of the programs out there are focused on teaching people how to _code_. They have students go through exercises in a sort of robotic manner, and don't take into account that different people learn differently. From interviewing past students, the general feeling about all of the programs is that they simply don't teach much about how real world programming really is. Few teach source control, none taught best practices (and how to avoid getting fired for a git mistake). They also didn't cover design much. People are simply being taught a lot of Rails magic. But worse is that people were not being taught how to break problems into steps. Which is the basic skill you need to program.Very few people managed to get jobs as programmers, because they would struggle with the most basic tasks.

With that in mind I created Protocademy. It is a program focused on building things, and leaning how and why things are built. Its designed to take a beginner to a point where they can tackle building an API or a CMS (which are the most common jobs these days). The program does not focus on one language or one framework. It uses various. But most importantly, it teaches how real programming is done. The challenges we face every day, and how we overcome them. It is a program that runs for 6 months. Yes, twice as most other programs. Due to how much learning there is. You really do need 6 months to teach someone how to do these things. It costs $99 a month, but its going to increase soon due to some improvements being made (like students getting their own VPS to hack with).

I apologize for writing all of this, because it may seem like I'm trying to pitch you the program. No. I simply mentioned it to share my findings, and what I'm doing to fix them. If you have any questions, my email is in my profile. Good luck.

</comment><comment><USER4> I know that App Academy won't charge you if you aren't able to get a developer job (it may have changed, though, so you'll need to ask them yourself).

It also depends a lot on your prior experience. Have a solid math background? Then you'll probably have a slight edge overall.

There are a lot of programs out there in all parts of the country; investigate your options.

</comment><comment><USER5> I'm in one right now- www.LaunchAcademy.com in Boston. It is a lot of hard work but totally worth it so far. I cannot believe how much I have learned in a few short weeks. I'm exhausted and going to bed but maybe I can answer some questions in the morning.</comment>


I created a social network all by myself. What do you think? - <AUTHOR>

The site is www.talkburst.com
TalkBurst allows you to create a public profile for anyone with a name, and write a review of them. Once their profile is created, other people can review them too. Reviews are organized by an accuracy score, which is measured with an upvote/downvote style voting system.
Users earn badges as they write reviews, upload pictures, vote, and more. Badges unlock special privilages on the site, such as the ability to edit profiles or to reveal "censored" posts, which are posts that have been deemed too hateful or gossip-like. <comment><USER2> A social network centred around libel? Sounds like a great idea.

Surprisingly, I was able to find the first person I searched for. However, all of his reviews were very negative, and pretty far from the truth.

I tried to use the categories to find more people, but they're sorted alphabetically, with no option to narrow it down to a city, or anything else. I don't really care to blindly search through 25000 professors.

<comment><AUTHOR> It's not centered around libel, at all. There's only a very small percentage of 1 star reviews, less than 2%, and most of them make their point without being rude or hateful.

Anything that seems hateful, defamatory or gossip-like gets censored from public view and hidden from the search engines.

Thanks for the feedback about the categories. I'm working on allowing people to narrow down categories like you described.

I'm open to any suggestions you may have that would make it seem less "centered around libel" - I thought I was doing a good job with it already, but maybe not.

</comment></comment><comment><USER3> You could market that as a Yelp for people, if only Yelp wasn't having so much bad press lately.

<comment><AUTHOR> <http://www.talkburst.com/person/504281-Jeremy-Stoppelman>

That's the founder of Yelp. Should I tell him I'll hide the bad reviews if he signs up as an advertiser? LOL

</comment></comment><comment><USER4> The badges are obvious stackoverflow knockoffs. You need to fix that.

<comment><AUTHOR> I'm doing this solo and have a lot on my plate, but I'll get there! :)

</comment></comment><comment><USER5> The logo makes me want to kill people. Nice site though.

<comment><AUTHOR> I'm glad you mentioned the logo. Some other people mentioned it was nice, now I know they were just pulling my leg. What makes you think it is a nice site?

<comment><USER5> Well it's a new-ish idea that serves a single purpose and it's fully functional as far as I can tell. I don't really see the point in the answers section - it's not really related to the rest of the site, although it seems like people are using it. I would hire a designer if they're cheap and I think this site could gain some steam. Could you review my site that I'm trying to get off the ground? <http://debate-zone.com>

</comment></comment></comment><comment><AUTHOR> Here's a clickable link: <http://www.talkburst.com>

There are currently over 1.3 million reviews of people from the US and Canada. Everything ranging from doctors to professors to lawyers to investors, and more.

</comment><comment><AUTHOR> I just changed the home page drastically. It's not completely done yet, still have to find a spot for the "recently earned badges" but check it out and let me know what you think.</comment>


Ask HN: When will natural language interfaces (e.g. chat bots) be usable? - <AUTHOR> <comment><USER2> They are now, just over limited domains.</comment>


Big Bad Congressmen Afraid of the Dark - <AUTHOR> http://patrickmylund.com/blog/big-bad-congressmen-afraid-of-the-dark/

<comment><USER2> History repeats itself... _In 1974, public spending cuts instigated by Gerald Ford led to Congress cutting all funding for the telescope project_

[http://en.wikipedia.org/wiki/Hubble_Space_Telescope#Quest_fo...](http://en.wikipedia.org/wiki/Hubble_Space_Telescope#Quest_for_funding)

And yet, it eventually worked itself out, we got the telescope in a scaled back fashion, and some of the best science of the past 2 decades in astronomy.

Do write your congressman or woman about this and remind them how short sighted they are being (if you're in the US).

</comment><comment><USER3> Cutting the budget for an orbiting telescope does not proceed from obscurantism.

The federal government of the United States is $14 trillion in debt. Well-nigh irresistible power blocs have made the largest line items untouchable. The Congresscritters have to do _something_ , so they cut everything else. Thundering about "Science" from the pulpit does not change any of this.

We are going to keep doing what we've been doing until we can't do it anymore.

</comment><comment><USER4> The project is 4X over budget, 4 years late, and getting worse. Something must be changed.

Just imagine if this was a private project!</comment>


Top SpaceX employee throws shade at just about all of his competitors - <AUTHOR> https://arstechnica.com/science/2017/05/a-top-spacex-employee-throws-shade-at-just-about-all-of-his-competitors/ <comment><USER2> Only read the quotes on the article, but the comments from the engineer are much tamer than the headline makes it out to be.

<comment><USER3> Yeah, and the /r/spacex thread is almost entirely about some of the cool insights he gave to people about the technology, their goals, and what it's like to work there.

I haven't had time to fully watch the video, but just from looking at the reddit comments and the article you wouldn't think they were from the same video at all!

And from the parts of the video that I did watch, it just sounded like a guy talking candidly about how he feels he is putting pressure on his competitors.

<comment><USER2> Agreed, and it's pretty neat hearing about a startup actually disrupting an industry that seems so insurmountable.

</comment></comment></comment><comment><USER4> Full transcript here: [https://www.reddit.com/r/spacex/comments/6b043z/tom_mueller_...](https://www.reddit.com/r/spacex/comments/6b043z/tom_mueller_interview_speech_skype_call_02_may/dhiygzm/)

His comments regarding competitors are pretty obvious, and have been given by SpaceX executives in the past 5-7 years. I doubt Tom Mueller will have much issues for the comments themselves.

That said, for those following SpaceX, there is some very good parts of this speech + Q&A</comment>


Coronavirus blood-clot mystery intensifies - <AUTHOR> https://www.nature.com/articles/d41586-020-01403-8 <comment><USER2> Frighteningly like The Andromeda Strain.

</comment><comment><USER3> This is covered fairly well by Medcram [1] Be sure to go through their last 68 videos. They are quite informative.

[1] - [https://www.youtube.com/watch?v=JOlVkES_kC8](https://www.youtube.com/watch?v=JOlVkES_kC8)</comment>


Swiss endorse new surveillance powers - <AUTHOR> http://www.bbc.com/news/world-europe-37465853 <comment><AUTHOR> As a reminder, Switzerland has its own surveillance scandal in its past, the so-called "Fichenskandal" [0] during which almost 1 million people were under surveillance (out of approximately 7 million), between 1900 and 1990.

[0] [https://de.wikipedia.org/wiki/Fichenskandal](https://de.wikipedia.org/wiki/Fichenskandal) (german language)

<comment><USER2> Documents were collected for up to 700 000 people (about 10% of the population), but saying they were "under surveillance" is stretching it. Basically everyone who was politically "left" was considered a potential threat and random snippets of information about them were collected – sometimes absurdly trivial stuff and quite a lot of it wrong.

In 1994, a digital equivalent was born: A database called "ISIS". In 2010, a review showed that more than 230 000 people and organizations were registered once again. NDB, the federal intelligence service, collected data without checking if it is relevant. After a mandatory cleanup, this database is now said to only contain about 30 000 entities. The outcry was much smaller that time.

Now, my fellow citizens voted to be properly surveilled. And this time, we'll do it right and probably collect everything, including looking at any traffic flowing through Switzerland. That will be easy, since a recently passed law called "BÜPF" forces every swiss provider to retain metadata for six months, make realtime surveillance possible, decrypt data if they helped encrypt it and pay themselves for the necessary surveillance equipment (they will be reimbursed for every surveillance case).

I voted against it, but the writing was on the wall. Well-propagated irrational fear beats common sense. Maybe the checks and balances will be properly implemented this time, but I'm not counting on it.

<comment><USER3> Thanks for this. My own ignorance had me thinking Switzerland to generally be a more educated and progressive nation than it's neighbouring countries. By educated, I mean thinking more critically about issues like surveillance, terrorism, and immigration. Guessing the "well-propogated irrational fear" comes from mainstream media and politicians?

Also, having an old surveillance database named ISIS definitely got a chuckle from me.

<comment><USER4> > Also, having an old surveillance database named ISIS definitely got a > chuckle from me.

I think this one is worse:

[https://pbs.twimg.com/media/CUxdvzDWoAARh_y.jpg](https://pbs.twimg.com/media/CUxdvzDWoAARh_y.jpg)

<comment><USER3> Yep, you win.

</comment></comment></comment></comment></comment><comment><USER5> I think it really boils down to not enough people understanding the issues and the problems. I had seen (once or twice) people out on the streets campaigning against it to raise awareness on the weekends, but honestly, it was not enough. Only the hard-core techies understood (or appeared to understand) the issue - at least around the area of Zürich where I work I can't think of anyone who thought it was a good idea.

Not pleased.

<comment><USER6> "I think it really boils down to not enough people understanding the issues and the problems."

FWIW: This is literally the retort everyone has to anything they disagree with that gets approved.

It's unrelated to surveillance.

People always assume "if only people knew what i knew, they would have agreed with me". This is a really bad assumption.

In fact, most of the time, i'd argue exactly the opposite:

People understood fine, they just disagree.

<comment><USER7> > FWIW: This is literally the retort everyone has to anything they disagree > with that gets approved.

Probably because it's true _in most cases_. Most people don't have a deep understanding of even a single issue, let alone multiple.

This could have very well been another "Brexit-like" vote in Switzerland, where people were just scaremongered into voting for the law without understanding _all_ of the implications.

<comment><USER8> What factual information do you think is missing from peoples' understanding. In my experience people assume the government is doing more spying than it is.

<comment><USER9> See my comment above about which factual information was never discussed, and which information was misrepresented, and which was omitted.

</comment></comment></comment></comment></comment><comment><AUTHOR> It's Fear-of-Terror-Makes-People-Stupid time [0] all over again. Two thirds of the population approve this.

[0] [http://www.washingtonsblog.com/2011/06/fear-of-terror- makes-...](http://www.washingtonsblog.com/2011/06/fear-of-terror-makes-people- stupid.html)

<comment><USER10> I've voted on the issue, and after some to-and-fro I decided to say yes.

I'm not sure how much of a factor the fear of terror was in the overall voting population, but for me personally it didn't play a big role.

A short rundown on why I decided to vote yes:

-it's typical Swiss compromise: the added competences are comparatively small (especially compared to the competences of neighboring countries) and a judge needs to approve any actions beforehand. The Swiss judicial system is perceived to work generally quite well and is fair.

-other organizations which are not democratically legitimized (Big corps, such as Google, Apple and foreign intelligence agencies: US, Germany) have much bigger capabilities to perform any such actions in Switzerland than the Swiss government. I'm not really comfortable with Switzerland being a blind spot for its own law enforcement.

-And I think one of the biggest factors: trust in the government: the political system in Switzerland gives the citizen much more power in terms of checks and balances. The "divide" between government, political elite and the people is one of the smallest compared to other European countries. This generally prevents or prohibits any too extreme forms and consequences of any passed laws.

<comment> saiya-jin thank you for being honest about your opinion and vote. i am not a citizen albeit living here, but I would agree with you - if strictly following the current laws (and if anywhere, I would expect Swiss would do it), government/secret service is basically toothless, and could not gather anything not publicly known (ie you can't google it, you can't gather it).

Not that I am a big fan of intelligence guys, but they are some sort of necessary evil when running a country, if there are still checks and proper oversight in place. And till now it felt like they are way too restricted to actually do their job. Maybe in 20 years we will curse this vote, who knows

</comment></comment></comment><comment><USER11> From the article, it sounds like it is only allowed for specific individuals/organizations and requires approval from multiple people and a due process warrant.

Not exactly the NSA-style illegal warrantless dragnet going on elsewhere.

<comment><USER12> It also allows scanning all the border-crossing internet traffic. Which is an NSA-style dragnet since there is mostly international traffic in a small country.

</comment></comment><comment><USER13> I imagine one of the differences in context is Swiss Citizens don't have an outright distrust of their government, relatively speaking.

</comment><comment><USER14> There has been no proof that this actually stems terrorism or criminality. Not only is there absolutely no empiric case put forward, but neither has anyone even bothered to explain how it could in theory stop terrorism. The vast majority of terrorists probably don't communicate over plaintext email about how they're totally going to attack this thing, yo.

</comment><comment><USER15> We need better handling of surveillance after the fact. Now that everyone knows that massive surveillance is going on, that's no longer a secret. So most surveillance requests should be be released.

How about declassifying 75% of surveillance requests after 3 years? The Government gets to pick the 25% that stay secret. That provides lots of info about who's listening to what, but narrowly targeted ones can be kept secret. Then, every 3 years, release 75% of the remainder. After a decade or so, only the really important ones are still secret. This would make it clear who's spending time listening to what, without disrupting investigations.

A Federal judge just released 200 surveillance requests.[1] They're from 2012, and even prosecutors didn't claim they still needed to be kept from the public. Maybe the time for this has come.

[1] [https://www.washingtonpost.com/local/public-safety/meet- the-...](https://www.washingtonpost.com/local/public-safety/meet-the-judge- who-just-released-200-secret-government-surveillance- requests/2016/09/23/4ddb1266-7b50-11e6-beac-57a4a412e93a_story.html)

<comment><USER16> Wouldn't this encourage the government to increase surveillance, so they can always keep all the ones they really care about secret?

</comment></comment><comment><USER17> A sad day in the history of Switzerland. Especially in times of Snowden and mass surveillance revelations.

</comment><comment><USER18> At least the Swiss citizens have a say in the matter. I don't think the same can be said of the UK or the US.

</comment><comment><USER19> > It will allow the Federal Intelligence Service and other agencies to put > suspects under electronic surveillance if authorised by a court, the defence > ministry and the cabinet.

I think the fact it has to be authorised by three bodies is interesting, thought it is still unclear if this would just be a rubber stamp process and/or if these bodies could just approve a dragnet approach if they saw fit. Other countries like the UK want to legally enact dragnet surveillance of all citizens without the need for authorisation, I guess the Swiss needed an olive branch to let them belive there will be oversight of this power.

</comment><comment><USER20> For information, all "cantons" (26) approved this vote. You can see the details here: [https://www.admin.ch/gov/en/start/documentation/votes/201609...](https://www.admin.ch/gov/en/start/documentation/votes/20160925/legge- federale-sulle-attivita-informative.html)

</comment><comment><USER21> As usual, abject fear is used to sell the public on something that crushes individual rights and freedoms.

</comment><comment><USER7> The era of "Swiss privacy" is now officially over. Germany seems to be the last remaining beacon of hope (mainly thanks to its Constitution, its Courts, and a slightly higher privacy vigilance from the German population, not because its government is any better than the rest).

<comment><USER22> Lol. You can bet your ass that the BND is far more active then anything the Swiss do. They regularly work with forign agencies and do exchanges. They sit right at the largest network hub in europe. There is also little democratic insight into the BND, as the public is excluded from all hearings.

<comment><USER18> What is the BND?

<comment><USER23> BundesNachrichtenDienst - the German secret service.

Has been spying for the US for a while now and lied to the parliament about it.</comment></comment></comment></comment>


Will Covid-19 help end the open office floor plan era? - <AUTHOR> With more organizations likely moving to permanent WFH arrangements, more abundant office real estate, and the risks of cramming too many people in a small space for several hours per day, will we see a return of the individual offices? Or something in-between?<p>I'm a declared WFH proponent but a private (or lightly shared) office could go a long way into making co-located work tolerable. <comment><USER2> Yes. I think the driving force behind the open office is to save money.

If a company allows a high % of workers to work from home, it can more easily afford less-efficient layouts. With private walled offices. It's easier to give 20 on site employees an office than 200. If all 200 employees are on site.... get ready for some custom construction to give everyone a private office. $$$!!!

</comment><comment><USER3> Many people hate open offices but continue to take jobs where they will be working in an open office. Until companies can directly see the open office setup as a detriment to hiring or retention, companies will continue to utilize them to save money.

I don't expect to see them disappear completely anytime soon.

<comment><USER4> Would you ever turn down a job because of the office layout? I'm not sure if I would, and also not sure what jobs are out there where I could have my own office.

<comment><AUTHOR> Absolutely would unless this was the only offer on the table. I suspect I'm not the only person who took a paycut to move to a WFH job.

I'm not suggesting covid-19 is just an excuse to eradicate open offices. I really think it poses a health risk in the world going forward, now that we have witnessed what a pandemic means.</comment></comment></comment>


I turned gnome-shell into a tiling window manager - <AUTHOR> http://gfxmonk.net/shellshape/ <comment><USER2> I think more people should write similar extensions or even new window managers. In my opinion, "traditional" window management is quirky, even if we've all grown used to it. Resizing and moving windows, for example, are painful given how you need to click on small specific areas to carry them out. Most window managers on Linux have overcome with a combination of a key press and mouse click allowing you to move/resize by clicking anywhere in the window. With a tiling window manager you usually have some keyboard shortcut to do it.

Still, none of those approaches solve the problem in all situations. Managing windows can be "uncomfortable". Sure you can make use of workspaces, or tags (à la dwm, I think the tag paradigm is beautiful) or whatnot, but you don't want to think about the act of switching windows. Have you ever found yourself alt-tabbing through a pile of windows and be annoyed by not getting to the right window easily enough ("Oh, drat, I pressed Tab one too many times"). Whenever I have to use OS X, I press the Exposé shortcut for almost every context switch.

So yeah, this is kind of extension is more than welcome and others should continue to innovate. If nothing else good comes out of Gnome 3, at least it would have pushed people to think about their interaction with the interface.

</comment><comment><USER3> What tool was used to make that screencast? I'd love to know about a tool for Linux that overlays keypresses on the video like that.

<comment><AUTHOR> <https://launchpad.net/screenkey/>

Had to hack it up a bit to show the shift key, and only the most recent keypress.

And gnome-shell-list has built in screen recording.

</comment></comment><comment><USER4> Looks good. There seems to be a lot of experimentation with tiling wm-s, even win8 seems to be going in that direction if I saw those videos right. Change is good.

</comment><comment><USER5> I think what we need is a window manager (or a window layout behaviour) _per workspace or screen_ rather than a single window manager to rule them all.

I tried to use the tiling window manager xmonad and found it _excellent_ for terminal stuff. The problem was everything else.

Firefox/thunderbird/etc. don't work in a tiling window manager, particularly Firefox and particularly popups.

<comment><USER2> A sensible tiling window manager doesn't tile popup windows (and I believe xmonad is sensible). If it doesn't float popups, then you just haven't configured it to do so. Can't blame you, though. Writing Haskell to configure a window manager isn't exactly a one-step process. I think parts of the following resource will prove useful if you ever decide to give xmonad another try: [http://www.haskell.org/haskellwiki/Xmonad/General_xmonad.hs_...](http://www.haskell.org/haskellwiki/Xmonad/General_xmonad.hs_config_tips#Making_window_float_by_default.2C_or_send_it_to_specific_workspace)

</comment></comment><comment><USER6> Is this any different from xmonad? That's what I'm currently using with Gnome. Way better than this Gnome 3 rubbish.

<comment><USER7> Sometimes i wish xmonad had 3d transitions between layouts. That's probably the only appeal of a gnome shell extension

<comment><USER8> Why is that, by the way? I've tried various transitions over the years and for any serious work I've soon settled for the plain old immediate "transition", i.e. nothing at all. Anything else has turned out just annoying, for me.

<comment><USER9> At a largely Windows-based shop I installed Linux on my system and had Gnome set up with some fancy 3d-box transitions. I got some startled wows from my coworkers when they were helping me with something over my shoulder and I switched desktops.

However, I always found myself reducing the transition time bit by bit, until I eventually got rid of the transition. When I'm in the zone and coding I might be checking docs or some output on one workspace, and I want to switch workspaces and begin typing without the feedback delay. I already have the next 20 keystrokes planned out, and I'd rather be rate limited by my fingers than my WM.

</comment></comment></comment></comment><comment><USER10> Well done, looks really nice. Tiling wm is very useful.

</comment><comment><USER11> It's still a piece of crap, though.

</comment><comment><USER12> You might want to add a little more information on your page explaining what it is. I.e. What is the difference with Bluetile? With tmux?

Also, if I start gnome-terminal, run tmux, and put it full-screen.. isn't it a "gnome tiling manager" ?

<comment><USER9> I was a bit confused at first. When he said tiling windows with the gnome terminal I thought, "is this just a GNU screen tutorial with a buzz-words title?" When I saw the browser windows in there I started to wonder how you embedded a browser into a gnome-terminal tab.

It took watching the video to see that it was more integrated than I first expected.

<comment><USER13> He's talking about gnome-shell, not a gnome terminal.</comment></comment></comment>


Mono 5.0 Ships with Concurrent Garbage Collector - <AUTHOR> http://www.mono-project.com/news/2017/05/17/concurrent-gc-news/ <comment><USER2> "Long GC latency can cause typing delays that are noticeable and lead to a bad typing experience. Pauses over 100-150ms are noticeable by most of us"

Pauses over 16ms are very noticeable on your phone's 60 Hz display; it will cause dropped frames. So according to the graph, the large majority of pauses will still cause dropped frames.

<comment><USER3> Android and iOS both use separate rendering processes/threads for UI and animation to eliminate a range of issues that would otherwise be observable.

The code thread might hang, it scheduled rendering and animations will continue.

There are scenarios not covered by this hack, but largely these systems are responsible for masking many issues- in this case GC introduced pauses, but can happen in things as common as close()

<comment><USER4> I would not call this a hack. A lot of systems are structured this way.

<comment><USER5> Indeed, separating out UI, IO and process threads should be the prevailing design principle.

<comment><USER6> And, in fact, is the definition of "view", "model" (kinda), and "controller", respectively.

</comment></comment></comment></comment></comment><comment><USER7> Can someone explain what is the purpose of Mono after .NET Core?

Is the sole purpose of Mono now is to run .NET on mobile?

<comment><USER8> It's purpose is for people who need to do professional cross-platform .NET work, today. As opposed to tinkering with hello-world examples, and keeping an eye on what might be the big thing down the road.

Mono actually works, today. It's hype is not ~5 years ahead of an actual implementation. It's not continuously waiting for one more generation of tooling to settle down, or one more standard to be decided or API to be implemented. Its "Getting Started" examples actually _compile_ and _run_ , consistently.

There are two types of languages/frameworks... the ones that people are excited about, and the ones people currently use. Mono's purpose is to serve the latter.

<comment><USER7> Personally I had much more problems with mono 1 year ago then .NET core today.

Also, I run multiple website with databases, gb of record processing in queues etc. Also I'm building CI runner on .NET core and so far I've got 0 problems. so I would not call it "hello world".

I have 99 problems but .NET Core ain't one.

<comment><USER9> What are you writing? .NET Core doesn't even impliment many things that Mono and .net framework do yet.

</comment></comment></comment></comment><comment><USER10> another development is the Mono now supports System.Nunerics which means it has the same SIMD support as tegular .NET, and a few more SIMD intrinsics are coming to System.Nunerics soon as well. it will be usable quite a bit more often when those drop.

</comment><comment><USER11> Anybody have any idea how this profile compares to MS .NET?

<comment><USER12> "Compares" in what way?

<comment><USER11> The ideal comparison would be to run the exact same experiment on the exact same hardware on .net and see how it compares (ie, run Xamarin Studio on .net, open and build Xamarin Studio). But I would be interested in any quantitative comparison of Mono and .NET GC performance.

Basically it's not obvious to me if this GC improvement widens Mono's lead over .net GC performance, brings Mono close to matching .net's lead, or brings Mono from terrible to merely bad in comparison to .net.</comment></comment></comment>


Iodoom3 - <AUTHOR> http://www.iodoom3.org/

<comment><AUTHOR> From their [Twitter stream](<http://twitter.com/iodoom3/>), esp from [here](<http://twitter.com/#!/iodoom3/status/139501602737356800>) and [here](<http://twitter.com/#!/iodoom3/status/139501636744773633>):

> for now, we'll use github.

> <https://github.com/TimeDoctor/iodoom3>

</comment><comment><USER2> A blurb on what their plans are for IoDoom3 wouldnt go astray (I know they link to the quake 3 project which lists goals there, but a couple of lines explaining the project would be helpful)

<comment><USER3> Quoting the linked website:

"TODO on iodoom3 itself: Add SDL for portability on input handling and window management; cmake for building; Cleanup compile-time errors; 64bit; installers for the top three platforms (Windows, Mac, Linux)"</comment></comment>


A self-driving Uber ran a red light last December, contrary to company claims - <AUTHOR> http://www.theverge.com/2017/2/25/14737374/uber-self-driving-car-red-light-december-contrary-company-claims <comment><USER2> Back when this originally came out, Uber claimed "this incident was due to human error" [1]. Well _technically_ , if you really twist the meaning of words, Uber could interpret this as "human error", considering:

\- It was "human error" that the programmers who designed the self-driving AI failed to properly implement red-light detection and braking.

\- It was also "human error" that the human driver in the front seat failed to notice the red lights and stop the car.

Uber's statement is effectively true, if you hideously twist the meaning of words. I fully believe that's what they did in their statement. There's similar wordplay for the word "natural", i.e. claiming "All pollution is natural", because humans are part of nature and everything we do is natural, so all consequences of our actions are also "natural". Deceiving yet ultimately, effective.

[1] _Uber says self-driving car ran red light due to "human error"_ [https://techcrunch.com/2016/12/14/uber-looking-into- incident...](https://techcrunch.com/2016/12/14/uber-looking-into-incident-of- self-driving-car-running-a-red-light-captured-on-dashcam/)

<comment><USER3> The test driver failed to intervene, that's all. This is a non-issue, obviously Uber's autonomous vehicles are a work in progress.

<comment><USER4> Yeah don't beta test your BETA on real drivers, even after the DMV has asked you to stop.

Screw Uber. I hope the CA government comes down hard on them. But we all know Uber will find yet another slimy way to keep going.

For the record, I'm the biggest proponent of autonomous cars and can't wait for that day. But companies that just put people in danger like this are not going to get us there faster. They're going to slow everything down by their carelessness and greed.

<comment><USER5> > But we all know Uber will find yet another slimy way to keep going.

Like moving the program to Arizona...

<comment><USER6> And Nevada, with stolen Google engineer!

</comment></comment></comment></comment></comment><comment><USER7> It's clear how Uber botched this. That traffic signal is not at an intersection. It's a heavily used mid-block crosswalk.[1] It's a very well marked crosswalk, with six redundant full size traffic signals all visible in the direction the Uber vehicle was traveling. This indicates Uber's system only looks for mapped traffic signals.

SF has a database of their traffic signals, and this signal is listed. It's object #902.[2] Apparently Uber gets their data from somewhere else.

[1] [https://goo.gl/maps/dzxEaaqWaAC2](https://goo.gl/maps/dzxEaaqWaAC2) [2] [https://data.sfgov.org/Transportation/Map-of-Traffic- Signals...](https://data.sfgov.org/Transportation/Map-of-Traffic-Signals/8xta- sna8/data)

</comment><comment><USER8> I'm not defending Uber, but there seems to be a pattern of startups that at first everybody is in love with. The startup explodes and grows to become widely successful and morphs from startup to corporation. An incident happens, and then everybody jumps on the bandwagon and bashes them mercifully. Boycotts insue. Clone competitors pop up proclaiming to be "not-evil" and the cycle starts again.

Let me backup my claim with examples:

       GitHub
       AirBnB
       Uber
       CloudFlare

Who is the next unicorn to join the PR nightmare show?

<comment><USER9> GitHub is evil now? What did I miss?

<comment><USER10> Not evil but they went a bit off the deep went with their "diversity" story, and it turned some heads for sure.

The technical director or somesuch (higher up manager) was writing stuff like

"don't think we'll succeed teaching white, male middle managers empathy and compassion anytime soon so let's limit their scope of damage"

Then their Social Impact director was giving presentations about how "Some of the biggest barriers to progress are white women."

So... I don't know, make up your own mind what that means.

</comment></comment></comment><comment><USER11> Blogspam, the actual source is [https://www.nytimes.com/2017/02/24/technology/anthony- levand...](https://www.nytimes.com/2017/02/24/technology/anthony-levandowski- waymo-uber-google-lawsuit.html)

</comment><comment><USER12> A little while ago I looked at micro services and the Uber story stuck in my mind (April 2016 numbers):

\- 2000 engineers

\- 1000 services

\- 8000 git repositories

I can understand fast growth but on the services and git repository side considering that most of the engineers are new it struck me not as fast but more as out of control growth.

At the beginning you may not control so much but you hire people that are disciplined. Later one needs a certain amount of structure.

The stories from the legal front, financial front and handling of public relations are very consistent with what I observed on the technical side.

</comment><comment><USER13> Since some are saying "this is just one incidence" recall that there was a second blown red light around the same time in SF, and all this just on the _first_ day of the program. There are also potentially other incidents that did not, by chance, have a bystander recording. Their autonomous driving has many years left in the development. I just hope they aren't pushing it on us now because they are pacing 3 billion in losses/ year.

<comment><USER14> It's almost as if the software is buggy and they need to test it and fix the bugs. Which is why they have the human driver there to make sure things don't get drastically out of control.

<comment><USER15> If your software is _that_ bad (can't recognize a red light), you should probably be testing in a simulator with pre-recorded video, not throwing your garbage code on the road where it can cause an accident.

</comment></comment></comment><comment><USER16> I think I have personally ran three or four red lights or stop signs accidentally in my 18 years or so of driving. The fact that a self-driving car running a red light makes the news is exciting to me. We will be much safer with computers driving.

<comment><USER17> The news is not that it ran a red, it's that Uber lied about it and made it sound like it was a human that ran the red.

</comment></comment><comment><USER18> Even though this was clearly a red light being run, it was this AI's first offense, so we should just give it a warning and a stern talking-to....

</comment><comment><USER19> I may have missed something, but why this is Uber's, not Volvo's fault? Is uber developing a proprietary driving system on Volvo's hardware?

</comment><comment><USER20> The pedestrian was already engaging on the crosswalk and would have required the car to stop too.

</comment><comment><USER21> Oh did Uber lie to deny responsibility for something? Who would have expected that?

</comment><comment><USER22> UBER IS OVER! (if you want it)

</comment><comment><USER23> A human driven car runs a red light every second.

</comment><comment><USER24> skynet has become self-aware

</comment><comment><USER25> The anti Uber PR campaign is now in full swing.

<comment><USER26> ah yes, besides this fiasco...

* trying to dredge up dirt on journalist for being negative towards your company * having the ceo say an incident involving a uber driver choking a passenger "never happened" * offering customers rides with "hot chicks" in france * kalanik boasting that he should have called the company "boober" from all the women he gets * having a "god view" that employees used to spy on exes, politicians and celebrities. they paid a measly $20k fine and supposedly continue to still allow employees to use god view.

keep in mind the executive who tried to find dirt on journalists to blackmail them wasn't even fired by kalanik.

BUT YES. YES. the press! the media! they're all out to get Uber.

<comment><USER27> (fixed formatting of above comment)

ah yes, besides this fiasco...

* trying to dredge up dirt on journalist for being negative towards your company

* having the ceo say an incident involving a uber driver choking a passenger "never happened"

* offering customers rides with "hot chicks" in france

* kalanik boasting that he should have called the company "boober" from all the women he gets

* having a "god view" that employees used to spy on exes, politicians and celebrities. they paid a measly $20k fine and supposedly continue to still allow employees to use god view.

.

keep in mind the executive who tried to find dirt on journalists to blackmail them wasn't even fired by kalanik.

BUT YES. YES. the press! the media! they're all out to get Uber.

(Looks like bullet-point lists need a double linebreak before they're formatted properly)</comment></comment></comment>


Show HN: Clean your app permissions before 2013 - <AUTHOR> http://mypermissions.org/clean2013 <comment><USER2> Interesting concept, but it's very poorly implemented. I'd like to remove a majority of the apps listed, but I cannot easily "Trust" the few that I'd like to keep. It requires my email address in order to proceed. For a service that is supposed to prevent others from getting your personal information I find it ironic that you need to give them your personal information to proceed.

Removing one at a time is also a very painful process that requires 4 clicks. Two of which are dismissing windows requesting that I spam my users and give them my personal information. What a shame.

<comment><USER3> Hawkee. The email address is collected for the sole purpose of retrieving the apps you may have trusted next time you log in. Would you feel more comfortable if we asked for your detail once per session? About the removal of apps, what you can also do is remove all the apps, one click. You'll only be cutting the connection, not the deleting the account. Once done, if ever you need to use those apps again, all you'll have to do is reconnect.

<comment><USER4> In that case, you might be better off asking for a phrase to be used to retrieve trusted apps. Hawkee is right, you're dealing with an unusually paranoid audience.

<comment><USER3> Interesting. We'll take a better look at that flow.

</comment></comment></comment></comment><comment><USER5> 63 Facebook Apps, 90% of which I didn't even know I added.

</comment><comment><USER6> It just showed me the list that is easily accessible from Facebook, which I already had well maintained.

Guess that's reassuring though.

</comment><comment> guard-of-terra I only have an account on one of those eleven sites (that is, Google).

Nothing particularly suspicious there.

</comment><comment><USER7> mypermissions.com looks too much like a malware download page. As a suggestion, please avoid overly-suggestive calls to action.

<comment><USER3> Thanks for the recommendation! We're always trying to improve our pages.</comment></comment>


"Tesla vs. Edison" - <AUTHOR> https://hackernoon.com/tesla-vs-edison-20036fb7e885#.7ef29i9a0 <comment><USER2> Tesla was brilliant, following your passion is the only way; sooner or later that penny has to drop for everyone. Who are we to judge utility from our limited perspective? What if the rules of the game were rigged from the start? What if chasing money is something we're supposed to transcend?

<comment><AUTHOR> I don't think that chasing money is a good idea at all. However if one is looking to create change, with actual external results to show for one's passionate labour, one has to come to grips with the market. Sustainable, continuous innovation is something that I personally value more than a life time of ideas with no results to speak of. I definitely admire Tesla and Edison. I only seek to emulate Edison more.</comment></comment>


Show HN: Export HN saved links (upvotes) as JSON or CSV - <AUTHOR> https://github.com/amjd/HN-Saved-Links-Export <comment><USER2> Putting in the request now for HN to update their API to provide this: [https://github.com/HackerNews/API](https://github.com/HackerNews/API)

I figure since a comment of mine sparked 'saved comments' being a thing that lightning could strike twice...but then I guess the API would need to allow authentication for private data.

<comment><USER3> > We hope to improve the API over time, and may later enable access to private > per-user data using OAuth.

It's been like that for a long time I think.

<comment><USER2> I wonder if they'll take volunteers.

</comment></comment></comment><comment><USER4> It needs a sleep(30) in the page request or it will get your ip banned.

<comment><USER5> Scraping HN is hard. I got an IP ban even when using sleep with a random duration.

</comment></comment><comment><USER6> Alas, I couldn't get this working. Never used Python before so I'm unsure how to fix it, but it seems like something breaks when the title is undefined.

Was excited to as well, was going to write a script that fed this into Pinboard. Maybe I'll code up my own upvoted item scraper later.

        Enter your HN account details:
        Username: firloop
        Password:
        Logging in...
        Logged in successfully.
        Error getting data for page 1
        Traceback (most recent call last):
          File "export_links.py", line 137, in <module>
            main()
          File "export_links.py", line 113, in main
            if len(tree_title) < 61:
        UnboundLocalError: local variable 'tree_title' referenced before assignment

<comment><AUTHOR> Hi, I just fixed that error. Can you clone the latest code and try again? If you still have any problems, please create an issue on Github. :)

<comment><USER6> No dice (same error as commenter above).

<comment><USER7> can you do pip install cssselect and try?

</comment></comment></comment></comment><comment><USER8> This idea is cool!

But, error when grabbing links.

      $ python export_links.py
      Enter your HN account details:
      Username: 0xcmp
      Password:
      Logging in...
      Logged in successfully.
      Error getting data for page 1
      Error getting data for page 2
      Error getting data for page 3
      Error getting data for page 4
      [...snip]

</comment><comment><USER9> Note: script requires you to enter in your HN authentication details. (Unavoidable, since the HN API neither supports authentication nor an endpoint for saved stories)

<comment><USER10> Well you would be running it on your machine anyway so guess it doesn't really matter.

<comment><USER11> It's ten times better than entering your credentials on another website, but the code could still do some fun stuff with it. I kinda doubt it, but just saying.

<comment><USER10> The code is there for you to see, what harm can it possibly do? If you're cautious of this, you should be cautious about entering your username/password into web browsers to sign into websites I think...

<comment><USER11> The codebase can easily get big enough to miss it transmitting your credentials if you don't spend hours looking at it. Even in a 100 line script you can overlook a well hidden request, especially if it's extra data included in an existing request.</comment></comment></comment></comment></comment>


Ask HN: Does HN store IP addresses to identify users? - <AUTHOR> does HN store IP addresses for the purposes of identifying user accounts?
I wonder if HN was hacked if "anonymous" posts would be linked back to actual people even though no email address is on the account.
EDIT after comments: OK so maybe HN should be clear that anonymity is not likely if HN is hacked. HN sort of presents as being a "safe" place to post anonymously but it's an illusion. <comment><USER2> I believe they have mod tools to help with voter ring detection and similar problems. I would guess those rely on ip addresses for some of the functionality.

<comment><USER3> I don't know whether to believe you or not.

</comment></comment><comment><USER4> They should not have to tell you that there are risks to using online services, that should be a given...

</comment><comment><USER5> IP address is most definitely part of the voting ring algo. I'm almost positive about that much.

<comment><AUTHOR> Is there a safer alternative such as using salted hashed ip addresses?

<comment><USER6> Certainly not before IPv6 is widely adopted.

IPv4 address space is so small, any hashing can reversed with brute force.

</comment></comment></comment><comment><USER7> > does HN store IP addresses for the purposes of identifying user accounts?

They use cookies assuming you are logged in. I wish they do store IPs in order to prevent password brute-forcing attacks.

> I wonder if HN was hacked if "anonymous" posts would be linked back to > actual people even though no email address is on the account.

You should be more concerned about your email account being linked to your HN username, fortunately you don't have to provide your email here.

> OK so maybe HN should be clear that anonymity is not likely if HN is hacked. > HN sort of presents as being a "safe" place to post anonymously but it's an > illusion.

It's pseudonymous forum, if you wish to be anon - head over to 4chan instead.

</comment><comment><USER8> Even if the DB were dumped and all users' IP addresses were revealed, the leaked IPs wouldn't be much of a security risk.

For one, an attacker would not necessarily get your current IP address.

But even if they did have your current IP address... so what? The most someone could find from that is your general region; maybe your city or a city next to yours if they're lucky. There's no way they're doxing you from that unless they think they can successfully SE the ISP and don't mind risking jail for it.

The real security risk would be the leaked password hashes. That would be much, much more likely to result in people being doxed (and worse).

<comment><USER9> > Even if the DB were dumped and all users' IP addresses were revealed, the > leaked IPs wouldn't be much of a security risk.

There's no DB, the site has always been described as storing everything in memory using Lisp closures, and on flat files. I don't know whether that makes Hacker News more or less secure than average, though.

<comment><USER8> Then replace DB with "data structure stored in a flat file". Doesn't really matter.

</comment></comment></comment><comment><USER10> You can use Tor to post to HN anonymously.

</comment><comment><USER11> > HN sort of presents as being a "safe" place to post anonymously but it's an > illusion.

I don't think I've seen that represented anywhere, and I don't think a news site really should be

</comment><comment><USER12> It does.

<comment><AUTHOR> Ok so in the event of an HN hack, real users will effectively be indirectly DOXed?

<comment><USER13> IP addresses (can) change all the time, so the attacker would also need to have a way to find out who had which address at the time of the post.

<comment><USER9> Plus, I would expect any HN user to be smart enough to use a proxy for alt accounts.</comment></comment></comment></comment>


Ask HN: Best place to find walkthroughs of Zen Koans? - <AUTHOR> Not necessarily looking for the answers but more exploratory videos and/or text. <comment><USER2> Helpful, perhaps, would be James Ford's recently released "Introduction to Zen Koans": [https://www.wisdompubs.org/book/introduction-zen- koans](https://www.wisdompubs.org/book/introduction-zen-koans)

Not necessarily what you're looking for, but possibly more useful.

<comment><AUTHOR> thanks.

</comment></comment><comment><USER3> You've already missed the point.</comment>


Show HN: Fast and simple access self-driving datasets - <AUTHOR> https://github.com/snarkai/Hub <comment><USER2> This looks great. Definitely plan to try it out.

How were you able to beat the local filesystem for resnet18 training iterations?</comment>


Show HN: Ascii_tree – A way to create beautiful ASCII trees - <AUTHOR> https://github.com/spandanb/ascii_tree <comment><USER2> I think that with all the unicodes lying around these days we can do a little nicer:

                    ┌───┐
              ┌─────┤ 1 ├─────┐
              │     └───┘     │
            ┌─┴─┐           ┌─┴─┐
          ┌─┤ 2 ├─┐       ┌─┤ 3 ├─┐
          │ └───┘ │       │ └───┘ │
        ┌─┴─┐   ┌─┴─┐   ┌─┴─┐   ┌─┴─┐
        │ 4 │   │ 5 │   │ 6 │   │ 7 │
        └───┘   └───┘   └───┘   └───┘

(Better if the presentation doesn't lead beyond the font.)

<comment><USER3>
      I think that I shall never see
      A graph more lovely than a tree.
      A tree whose crucial property
      Is loop-free connectivity.
      A tree that must be sure to span
      So packets can reach every LAN.
      First, the root must be selected.
      By ID, it is elected.
      Least-cost paths from root are traced.
      In the tree, these paths are placed.
      A mesh is made by folks like me,
      Then bridges find a spanning tree.

Radia Perlman, 'Algoryhme' [https://web.archive.org/web/20110609192559/http://www.csua.b...](https://web.archive.org/web/20110609192559/http://www.csua.berkeley.edu/~ranga/humor/algorhyme.txt)

      I hope that we shall one day see
      A graph more lovely than a tree.
      A graph to boost efficiency
      While still configuration-free.
      A network where RBridges can
      Route packets to their target LAN.
      The paths they find, to our elation,
      Are least cost paths to destination!
      With packet hop counts we now see,
      The network need not be loop-free!
      RBridges work transparently,
      Without a common spanning tree.

Radia Perlman in apparent alias as Ray Perlner, 'Algorhyme V2' RFC6325 [https://tools.ietf.org/html/rfc6325#section-1.1](https://tools.ietf.org/html/rfc6325#section-1.1)

<comment><USER4> This is such a charming poem. I don't like poetry, but there's something special about science poetry.

</comment></comment></comment><comment><USER5> Honestly, I was hoping for something like the `tree` command. I've implemented that algorithm before, but it was painful and not portable.

These trees are definitely cooler and more complex but maybe fewer use cases. Once you start dealing with more than a few layers, the output is going to line-wrap in a terminal. For larger trees, DOT [1] is probably more suitable.

[1]: [https://en.wikipedia.org/wiki/DOT_(graph_description_languag...](https://en.wikipedia.org/wiki/DOT_\(graph_description_language\))

<comment><USER6> DOT is fantastic, and trivial to output, highly recommend it

<comment><USER7> dot/graphviz is great, but it can take a lot of tweaking and reading to get a good looking graph.

</comment></comment></comment><comment><USER8> Cool! With some minor alterations you could add support for ditaa output [1]. That would allow you to convert the trees to PNGs.

[1] [http://ditaa.sourceforge.net/](http://ditaa.sourceforge.net/)

</comment><comment><USER9> The lack of centering is itching my ocd.

<comment><USER10> Real world or lorem ipsum examples would give a better idea of how beautiful the trees are than just single digits.

<comment><USER11> Looks like you got your wish

</comment></comment></comment><comment><USER12> Cool! Maybe a useful feature request: make the output compatible with Markdeep? [https://casual-effects.com/markdeep/](https://casual- effects.com/markdeep/)

I tried Ascii_tree with this online Markdeep demo: [https://tomberek.info/markdeep.html](https://tomberek.info/markdeep.html) and I found that it can work with only minor changes, like using '+' at all the corners and junctions, and wrapping the output in a frame of asterisks '*'.

</comment><comment><USER13> I have a tool that does a similar thing:

[https://github.com/EFanZh/tree-graph- generator](https://github.com/EFanZh/tree-graph-generator)

Demo: [https://efanzh.org/tree-graph-generator/](https://efanzh.org/tree- graph-generator/)

But it doesn't have a good front end yet.

</comment><comment><USER14> Change requests, options to * make blinking nodes * invert tree

Then we'll have a Christmas tree generator :)

</comment><comment><USER15> Beautiful! This will be wonderfully useful for [https://algodaily.com](https://algodaily.com)</comment>


Show HN: Sweetlyclean.com – Need Advice on SEO and Feedback on Iteration 2 - <AUTHOR> https://www.sweetlyclean.com

<comment><USER2> Some feedback:

1) There's a lot of miscellaneous info on the front page, but none of the things that I really care about. The basic info I want to know: price, what areas you serve, and what times you're available. It would also be helpful if you had this information all in one place so I don't have to keep scrolling around or clicking links.

2) It's hard to pin down exactly why, but the visual design of the landing page seems rather inconsistent. The various graphic elements seem like they've been designed individually without regard to the look and feel of the site as a whole. A more specific issue is the "Book Now" bar in the first screen. I have no idea what the input field to the left of it is for, and when I type into it, the text is really faint. Also, because of point (1), I am far from ready to "Book Now" as the first action upon visiting your site.

P.S. On this page [https://sweetlyclean.com/booknow/](https://sweetlyclean.com/booknow/) there's a typo where "Your" should be "You're".

<comment><AUTHOR> Thank you - that makes sense. I've have an internal struggle over design vs function. I liked the clean look of mopp.com - but you are right they stick the price right up front. Are there any sites you think are well done around cleaning.. homejoy.com, mopp.com, maidsinblack.com is the business model we are going after.

</comment></comment><comment><AUTHOR> Any feedback on SEO, the site, recommendations, call to actions etc? I've done a soft launch while i work on the local SEO - i.e. get on yelp, google plus etc. Looking for all and any feedback. This is my second iteration/rewrite of the website.. almost feel like I need another major tweak. I like the look, but I'm just the owner. I like everything i do.

</comment><comment><USER3> Quick feedback:

The "book now" call to action button is overpowered by the photo of the girl. Also, I'm unclear what I'm supposed to put in the input box next to "book now".

I also noticed a few UI quirks: [http://imgur.com/a/OyBUz](http://imgur.com/a/OyBUz)

<comment><AUTHOR> Thank you! - yeah i see those.. what browser were you using? Going to make some updates - that is very unclear. Probably time to just get my own hands dirty and stop relying on outsourcing. Appreciate you taking the time to give us some feedback.

<comment><USER3> I'm using chrome on a Mac, at the moment. [http://aboutbrowser.com/view/6lXX4](http://aboutbrowser.com/view/6lXX4)

I'm interested in helping, if you're interested in outsourcing some of the changes and fixes. Shoot me a line—my contact info is in my HN profile.</comment></comment></comment>


Has Google Failed in China? - <AUTHOR> http://seekingalpha.com/article/26033-has-google-failed-in-china <comment><USER2> ... from Feb 07!</comment>