How to Learn Haskell - <AUTHOR> http://acm.wustl.edu/functional/haskell.php <comment><USER2> You can't have a "How to Learn Haskell" post without mentioning the Typeclassopedia: <http://www.haskell.org/haskellwiki/Typeclassopedia>

For those going through LYAH, I highly recommend supplementing chapters 11-13 with this excellent resource.

<comment><USER3> I cannot overemphasise how much easier it is to understand Monads once you've groked Functors and Applicatives. It allows you to build an intuition for the _general_ structure and purpose of the typeclasses instead of trying to start with Monads by viewing them through the lens of IO or State.

</comment></comment><comment><USER4> Learn you a Haskell for Great Good is definitely an awesome book to get a handle on Haskell.

As the article says, it starts off from the basics and just quickly enough builds up from there to wherever you want to go. I stopped once I got distracted by writing useful-ish code :)

Also it's completely mindblowing, but irrelevant, that my high school classmate wrote that book.

<comment><USER5> It's mind blowing thinking that he is still a undergrad student.

This book saved my life. In my Functional Programming class, all the students have made though because of the book. Many cheers for him.

<comment><USER4> It's even more mindblowing that he's still my classmate ... sort of. Everyone flunks around so much at our faculty that it's hard to define what a classmate is.

</comment></comment></comment><comment><USER6> I disagree with the order that this suggests learning stuff. The article recommends first playing around in the functional subset of the language in the REPL, then learn about theory of monads and finally put it into use with IO.

I feel it's better to jump straight in to IO after doing some basics and definitely before trying to learn deeper theory about monads. The second or third exercise you write should have a little I/O in it, do something like a guess the number or hangman game. I've found that it's also useful to first write it normally using "do" notation and then manually transform it into concrete syntax using ">>=", either mentally or actually writing it out compiling/running. This is a very simple (1 to 2 hour) exercise but should give a pretty good picture of what it's about.

This is a way to avoid the most common pitfall there is in learning Haskell, "not getting monads". There are lots of people who learn the basics of functional Haskell, but they are so afraid of the new concept of monads that they cannot get to writing a real application. I've seen people get stuck in this limbo for years.

Once you know enough I/O to open a file or run a simple loop, the horizons of your Haskell programming projects are vastly extended. If you can read and write files, you can get your hands on more and more interesting data to use for your apps.

Of course, people are different. If you're the kind of person who enjoys reading books about theory (and not the learning-by-doing type), just ignore everything what I just said and go enjoy a book or a wikipedia article about applicative functors, monoids or category theory.

(I don't know pretty much any theory about functors or monoids but it doesn't stop me from writing parsers, compilers and 3d graphics tools using Haskell. Just as not knowing theory about attribute grammars or LALR(1) parsers did not stop me from writing stuff in C.)

</comment><comment><USER7> This is a bit of a tangent, but can anyone provide an opinion on which of the static-typing big 3 (Haskell, SML, OCaml) is most suited to scientific computing?

<comment><USER8> That depends on the kind of scientific computing you want to do.

Haskell has the repa library [1] which is very nice for working with (multi- dimensional) arrays at a high level. Performance is decent (I don't know if they have a BLAS/LAPACK binding). Overall, the main advantage of Haskell is its runtime system and its great support for concurrency. The downside is, it does not have OpenMP and the MPI bindings don't look very nice to use (I don't know how OCaml or SML fare in this area). There are OpenCL bindings, but I've never used them. Data parallel Haskell is still under heavy development, so that's probably going to take a few years to become production-ready.

OCaml's advantage is that C-like algorithms are easier to transcribe and use (no monads). OCaml's main disadvantage is that its runtime doesn't support multicore well (or even at all?). If you want that you can use F#, though.

I don't know anything about the current state of SML implementations.

[1]: [http://www.haskell.org/haskellwiki/Numeric_Haskell:_A_Repa_T...](http://www.haskell.org/haskellwiki/Numeric_Haskell:_A_Repa_Tutorial)

<comment><USER9> Answering a sub question of yours: Indeed the only way to use more than one core in OCaML is to use multiprocessing. If there is a lot of data that needs to be exchanged, it may not be very fast.

That said there is this patched up version (funded by a one off summer of code by Jane street, I think)

<http://www.algo-prog.info/ocmc/>

that gives an API for using threads. I am fairly new to OCaML so will not be able to provide details. Another language that I am looking at is Felix

<http://felix-lang.org:8080/> (Note the port, its not the one that the search engines will give you).

I am ok with OCaML not giving its users a threading API but a runtime that executes many of its higher-order functions in parallel would be really nice. Well, higher-order functions and the other parallelism exposed by the functional semantics, with some helpful directives from the user of course.

<comment><USER10> There's been a lot of projects, of which the ocamlnet/netmulticore and Jane St async's are (I think, but not very confidently) the only current. Others are:

poly/ML, ocamlP3, OC4MC, functory, JoCaml

coThreads, LWT

[http://www.reddit.com/r/programming/comments/q9cro/real_worl...](http://www.reddit.com/r/programming/comments/q9cro/real_world_ocaml_book_on_ocaml_coming_in_the_fall/c3xu3xj)

[http://stackoverflow.com/questions/6588500/what-is-the- state...](http://stackoverflow.com/questions/6588500/what-is-the-state-of- ocamls-parallelization-abilities)

</comment></comment></comment></comment><comment><USER11> I don't know Haskell well. That said , this 'guide' is really blunt, succinct, and informative about Haskell. It's rather nice and gives me a feel for the language a lot quicker than "Learn You a Haskell" did.

And it's got a ton of references to existing resources in a ready to consume fashion. I would've liked this a lot when I kept getting stuck on Monads.

</comment><comment><USER12> Nice. Wibble: it's 2012 - don't use Hugs. And just link to the Haskell Platform to get an installer

<comment><USER13> Quick question, since we have an author of RWH here for the moment -- most resources (including RWH) don't seem to mention Template Haskell or GHC type extensions.

Is this because they're nonstandard or do you disagree with their use cases? (For example, the section on Monad transformers in RWH is used similarly to the way implicit parameters might be used if enabled).

<comment><USER12> They come with GHC, but they're mostly not standardized. And there's more than 50 language extensions. They're not usually mentioned in texts, as they're usually necessary only for advanced user, or very small niches.

However, if you're are medium to advanced Haskell user, you should know about the common language extensions:

* GADTS * Template Haskell * EmptyDataDecls * ExistentialQuantification * GeneralizedNewtypeDeriving * KindSignatures * MonadComprehensions * QuasiQuotes * RankNTypes * RecordWildCards * Safe mode * TypeFamilies * ViewPatterns * UnicodeSyntax

Some of them have very good power to weight ratios.

Each extension has a niche it excels at, and knowing when to recognize that you're in that niche takes time.

</comment></comment></comment><comment><USER9> Following up on <http://news.ycombinator.com/item?id=3825705> here because that comment is already too deeply nested and it is too late to edit (nee mutate) it in place.

There was some fear expressed in the thread that development on MLton might have stopped, but going by this [http://mlton.svn.sourceforge.net/viewvc/mlton?view=revision&...](http://mlton.svn.sourceforge.net/viewvc/mlton?view=revision&revision=7561) (codegen bugfix checked in 6 weeks ago) it seems MLton alive and well, I am definitely happier now that it is.

About its reasons for disappearing from the language shootout as mentioned here <http://news.ycombinator.com/user?id=Locke1689> here is the explanation from its list

<http://mlton.org/pipermail/mlton/2011-September/030962.html>

I read a thread about their plans to move their list to sourceforge. Maybe that has not happened yet, that might explain why the last available mail- archive is from Oct 2011.

<comment><USER14> I have just picked up SML again after 10 years. SML/NJ is sharp .. I built it with 2-3 commands and it even downloaded the extra sources it needed :-)

</comment></comment><comment><USER15> Thanks for the pointer! My first language was Scheme and I always kind of joke around about eventually learning Haskell. I think I might actually start doing it though.

<comment><AUTHOR> You may also be interested in implementing Scheme in Haskell:

[http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours)

<comment><USER16> While that's an interesting read and fun mini-project, I wouldn't recommend it as a tutorial for Haskell beginners. You need to have a pretty decent handle on the language before a lot of it will make sense.

 _Learn You a Haskell for Great Good!_ is the ideal starting point, in my opinion.

<comment><USER17> _You need to have a pretty decent handle on the language before a lot of it will make sense._

While that's true, I think a learner may need more to aspire to (whether to _write_ it, or just _understand_ it) than just the next line of 'Learn You a Haskell'.

And there's also the fill-in-the-blanks phenomenon: you see a bit of code and have no idea what it does, but later on when you start to learn the underlying idea behind that code it may help solidify your understanding.

This is also a good way to learn math: rather than a strict progression of incremental steps, it's good sometimes to beat your head against something that's way above your level. Even if it seems like you're doing nothing, you're actually creating _a space in your head where this knowledge can go_ , if I can be forgiven that metaphor.

<comment><USER16> Agreed. _LYAH_ is fantastic for forming a conceptual foundation, but if there's one thing it lacks, it's exercises, so it's definitely a good idea to supplement it with something more focused on writing actual code. _Write Yourself a Scheme_ is good for that purpose, as is _Real World Haskell_.

</comment></comment></comment></comment></comment><comment><USER18> Does anyone here have experience with HDBC? I am very interested in using Haskell in a risk-rating system for cross-collateralized loans and bonds, but I absolutely need solid support for working with Sybase and SQL Server. We've used Clojure in our prototypes, and JDBC is top notch. However, Clojure lets you get away with a lot, while Haskell forces a level of discipline and gives a proper debugger. Also, I could really use Haskell's algebraic data types for performing operations on relational data and applying rules that have lots of exceptions. The system we're replacing is a mess of CASE WHENs and stored procedures operating on views built on views. I'd really like to use Haskell, but absolutely need solid database integration.

<comment><USER19> A few thoughts on HDBC: [http://gaiustech.wordpress.com/2010/09/19/scope-in- database-...](http://gaiustech.wordpress.com/2010/09/19/scope-in-database- code-2/)

Note that in practice, in OCaml, I found it easier to write my own Oracle bindings than use the "standard" one: <http://gaiustech.github.com/ociml/>

The mainstream community of both Haskell and OCaml, I get the feeling, doesn't really care too much about RDBMS access, as it's not something academics often need, so you will often find yourself on your own if you have a problem. The only mainstream functional language that does take RDBMSs seriously is F#, which it gets "for free" as C# needs it.

<comment><USER18> Thank you very much. I've never seen such beautiful database code before. I think it's here where the power of monads really shines; they keep all the statefullness of the database from cluttering up the rest of the code. I will stick with the JVM because of legacy integration. Although I must say, the more I use Haskell, the cleaner my code in other languages gets. Haskell is almost like poetry in this regard.

</comment></comment></comment><comment><USER10> The Breadcrumbs are helpful, if you missed the links

<http://acm.wustl.edu/functional/hs-breads.php>

\</comment><comment></comment><comment>

Note: most of the GHCi idiosyncrasies were ironed out in 7.4 but you can't cut/paste code into it AFAIK:

<http://hackage.haskell.org/trac/ghc/ticket/4929>

[http://www.reddit.com/r/haskell/comments/kmxf2/ghci_now_supp...](http://www.reddit.com/r/haskell/comments/kmxf2/ghci_now_supports_all_toplevel_declarations/)

\</comment><comment>-----

HNers learning haskell:

<http://news.ycombinator.com/item?id=3122725>

</comment><comment><USER20> Why did I clicked that link? Now I can't help learning me a Haskell.

<comment><USER10> Haskell is like a venus flytrap, mwahaha

</comment></comment><comment><USER21> I don't mean to troll, but the fact that the URL ends in php looks funny.

From [http://steve-yegge.blogspot.com/2010/12/haskell- researchers-...](http://steve-yegge.blogspot.com/2010/12/haskell-researchers- announce-discovery.html):

"MacFarlane concluded, "Our elegant approach didn't work, so we hired a Perl hacker..."</comment>


When to expect the next Mac Pro models to arrive. - <AUTHOR> http://www.marco.org/2012/01/16/why-the-video-pros-are-moving-away-from-apple

<comment><USER2> I honestly believe that when the iMac has a Retina display it will be the end of the Mac Pro. By that time there will be enough time for Thunderbolt devices to be successful and not be as expensive as they are today.

There is no doubt it will piss off many, such as Marco, but this has been what Apple is all about for a long time. The Mac Pro seems to go against the ideals of Apple.

<comment><USER3> A link on the same website explains why the Mac Pro will still be relevant. <http://www.marco.org/2011/11/02/scaling-down-the-mac-pro>

_As a point of comparison, almost all desktop-class motherboards today are limited to 16–24 GB of RAM, and the top-end 3.4 GHz Core i7 CPU (available already in the iMac) gets a 64-bit GeekBench score of 12,575. The Mac Pro released more than a year ago maxes out fairly affordably at 48–96 GB, and the top-end dual-2.93 GHz Xeons score a 24,159 in Geekbench. And it's probably going to be updated to even faster CPUs in a few months._</comment></comment>


FounderDating Expands to Help Find the Right Co-Founder - <AUTHOR> http://techcrunch.com/2012/01/26/bringing-a-startup-together-founderdating-launches-matching-site-expands-to-ny-boston-la/ With a major focus on quality, FounderDating brings together talented entrepreneurs with different backgrounds to start innovative new companies together. <comment><USER2> My cofounders and I met at FounderDating 2 years ago. All 3 of us are hackers, so the first time we got together after that we wrote & launched our first project together in 12 hours. Super impressed with the high caliber hackers & designers at this event! Definitely not your typical networking schmooze.</comment>


Brian Eno: 'We've been in decline for 40 years – Trump is a chance to rethink' - <AUTHOR> https://www.theguardian.com/music/2017/jan/23/brian-eno-not-interested-in-talking-about-me-reflection <comment><USER2> >It just seems that was grinding slowly to a halt, whereas now, with Trump, there's a chance of a proper crash, and a chance to really rethink.

Headline is misleading.</comment>


How the Pandemic Will End - <AUTHOR> https://www.theatlantic.com/health/archive/2020/03/how-will-coronavirus-end/608719/ <comment><USER2> >> By the end of the summer, the pandemic will have directly killed 2.2 million Americans, notwithstanding those who will indirectly die as hospitals are unable to care for the usual slew of heart attacks, strokes, and car accidents.

Where does the "2.2 million" number come from? Does anyone know? It follows from the citing of the Imperial College report but it does not seem to be atttributed to the report itself.

<comment><USER3> I think the paragraph (and the author) meant that sentence to be taken as attributed to the report's scenario -- meaning "if the virus is left unchecked."

 _A study released by a team at Imperial College London concluded that if the pandemic is left unchecked, those beds will all be full by late April. By the end of June, for every available critical-care bed, there will be roughly 15 COVID-19 patients in need of one. By the end of the summer, the pandemic will have directly killed 2.2 million Americans, notwithstanding those who will indirectly die as hospitals are unable to care for the usual slew of heart attacks, strokes, and car accidents. This is the worst-case scenario. To avert it, four things need to happen—and quickly._</comment></comment>


OAuth Proxy - <AUTHOR> https://github.com/simov/grant <comment><AUTHOR> I little bit of background info:

I made this OAuth middleware for NodeJS a few years ago, but it can also act as an OAuth proxy, meaning that you can deploy the NodeJS app on your server and access it from another server written in any programming language.

Here is the example app: [https://grant.outofindex.com/](https://grant.outofindex.com/)</comment>


China Passes U.S. as World's Biggest Energy Consumer - <AUTHOR> http://online.wsj.com/article/SB10001424052748703720504575376712353150310.html?mod=googlenews_wsj

<comment><AUTHOR> Not per capita of course - the US is still a big outlier on that front.</comment>


Is microdosing mushrooms going mainstream? - <AUTHOR> https://www.theguardian.com/science/2019/may/03/psychedelic-drugs-women-taking-tiny-doses-hattie-garlick <comment><USER2> Nobody is going to stop you from eating these guys

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

If you only want to microdose.

You might do better off eating a morning glory seed, however.</comment>


Hellenism and the History of Homosexuality - <AUTHOR> https://medium.com/eidolon/hellenism-and-the-history-of-homosexuality-2f327018886f

<comment><USER2> _[Greek and Latin] were languages that wives and servants could not understand, and therefore in which secrets were told. ... Women's lack of Greek and Latin — in their own sex-segregated schools, they were taught French and German — kept them out of the universities and learned society._

How obvious is that, once someone points it out?

<comment><USER3> Too obvious, I think. There were always a small number of women who had mastered Greek and Latin--Thomas More taught his daughter Margaret those languages, and one of her or anyway his female descendants, translated his Latin works in to English. In Samuel Johnson's time, a woman brought out a well regarded translation of Tacitus.

Originally the purpose of Latin and Greek in the European curriculum was to prepare students for the professions, including the clerical, which were closed to women. So why would the schoolmasters teach them Latin and Greek.

</comment></comment><comment><USER4> If I recall my humsex intro class, there were three main types, greco-roman, Polynesian and modern. I don't recall the differences completely, but they all differ and aren't all that alike with respect to relationship dynamics or purpose.

Anyhoo, interesting none the less.

</comment><comment><USER5> I miss both the "hacker" and "news" angle of this one.

And yes, this is meta, so I fully expect to get downvoted.

<comment><USER6> You know the usual refrain, "or something interesting to hackers."

I can't for the life of me think why this would be interesting to hackers, but somebody out there felt we should see this.

<comment><USER5> And yet Rand Paul running the first ever hackathon for a US presidential candidate was "too political" to be interesting for hackers.

</comment></comment></comment><comment> sotiris-k I guess Greece, and everything related to them, is all the rage at the moment!</comment>


Front End Interview Preparation: Problem Solving, More to Come - <AUTHOR> https://github.com/jeantimex/javascript-problems-and-solutions <comment><USER2> I am a front-end developer and seeing this kind of nonsense really just makes me depressed. Never in my career have I ever had to manually implement any of these algorithms and the fact that front-end developers are expected to know these manually really highlights a problem in the hiring process.

I am not academically minded, I am self-taught so maybe that has something to do with it. But I've been a developer for over ten years now and I am very good at my job, never been fired and always manage to get a job at any place I've worked at.

</comment><comment><USER3> As a full stack web developer of nearly a decade, it's great to see that binary search trees (which I have literally never implemented) are the majority of these prep questions...</comment>


My life as a NATO collaborator (1989) [pdf] - <AUTHOR> http://guppylake.com/~nsb/WarSpy/SpyInHouseOfWar.pdf <comment><USER3> I am working as a NATO IT consultant. What I can say about it is - No Action Talk Only. There is only inertia and massive decission chain, a lot of people having own interests and hypocrisy of civilian NATO employees on amazingly huge level. I met only a few people with a good IT knowledge. For the rest - <USER2> really don't know who hired them. And the Code of Conduct over there is another level of hypocrisy - all bids are already set up. Corruption and nothing else.</comment>


Ask HN: Are there any ITAR regs against laser modules, say from 150 W to 120 kW? - <AUTHOR> Let's suppose a non-commercial buyer in the US buying from China.
Of course, the latter of the Yt fiber laser type goes for several million and requires 3-phase 480 VAC (I'm sure customs would frown on it without special approvals and paperwork). 120 kW - 150 kW lasers have been test-fitted on aircraft and naval vessels for use as weapons (yup, deadly lazar beams).
That being said, the former with a tube and a single-phase 110 VAC PSU goes for < $1800 USD these days (this amount may still exceed the value that would be subject to customs and importing). If that could works anywhere near the rated power and not get tied up in customs duties, that could form the basis for quite a bit cheaper applications than products several layers downstream in the supply chain.
Granted Class 4 need a minimum of safety features (keyed interlock, emergency stop, lots of signage at all entrances to the room and eye & skin protection) if going the DIY route and a water-cooling loop, it seems entirely within the realm of possibility to make a pretty awesome 2+-axis CNC for engraving and cutting thinner materials. <comment><USER2> To my knowledge, ITAR just deals with products/information going from the US to outside countries.

I just purchased a 150W c02 laser from China. When you import a laser from China. The FDA starts to care. They require that the import lasers that have an associated FDA Accession number for the product. Basically saying the laser is safe and has proper safety etc.

Having a customs broker for your first transaction is worth it's weight gold.

In terms of importing these lasers from China and selling it in the US market? I think you're a couple years late on the market for that one ;) There quite a few players that do that now.

<comment><AUTHOR> I was thinking more of a custom shop 2-axis laser metal cutter installation with a keyed interlock, big red e-stop, warning signs on the entrances, mandatory eye/skin protection and some big red rotating light andons that laser is in operation. |-dB) I can build all of it, and it's not an area that the public or anyone else but yours truly will be in during operation, so no OSHA.

FDA Form 2877 has an exclusion for testing/development/prototypes "(i.e., not distributed)." so it should be fine as long as it's not sold to anyone else.

(Also, an AvE _" Not to be operated by fuckwits."_ sticker is obligatory.)</comment></comment>


Help hold police accountable to their missuse of brutality - <AUTHOR> http://www.youtube.com/watch?v=mFjQKcwbTdY&feature=relmfu

<comment><USER2> This is the wrong forum friend!!</comment>


Ask HN: How would you fire a cofounder, when you aren't one? - <AUTHOR> 6 months ago, I joined a small startup in SF and have quickly risen to become the lead engineer, despite there already being a technical cofounder.  I very clearly replaced this person in all "cofounder-y" activities (fundraising, pitching customers, cultural/hiring work, etc) in addition to pure technical contribution.
While the cofounder has taken his new mentor in stride and we have a good personal relationship, it is clear to everyone that he is in over his head. I fear will always be a low performer on my team. I would never have hired him much less passed a phone interview.
I'm disappointed that I didn't discover this in my own diligence nor pressed the matter sooner; but now what?  When thinking about how I could grow the team, I get irritated trying to justify the cash and equity this person is taking up, not to mention the message it sends to the stronger collaborators to keep him around.
The business co-founder/CEO respects me and agrees with the performance issue, but has only suggested we find a less critical role for him (like QA). I think if I pressed the issue I could get him fired, but as a socially close-knit team I'm struggling with how to approach that. Frankly, I've been (foolishly) waiting for the CEO to do it himself.
It's easy to just say, "insist he is fired", but the social issue is very awkward for me. I worry for team morale since he is well-liked. How would you go about broaching the subject and making the case? If you've had a conversation like this, I'd love to know how it went. <comment><USER2> The other issue to keep in mind is that the equity compensation is also tied to the amount of risk people are taking when joining the startup. When this technical co-founder started a company the risks were very high: there was basically nothing there, no product, no team, no investors, and no customers. When the current engineers are joining, the risks are obviously there, but they are smaller risks. This would at least partially explain the difference in equity levels.

Having said that, it would be a mistake to keep this co-founder in the same technical role as incoming top notch engineers. He really needs to assume a different role: for example product strategist, technical strategist, architect, etc... Whatever would fit with his skills.

As for running him off the company, think of it this way: without his early contribution, neither you nor later engineers would have a place to work. Of course, it's a balance and he needs to step up his game and find a place in the company to be useful, enthusiastic and inspiring to other people, which commensurates with his abilities. Otherwise, he will be nudged out towards the exit.

I hope this helps ...

</comment><comment><USER3> You're lead engineer. You're a valuable contributor. You've got a problem. Your CEO has offered very reasonable advice. I recommend re-evaluating the reasons you have given for rejecting it. If the company is any good it is likely that the CEO has discussed the issue with the board and the cofounder. Any board worth its salt would see fucking over a cofounder as the kiss of death. Risk of lawsuit dampens enthusiasm for future investments, while a buyout burns through cash for no value except in a case where the cofounder is actively harming the company...and in that case the company is almost certainly already hosed.

As you acknowledge, there may have been a misalignment between your expectations and talents and those of the company. It's an experience worth learning from.

You're the lead engineer. A lead engineer's role is not restructuring the cap table. The focus on programming chops underpinning your argument and clawing at a little pie instead of making the pie bigger suggest a narrowness of view that seems to be missing the bigger picture.

Good luck.

<comment><AUTHOR> I really appreciate this frank advice.

I think your discussion of business risks has best reflected the reality upon me: _because_ he is a cofounder, he can't just be simply fired.

(Incidentally my original title was "[How] would you fire..", i.e., I have doubt about the very question.)

      The focus on programming chops underpinning your argument
      and clawing at a little pie instead of making the pie bigger
      suggest a narrowness of view that seems to be missing the
      bigger picture.

Well, I'm bringing a binary/myopic-seeming view of the problem to HN, when in reality it's far from my biggest day-to-day concern. All of my time is spent "growing the pie" and even working to cultivate this engineer.

      It's an experience worth learning from.

Indeed..

<comment><USER3> The CEO has put a solution on the table. If you trust the framework in which the CEO is making their decision, then it is easy to take this point of startup stress out of your life. You have said that this is not the biggest fire in your forest. It ain't ever gonna be perfect. Today it just has to be good enough not to die.

Having a founder who is willing to hire people smarter than themselves is a good thing. It's a long way until the biggest problem is determining the best way to roll around in a pile of money.

<comment><AUTHOR> Thank you. This attitude helps.

</comment></comment></comment></comment><comment><USER4> You know, as a technical co-founder I honestly hope I never encounter your "type" as things progress through stages of a company. Have you talked to him about it at all and gotten his point of view?

You have to understand that when he first started the company, it was him hustling and grinding away to even get it to where you could even be hired. Without this co-founder the company was literally NOTHING. This isn't to excuse his performance or the implications, but I feel like you're severely lacking some respect for the situation. As a company grows the role of the founder starts to change. And he should recognize that there are specializations and areas that he's lacking in, which is why he's looking to diversify the team in the first place.

I'll be the first to admit that I'm not the best at certain tasks, but I'll be damned if some engineer I've hired comes in and wants me "fired" because they are somehow better at doing a certain task than I am when that's the exact damn reason I've hired them. It's one thing if he's grossly incompetent and actively harming the company, but what you seem to be describing isn't the case.

If you're first thought is that he should be fired because of his programming chops aren't as good as yours then I think you're missing the entire point. The CEO has already acknowledged the situation and offering solutions that you all can mutually work together with. Is it compensation? Or just this perception that the CTO must be the better than you to respect his decisions?

/rant

<comment><AUTHOR> I appreciate your rant (and someone else said, I sound like an "alpha male" jockeying for position - that's a first in my career, but I guess I'm grateful for the disguise!)

I think it's difficult to defend what's gotten me to even _consider_ this question - after _months_ of looking for better solutions - without getting too detailed.

      Without this co-founder the company was literally NOTHING

I just want to give this as an example -- this is not nearly the origin story of the company. I know you are picturing a classical founder and founding story and, well, it's different.

Thanks everyone for the advice!

</comment></comment><comment><USER5> Good founders hire people better than they are themselves.

It's pretty rare to see that kind of effort be paid back my a cuckoo maneuver like this. You owe your job to this guy, have some decency.

Imagine if every start-up started firing founders because they hired people that are better at some element of the running of the company.

Also: if I were the CEO of this company and you came to me with your request to 'fire a founder' I'd most likely fire _you_ and replace you with someone more aware of their place in the universe. It's not as if you got named to the board of directors and were given a majority share when you got your job.

You're lucky your CEO is either very diplomatic or a little lightweight.

<comment><AUTHOR>
      It's pretty rare to see that kind of effort be paid
      back my a cuckoo maneuver like this. You owe your
      job to this guy, have some decency.

I appreciate yours as good generic advice. Like a few other posters, you're (understandably) viewing this as a lone cowboy jockeying to replace an otherwise well-qualified and conscientious leader, with the limited and somewhat filtered information I've given.

But we are being _vastly_ too charitable to our imaginary subject. He's already been functionally banished by the team, and rarely comes in to the office. So the question is more about how to deal with an already-acknowledged lame duck, and its effect on the team, given my pay grade.

I didn't intend to follow up further because I've gotten what I needed here (thanks again!). But I wanted to try to restore some of your faith in the world that there is one less cowboy out there. I hope seeing that I'm anonymously seeking advice and _not_ doing something brash is also some sign of that..

</comment></comment><comment><USER6> From my limited perspective, it doesn't sound like it's your decision to make. If you've made your opinions clear to the CEO, that's great and you've already fulfilled your duty. Let the co-founders sort it out between them, it may take time to transition the lackluster technical co-founder into a new role. If business is going well, it's unlikely he would leave the company though given he is probably got a while left to vest. As long as he isn't hindering your work and creating infighting/tension in a power struggle, it doesn't sound like he's a problem.

Honestly, it sounds more like you're jealous of his compensation relative to yours. Has your compensation been adjusted since you started working there? If you're now doing the work of a co-founder, you should be compensated as such. If your role truly has escalated, they shouldn't take issue with you asking to have an adjustment made to your compensation in recognition of that.

<comment><AUTHOR>
      Honestly, it sounds more like you're jealous of
      his compensation relative to yours

I know it's hard to sound convincing, but trust me, I'm not: I am well- compensated (and negotiated for such), perhaps even more than he (don't want to get too detailed here).

Where I _am_ upset about compensation is that we've hired an engineer getting orders of magnitude less equity and performing orders of magnitude better work. Even if I can't change comp, I worry about how the "good guy" must feel & how to retain him if I just continue to "shrug off" the cofounder problem.

<comment><USER6> It doesn't seem like there is much you can do about it though. If you don't have enough resources to retain the good employees that you need, that's a valid issue to raise with the CEO. He can either get you those resources, or else there could be staffing problems. I don't think anyone joining as an early engineer expects to get more equity than a co-founder though. And you yourself said that people like him. So morale-wise, it's probably fine as long as he finds somewhere else in the company to contribute more.

</comment></comment></comment><comment><USER7> He's probably a director of the company and not an employee. That tends to give him additional rights (and responsibilities) that you don't have.

One of those is that you usually can't "fire" a director without board approval. Some director agreements and vesting schedules (if drafted properly) also have special acceleration clauses on termination without cause, so even if you could get rid of him, he'll still get his part of the business.

tl;dr: I don't think you can make that decision - it's up to the co founders and the investors. There's nothing you can do, and even if you could, he'd probably leave with his fully vested equity stake. Time to find a new job if you can't deal with that.

<comment><AUTHOR> Thanks for the advice.

      tl;dr: I don't think you can make that decision

You're right, it's definitely not my call; but I feel that I owe it to my team (and future team) to make the case to the CEO to do something more than just "oh, find him a desk in the basement".

Imagine how I talk to prospective hires: "yes, he's the engineering co-founder -- but we just let him do QA work while the rest of us call the shots". In the valley there's some expectation that the co-founders are, well, in charge, and keeping someone around like that in a limited capacity seems.. unusual.

<comment><USER8> I think you are overthinking the situation and looking to justify your feeling that the guy needs to be fired over reassigned. Why tell anyone anything in regards to the prospective hires? If the individual's strength is QA of the product then that is simply what he does. Doesn't matter if he is the founder or not. A good co-founder (or any founder) knows their strengths and weaknesses. More importantly they can own their weaknesses, and know when to bring in others to fill the holes so that the company succeeds. It is no different than a founder giving up the role of CEO to a more experienced and capable person. As the company and product evolves I don't see anything abnormal, or unusual, about a co-founder taking a back seat to other more experienced developers or whatever position it may be.

</comment></comment></comment><comment><USER9> Maybe a better way to rephrase this is: "How would you fire your boss?"

You say the technical founder is well-liked by the other employees. How do your peers feel about you?

Respectfully, you sound like a fresh Alpha Male who's found a new pride, topped the old Alpha, and now you're looking to push him out entirely to cement your dominance. But you're doing so under a passive-aggressive cover, as us tech workers often do.

How long do you expect to be with this company? What do you think about leaving and finding another startup to work with? Maybe somewhere whose work and founders you will respect more? Or even starting your own startup?

<comment><AUTHOR>
      Respectfully, you sound like a fresh Alpha Male
      who's found a new pride, topped the old Alpha,
      and now you're looking to push him out entirely
      to cement your dominance.

I can see that it comes off that way. But the reality is, _everyone_ seems to know this guy isn't hacking it, and I could tell almost immediately -- yet decided to do nothing for over half a year. For exactly that reason: I didn't want to risk the appearance of being an ego/power-maniac. But I'm now debating the wisdom of "just ignore it".

It's things that are borderline embarrassing (real example: not knowing what ssh is) in addition to just poor coding habits (breaking every style rule in the book), no systems instincts, and so on. Plainly, I don't think the CEO knew how to vet this guy.

<comment><USER7> Honestly, the only way to solve this is to be direct and ask him to leave the company. Bringing that up could go two ways; really good or really bad.

If he leaves then the company will probably have to buy back his equity stake, which will be expensive.

Also, don't forget, he probably has the power to fire you on the spot. These things do happen.

<comment><USER5> Nonsense. You don't crash a start-up on the say-so of an early hire.

A founder is a founder and barring actual misconduct or behavior that goes directly against the interest of the company should not be treated like he/she was a new hire, especially not by a new hire.

</comment></comment></comment></comment><comment><USER8> Just curious why do you want him fired over, as the CEO suggests, finding a less critical role for him? Is your reasoning solely based on salary/equity the guy has? There may be other business related issues that you are not aware of that makes firing not the simple option (i.e. as a co-founder there is a possibility he has some form of employment agreement/contract that would give him a significant severance package). On the flip side I would say that just "burying" a poor performer is the wrong choice (the movie Office Space comes to mind).

<comment><AUTHOR>
      Just curious why do you want him fired over,
      as the CEO suggests, finding a less critical
      role for him?

It's a great question, and one reason I'm grateful for the comments (thanks!) is that maybe I shouldn't be looking at it in this way.

      Is your reasoning solely based on salary/equity
      the guy has?

It's one of two: 1, yes, I feel we could be using the same massive comp to reward or hire people who are actually high performing. But 2, equally if not more important, co-founder or not I worry about the cultural weakness we get in to by just "burying" or ignoring a low performer.

<comment><USER5> > I feel we could be using the same massive comp to reward or hire people who > are actually high performing.

That's above your paygrade.

> 2, equally if not more important, co-founder or not I worry about the > cultural weakness we get in to by just "burying" or ignoring a low > performer.

You didn't hire this person, they hired you.

And he may be a low performer in your view but he obviously did something right because he got the company to the point where they could afford to hire you.

</comment></comment></comment><comment><USER10> You don't want to fire him/her, and the CEO won't fired him/her, for several reasons. Most important of which is, as a co-founder, they have equity in the company, not stock options. Yes, this equity will vest over time but firing with/without cause can change/accelerate things. At the end of the day, you don't want someone who owns a chunk of your company to be pissed at you. This can have ramifications while fund raising.

You need to meet with the CEO, clearly lay out why the co-founders current role is not a good use of time/money/energy, and work to find a new role.

</comment><comment><USER11> I used to work in a tech company where the cofounders hired a lot of their family and friends/hobby buddies, beside the real workers. Of course it was the real workers who did the actual work. The family and friends just sat around chatting, surfing all day everyday but they were getting paid and getting stock options. Some of them were in 'technical' roles and a few of them were in 'managerial' positions. If they were to do any real work, they usually screwed up. So nobody would expect anything from them but they stayed anyway. Unreal!

But they were quite friendly! People didn't hate them.

What you are dealing with is quite common in the corporate world. There are incompetent people everywhere at every level. They take a free ride. There is not much you can about it if it's coming from the top.

</comment><comment><USER12> I will be honest, there was a reason why the cofounder picked this guy maybe he is all over his head but is he malicious , can he do other things better, maybe he needs a little more coaching or a good talk but you don't try to find a solution other than you get irritated by this guy, you might be great but we all bring different skills to the table. It is not your business to get this guy fired really, you don't know if he has a family or needs that money. You come across as envious. sorry :(

</comment><comment><USER13> I think it's reasonable to expect a cofounder to pull his/her weight in terms of equity. But firing him should be a last resort. Ideally the cofounder should transition to other roles as the company grows and hires people that make him obsolete in whatever role he's currently doing. That's part of the natural evolution of a company and the CEO, cofounder, and you should all understand that. It's not necessarily a failure of the cofounder and shouldn't be looked at as such, unless he's truly just being lazy. If he can't program well he should either improve or find another way he can contribute effectively.

You've done the reasonable thing which is discuss with the CEO. The ball is now in his court. Maybe he is still trying to figure it out, maybe his hands are tied. You can just keep reminding him. Now if you think the CEO is dropping the ball and want to make a power play, you could take the nuclear option and approach the investors/board directly about the issue. This is a pretty dirty and risky move, but it does happen, see Twitter. If I were the CEO I would autofire you if I found out, even if your complaint was valid. Investors/board might not take it kindly either.

</comment><comment><USER14> It sounds like there are a few separate issues here:

1) You are concerned with other developers compensation.

If you already pay 20%+ over market then your devs aren't going to care what the cofounder makes. If you are paying 20% below market then you will have a problem even if you fire the cofounder and pay 20% less across the board.

If you have been acting as co-founder for the last six months this is your problem and your fault. Fix it.

2) You admit that firing the tech cofounder might harm morale but you think if you do it just right then everything will be ok.

The truth is firing is inherently messy. Firing a well liked and powerful person? Incredibly messy. There is no reliable way to avoid it. You have to believe that the short term (6-12months) pain is worth it.

As a dev if my company pulled such a stunt I'd start Looking for a new job. It shows the company doesn't value past achievements and contributions.

3) You believe you can gain access to the cofounders equity and you can use it to grow your team.

In truth he will almost certainly keep most of his equity, or sell it back to the company.

<comment><USER5> Firings are messy, but trying to get rid of a co-founder is akin to playing Russian roulette with three bullets instead of one, even money the company will not survive that.

</comment></comment><comment><USER15> You mention that he has taken to the mentor/mentee relationship, and have said elsewhere that he lacks skills or knowledge of things like SSH.

Are they actually learning and making progress? Or are they unwilling to learn and actually holding you back? If they are learning and developing, why can't you treat them as a very junior developer, help them develop their skills, and eventually they will become a useful asset to your team. You can maybe even sit them down and talk this through with them, I'm sure they have probably realised that their skills could do with improvement. It would likely turn out much better than going behind their back and trying to persuade the other co- founders to fire them.

They must have skills of some kind if they got the product to a point where they could raise money and hire others in the first place?

As for the equity issue, even if they do get fired, that doesn't mean their equity is up for grabs to award to new engineers. So it probably won't solve your issue their.

<comment><AUTHOR>
      If they are learning and developing, why can't you
      treat them as a very junior developer, help them
      develop their skills, and eventually they will
      become a useful asset to your team.

This has been my attitude so far, and my original title (before being edited) had "[How]" in brackets: I'm not at all sure what to do. But the alternative strategy, the optimistic, mentorship one you outline, hasn't been working.

      They must have skills of some kind if they got the
      product to a point where they could raise money
      and hire others in the first place?

It's absolutely true, and I would never advocate anything but generous treatment of the employee. But not meeting today's expectations (not just mine, the whole team's) also matters.

      As for the equity issue, even if they do get fired,
      that doesn't mean their equity is up for grabs to
      award to new engineers. So it probably won't solve
      your issue their.

Very true, and as others have stated legal matters around termination can make this very complicated.

I bring it up more to worry about simmering resentment from e.g. peers. I'm happy with my compensation, but I worry what an impression of "early, ineffective dead weight" can have on newer recruits. It's something I've seen earlier in my career.

</comment></comment><comment><USER16> While its usually crapped on, having good people in QA is more important than dev if you're doing actual QA.

If this guy isn't detail oriented enough and has broad knowledge of things for dev he's not going to do you any favors in QA.

<comment><AUTHOR> I agree, "punt to QA" is a cop-out I resist and detest during hiring.

</comment></comment><comment><USER17> If he can't contribute then he should leave. But he founded the damn company so he should walk away with a nice chunk of equity and a generous severance. The company wouldn't exist without the _founders_.

</comment><comment><USER18> It sounds like your best way forward is the route of a less critical role for this cofounder. At least in the short-term.

Longer-term, I would think the other cofounder(s) would at least be considering the "removal" (buyout, whatever) of the this cofounder. No one wants "dead weight" eating value of a company they aren't contributing to. It will only cost them more later.

Or, if the other cofounder(s) don't seem to care, maybe that's a sign you should move on yourself. Maybe you should bring up the subject of "dead weight" with the CEO to get a sense of the situation?

</comment><comment><USER19> I think that the CEO has given you marching orders. Not much else you can do beyond that. Put the cofounder in a non-critical role or project and do the best you can with what remains after that.

</comment><comment><USER20> This sounds like a training problem. Is it possible & cost effective to get him better training?

</comment><comment><USER21> "I think if I pressed the issue I could get him fired"

This will back-fire. You aren't in a position of power. You are only an engineer.

A friend of mine tried this and he, himself was fired. If you don't like the situation, you should probably quit.

</comment><comment><USER22> you should quit, and start your own company.</comment>


Bill Gates: We Blew It In Mobile - <AUTHOR> http://www.businessinsider.com/bill-gates-we-blew-it-in-mobile-2013-2

<comment><AUTHOR> Why am I always the last one to know?</comment>


Cryonics As A Large Scale Enterprise - <AUTHOR> http://lesswrong.com/lw/2f5/cryonics_wants_to_be_big/ <comment><USER2> First, let's get the freezing thing out of the way. Modern cryonics doesn't freeze, it vitrifies. Very important difference. The difference between freezing and vitrification is clearly explained for the layperson in the Alcor FAQ:

<http://www.alcor.org/Library/html/vitrification.html> <http://www.alcor.org/FAQs/index.html>

Now here are a bunch of economics and cryonics thoughts:

[http://fightaging.org/archives/2009/06/cryonics-and- economic...](http://fightaging.org/archives/2009/06/cryonics-and-economic- incentives.php)

"I note that the cryonics community, rather like the diverse libertarian community, possesses a sizeable minority with a great (and I think misplaced) belief in the power of contracts - of words on paper. You see it in the constitutionalists in the US or the fellows looking for loopholes in tax laws that will enable them to escape the IRS entirely. Words on paper, however, have only as much weight as there are economic incentives aligned with them."

[http://www.fightaging.org/archives/2006/01/you-cant-take- it-...](http://www.fightaging.org/archives/2006/01/you-cant-take-it-with- you.php)

"The trouble with property left undefended, as the ancient Egyptians and every other culture that buried wealth with the dead has handily demonstrated, is that no-one else's interests are aligned with yours."

[http://fightaging.org/archives/2009/04/pastinate- everyone.ph...](http://fightaging.org/archives/2009/04/pastinate-everyone.php)

"You might recall the recently voiced suggestion that it's something of an accident of history that the cryonics movement is the cryonics movement versus the plastination movement. Plastination is plausibly just as good a way of preserving the fine structure of the brain into a future where a patient can be restored to life as low-temperature storage."

</comment><comment><USER3> Let us make the (imho unjustified) assumptions that (a) folks in the future will have the technology to unfreeze and revive cryogenically frozen bodies and that (b) present-day cryogenically frozen bodies will last that long without getting unfrozen due to... whatever. Oh, and (c) that a revived cryogenically frozen person is actually the "same person" that went into the deep freeze, ie that it will be "me" conscious in the future rather than a disconnected consciousness who shares my memories.

Anyway, isn't it likely that the larger the cryogenic facilities the less likely they are to unfreeze you? If we had the opportunity to bring back a dozen neanderthals we probably would, because that would be fascinating.

But if we had the opportunity to bring back a hundred million neanderthals, and then had to figure out what to do with them (I'm thinking a series of District 9 style shantytowns would probably be the most likely scenario) we'd probably think it was kinder to leave them dead.

So if I were planning to freeze myself I'd be trying to discourage too many other folks from doing so. On the other hand, I'd also want to have a steady stream of a small number of people doing it well into the future, to keep the cryogenics companies active and solvent.

<comment><USER2> The revival idea is, at its core, this: cryonics providers are communities as much as business entities. They are trying to establish (a) technology for ever better preservation, (b) a community that will continue across generations (success so far), and (c) the means of restoration - in more or less that order of priority. Though some groups are more focused on (b) than (a).

The revival will be accomplished by the community once it is possible, not some third party, because this is just as much the established goal of the cryonics community as preserving people in the first place.

<comment><USER3> It will happen once it's possible because that's their current goal?

I can imagine the (already small) amount of interest in cryonics would greatly diminish in the future if aging is ever cured (and I think curing aging will be easier than bringing back the dead). Once my own survival is assured, why should I give a damn about the "cryonics community" and a bunch of frozen heads?

<comment><AUTHOR> Are you seriously like that?

ETA: Shouldn't it be obvious that severed heads are human in a circumstance where they can be restored to life?

<comment><USER3> People are seriously like that, yes.

Maybe people will get revived if and when the technology exists to do so, maybe they won't. It would be a bad idea to rely purely on the kindness of people whose culture may have very little in common with our own, though.

Heck, if I get frozen and woken up in the future I'll give you two to one odds that I'm either a zoo exhibit or a slave.

<comment><AUTHOR> You are giving two to one odds on humanity completely losing their moral compass then.

If that's the case, something is seriously wrong and needs to be fixed.

<comment><USER3> Actually I'm not, I just think that most of the scenarios where someone _does_ wake me up are scenarios in which they don't have my best interests at heart.

Far more likely they never wake me up, either because (a) the technology never gets developed or (b) the technology gets developed but my body is too far gone to be revived or (c) the technology gets developed and my body could be revived but nobody ever chooses to do so, for whatever reason.

Everybody acknowledges the possibilities (a) and (b), but I do want to bring attention to possibilities (c) and "slave", since I think too many people have too much faith that the people of the far future will consider reviving the frozen heads of long-dead cryonics geeks to be a good use of their presumably- still-not-infinite resources.

<comment><AUTHOR> I'm confused. Scenario (c) sounds inherently dependent on humanity losing its moral compass. So it sounds like your assessment of the risk of such an event occurring is much _higher_ than two to one.</comment></comment></comment></comment></comment></comment></comment></comment>


The rocket motor of the future "breathes" air like a jet engine - <AUTHOR> https://arstechnica.com/science/2020/06/the-rocket-motor-of-the-future-breathes-air-like-a-jet-engine/ <comment><USER2> Cool! I'd describe it more like a ramjet that works even when stationary. (Although the first prototype didn't seem like it produced much thrust yet.)</comment>


Who needs Barbie? Kids and teens want an iPad for Christmas - <AUTHOR> http://venturebeat.com/2011/11/17/kids-and-ipads/ <comment><USER2> Two things that irk me is:

How a barbie or action figure is roughly ~$30, and an iPad is roughly $600. how did kids get to the point where they are asking for something that is 20x what they asked for the year before? Is it hype, marketing, the lost value of a dollar?

Maybe it's the get-off-my-lawn part of me, but I see an iPad as a loss to the imagination for a kid, whereas a Barbie requires and hones imagination because it doesn't do all the zany things that an iPad can do.

And lastly, iPad have a built-in obsolescence to them. Every time you update to the latest version of iOS, things get slower for your iPad. Barbies and action figures require no updates, and can be handed down over years to other kids.

</comment><comment><USER3> He Who Dies With The Most Toys... Still Dies!</comment>


Matt Blaze's Congressional Testimony on Crypto Policy [pdf] - <AUTHOR> http://www.crypto.com/papers/governmentreform-blaze2015.pdf

<comment><USER2> I. Hate. PDFs.

You have to connect to download it, so why not just put it on the web?! Link to the pdf from there if you simply must.

That is all.

</comment><comment><USER3> Bullet points, please.

Convincing explanations of complex technical topics are necessarily concise. Mr. Blaze, by using so many words, fails to be concise. Thus he also fails, as he put it, "to minimize his attack surface." Every additional word he types is a new vulnerability in his argument. Attackers use vulnerabilities to exploit. Thus verbosity renders an argument vulnerable to exploitation by attackers.

In politics, in particular, attackers run amuck, transacting amongst each other with exploitation as currency. Arguments are the system of politics, and the same security principles apply to both arguments and systems. As Mr. Blaze points out, maximizing system security requires minimizing system attack surface. The same applies to arguments. Maximizing argument security requires minimizing its attack surface. Literally, minimizing its word count and verbosity. The most concise arguments are the most secure.

The arguments worthy of attack are generally one in a pool of many competing arguments. Important issues generate discussion with arguments on both sides. Stakeholders present these arguments and fund their agenda.

Naturally the future of national security infrastructure is an important issue with money on both sides. Attackers are everywhere.

The number of attackers in this game ensures that any vulnerability risks exploitation. Therefore the "natural selection" process of competing arguments will select for the most secure arguments, with the minimal attack surfaces. The most concise arguments will win, purely by minimizing their attack surface.

Mr. Blaze fails to "minimize his attack surface," as he puts it, because he uses so many words. Every word is a new vulnerability in his argument.

I agree with many of his ideas but I wish they were presented more concisely. In fact the phrase "explain it to my grandmother" might apply here, considering the average age of influential congressmen and senators. I worry they will miss many of the critical portions of Mr. Blaze's argument, and simplify it by listening only to the parts they understand. When they discuss among themselves, Mr. Blaze's voice will lost. He could avoid this by writing more concisely.

(How ironic is this comment, eh?)

<comment><USER4> Are you serious? You are incapable of reading and understanding an 8 page document? Or learning general strategies of where to find summary information (hint: the beginning and end of every paper).

There's a lot of information loss when you try to fit an idea into a list of points.

And yes, your comment is quite ironic since it is incoherent, unorganized, lengthy, and ultimately, sounds like nothing more than a bunch of whining.

<comment><USER3> > Are you serious? You are incapable of reading and understanding an 8 page > document?

Where did I say that senators do not understand? I am not implying senators cannot read.

Senators do not generally have security backgrounds. So they turn to experts. The senators remain responsible for interpreting the expertise. They must consider all input within a wider context that includes other stakeholders.

When the senators discuss the legislation amongst each other, they consider the inputs of all stakeholders. They need to condense all they learned from the experts into legislation. This requires balancing the biases of conflicting expertise. How do the senators handle the inevitable situation where telecom experts pitch an argument that conflicts with that of Mr. Blaze?

The best marketed idea will win. Experts are salesmen and their ideas are their products.

All I'm saying is that when the experts pitch their ideas, the senators are vulnerable to the same uncontrollable subconscious factors as everyone else. If an idea comes to them packaged with marketing expertise, it will have an advantage over any competing ideas.

Bullet points are good because they're good marketing.</comment></comment></comment>


What China is acquiring, and where - <AUTHOR> http://www.bloomberg.com/graphics/2016-china-deals/ <comment></comment>


New Documentary to Expose Media Consolidation and Government Collusion - <AUTHOR> http://www.kickstarter.com/projects/akorn/killswitch-a-documentary-film?ref=live

<comment><USER2> There is no doubt that this is good cause. Yet, there is much to be pessimistic about it. First off, it will be excruciatingly difficult to produce a documentary of decent quality, comparable to ones such as "Inside Job", with only a budget of 150,000 USD. You definitely need to look to acquire a budget of at least 300,000 USD. Secondly, this documentary is extremely vulnerable to being thwarted by the "big six" media corporations. The only thing that stands in the way of corporations having complete power over the American people and their government is pro net-neutrality regulations. We will of course witness the perhaps the most determined onslaught on a small organization than we have ever seen taken by the corporations. Finally, creating and releasing a documentary presents the challenging fact that the current political situation concerning net neutrality changes at a rapid rate. A couple of examples would be how Obama campaigned on net neutrality, yet when he came into office his administration had corporations make a law that protected their interests over individual citizens. The other example is how Meredith Baker approved the merger of Comcast and NBC Universal and then resigned from the FCC to become the leading lobbyist for Comcast. This ever changing nature of net neutrality would make it necessary to release the documentary shortly after it has been filmed.

</comment><comment><USER3> The internet must remain free and unrestricted by the ISP's. I dont want the governement to take the place of corporations in regulating the internet, but I would be fine with the governemnt passing laws ensuring that the interent remains open as it is now. This must be done so that no one group or company can "own" the internet and redesign it for their own benefit. I am a strong believer in capitalism and I believe it to be the most effective, however it isnt perfect. If the corporations are allowed to take over, their primary goal, no matter how damaging it is to society, will be to make money. nothing else is really important to companies.

<comment><AUTHOR> gman79 - couldn't have said it better myself.

We must protect the Free and Open Internet at all costs.

</comment></comment><comment><USER4> I was somewhat concerned that this film would promote government enforcement of net neutrality. In an email conversation I had with him, the writer of this film compared Thomas Jefferson's view of the necessity of an affordable, reliable postal service with the current necessity for affordable, reliable internet access. That seemed like a pretty good point to this skeptic.

If you think this is a film worth making/seeing, send to a couple friends. Currently 93 backers, $14,999 pledged of $150,000 goal, 17 days to go.

<comment><AUTHOR> benvanderbeek: Thanks for the positive feedback. I agree that we have to be skeptical of an all powerful government state, it is just as dangerous as an all powerful corporate state.

Preserving the decentralized integrity of the Internet, where no one government, corporation, or person "owns" the Internet... rather it is essentially owned by every one, whether you're Bill Gates or Ben Vanderbeek - everyone is equal in communication.

Don't get me wrong I believe in a capitalism, within the constitutional framework of a democratic-republic... but our Freedom of Communication and 1st Amendment is too important to be put up for sale.

Tim Wu's, "Master Switch" does a really good job explaining how communication mediums over the years have gone from Open to Closed. I encourage any one who is interested in the subjects of Communication Empires, Internet, and the democracy to get this book:)

Here's a blog posting I recently wrote on savetheinternet.com

I'd love to get your feedback on it: [http://www.savetheinternet.com/blog/11/06/14/killswitch- and-...](http://www.savetheinternet.com/blog/11/06/14/killswitch-and-battle- over-internet)

</comment></comment><comment><USER5> This is a movie that needs to be made. It is not going to get backing from traditional media, it needs a grassroots movement. Good Luck!

<comment><AUTHOR> Well said Bmcarlisle. I couldn't have said it better myself. I've been very happy with the support of the hackernews community. Out of all the venues I blog, I get the most support from you guys. I posted early this morning and had about 30 of you guys back my project. Thank you, Thank you, Thank you.

If you haven't read my blog yet on savetheinternet.com check it out here:

[http://www.savetheinternet.com/blog/11/06/14/killswitch- and-...](http://www.savetheinternet.com/blog/11/06/14/killswitch-and-battle- over-internet)

</comment></comment><comment><USER6> Either (a) we crowd fund this great project and fight corporate greed together or (b) we individually bury our heads in the sand and say "goodnight" to our free internet! I'm going with option A!!!!

<comment><AUTHOR> I'm right with you on that one!

Thanks for the support.

</comment></comment><comment><USER7> Right on!

<comment><AUTHOR> Thanks for joining the fight! We're getting closer to our goal. Spread the word.</comment></comment>


Dumb - <AUTHOR> http://shawnblanc.net/2014/03/dumb/

<comment><USER2> I really like that my phone has replaced my watch.

No disgusting strap, no having to take it off to code, no watch tan, no stupid thing on my arm to fiddle with and besides, the really important thing is I really don't need to know the time most of the day (the same applies for tweets, sms messages, missed/incoming calls, the latest in game ads I forgot to disable and google chat pings) Smart or dumb, a wrist mounted realtime information monitoring device is kind of the last thing I want from technology.

Sad thing is.. they're going to be mandatory to own in order to live in cultured programmer society in 3 years. So, I hope they at least make them as nice as my old Nixons that are now sitting at the farthest back corner of my dresser.

</comment><comment><USER3> Does this thinking also extend to books? Maybe it no longer makes sense to speak of the ebook versus paper book debate—it certainly seems that ebooks' ever-increasing popularity speaks to their utility. But whereas the debate initially focused on obsolescence, DRM, and so on, perhaps we should just consider paper books' simplicity as their killer feature.

</comment><comment><USER4> Until early adopters play with smartwatches, we won't really know what they are really useful for. Give it time (no pun intended).

<comment><USER5> I have a Samsung galaxy gear and I like it. Although the software support right now it pretty lacking. When people ask about it I usually tell them to wait a little while for google to come out with theirs.</comment></comment>


Erlang/OTP 18.0 has been released - <AUTHOR> http://www.erlang.org/news/88 <comment><USER2> Something you may find interesting is that the new faster maps are loosely based on Rich Hickey's HAMT implementation that is used in Clojure. Jose and co. in Elixir adapted/is-adapting their internals to use maps as well, as they were faster than any implementation they had.

In addition, I wrote a full QuickCheck model for the new maps. That is, we randomly generate unit test cases for the maps and verify them. We have generated several millions of those test cases, including variants which heavily collides on the hash. This weeded out at least 10 grave bugs from the implementation, which in turn means this release is probably very stable with respect to maps.

<comment><USER3> No surprise there, Rich's code is pretty solid. I really like this sort of co- operation between languages.

Out of curiosity: QuickCheck is a property based test library? I know of test.check in Clojure and they mention QuickCheck as the inspiration, so I guess they re similar in this regard.

<comment><USER2> The base is the same, but Quviq QuickCheck for Erlang provides some libraries which are far more developed than most QuickCheck implementations out there. On the other hand, it is not a free tool if you want the full version.

Since you are searching randomly, you need good heuristics that skews the distribution toward where "errors often occurs". This means errors are uncovered in fewer test cases. Also, you need good heuristics for minimizing/shrinking a known failing error. Some of the error cases shrank from 80 commands down to 5, and furthermore simplified the input so it was easier to see what stood out.

</comment></comment></comment><comment><USER4> For the first time Erlang 18 shipped under Apache License 2.0, it will likely have a meaning for Erlang's future development. The Industrial Erlang User Group has spent quite some effort on that.

<comment><USER5> Can you explain why, or link to a summary of the history? Wasn't it a license specific to erlang in the past? If so that's great as Apache is standard. But if it went from another common license I'm curious to know why.

<comment><USER6> It didn't come from another common license. It came from the EPL (Erlang Public License [http://www.erlang.org/EPLICENSE](http://www.erlang.org/EPLICENSE)). Erlang users have been asking for the change for years and OTP 18 finally delivered on the promise.

</comment></comment></comment><comment><USER7> Commits like this make me realize, "oh, they're just developers like me"

[https://github.com/erlang/otp/commit/37f143e9e16e89d753b0e5e...](https://github.com/erlang/otp/commit/37f143e9e16e89d753b0e5e4415968dbcd5f6b65)

<comment><USER8> See, this would not have happened if they had coded this project in a purely functional language.

<comment><USER9> Exactly, because if it was a purely functional language, they would have started the project, worked on it for a week, blog about it and said purely functional language for a year, then throw it away.

<comment><USER10> For example, Erlang was originally implemented in prolog.

</comment></comment></comment></comment><comment><USER11> The improved time handling is the biggest new feature for most users probably (apart form maps improvements and the new license).

[http://www.erlang.org/doc/apps/erts/time_correction.html](http://www.erlang.org/doc/apps/erts/time_correction.html)

<comment><USER12> It totally makes sense that a highly concurrent system would need to start getting really nitty-gritty with time values...

</comment></comment><comment><USER13> This is great news for Elixir as well!

<comment><USER14> My thoughts exactly. I've never been so excited about seeing a new Erlang release :-)

<comment><USER15> Anything noteworthy ? :-)

<comment><USER16> How come you havent noticed?! The number! 18! Come on, Ruby is on 2, Python struggles to get to 3 and Java tries to catch poorely with 8...

<comment><USER17> Random numbers (18 vs Python's 3 or Java's 8) don't mean anything without comparing the release cycles and version numbering schemes as well.

I could make small incremental updates to a toy language and release them every week to get to FooBarLang 200.0.0, that doesn't mean it's progressing faster than a language at release 2 or 10.

<comment><USER18> That's the joke.

<comment><USER17> Maybe add the /s then?

It's amazing how many people actually confuse version numbers this way, including on HN (check any discussion about semver).

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> I love Erlang releases and am very happy about the improvements to maps. I have to admit the OTP motto of "move slow and never break anything" always leaves me wanting more (though).

</comment><comment><USER20> Obligatory: [https://www.youtube.com/watch?v=rRbY3TMUcgQ](https://www.youtube.com/watch?v=rRbY3TMUcgQ)

<comment><USER21> Might be worth watching this first, though:

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

</comment></comment><comment><USER22> Still non mingw or mingw-w64 or (windows) clang friendly.

<comment><USER2> I think a patch for this would be welcomed. Usually there are some subtle complications from such ports which tend to also affect other systems. So fixing it in one place often helps other porting efforts as well.

</comment></comment><comment><USER23> > ssl: Remove default support for SSL-3.0 and added padding check for TLS-1.0 > due to the Poodle vulnerability.

> ssl: Remove default support for RC4 cipher suites, as they are consider too > weak.

I'm not following Erlang news but was just wondering, aren't these fixes coming out way too late?

<comment><USER2> You could tell the `ssl` application to avoid SSL-3.0, TLS-1.0 and RC4. Here is an explanation by RabbitMQ:

[https://www.rabbitmq.com/ssl.html](https://www.rabbitmq.com/ssl.html)

It is different from an end-user application in the sense that you can configure this in a safe way, and that has indeed been the typical workaround.

Now we just make it impossible for people to misconfigure this in any way.

The fix was also backported to 17.5 w.r.t the padding for TLS-1.0.

Another point worth mentioning is that Erlang/OTP uses OpenSSL, but only for the cryptographic ciphers. `ssl` is a complete standalone implementation of TLS in Erlang and this automatically avoids a lot of trouble. The common case is that an attack on OpenSSL leaves the `ssl` application unaffected by the error.

</comment></comment><comment><USER24> Great news, guys... keep it up!!!</comment>


The ipv6 web is broken - <AUTHOR> http://vdonselaar.blogspot.nl/2014/01/the-ipv6-web-is-broken.html

<comment><USER2> test-ipv6.com is intentionally IPv4-only, because otherwise people with broken IPv6 wouldn't be able to run the test. It's covered in the FAQ:

[http://test-ipv6.com/faq.html](http://test-ipv6.com/faq.html)

However, the prevalence of IPv6 brokenness has declined a bit since most browsers started doing Happy Eyeballs.</comment>


Clean implementations in TF2 of recent generative models – by Sarus Tech - <AUTHOR> https://github.com/sarus-tech/tf2-published-models <comment><AUTHOR> # Sarus published models

Sarus implementation of classical ML models. The models are implemented using the Keras API of tensorflow 2. Vizualization are implemented and can be seen in tensorboard.

The required packages are managed with pipenv and can be installed using pipenv install. Please see the pipenv documentation for more information.

## Philosophy

These models' implementations are intended to be easy to read and to adapt by making use of the latest Tensorflow 2 library and Keras API.

## Basic usage

To install and train a model.

pipenv install pipenv shell python train.py

To visualize losses and reconstructions.

tensorboard --logdir ./logs/

## Available models

\- Simple Autoencoder \- Variational Autoencoder (VAE) \- Vector Quantized Autoencoder (VQ-VAE) \- PixelCNN \- Gated PixelCNN \- PixelCNN++ \- Conditional Neural Processes \- PixelSNAIL</comment>


Ask HN: Tips on how to drive a blog - <AUTHOR>

Hey guys, I have a blog that I write seldom, even wanting to write often.
Few time ago I figured out that it happens, because I don't know in which subject to focus and I'm "afraid" to mix subjects like enterpreneurism, marketing, startups and technical articles in a single blog.
From you opinion, is it a good idea write about all this subjects in a single blog? Is it better to focus in some of them?
Thank you guys for you help. <comment><USER2> Write about two things: What you are doing/how to do it, and what you are thinking about. If it is interesting to you, then you will write an interesting article (or so we all hope). Write for yourself. An audience is just a bonus.

Don't worry about being consistent to a certain subject.

</comment><comment><USER3> A blog should be a natural extension of who you are and what you're doing. If you have to ask about what you should and should not put in it, you should go back to the drawing board and make explicit what your goals are for your blog. Is it just eyeballs for the sake of eyeballs? Then mix everything. Is it to attract a certain caliber of people who are going to use your services? Then stick to topics of common interest.

</comment><comment><AUTHOR> Thank you guys, got your point</comment>


The Greatness of William Blake - <AUTHOR> http://www.nybooks.com/articles/archives/2015/dec/03/greatness-william-blake/ <comment><USER2> If you like Blake, I'd recommend: Dead Man. [http://www.imdb.com/title/tt0112817/](http://www.imdb.com/title/tt0112817/)

</comment><comment><USER3> One of the most underrated poets of all time. What's incredible is that during his lifetime, he was known more for his painting than his verse!!!

<comment><USER4> I haven't read much of his work, but I love his art.

</comment></comment><comment><USER5> I walk past his grave every day or so. There are often fresh flowers left there. I like that powerful works can be rediscovered over time.

</comment><comment><USER6> Blake can be difficult to read, but is absolutely worth it IMO, esp. his longer works.</comment>


Aussie Dog Sharing Service proves kindness is still alive and well - <AUTHOR> https://dogshare.com.au/ <comment><AUTHOR> Dogshare began as a way to provide our family dog, Duke, with additional walks by teaming up with another dog-owning neighbour. The neighbour and I would take it in turn to walk both dogs, morning and evening. A few weeks into this new arrangement the neighbour and I couldn't stop grinning to each other at the simplicity of simply 'lending a hand' having such a profound impact on the dogs, but also our busy working lives.</comment>


2014's Most and Least Expensive Metros - <AUTHOR> http://blog.kwelia.com/2015/01/06/2014s-most-and-least-expensive-metros/ <comment><USER2> Should add "US" to this title.

2014's Most and Least Expensive US Metros.

<comment><USER3> I agree, I thought this article was going to be about public transportation, since in many places outside the U.S. a "metro" is a subway/train.

I was actually looking forward to a comparison of actual metro fares.

<comment><AUTHOR> I actually had posted it with (For Rental Housing) tacked on the end of the title for clarity, but the mods saw fit to remove that part. Omitting the "in the US" part from that was myopia on my part though--we only aggregate data in the US for now.

<comment><USER4> Call it metropolitan instead of metro. Metro might be short for metropolitan but it means subway, not city.

<comment><USER5> Nouning an adjective doesn't help much. I've always heard "metro area" anyway, not just "metro".

</comment></comment></comment></comment></comment><comment><USER6> The maps they provide are pretty cool: [https://kwelia.com/maps/cbsa_census_tract/Houston- Sugar%20La...](https://kwelia.com/maps/cbsa_census_tract/Houston-Sugar%20Land- Baytown,%20TX)

but switching the city in the list doesn't work for me, I can't see the median income or median income / median apartment rent either (I tried on Firefox and Chrome on Fedora)

To go to interesting cities I had to enter them manually in the URL

<comment><AUTHOR> Not good! I'm looking into this, sorry.

Edit: This should be fixed now. Anyone, please let me know if you're still having issues.

<comment><USER6> Thanks, I'm now using Firefox on Windows 8.1 and it works fine, I'll check for Fedora tomorrow.

However I tried a random city : Helena-West Helena, AR [https://kwelia.com/maps/cbsa_census_tract/Helena- West%20Hele...](https://kwelia.com/maps/cbsa_census_tract/Helena- West%20Helena,%20AR)

and it says "Uh-oh! Looks like we don't have enough data for this MSA yet. Please try another selection." , fine, but the problem is the list of cities has now disappeared.

As ars commented, in the future if you could have something that finds out in which area you are currently looking, and loads automatically the data for the area, that would be even better!

</comment></comment></comment><comment><USER7> $/sqf is a poor measure of rental costs. Because a 400sf apartment in NY is not 1/2 of the cost of a 800sf apartment in NY.

EX: from the same complex. [http://www.equityapartments.com/new-york/new-york- city-apart...](http://www.equityapartments.com/new-york/new-york-city- apartments/midtown/west-54th-apartments.aspx)

      418 sqft	from $2,920 = 6.9$/sf
      727 sqft	from $3,490 = 4.8$/sf

<comment><AUTHOR> > Because a 400sf apartment in NY is not 1/2 of the cost of a 800sf apartment > in NY.

OP here. This is true, but given its flaws this measure is still the industry standard for benchmarking various markets in rental housing. We actually seek to rectify this problem by creating market rent estimates based on a rental's detailed attributes in our product.

</comment></comment><comment><USER8> It would be great to see comparable sale prices to calculate price to rent ratios. Looking at those rents, and considering the drop in prices since 2008, it looks like a great time to be a landlord. (At least from my perspective in Canada.)

</comment><comment><USER9> [https://kwelia.com/maps/cbsa_census_tract/San%20Francisco- Oa...](https://kwelia.com/maps/cbsa_census_tract/San%20Francisco-Oakland- Fremont,%20CA)

Roswell, NM >> "Uh-oh! Looks like we don't have enough data for this MSA yet. Please try another selection" (no surprise). >> Click Back >> Cool! they must have an API so I can build my own app... (page displays only JSON data from original CA map).

Firefox 34.05, Slackware.

</comment><comment><USER10> I imagine NY would be much pricier if Long Island was left out.

<comment><USER11> Perhaps, but Long Island is definitely not what I'd call inexpensive.

</comment></comment><comment><USER12> Where does Detroit rank on this? Since there is not a text list to go with the images and I'm totally blind I can not tell.

<comment> lost-theory It's not on the list. The least expensive metros range from $0.50/sqft to $0.65/sqft and Detroit-Warren-Livonia, MI is $0.94/sqft. That metro area is larger than just the city of Detroit itself though, which is probably what you're curious about?

</comment></comment><comment><USER13> Some of those rental prices are downright depressing. Until you realize you're paying more than the average.

Very interesting heat maps.

[https://kwelia.com/maps/cbsa_census_tract/San%20Francisco- Oa...](https://kwelia.com/maps/cbsa_census_tract/San%20Francisco-Oakland- Fremont,%20CA)

</comment><comment><USER14> The names of the cities in the charts on the y-axis are cut off.

</comment><comment><USER15> Oops, I thought this was going to be about transit systems :P

</comment><comment><USER16> Oxnard? Really? I drove through there in January on holiday in the US and I've never seen a more depressing town in my life.

</comment><comment><USER17> Where do these prices come from? a 1,000 sq ft apartment in San Francisco would be great to find for $2,500 a month.

<comment><AUTHOR> The data is not only San Francisco proper, it's the entire "San Francisco- Oakland-Fremont, CA" MSA. There's a lot of variation within that:

[https://kwelia.com/maps/cbsa_census_tract/San%20Francisco- Oa...](https://kwelia.com/maps/cbsa_census_tract/San%20Francisco-Oakland- Fremont,%20CA)

</comment></comment><comment><USER18> Site breaks on Coeur d'Alene, ID. It reverts back to San Francisco.

<comment><USER19> Right, because it goes to [https://kwelia.com/maps/cbsa_census_tract/Coeur%20d](https://kwelia.com/maps/cbsa_census_tract/Coeur%20d) i.e. it chops off the "apostrophe" and everything after. URL escaping gone wrong, I guess.

</comment></comment><comment><USER20> I'd hardly call Branson or Joplin "metropolitan."

;)

<comment><USER21> Joplin born and retired to here ^_^.

It's a official Census Metropolitan Statistical Area: [https://en.wikipedia.org/wiki/Joplin,_Missouri_metropolitan_...](https://en.wikipedia.org/wiki/Joplin,_Missouri_metropolitan_area)

Joplin itself isn't that big (~55K residents, although population doubles during the day), but the 3 county metro area is estimated at 207,488 for 2013, more than half of that in Jasper Country, which most of Joplin is in.

And commuting isn't exactly a tough proposition in this area.

<comment><USER20> > And commuting isn't exactly a tough proposition in this area.

I can see that having a certain appeal.

One of the things I love about St. Louis is the relatively low amount of traffic relative to the metro's size.

<comment><USER22> I guess you're not going 270 north in the morning and south in the evening. I hear 40 and 70 coming out of and going into St. Charles is no picnic either. 44 always seems to flow though.

<comment><USER20> 44 and 55 all day, baby. 40 is only rough around Forest Park and 270 during rush hour. And when I say rough, I mean 5-10 minute delay. Which isn't much compared to other cities.

I went to college in Chicago. There's a magnitude order of difference between traffic here and traffic there.

St. Louis businesses are pretty distributed between the city and county so there isn't a huge downtown rush in the mornings and evenings. The most traffic you'll see downtown is when the Cards are playing.

</comment></comment></comment></comment></comment><comment><USER23> Boy oh boy those charts. :(

<comment><USER4> gphil you should give much more space to the names of the cities. You have plenty of room.</comment></comment>


The Unpaid Intern: Legal or Not? - <AUTHOR> http://www.nytimes.com/2010/04/03/business/03intern.html?_r=2 <comment><USER2> good but old</comment>


Show HN abstract an online drafting tool - <AUTHOR> http://brislink.github.io/Abstract/

<comment><AUTHOR> It is a markdown based editor.Saves drafts in the browser. I tested it on the latest versions of internet explorer, firefox and chrome.

There are two modes. In the editing mode edit the title and the body of the draft. Loose focus to enter the preview mode where you can see a preview of what you have typed. In preview the drafts are saved automatically.

Also it is open source</comment>


How I like my Finder - <AUTHOR> http://stelian.firez.be/post/how-i-like-my-finder

<comment><USER3> I'm still surprised how used we all got to the modern, somewhat simplistic file management metaphors. Icon/list view plus "shortcut" panel, wherever you look. I still remember that for years after Windows 95 came out, one of the first applications everyone installed was a better file manager, quite often some GUI Norton clone. Then there was the "spatial Finder" hullaballoo, echoed by GNOME, too, if I remember correctly. But in recent years, that market niche seems to be on the verge of extinction.

Probably for the same reason why keyboards are getting increasingly worse: No "hardcore" users. Pictures, music and similar files are "managed", lots of other stuff is exclusively accessed via a single application and its open dialog, leaving _maybe_ the all-purpose Documents folder to be the target for occasional visitation.

And the desktop. Oh heavens, the desktop...

</comment><comment><USER4> The author mentions a bunch of programs that offer similar functionality but states that "the way they're designed doesn't work for me." I'd be curious what about them doesn't work.

I use TotalFinder primarily for this functionality, and their split-pane looks almost identical to what he has set up in the screenshot, with the added benefit that it is more efficient (e.g. you can move the window around and resize it and the panes stay together, you can adjust the size of each pane relative to the other just by dragging the single middle bar, etc.).

TotalFinder split-pane screenshot: <http://i.imgur.com/K6KkSws.png>

<comment><AUTHOR> The tab join looks weird(aesthetically) and the separator is too thin. I want one side in focus. But all these things have to do with taste. The screenshot you attached looks probably great to you, but I prefer the side by side windows.

</comment></comment><comment><USER5> Do consider ForkLift - <http://www.binarynights.com/> \- just look through the key features. I would have bought it for Multi Rename alone (but it also has Dual panes, Mount as disk, all kinds of remote connections, custom shortcuts, Merge, etc etc)

<comment><USER6> +1 For forklift. The tabs and multipane remotes are killer features. It also feels lighter weight than a complete finder replacement like TotalFinder.

</comment></comment><comment><USER7> Why don't you just use one that has dual windows and tabs.

TotalFinder <http://totalfinder.binaryage.com/>

XtraFinder <http://www.trankynam.com/xtrafinder/>

<comment><USER8> Why don't you just read the second sentence in the article?

<comment><USER9> I just read that sentence, and it doesn't explain anything. It just says they're not what he likes, so here's another one that might work: <http://www.mucommander.com/>

<comment><AUTHOR> The separator of TotalFinder and Xtrafinder is just too thin. I want to see right away which side is in focus. When you click on one of the two windows the other one becomes washed and is also covered by the shadow of the active one.

For me, that's better usability.

</comment></comment></comment></comment><comment><USER10> totalfinder has a split pane (actually a tab join) which works awesomely.

What I like about totalfinder is that it is not a finder replacement, but just adds some small (but massive) improvements.

highly recommend.

<comment><AUTHOR> The tab join seems visually weird to me. But I guess it's a matter of personal taste.

</comment></comment><comment><USER11> I still don't understand how some people work without a folder hierarchy in the left pane... I never understood Norton's dual-file-list-pane setup - <USER2> current path is not sufficient context for me.

<comment><USER12> Mac users, by necessity, find all sorts of ways to work around missing features.

<comment><USER13> Insulting without provocation and needlessly inflammatory? I take it you're from reddit?

<comment><USER14> He's not wrong. On the other hand, everybody works around limitations in their technology. It's the nature of the beast.

<comment><USER15> It's astonishing how often people don't even notice that they're working around things. After noticing that something doesn't work the way you like and finding a workaround the workaround slowly becomes muscle memory and you stop thinking about it.

And then you look over someone's shoulder and wonder _why_ on earth they would do what they're doing the way they're doing and when pointing out to them that there is a better way they just shrug and note that what they did works too.

Funnily enough, at least regarding UX, such coping behaviour doesn't seem to register as a nuisance after you have your workaround. That being said, I still prefer getting things right enough that users stumble on the obvious and easiest way first.

<comment><USER14> In a sense, all technology usage is the child of working around limitations; when the plasticity of thought meets the annoyingly concrete world, something's got to give. The best technologies, then, are the ones that conform to our predispositions and allow us to reuse pre-existing workarounds.

</comment></comment></comment></comment></comment></comment><comment><USER16> I use Bettertouchtool's window arrangement functions which you can set to (nearly) any custom shortcut you want. I use these on all applications not just Finder (in some it will not work) and I use these all the time.

my laptop:

\- fn + left middle double tap -> position/maximize window to half left screen

\- fn + right middle doubletap -> position/maximize window to half right screen

\- fn + top middle doubletap -> maximize window

on my desktop workstations I use keyboard shortcuts.

<comment><USER17> I also use BTT, but just drag the window to the left/right/top edge of the screen accordingly. Turns out that's enough for me so I even stopped using Moom which alows more flexibility.

</comment></comment><comment><USER18> I always bind super-left and super-right to <https://gist.github.com/unhammer/5336830> (requires wmctrl and xorg- xdpyinfo), so I can tile any two windows left/right. Also handy when e.g. reading an article while note-taking, watching a screencast while chatting, etc.

I guess I should try a tiling window manager some day, but I almost never need more than fullscreen vs 50/50.

</comment><comment><USER19> <http://totalfinder.binaryage.com/>

You're welcome.

</comment><comment><USER20> Terminal (or better yet iTerm 2). It's the best filesystem manager out there.

</comment><comment><USER21> I recommend spectacle instead of divvy. There were a couple problems that I had with divvy resizing and placing windows. Spectacle addresses those concerns.

<comment><USER22> I haven't used Spectacle, but I wanted to point out Better Touch Tool as another option to those investigating Window Mgmt apps/scripts:

<http://blog.boastr.net/?page_id=1619>

BTT provides the same window controls as Spectacle, configurable to your custom keyboard or mouse or touchpad actions, plus a lot more that may be useful to you. I've been very happy with BTT.

</comment></comment><comment><USER23> Use total commander not open source but definitely us worth every penny sold more than 25m copies

</comment><comment><USER24> Reminds me of <http://panic.com/transmit/>

</comment><comment><USER25> Oh, you mean F3 in that usability-horrorshow-totally-not-to-the-level-of-MacOS that is Ubuntu?

</comment><comment><USER26> TotalFinder and Divvy work for me. I get exactly what he's looking for.

</comment><comment><USER27> Hello, TotalFinder author here. I'm a HN addict too :)

</comment><comment><USER28> Forklift v2 will do this pretty well. Sure it costs $50 but it does a lot for a program.</comment>


Show HN: Build python ASTs in 502 lines of python without using modules - <AUTHOR> https://github.com/asrp/pymetaterp <comment><AUTHOR> This release is a bit early but it does run just fine, at least for the tests I did. I thought I'd make it available today because of recent interest in similar topics [1, 2].

I didn't think it was possible to get the whole thing into 500 lines (well, 502 lines but `Node.__repr__`, commented code and a number of other knick knack aren't needed except for debugging). At least top search engine results all point to using large tools and/or needing multiple passes of different kind which makes the subject sound complicated and hard to get anything even working.

Prompted by arcfide's project [1], I rewrote this one and the main part (boot.py) went down from ~600 to 100 lines. Of course, the features available are not the same but I'm starting to see why shorter code is easier to change globally. I'm much more willing to refactor (by hand) anything that only happens at most 6 times in the code! (And also maybe those other features aren't as useful as I thought.)

I wasn't sure how to count lines for this one. The generated tree contains no extra information (it can be regenerated from itself and the bootstrap grammar).

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

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

(both are not quite the same, just similar)</comment>