What programming language has made you the happiest? - <AUTHOR> http://thomasalwyndavis.com/2010/10/what-programming-language-has-made-you-the-happiest/

<comment><USER2> Before I explain my answer, the reader must understand that I'm a pretty satisfied Python programmer now who wouldn't go back. But in terms of actually bringing happiness to me in one brilliant burst of energy, there's only one language in my history that achieved this:

Perl.

Oh sure I detest Perl, now. It provides you with too many ways to make code that fails to express the problem clearly to another programmer, and I'm long past believing that code can survive having only a single mind contemplate it. But it came at a perfect moment for me.

I had spent my childhood dreaming of science fiction futures and tinkering with electronics and computers and always feeling like I was missing some last little a-ha that could make it click and put all the facts in my head together toward acts of creation. I hung out on BBSes with cocky BBS software authors and hackers and really wanted to be part of that crowd. I figured I would take a course at some point and they'd lead me by the nose and by some sort of socratic process I'd suddenly snap and be just like these folks.

So at this point C was being poo-poo'd in favor of C++, and C++ was rapidly on the rise as the premier industry OOP language par excellence. So I tried to learn it. I enrolled in a CS program that taught C++, and made some small progress, but not enough to work on the projects I found interesting. I raced ahead in the assignments and read ahead in the book and found myself in an inevitable slide down the terrible valley Louis Brandy once wrote about:

[http://lbrandy.com/blog/2010/03/never-trust-a-programmer- who...](http://lbrandy.com/blog/2010/03/never-trust-a-programmer-who-says-he- knows-c/)

Further, no one had ever explained to me the true role of libraries in programming. I saw an entire empty field ahead of me, thinking I'd have to write my own pixel display routines and modem drivers and input handlers in C++ just to get to a point where I could BEGIN to express the problems I was trying to solve. All the textbooks bragged about how I could do my bone-stupid corporate spreadsheet applications in C++ and have them run on PCs and "mainframes" alike, and not one said "chillax bro, there's a bunch of libraries for the low-level stuff."

I entered into a serious depression, partly because this utterly absurd and inconsistent language just felt like something I'd never truly understand, and partly because working in it made me feel like I actually didn't have it in me to stomach coding.

At my university there was an install disk that wiped a PC and flattened it with a new OS image off of an NFS share or some such. I asked the author how he wrote it and he explained it wasn't hard bit-banging work but just making use of Unix's features, mostly emulated by the Perl 4 interpreter he'd included on the DOS boot disk. I looked into it.

Going from C++ to Perl was the single greatest ramp-up in ability I've ever had. Suddenly I was writing system scripts, games, Internet-connected BBSes, library database programs, and all sorts of things just to solve any problem I encountered. The two Perl books at the time, camel and llama, had great prose, great examples, and a catalogue of library functions that reassured any fears I had of having to re-invent the wheel. Even today I feel like those books do better than most for teaching new programmers.

Dynamic typing was one thing, rich core libraries yet another, but the goofy second-guessing nature of Perl syntax kept the house lights low long enough that I never felt incapable or insecure. It wasn't too long before I felt cocky and disdainful of C++. It just didn't feel expressive enough to me.

I think I must have stuck with Perl for five years before slowly jumping ship. On the bottom I was getting better at bourne shell and awk, and on the top I was getting better at Python. I was also finding my brain able to accept more novel systems like Lisp and Forth and Prolog.

I'll never use Perl again if I can help it, but I have it to thank for getting me out of a real crisis in my youth. That nutty Jackson Pollock painting of a language is responsible for all the programming happiness I've had since!

<comment><USER3> My experience is almost identical to yours. Taught myself BASIC from library books as a kid, then C++ as a teenager. When I started using Linux and discovered Perl, it was an _amazing_ spike in productivity. I eventually switched to Python (and then a bunch of other languages), but Perl got me out of a C++ rut.

Nowadays I'd rather use C than C++ (typically with Lua), and have learned quite a bit from Lisp, Prolog, Forth, ML, etc. as well, but the sheer _immediacy_ of Perl and vi was a revelation to a kid used to Borland Turbo C++ and its IDE.

</comment></comment><comment><USER4> Haskell, but not programming in it.

Haskell really drilled in the concept of functional programming. As much as I struggle to write 'normal' code in it, the computational aspects are really fun to write.

 _However,_ after a while, I began to incorporate functional programming concepts into other languages, notably python & javascript.

Python already has functional elements built-in, such as map, reduce, filter, lambdas and list comprehensions. Its cool to replace for loops with long "one- liners"; it creates a different perspective of a list.

Javascript, on the other hand, is less blessed than python. Closures do help, however. Although JS 1.6 & beyond support Array.map, folds, and filters, it's hard to rely on them. After writing my own libraries enough times, I started using ( <http://documentcloud.github.com/underscore/> ) Underscore.js, if not JQuery, in every project. By its very nature, looping over DOM elements lends itself very very well to functional style programming.

</comment><comment><USER5> I know that since 'the good parts' it's almost become the ironic t-shirt of the programming world, but I really love JavaScript, here's some of my reasoning:

1\. By now everyone knows of JavaScript's functional features, which I must admit are awesome, but many other languages share these. But what few languages share regarding these is they're a very common part of standard js programming. A lot of new python and even ruby programmers have never touched the functional features of the language, but even a copy & paste js 'programmer' has probably written a lambda function, used a first class function, and maybe even used a closure.

2\. It's fundamentally different than most other other languages. I love Haskell and it's awesome type system, but I also love JavaScript and it's true rejection of a type system, even throwing out classed based inheritance for prototypical. It's also a world where events and asynchronous computing are completely commonplace. What's interesting about this is that it is related to number 1, in other words it is an extremely practical application of principles of functional programming. Having written my share of parallel C code, writing concurrent/parallel code is much more of a pain without basic features of a functional language. On top of this being able to easily implement things like currying is actually pretty amazing. At the same time the language is very, very simple at it's core.

3\. The above 2 reasons are things I would expect from a less popular and therefore harder to distribute language. Common Lisp is definitely more interesting of a language than JavaScript, but if I want to share something I've done in Common Lisp with someone, they better also be a fan of the language. On the other hand if I make something really cool in JS I can easy share it with anyone, even people who think IE is the 'internet'. Also I'm pretty sure that more people of varying skill levels can read JavaScript than any other language. So if I want to demonstrate something, for a very general audience JavaScript is much better than C, and for demonstrating functional programming techniques it's worlds better than Lisp or ML.

<comment><USER4> Javascript also has an incredibly built-in yet rich interface for GUIs that most languages don't have. You can easily use HTML to make an interface. With most other languages (exception: VB, ha), it takes significant effort to marry the frontend with the backend.

</comment></comment><comment><USER6> All of them.

Sometimes I feel like I'm the only person who is pretty happy with any language. They all have little quirks I don't like, and they all have things that I think makes them better than other languages.

For a while, I had a few languages I thought I hated. But as I learned them better, I came to appreciate them, too.

</comment><comment><USER7> IBM/370 Assembler with command-level CICS, probably because I used it early in my career on an app where every program had to be small and fast. Nothing since then has approached the sheer fun of all that bit-diddling.

<comment><USER8> Same for me, except it was a 360 :) That, coffee, an 8 foot manual rack along with a copy of Stern's book on Assembly kept me going until the wee hours...

<comment><USER7> Actually my first small, fast program used only the 360 command set because that's what my tech school had taught me. It had lots of moves of variable length data, but my "mentor" at work didn't clue me in about MVCL so I rolled my own variable moves by modifying code in flight. Yikes. Before writing the 2nd program I read more code and more books and learned the right way to do it. Both programs are still actively maintained 25 years later, and that first gets a lot of WTF responses when a new guy lays eyes on it:-)

</comment></comment></comment><comment><USER9> QBASIC: I had a coding friend in elementary school and on the weekends we had QBASIC sleepovers. We stayed up til 3 or 4am making barely playable games and fake imitations of operating systems. I remember the vivid rush of excitement when something actually ran: almost unbeatable (only skydiving, burning man, camping, and some fun time spent naked have compared since).

Much more recently, learning OCaml after many years spent coding C++ was like a long drink of cool refreshing water.

</comment><comment><USER10> The one I'm using that's making me the most money.

At the moment, I'm into Java for creating Android apps and having a good time with it. Before that, it was PHP. At one time it was ASP. Once it was Delphi/Pascal. When I was a kid, BASIC.

I don't think the language makes me happy, I think my situation makes me happy, so by association, I'm happy with the language I'm coding in at the time I'm happy. Or something like that.

<comment><USER11> Well, I think of it this way:

I recently moved from a Python+Javascript project to a Java+GWT one, and while the project has been interesting, I must say I know that I will not be voluntarily using Java post this project - unless it happens to be something like Android, which I haven't yet taken on.

Python and Javascript are by far the languages that have pleased me the most: Python for its simplicity and terseness, and Javascript for the absolute fun stuff you can do with it(closures, prototypal inheritance).

Java comes off as being more boilerplate - not just the generated code, but the IDE my colleagues claim you need in order to minimize writing the scaffolding yourself. Not sure if this holds true - I keep hearing myths about how Emacs is a good Java editor and all that.

I generally get a kick of out writing tight code, and Java seems bloated by design. YMMV, and it obviously does.

</comment></comment><comment><USER12> Ruby has by far made me the happiest because I understand it the best and can get the most done in an elegant way. However, I do get bouts of language jealousy. For example, I am enamored with the way Haskell deals with looping constructs and lists but I don't understand IO well enough to get something very useful accomplished with it. That is much more my fault than the language's.

</comment><comment><USER13> Most of the time it seems like it's whatever language I'm not using at that moment. :)

I work daily with Python, various build script languages, C++, assembly (in various flavors and dialects), and C#, and at the end of the day it isn't the language that makes me happy but the libraries and ecosystem available. These days it's C# and .NET+XNA that makes me happiest.

</comment><comment><USER14> I've had pretty much the same experience as you regarding Perl. I started with C in high school but never really got anywhere. Once I found Perl a few years later, I was finally able to do the things that I wanted to do in C. I stuck with it for several years and got quite good with it. Having this knowledge and experience made it MUCH easier to learn other languages and finally I was able grasp C/C++ (though, not as well as Perl though) and do some cool stuff. Like you, I feel that I owe...well, pretty much my whole programming career to Perl. Like you, I don't use it these days, but it's definitely the language I look upon most fondly.

</comment><comment><USER15> Logo as a kid looking at that turtle draw was freaking incredibly it is the closest I've seen to magic ever since.

Now it means Smalltalk and Seaside.

The one that has made the most money is PHP

<comment><USER16> Yeah - I still get a little thrill whenever I type a command and the tape library arm whirrs into moton :-)

</comment></comment><comment><USER17> Clojure. I've been a professional Java programmer for 10 years, and in that time I've dabbled in Haskell, OCaml, Python, and Common Lisp, being happiest with Common Lisp but irritated with the lack of standard modern libraries, the usual complaints. My 26 years of professional programming feels like a long journey to Clojure.

</comment><comment><USER18> At the moment - Scala. Previously - Python.

</comment><comment><USER19> Whatever lets me do more with less code in a fairly clean way, which, at the moment, means Ruby.

</comment><comment><USER20> I'd say, Scala and Ruby (primarily JRuby, i'd say). Most of time I'm working with Java libraries, and I do enjoy Java a lot, but it's not quite as powerful as Scala or Ruby. So, reusing Java libs is awesome, since there's a whole lot of them laying around.

</comment><comment><USER21> I find it's less about the language you're coding in and more about the project. Find something engaging and interesting to work on and derive happiness from that.

Of course, liking the tool you're using can help, but it shouldn't be the defining factor.

</comment><comment><USER22> Python. I moved from Java to Python and absolutely love it (this is my short answer)</comment>


Silicon Valley's New Hiring Strategy - <AUTHOR> http://www.fastcompany.com/magazine/160/ign-self-taught-coders

<comment><USER2> I think calling it a "new" hiring strategy is deceptive - the more innovative companies in the valley have been hiring based on ability instead of status or education for quite a while.

</comment><comment><USER3> "Software is thought of as a science,"

What?</comment>


Ask HN: If you were "too early", were you right or wrong? - <AUTHOR> I often see companies that fail reason that they had a great idea, but they were "too early" for the market. But I wonder if being "right" at the wrong time, simply means you were wrong?
For example, I remember reading about an example where a person put together a ridesharing algorithm years before Uber and Lyft. Some people would say that person saw the future or that they were "right all along". But then there's the argument that they worked on something that had no potential at that time, ie: years before the modern cellphone was widely used.
I also know someone that had built a "cloud kitchen" a decade ago. They could've been "right", but ultimately at that time, they failed.
Maybe this thinking is too dichotomic, but I do wonder if there's a thoughtful way to consider these situations with hindsight. <comment><USER2> It seems that you're relating moral judgments ("right" or "wrong") with the level of success a company achieves. A company's success is not a moral question. A company that correctly identifies a trend and scales is no more "right" than a company that correctly identifies a trend and does not scale. So someone being "too early" does not have much of anything to do with how right or wrong they are. Rather, you're talking about how being "too early" relates to the probability that you build a successful business. But what's challenging with that line of thinking is that how you evaluate the "success" of your business is relative to your goals and reference points. If I'm "early" and build a $2M company that I'm happy with, it doesn't mean I'm a failure even if I could have built a $100M business down the road. I'm happy with the $2M, or maybe I'm happy with trying to start a business that failed. It depends on the person. Finally, the success of a business is a combination of many variables, not just the timing of when you started it. There are plenty of examples of people who started businesses at the perfect time, but that simply didn't have the combination of factors required to build a successful business.

<comment><USER3> "Right" and "wrong" also mean "correct" and "incorrect", which are not moral judgments.

</comment></comment><comment><USER4> Very likely, that our 'wrongs' greatly outweigh our 'rights'. However, we tend to only remember those times we got it 'right'.

With true randomness, we'd expect that we'd be 'right' about as often as we get things 'wrong'.

</comment><comment><USER5> Last-mover advantage matters more than First-mover advantage, according to Peter Thiel.</comment>


Basic Ripple Explanation - <AUTHOR> https://www.orc.press/coins/xrp <comment><AUTHOR> TLDR: The Ripple platform is intended for use by large financial institutions to facilitate the exchange of one asset for another (e.g. USD for EUR or gold buillon for XRP). XRP's primary use is as a bridge currency and it can facilitate conversions like USD -> XRP -> EUR or gold -> XRP -> JPY.</comment>


Show HN: I made an online personal training and nutrition marketplace - <AUTHOR> http://bodyko.com

<comment><AUTHOR> Thanks to Balanced for great marketplace billing integration!</comment>


Apache Hadoop Wins Terabyte Sort Benchmark (1 terabyte of data in 209 seconds) - <AUTHOR> http://developer.yahoo.com/blogs/hadoop/2008/07/apache_hadoop_wins_terabyte_sort_benchmark.html

<comment><USER2> According to the Amazon Web Services calculator, reproducing this result yourself would cost $118,553.47. That's for 1 TB of data transfer in and 1/10 of that out (presumably one would pull down only sorted indices, not the entire sorted dataset), and 910 Extra Large compute instances for an hour. The price goes up pretty quickly if you spend longer than an hour setting up your many nodes. Obviously feel free to check my assumptions.

</comment><comment><USER3> 209 seconds of time on 910 2ghz nodes gives about 3.8e14 instructions, or about 380 instructions per byte (assuming only one of the dual cores on each Xeon was active). That's quite a lot of overhead especially given that they could have most of the sort in the 7TB of available cluster memory.

They were probably hitting their interconnect limits.

</comment><comment><USER4> You wouldn't need to transfer the data in or out. You can generate the data using a map/reduce program and check it using another map/reduce cluster. It takes about 4-5 minutes to generate the data (it is longer because we write 3 replicas of the input data on 3 different nodes). The checker program takes a couple of minutes to make sure that all of the data is correctly sorted. There aren't any indices, just the flat text files for both input and output.</comment>


Ask HN: What banks don't have cartoonishly bad password practices? - <AUTHOR> Chase and Wells Fargo passwords are case insensitive.... <comment><USER2> It's a financially motivated decision. Banks have a high percentage of people who are tech illiterate. Many of these people don't use the password reset when they forget their password, they call tech support, which costs banks a lot of money. Banks realized they could reduce this call volume by making their passwords case insensitive and simply refund people if their accounts get breached.

Most banks also have a mandatory security question, which makes it marginally more difficult to get brute forced.

Source: Used to work at a bank. Would not recommend.

</comment><comment><USER3> When I moved back to the UK after having had US and Canada bank accounts for several years it made me realize how much bad service British people are willing to put up with in comparison. Logging into a UK bank account online (the worst imo is HSBC) is a total nightmare. You need to know 4 passwords/pins, and have either a security code generator device or phone app that will generate one for you. For my North American banks, including one Canadian account I still have, it's simply the number on your debit card and a password, about as hard as logging into email.

</comment><comment><USER4> In the UK the challenger banks like Monzo, Starling, etc are pretty good. Monzo just emails you a "magic link" to login, Starling uses a proper password you can use your password manager to remember.

</comment><comment><USER5> > Chase and Wells Fargo passwords are case insensitive....

How do they keep any sort of regulatory compliance?

<comment><USER6> Please see [https://news.ycombinator.com/item?id=4285954](https://news.ycombinator.com/item?id=4285954)

</comment></comment><comment><USER7> Case insensitive isn't necessarily insecure. It just means you'll want a password roughly twice as long for equal security. Now, if they do that and also limit passwords to, say, 8 chars.... argh!

</comment><comment><USER8> Simple.com is pretty solid from a security standpoint from my limited observations as a consumer, although they only offer two factor via SMS (not TOTP likely google, etc)

</comment><comment><USER9> We even have a local bank which only allows numeric passwords... They have two-factor authentication though.

</comment><comment><USER10> Is case insensitive really a bad thing? Bank logins aren't exactly brute forceable.

</comment><comment><USER11> The username and password are case insensitive btw :)

</comment><comment><USER12> Any Bank that uses passwords in preference to two-factor authentication?</comment>


Syria Hospital Bombing: Are the Rules of War Breaking Down? - <AUTHOR> http://www.npr.org/sections/goatsandsoda/2016/04/28/476064028/syria-hospital-bombing-are-the-rules-of-war-blowing-up <comment><AUTHOR> A comparison of the attitude changes depending on who is doing the bombing is when the US bombed the hospital in Afghanistan.

16 U.S. Service Members Disciplined In Mistaken Airstrikes On Afghan Hospital

[http://www.npr.org/sections/thetwo- way/2016/04/28/476071059/...](http://www.npr.org/sections/thetwo- way/2016/04/28/476071059/u-s-service-members-disciplined-in-mistaken-bombing- of-afghan-hospital)

<comment><USER2> Just what you might expect from the National Petroleum Radio.

</comment></comment><comment><USER3> Rules of War is like US bombing and droning everything is allowed everything else isn't ?

<comment><AUTHOR> I've always thought Rules of War was either an illusion or an oxymoron. A war with rules would be a sporting event, wouldn't it?

Every war has it's atrocities. War itself is an atrocity.</comment></comment>


Rediscovering My Daughter Through Instagram - <AUTHOR> https://www.nytimes.com/2018/12/08/opinion/sunday/parenting-instagram-adolescence.html <comment><USER3> Never let anyone tell you that our current standard of "normal" is normal. It's only the pressures of the world that make teenagers retract from their parents.

Every emotion you've ever felt has been developed, whether by God or by hundreds of thousands of years of natural selection. Conscious thought may deliver us to emotion, but the emotion that you arrive at is something that has always been inside of you. When feel something isn't right, it's a good indicator that something isn't the way it's supposed to be. There's no reason that the world would be made in a way where mothers of teenage daughters are supposed to be miserable and shut out. There's no reason that the transition of growing from a baby to becoming an adult should not be smooth and untraumatic for all involved parties. What is the evolutionary advantage of making mothers miserable as a necessary part of producing offspring?

The idea that the family has become such a secondary consideration in modern society, to the point that this mother is advocating to others mothers about the opportunity to vicariously know your own child via the Internet... It's nothing short of heartbreaking.

Nothing is more certain in my mind than the idea that it doesn't have to be this way, and historically has not been this way. Kids have been sexualized and have to grow up too quickly. Kids have been made into tiny workers that do busy work for most of their childhood, away from their parents, because both parents have to work.

It's dystopian, disgusting and perverted

<comment><USER4> > Kids have been sexualized and have to grow up too quickly. Kids have been > made into tiny workers that do busy work for most of their childhood, away > from their parents, because both parents have to work.

> It's dystopian, disgusting and perverted

Correct me if I'm wrong, but for most of history, weren't "kids" already married and working to support a family when they were in their teens?

I know my grandparents, my great-grandparents, and a few before them were married before they turned 18. And two of my grandparents told me they worked at a factory when they were around 7!

Add to the fact that if you got married and then moved to another state, it could be years before you see your parents again.

After my paternal great-grandmother got married at 16 and moved across the country, she never saw her parents again. They did exchange letters but that was it. And according to my grandfather (her son), it was pretty common.

<comment><USER5> Yeah this is very not new at all. Before industrialization they were tiny workers that did actual work on the farm when both parents were working. Those lucky enough to be nobility were trained from a young age in the various areas a noble needed to know.

Marriages tended to be a bit older among peasants just because there was 'less of a point' but nobility had marriages at 12 or so - and not even always with a comparable age partner. Certainly not stating that this is /right/ but the point is that normal doesn't really mean much and don't look to the past for arcadia.

Really historically if anything kids are growing up 'slower' than they were for centuries - and that is a far better adaptation to our current needs - <USER2> need more skilled specialist work outproduces manual labor thousand fold.

<comment><USER6> And beyond all that, puberty is when our bodies start telling us we're adults, while society tells us we're not. A large part of teenage rebellion seems to stem from that disconnect.

</comment></comment></comment></comment><comment><USER7> The author's attempt to connect with her daughter seemed obviously misguided to me.

Upon discovering that her daughter -- a budding guitar player -- liked listening to one of the same songs she did, she thought it would be wise to demonstrate that she, the experienced adult, already knew how to play that particular song on the guitar. Next, she offered to teach her daughter how to play it herself, robbing her of any opportunity to a) learn the song on her own, and b) decide for herself that it was a song she wanted to learn in the first place.

I think a lot of parents could do with a bit more empathy for their teenage children. Teenagers are developing newfound desires for autonomy and mastery, but still feel largely trapped by their circumstances. It's no wonder they lock themselves in their rooms -- it's the only environment they have any control over.

<comment><USER8> Yes. I'm nearly 30 and my mother still has the power to instantly discourage any hobby I'm picking up by spamming me with tips, telling me the equipment I've bought is no good and I should buy what she has, and insisting on "showing me how it's done". That's not bonding with your child, it's overpowering your child. It's subtly telling them that you, the parent, are all-knowing and all-powerful and you'll never be impressed because you can always do better than your child. It's asking the child to be impressed by you instead.

</comment></comment><comment><USER9> Discovering the fake perfected Instagram version of her daughter.

Maybe she couldn't deal with the not-so-perfect normal life daughter, and that is why said daughter shut her out.

Maybe not - but after "ruining" the Led Zeppelin song for he daughter, now she went after the one other thing that seems to make her daughter happy, which is Instagram. What if that article now gives her daughter unwanted fame and ruins that part of her life, too? Maybe it is still about control, not participating in someone's life?

<comment><USER10> If the daughter thinks that a song is suddenly uncool or ruined just because her mum liked it when she was younger and wanted to share that with her, then pardon my French, but the daughter sounds like a bit of a cunt. I'm sure there are a lot of people here who have picked up some top tunes from their parents.

Of course we don't see the full picture here, but I think it's great that the mum sat down to play a tune that her daughter likes on the guitar.

<comment><USER6> My perspective of the article, which seems to have not even crossed your mind: The mother's actions aren't those of someone trying to understand her daughter, but instead co-opt her daughter's interests to make it all about herself instead of her daughter.

It's not so much that it's "uncool" or "ruined", but that her mother isn't allowing her to find her own identity, trying to pull her back into defining herself in terms of her mother. And she doesn't want to be just her mother's add-on.

</comment></comment></comment><comment><USER11> Wow that was beautifully written.

</comment><comment><USER12> >A few months ago she cued up "The Rain Song" by Led Zeppelin, one of my favorites when I was her age.

What a nice family!

</comment><comment><USER13> "I had never asked to see Paulina's feed. I didn't even know the name she used."

I think therein lies a big part of the problem. She's feeling rejected that her 15 year old daughter won't listen to her acoustic cover of some band from her generation, but then doesn't express interest in this huge part of her daughter's generation.

I don't have children so this is just armchair/backseat parenting which I understand is much easier from the sidelines. That being said, it seems very evident to me that it would probably help her tremendously if she would update herself with pop culture and technology a little bit to make herself a more accessible and relatable to her daughter, because playing music from yester- generation is only going to make herself seem more foreign and distant (in this particular scenario)

<comment><USER14> I think you nailed it from the armchair. My parents and my wife's parents reminisce fondly about evenings spent playing cards and singing songs with their families growing up, and they're sad that those things aren't much a part of our culture any more (at least not in our small circle of the world). The other night though, my wife and I were playing Stardew Valley multiplayer with two of our young children and it hit me that we had basically organically stumbled upon family game night just from trying to do things that the kids were interested in as much as us that also involve some interaction with each other (as opposed to say, watching the same TV show next to each other).

<comment><USER15> Have a big upvote from me. Your family sounds awesome, and, I guess, just the kind of family that I wanted growing up. A family that would be as interested in the world of Harry Potter and Tolkein as I was. Or in the music I found interesting.

I really like this style of parenting that I see here in the US where children are not treated "childishly"; are actually listened to and the parents try and build a relationship with their children by engaging in activities that all enjoy.

</comment></comment></comment><comment><USER16> This seems mostly like a not-so-humblebrag about her daughter than anything else. Child of NYTimes editor and journalist in Brooklyn has 1000 followers on instagram. Real big news.

<comment><USER17> It's more of her having an emotional discovery of how she can still see and view her daughter's life, even if she hasn't figured out how to be an active participant yet. Sure she used her position to write about it and throw it up on NYT but the bigger point is that it could help many parents who have similar issues find some solace, or maybe another avenue to reconnect with their teenager's life. I think this is something that resonates with those who have children that are pulling away.

</comment></comment><comment><USER18> Millennials - the generation of photographers, because of smartphones and instagram.

Does anyone else get irritated when their friends feel obligated to whip out their phone to take pictures when you're out and about in new locations?

<comment><USER19> As one of those friends: I'm sorry I enjoy your company and want to cherish it as a good memory.

<comment><USER20> It depends on what you're taking pictures of. A lot of people seem to snap pictures of landscape, with or without other strangers in it. Those are the kind of pictures that aren't really durably interesting over the long haul. For well known places you can always find a pro who did a wonderful job capturing it. Now, if you're taking pictures of yourself and/or your friends, that makes perfect sense to me. As long as it doesn't get in the way of actually enjoying the experience.

<comment><USER21> Landscape pictures can serve as a reminder of what you were doing, a sort of diary. Sure, you could find professional photos, but they won't be as rooted in your memory.

By looking at an old photo you remember where you were, what you were doing, and _why_ you decided to take the photo.

In other words, while a pro may be able to capture the location better, they won't capture your memory of visiting it as well.

<comment><USER22> Also the meta information is nice.

</comment></comment></comment></comment></comment><comment><USER23> I must be extremely disconnected from this author's perception of the world (and their relationship with their daughter).

This quote at the very top of the article really _grinds my gears_ : "Few things are more painful than loving a 15-year-old girl, particularly when she is your child."

The rest of the article isn't as catchy, but reads a lot like a very long (15-year) case of postpartum depression.

<comment><USER24> Please don't post shallow dismissals, especially when mixed with rage. None of us, including you I'm sure, wants HN to be the kind of place where people just secrete unfiltered bile.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


FoundationDB — Not Your Standard NoSQL Database - <AUTHOR> http://techcrunch.com/2012/09/10/foundationdb-not-your-standard-nosql-database/

<comment><USER2> I see a lot of snarky comments (maybe that has to do with the journalism of the article), but my recollection of FoundationDB is that it _is_ interesting. It's trying to tackle the problem of enabling ACID, while also not being SQL- dialect oriented, putting it in a somewhat unique part of the overall landscape.

So, if you are put off by TechCrunch's journalism, I don't know of a great reason to let that spill over into one's gut assessment FoundationDB. Here is a link to previous discussion, where many people try to poke holes into the tradeoffs being made for FoundationDB: <http://news.ycombinator.com/item?id=4294719>

Perhaps the company needs to work to reign in some of the language, it seems like the last discussion revolved around some aspects of the system that tripped a lot of skepticism-detectors (or at least "glaring caveat-omission" detectors) last time also.

<comment><USER3> FoundationDB founder here. Thanks for this comment. It's pretty hard to talk about this detailed technical stuff in the chaos of a conference. The discussion you link to and our web page both have a bunch of information that I think is high signal/noise for people interested in the tech details.

If anyone is at Disrupt, please come by and see our live demo of a portable cluster of the database dealing with power and network failures. Of course, we'll try our best to answer questions here too.

<comment><USER2> If I had any feedback, it might be to produce a frank document of trade-offs in your system: workloads that work very well, pathological workloads that perform poorly or lead to some awkward code, given the mechanisms at play. I'm sure you have chosen your trade-offs carefully, or else you wouldn't have bothered doing the hard work to commercialize them. Here you may want to assess the advantages of other general approaches (I think specific implementations would be too much detail and invite a quagmire of nit-picking) versus your own, but the problems they also create that you do not have.

It's something I'm going to try to do anyway, but it would make me feel as though I have a more constructive relationship with the company rather than trying to guess what mix of design decisions you fall in, probably all of which have at least been implemented at least once independently before in some system or another -- however, your mix is likely novel.

However, I don't see this done very often in proprietary offerings (that's still the case for FoundationDB, right?), and I'm not sure if that's because such frankness is a stupid idea or if because everyone is just doing what everyone around them does. It is something that more collaborative open source projects do more freely.

<comment><USER4> Different FoundationDB founder here :)

We'd be happy to give you information that would be helpful for your document - your offer to put something like that together is generous, helpful, and we'll definitely take you up on it.

Why don't you shoot me an email at nick dot lavezzo at foundationdb. If you're at Disrupt or in the SF area we might even be able to get together before we head back to DC on Thursday morning.

Thanks again for the helpful comments and interest!

<comment><USER2> I am speaking more generally -- I'm not evaluating a new database for my toolchain at the moment, and to be honest, I am very shy of anything that is proprietary-only. However, I thought your ideas were interesting regardless, so I felt compelled to defend their interesting-ness.

I'm just tired of trying pierce through proprietary database literature language to sort a new database system that has Apparently Magical Properties into the multi-dimensional bin of tradeoffs. Consider the FAQ for Redis: <http://redis.io/topics/faq>

Or, the very short rundown in the second half of the home page of Postgres-XC <http://postgres-xc.sourceforge.net/>, although it probably could use some fine-tuning. Many of the developers, including the first one, are not native english speakers.

A good example in proprietary-land is Datomic: <http://www.datomic.com/faq.html>. Here's a good paragraph:

        How does Datomic handle consistency, availability and scale?  Because
        Datomic separates the handling of transaction processing and
        query/read, it can make independent choices for each
        facility. Transactions favor consistency over availability, and the
        loss of a transactor will require traditional failover
        approaches. Queries and reads, however, are serviced by the highly
        available, replicated and scalable infrastructure of DynamoDB. And,
        since the data segments stored by Datomic in Dynamo are immutable,
        they are always consistent. Thus, Datomic is well suited for
        applications that require write consistency and read scalability.

On the other hand, I really appreciate your benchmarks to give me a ballpark idea, and think it's great that you offer them up so easily. They could probably take a less pronounced position in your literature if you find you are in need of space for other material, though.

<comment><USER4> I see what you mean - thanks for the clarification. We'll be working on a FAQ to get up on the website soon, and we'll also be putting up a blog where we'll cover areas of particular interest in detail. I'm sure CAP will be one of the earliest topics covered, but we've made a lot of important design decisions while building this product and they should all make for interesting reading.

We've done our best to take the technical high road in those hard decisions - generally trading in ease of (our) development for stronger guarantees, more rigorous testing, and higher performance. We're excited to talk about our development process and decisions with the world. Looks like we've got some writing to do :)

</comment></comment></comment></comment></comment></comment><comment><USER5> "The service can scale across a distributed infrastructure without the worry of a single point of failure, making it simpler to scale."

:)

</comment><comment><USER6>
        FoundationDB can scale once across a distributed
        infrastructure. That's opposed to SQL database
        technology has to be installed on individual servers.

Can anyone explain?

<comment><USER4> A FoundationDB database can scale "horizontally" by adding multiple machines to a cluster, and you can scale the cluster up by adding more machines. This is opposed to standard SQL databases which provide one or more databases per server, but never one database from multiple servers.

<comment><USER7> That statement has really no foundation and maybe the founders of FoundationDB should read a introduction to distributed database book, for example "Principles of Distributed Database Systems" by Özsu and Valduriez.

</comment></comment></comment><comment><USER8> _The result, they say, is an infinitely scalable database that goes beyond what most NoSQL databases offer._

No wonder NoSQL gets so much flake.

</comment><comment><USER9> I've got a car that runs on water. No, really. The thing is, these other cars, they just decide to run on gas. Totally ignoring the potential of water power. Of course this design is really fundamental to the way cars will be built in the future, you could call it a foundation of a new paradigm for cars-- all the performance of a gas car, without all the hassle and expense- not to mention pollution-- of gasoline. Just simple pure water.

Don't believe me? You shouldn't. The question is, how can we take TechCrunch seriously when they do not even ask the basic questions?

Edit: Seriously, they say its distributed but ACID compiant. Ok, how do you do that? This violates the CAP theorem. How do they handle partitions? Without answering this, the article is as meaningless as an announcement of a water powered car.

<comment><USER10> I think you should take a quick look at oracle's exadata machines. Mostly because they are both distributed and ACID compliant.

</comment></comment><comment><USER11> There are standard NoSQL databases?

<comment><USER12> quite possibly, dbm: no sql at all, and has been around for 40 years.</comment></comment>


Mastodon Bone Findings Could Upend Our Understanding of Human History (2017) - <AUTHOR> https://www.nbcnews.com/science/science-news/mastodon-bone-findings-could-upend-our-understanding-human-history-n751406 <comment><USER2> The answer is obvious: time-travelers on a 'paleo hunting experience' trip.

"We'll just target 100,000 years before the earliest known human presence."

</comment><comment><USER3> I'm skeptical. From [https://np.reddit.com/r/todayilearned/comments/9i7sta/til_pa...](https://np.reddit.com/r/todayilearned/comments/9i7sta/til_paleontologists_have_dug_up_a_130000yearold/e6hpd5b/):

 _Professional archaeologist checking in. I hate to spoil the party, but the argument this represents evidence of human occupation of North America 130 thousand years ago doesn 't hold water._

 _First, there isn 't even consensus that Homo sapiens left Africa by that time. Additionally, the preponderance of evidence shows humans didnt occupy fully glacial environments until 80+ thousand years later, which would be necessary to make it to NE Asia and North America. The claim they were in North America by 130 thousand years ago is inconsistent with all available archaeological and genetic evidence (a whole other topic)._

 _Second, the argument that the "tools" and bone modification seen at this site were made by people doesn't hold up either. There are many natural processes that can mimic these types of breakage. There are diagnostic features of stone tools and broken bones produced by humans, but none of them are present on the objects Holen et al. point to._

 _Holen has a long history of making similar claims with no real evidence. He consistently fails to rule out obvious natural processes at sites he works at. I have personally seen him pick up a piece of naturally fractured fossil bone from a flood deposit and say "see, people." This is science by press release at it's worst, and there is good reason no other archaeologists accept his arguments. Unfortunately flashy headlines with extraordinary claims grab the press._

 _Don 't get me wrong, I would LOVE for this to be true. Finding evidence for a much earlier occupation of North America would be super exciting. But as a responsible scientist, I have to go with the evidence._

</comment><comment><USER4> Idea for a research project: find as many "...could upend our understanding..." and similarly titled papers as possible, that are at least a few years old, and see what percentage of them actually do, in fact, upend our understanding of the field in question. I'm thinking, uh, less than 50%.

<comment><USER5> Move over tech, it seems every week archaeology/paleontology is completely revolutionizing our understanding of the world on a weekly basis!

</comment></comment><comment> d--b Could it not be that some dudes 5000 years ago excavated the remains of the beast, and decided to turn the tusk into a coffee table?

I mean... when they find 130000 year-old human bones, then we'll know... Until then...

</comment><comment><USER6> could this be related to the younger dryas impact [https://en.wikipedia.org/wiki/Younger_Dryas_impact_hypothesi...](https://en.wikipedia.org/wiki/Younger_Dryas_impact_hypothesis) [https://cometresearchgroup.org/comets-diamonds- mammoths/](https://cometresearchgroup.org/comets-diamonds-mammoths/) im not sure what to think about that, as i just heard of this hypothesis recently. Maybe north america was well inhabited and all the humans got wiped?

<comment><USER7> I don't think so: the Younger Dryas interlude was well more than 100,000 years after this even took place.

<comment><USER6> previous research cited in this article says "The oldest widely accepted site for the first Americans dates to just 13,000 years ago." this coincidences well with the 12,800 years ago Younger Dryas event.

<comment><USER7> The site was dated over 100,000 years ago?

</comment></comment></comment></comment><comment><USER8> Hmmm, looking through the comments it looks very much like no one has read the article as the comments assume that the humans were Homo Sapiens. In fact the article speculates that the humans where either neanderthals or Denisovans.

The earliest neanderthals date to 400k years ago. And the high arctic at the time of this find 130k years ago was pretty much one cold dry circumpolar ecosystem as ocean levels were much lower than today. Given all of this context it's not really insane to think this could have happened though of course more evidence is needed.

</comment><comment><USER9> Perhaps OT, but these discoveries never seem to actually "upend our understanding of human history", they just refine it by changing our previous assumptions about various timelines.

Discovering that we were put here by aliens 6000 years ago would be an upending.

<comment><USER10> any thoughts on having a 'clickbait' headline vote button?

Does anyone think this would be helpful? what can be done about headlines written like this one and their relationship to HN

Any thoughts on what we cando to help journalists write better headlines as well in newspapers etc?

<comment><USER11> I'd be in favour of a Clickbait button. Clickbait may be par for the course in many parts of the web, but I expect better from Hacker News.

As it is, it _generally_ succeeds in keeping it out, but not always.

</comment></comment></comment><comment><USER12> Off: I chuckle everytime I'm misled like this when skimming through HN titles. Yesterday there was a piece about Kafka (the writer, not the event stream) and now this Mastodon stuff.

<comment><USER13> The title seems inline with the quotes from experts:

> _"My first reaction on reading this paper was 'No. This is wrong. > Something's wrong, '" said stone tool expert John McNabb of the University > of Southampton in Britain. "If it does turn out to be true, it changes > absolutely everything."_

And

> _"This discovery is rewriting our understanding of when humans reached the > New World," Judy Gradwohl, president and CEO of the San Diego Natural > History Museum, said in a statement._

Those quotes were probably cherry picked and a little out of context, but when experts in the field use such strong language, I think it's justified for reporters to do the same.

<comment><USER14> I believe the original comment was referring to being misled / confused about the decentralized social network Mastodon ([https://joinmastodon.org/](https://joinmastodon.org/)), not being misled as to the significance of the finding.

<comment><USER13> Oh, I get it.</comment></comment></comment></comment>


Ask HN: What niche/forgotten technologies do you wish were more mainstream? - <AUTHOR> ...Or you wish that we'd bring back or learn from more?
There's a lot out there. Occasionally I bump into systems, languages, techniques, etc. that I haven't heard of, and which don't seem to be popular, for whatever reason. For example, how many people use Clean, the pure functional language?
History is also littered with largely abandoned things like Prolog (which mostly survives in Erlang), Datalog, hierarchical databases, object databases, etc., some of which were experimental, others which were failed attempts at creating a shiny new thing. I suspect that while much of the abandoned tech would be hard/pointless to revive, there are ideas to learn from them.
Then there are technologies that are keeping people and companies productive and successful, but since there's no hype surrounding them, and productive people prefer staying productive, the grapevine is basically silent. For example, I was surprised to learn that Apache Storm, which has seemingly dropped off the big data radar, is still an active, popular project. Another project, ActorDB, keeps coming up on HN, but you never heard about anyone using it.
What's your favourite neglected technology? <comment><USER2> I don't know if it is forgotten/neglected or not, but the product called Magic (with some variations for marketing/tech) from Magic Software Enterprises was somewhat interesting to me. It was a product that let you build CRUD (with maybe some more features) apps rapidly, using something like a GUI tool with just 14 CRUD-related menu actions or so. It may have had a runtime that you could then use to run apps created using that tool, probably in some proprietary format of theirs. I never actually used it. But I heard about it from ex-colleagues in a company where I had worked earlier. They were a small software house developing custom business apps for clients. Soon after I left there, I heard from a friend who still worked there, that they had started using it for building apps for clients, due to the productivity benefits. I think it was originally an Israeli company. They also started a subsidiary in India later, I read.

Just checked again, some links:

[https://en.wikipedia.org/wiki/Magic_Software_Enterprises](https://en.wikipedia.org/wiki/Magic_Software_Enterprises) (Caveat: Just saw a Wikipedia notice at the top of that page.)

[https://www.magicsoftware.com/](https://www.magicsoftware.com/)

If anyone has used it, interested to hear your experience with it.

</comment><comment><AUTHOR> For me, I mentioned object databases a bit, and I think there's still a gap here not yet filled by RDBMSes or NoSQL.

The old object databases (now mostly-forgotten products like POET, ObjectStore, Matisse and Objectivity) were too tightly tied to a serialization format. Many of them wanted location transparency, where your app just worked with "objects", and they happened to be remote and persisted to disk — the same awful design mistake that doomed CORBA and, to an extent, DCOM. Turns out this data model requires a tight coupling between a language's OO classes and the persistence model, and it's also means that code that looks like it's working on RAM objects can't optimize for data paths in the way that SQL can.

Then there were systems like GemStone and Caché, which were tightly coupled to a single language/runtime (Smalltalk and M respectively). Probably very productive, but ultimately a dead evolutionary end.

At this point I think it's possible to have a hybrid database that's good at both relational-type and object-graph-type queries, i.e. to collect a huge amount of structured data with joins etc., but without the tabular requirement.

<comment><USER3> What's the difference between an object database and a database like Mongo? I used Mongo with C# and Linq and used strongly typed Linq queries that looked and worked exactly the same whether you were working with an in memory List<T> or a IMongoQueryable<T>. Of course when you work with an IMongoQueryable the Linq is translated to MongoQuery at runtime.

<comment><AUTHOR> I don't know Mongo or C#/LINQ very well, but I'll take a stab. For the most part, you could probably replicate the classic object database experience with MongoDB, assuming a sufficiently rich language integration.

For example, in most of these databases (e.g. POET), you'd do something like "p = db.persons.find(1)" and then call p.save() on it to make your changes persistent. You could also wrap multiple save calls inside something like Tx.begin() and Tx.commit(), and everything in between would operate within the transaction (which of course leads to an interesting challenge where objects "belong" to a specific transaction, and a rollback has to invalidate them). You could build something like this on top of Mongo, I think.

You could also do "p.employers[0].board.chairman". The access would be seamless and transparent. Under the hood, it would use the object graph to find and load the right object from the server. In other words, dereferencing a pointer to another object would follow the graph. This requires some language magic. With many of these products, you would write normal OO classes (often C++ and Java back then; Matisse supported Python), and then there were tools to inject the magic persistent code needed to get this level of transparency. The Java version of POET took your compiled .class files and modified the bytecode so that "p.employers" or whatever actually called the database to load itself. You'd have to have a step in your build pipeline to call this tool. I bet LINQ would make this easy.

As an aside, for many years none of these databases supported any type of SQL- type query; you were expected to use the graph. You'd always start with a root to "reach" any part of the graph. So you'd do "db.persons" or "db.companies" or whatever; what the root contained would be up to you, usually. But any filtering would have to be done client-side; so if you're looking at a subset of companies, you'd have to something like db.companies.filter(lambda c: c.stockPrice > 10). It could be quite fast since clients could cache all the objects it fetched, and listen to changes from the server to invalidate them. On the other hands, no joins. Later, there was an attempt at standardizing a query language called OQL (which would allow db.query("from company where stockPrice > 10") or whatever), but it was too little too late.

It's worth pointing out that many of these object databases prided themselves in being able to keep the in-RAM copies in sync. So if you hold on to that "p" variable, and someone makes a change to the Person object with ID 1, then changes are reflected in _your_ copy, automatically. So the client would listen on a server channel to receive change notifications (similar to MongoDB change streams, I guess). Every time you fetched an object, you'd basically start a subscription to changes on that object.

One thing that these object databases had that Mongo doesn't (as far as I know) is strong references. If your person object has a reference to a company object, then you can't delete the company without first unsetting it from the person. This is a good thing.

<comment><USER3> C#'s Linq lets you treat queries as first class citizens.

For instance:

say you have:

var customers = db.GetCollection<Customer>().AsQueryable();

Where Customer is a C# object and it can have nested objects.

When you right a query:

var seniors = from c in customers where c.Age > 30 select c;

Assuming that db is a Mongo context object and hover over the seniors variable at runtime, you will see the MongoQuery that is generated.

If you then write:

seniors = seniors.where(s => s.age < 90)

It will add the second predicate and modify the MongoQuery at runtime.

The query isn't actually run until you do something like

var oldCustomers = seniors.ToList();

If you went in and changed the customers initialization to an in memory List<Customers>, the same queries would still work, the ToList() it would generate actual code instead of a MongoQuery.

If customers were a reference to an Entity Framework SQL Server DbContext, the same Linq statements would generate SQL.

You can even write a method that takes in a Linq expression:

List<Customers> Find(Expression<Func<bool,Customer>>)

and call it

var oldFolks = Find(c => c.Age > 65)

C# translates Linq expressions to Expression Trees and then the Linq provider you choose (or write) parses the expression tree at runtime and converts it to the appropriate query language or for in memory lists, code.

You could switch out Mongo for an RDMS and all of the clients using the Find method would be non the wiser.

I guess OQL is a lot like Linq but since C# understand Linq natively you get strong typing, support for joins, etc.

<comment><AUTHOR> Right, this is a bit different and not really seamless (e.g. an object database wouldn't require a ToList()). The ability to express queries this way is nice, though.

<comment><USER3> The idea of ToList(), .Count() etc., is that the query isn't executed until you use such a function, you can keep composing the query and it will be translated and run on the server instead of the client.

For instance....

var seniors = customers.Where(c => c.Age > 65).ToList()

foreach(c in seniors) {}

Will be translated to a query and run on the database server.

var seniors = customers.ToList().Where(c => c.age > 65)

foreach(c in customers) {}

Will give you back the same results, but you will get back _every_ record in the table/collection and the filtering will be done client side.

Btw:

The first query could be rewritten as

var seniors = (from c in Customers where c.Age > 65).ToList().

You would only do .ToList() if you want to keep the scope of the connection small if for instance you are passing it outside of the class.

You can iterate the results directly from the query instead of returning the results in memory (using ToList()) and it would work just like any other database style cursor.

EDIT:

Just to clarify from my first post, the example should have been

List<Customers> Find(Expression<Func<bool,Customer>> predicate)

{ .... return customers.Where(predicate).ToList();

}

This pattern also works great for unit testing. You can mock out your database Context and use a List<T> Customer to store data and you can still test your queries without having a dependency on a database.

</comment></comment></comment></comment></comment></comment><comment><USER4> nntp / usenet. It had moderation problems, because it was built for the world where the internet was academics only, but it worked great before everyone came to the internet, and it still works great if posting permissions are properly managed (say, a company internal nntp server).

The problems with nntp where of the same kind that email has with spam these days, except they arrived there earlier.

However, the thing that really killed nntp was the fact that it was not supported in Outlook, at a time when Outlook was dominant enough to kill it (and promoting Sharepoint groups at the same time, which were inferior at the time).

So we are now left with google groups (proprietary, and hosted, and only by google), mailing lists (which are inferior in most ways, especially onboarding), phpBB and similar forums (which are inferior in most ways, except moderation).

<comment><USER5> In these days of "distributed stuff" I'm surprised there isn't a popular forum which uses NNTP for topic/thread storage, and is basically a presentation layer on top of that back-end.

<comment><USER4> [http://gmane.org/about/](http://gmane.org/about/) is more or less what you're referring to, and there are others. But the thing with nntp is not the storage - it's the fact that it is standardized.

It is extremely convenient to write a newsgroup post, and cc: someone in particular, and when they do a "reply all" the newsgroup is a recipient as well. This does not work with any "forum", and works (but not well) for mailing lists.

</comment></comment></comment><comment><USER6> \- Most recently is the 3D/Tilt web page view feature that was deprecated on Firefox, it seemed kinda useless but was a great tool to visually analyze/debug a pages' structure. ( [https://www.wrock.org/3d-visualization- in-firefox-tilt-inspe...](https://www.wrock.org/3d-visualization-in-firefox- tilt-inspector-view/) )

\- Some better general purpose database.

One of the best ones was ApplWorks/ClarisWorks database. Pretty straightforward to make a nice flat file database, pretty report creator, etc.

MS Access is overkill and OpenOffice/LibreOffice, last I used it, was kinda unusable.

\- PrintShop/PrintMaster, etc. - Why there is no FOSS version now is beyond me.

\- Another is the Kooka scanner utility form KDE 3, it had built-in OCR and was great to work with.

</comment><comment><USER4> small checkboxes (or other mark) next to items in selection lists, which don't go away when you click in the wrong place or accidentally try to add another one while not holding down ctrl.

Seriously - when you have a large list of which you want to mark substantially some (say, 20%) of the items, some next to each other, and some not, the prevailing method of ctrl+shift+click suck horribly (and touch methods only slightly less).

Back before mice were common, you would have a "mark/unmark this item and move to the next one" button (typically insert and/or space), a "unmark all" (typically insert), and it was simple and effective. It's still available in 7zip on Windows, but AFAIK that's basically the last bastion.

</comment><comment><USER2> ObjectSpace Voyager. It was a Java product for mobile code/agents, etc. From the company called ObjectSpace.com . Pretty interesting product. I had downloaded a free edition of it and played around it for a while. IIRC, it did what it claimed to do. For some reason, it did not seem to take off. IIRC, ObjectSpace was also the company that developed JGL (the Java Generic Library), before Java itself got generics, and also, one of the people involved in it was Graham Glass, who later joined WebMethods, and had developed ElectricXML earlier (I think).

</comment><comment><USER7> I am old enough that it's actually hard to answer this question. Mostly because I can't remember what was actually good and what is just nostalgia.

But, I'm going to say Gopher. Again, this might just be nostalgia, but Gopher was just so damned usable. I feel like I could learn faster and find higher quality information via Gopher than the web.

Again though, this might just be nostalgia. It is very hard for me to critically evaluate the technologies that utterly blew my teenaged mind.

</comment><comment><USER4> irc. It's still used by geeks, but all the modern alternatives like Slack and friends lock the data away from the users, are costly in both money and resources (Electron apps instead of irc chat apps that can run on a C-64).

Like nntp/usenet in my other post, one of the big problems is security, control and management especially with respect to bad actors. Perhaps there's a common way to solve this theme without ceding control of the data, but I'm not aware of it (and ... based on modern email spam, there is no simple effective way).

</comment><comment><USER8> SIP (session initiation protocol).

It's superior to the PSTN in every way, and problems like spam can be solved just like we did with emails (not to mention, there's plenty of spam on the PSTN too).

</comment><comment><USER9> Google Wave ( later renamed into Apache Wave, and now retired ). Maybe i should just fork the thing and hack around the "next big email killer"(tm)...

</comment><comment><USER10> Torrenting. Text only browsers and sites like Dillo with information sent over long distance 3g. Tape storage for dense files and media.

</comment><comment><USER11> Mainframe style time sharing in a web server, cloud without vms and containers.

</comment><comment><USER12> Usenet / NNTP.

</comment><comment><USER13> Object databases are hardly forgotten</comment>


David Graeber: Anarchism, work and bureaucracy - <AUTHOR> http://www.eurozine.com/anarchism-work-and-bureaucracy/ <comment><USER2> If anyone is interested in more of David Graeber, I can really recommend his well-known book "Debt: The First 5000 Years", which has become a staple in anarchist or Communist circles.

</comment><comment><USER3> Just started his other book "The Utopia of Rules: On Technology, Stupidity, and the Secret Joys of Bureaucracy"

Pretty good so far.</comment>


Tell HN: IOS is for Cisco products, iOS is for Apple - <AUTHOR>

I've spent alot of time studying and working with Cisco IOS (Internetwork Operating System) and it really grinds my gears when people refer to the iPhone OS as "IOS," simply because when I skim the headlines on HN, for example, I'm forced to pause and read the whole headline before I realize it's something that doesn't interest me. It happens alot.<p>Please refer to the iPhone OS as iOS. Thank you, that is all. <comment><USER2> If "iOS" is at the start of a title, HN will autocap the first letter to I, thus IOS, which probably accounts for the confusion.

<comment><AUTHOR> Ah, so that explains it. Thanks</comment></comment>


Want Smarter Kids? Space Them (At Least) Two Years Apart - <AUTHOR> http://www.freakonomics.com/2011/11/17/want-smarter-kids-space-them-at-least-two-years-apart/ <comment><USER2> If time and attention really are the determining factors, maybe we parents should just chuck our smartphones and tablets for the first 5 years.

I'm only partly joking. I ditched my iPhone after my 2-year-old started saying, "Dadda, put your phone down! Come play!". It's relegated to my office now.

<comment><USER3> In fact, if one has sufficient savings and has no worries about career, quitting the full-time job also makes a lot of time/energy for the kids. That's pretty drastic, but I'd consider it myself in the future.

<comment><USER4> I've just spent two years bringing up my daughter (and iPhone apps on the side at night), whilst my wife works.

Highly recommended, if you can swing it, at least once.

Now, how to get back in the work-force...

<comment><USER5> You can go back as a consultant for ios development.

<comment><USER4> If only I had the social skills!

Yeah, hopefully something will turn up. I'm actually not that bad. I worked in an consulting shop for 4 years and commuted across the US every week.

</comment></comment></comment></comment></comment><comment><USER6> Ahhhh freakonomics, meaninglessness-mass-market-pseudo-data-into-linkbait at its finest!

Their read is that "Smarter" kids = Math and Science test scores.

Is that how you measure "smart"?

\- What about musically smart?

\- What about non-linear thinking (classic entrepreneur trait)?

\- What about decision making capabilities?

Freakonmics is link-bait data drivel that, due to its mass appeal, is dangerously influential.

It gets under my skin because you'll often see Freakonomics data repeated as "truth" in the media or in casual conversation.

Truth is not their product.

<comment><USER7> So in other words, it is not responsible to ever use the word "smart" in a headline?

<comment><USER6> The first paragraph of the article is in conflict with the headline:

"The positive effects were seen only in older siblings, not in younger ones."

So the headline is false.

Your "kids" won't be smarter.

But maybe the older one will be.

Then the rest of the article just fills space.

It's linkbait, which is my expectation with anything from Freakonomics.

My problem is that their headlines are disseminated as gospel and repeated verbatim thousands or millions of times, until that headline becomes a truth.

And winds up in a parenting book.

And causes somebody to make a decision based on false data.

Maybe I have too active an imagination, but this just gets under my skin.

<comment> eric-hu So to update the headline to your (very reasonable) criteria:

"Study: Oldest children test scores higher when 2+ years older"

</comment></comment></comment></comment><comment><USER8> Do to lactational amenorrhea, mothers who breast feed their kids until age 2 (as the World Health Organization recommends) are much less likely to get pregnant again quickly enough to have kids spaced less than two years apart.

Considering that breast feeding (at all) is correlated with an 8 point IQ increase on average, the above could completely explain the study's findings.

<comment><USER9> Could be, but I bet the amount of people who breastfeed their kids for 2 years is dwarfed by the amount of people who don't, but due to chance have kids 2+ years apart.

<comment><USER8> Could be, but b/c gestation takes 9 months breast feeding would only have to take place for 13 months for lactational amenorrhea to result in the 2 year spacing.

Based on a quick google search of breastfeeding rates, in the US 25% of women who breast feed do so until 12 months, which may be enough to create the difference noted in the study.

</comment></comment></comment><comment><USER10> _We already know that children from larger families generally have lower educational attainment and IQ scores, worse employment outcomes, and are more likely to engage in risky behavior._

Has the direction of causation been determined? Do children from large rich families do worse than children from small rich families? (Also: the paper linked on the words "educational attainment" in the original article seems to contradict this quotation in its abstract: "First, neither birth order nor childhood family size significantly influences the level or growth rate of wages..."[0])

[0] <http://ideas.repec.org/a/ucp/jlabec/v9y1991i4p413-26.html>

<comment><USER11> The paper in the link includes an instrumental variable model to look at exogenously caused birth spacing (caused by miscarriages). So if the model does what the abstract says it does, then that pins down the direction of causation to some extent.

Of course to be really sure you'd need to take a closer look and probably do more research.

</comment></comment><comment><USER12> Some people are looking for meaning in everything. Perhaps they do that enough they start seeing patterns.

Not saying that the study is bogus, it might well be true (e.g. the older child becomes a role model for the younger and thus tries harder or something similar), and while I like this age we live now many seemingly random things can be explained, I think it's good to stay skeptical and take such results with a grain of salt. Some people might draw conclusions that are not beneficial (for themselves and society as a whole).

Just saying, now back to work.

<comment><USER13> The trouble with these articles is that they actually affect some folks' lives. No doubt, for years to come, there will be couples sitting there and planning out how they want to space their families based on a half-remembered article that they read in the New York Times one day about how they'll ruin their kids' lives if they're spaced less than three years apart. Some of these couples will no doubt go on to delay their second child until they wind up infertile. Others will probably delay their second child until they're so old that the second child winds up with Down's syndrome (that being vastly more common for older than younger mothers). And basically, it's just another one of those random factors that really don't matter much for middle-class parents to agonize over (while lower-class parents keep pumping out a dozen crack babies to get more welfare).

<comment><USER14> Since crack babies don't exist, but black people have been have been the majority of people incarcerated for crack related offenses (though they are not the majority of crack users), I'm assuming that you're just awkwardly trying to specify black people?

[http://www.nationalreviewofmedicine.com/issue/2005/07_30/2_f...](http://www.nationalreviewofmedicine.com/issue/2005/07_30/2_feature04_13.html)

<comment><USER15> Don't know whether to upvote for the informative link or downvote for the unwarranted accusation of racism.

</comment></comment></comment></comment><comment><USER14> Pure anecdote, but I and my sister (2 of 2) were born almost exactly two years apart, and I know that before she was born, there was an absurd amount of attention paid to me for the first couple of years (judging by the sheer balance of photography.) I was also read to constantly, and learned to read fairly well before kindergarten.

By the time my sister was a couple of years old, it was me that was constantly reading to her. The age distance there allowed me to be able to teach her things as well as my parents, and I'm sure that the act of reading for her and showing her things helped me to strengthen my grip on those things myself.

As adults, we're both 99 percentile types now, according to IQ and standardized tests and such. I'm not sure had the dynamic been different, we would have turned out the same way.

</comment><comment><USER16> The most irresponsible parents don't practice family planning. That probably contributes heavily to their results.

<comment><USER17> Be careful with terms like "irresponsible parents" and "family planning". Some people plan to have kids close together in age.

For what it's worth, however, I have this to offer:

* My oldest son (age 5) can read at a second grade level and can do addition.

* My next son (age 4) can read at a first grade level and can also do addition.

* My next son (just turned 3) knows all of his shapes (including the difference between octagons and hexagons), recognize and count all numbers from 1-20, and knows all his letters and their sounds.

* My next son (almost 2) knows all his colors, can count to ten, sing his ABCs, and knows all his animal sounds.

* My last son (7 months old) just figured out sitting up unsupported, and can babble on his level.

Now keep in mind that my little guys also love Pixar movies, playing LEGO games on their Wii, dressing up as superheros, and hiking so they have managed to learn all these things while having a well-rounded and balanced childhood.

The reason these boys know as much as they do and are so well behaved is because my wife and I have taken the time to know their hearts and minds and have invested countless precious hours teaching and training them to be men.

So I want to make sure you understand that just because a family may have children close in age, it is no way has any bearing on their intelligence. My experience has shown me that the complete well-being of children directly correlates to the amount of time and love their parents invest in them, no matter how many siblings they have or far apart their ages may be.

Irresponsible parenting does not mean having many kids close in age. Irresponsible parenting simply means that you aren't willing to offer the time and love your kids need to thrive.

(edit for formatting)

<comment><USER18> He's claiming that spacing is the dependent variable, not the independent variable.

Parents who are not considering these issues at all are arguably more likely to cluster towards shorter spacings, but shorter spacings alone do not provide enough information to classify the cause.

<comment><USER17> Good point! I just wanted to make sure that the OP knew that he was too sweeping in his generalizations.

<comment><USER16> It wasn't too sweeping--I purposefully said nothing about what responsible parents do ;).

</comment></comment></comment></comment></comment><comment><USER19> I seem to have attributed a different cause to this correlation than most other HN'ers in the comments. Is it possible that the isolation of the older child plays more of a role in the higher test scores than the 2-3 years of undivided parental attention? The older child would grow up without an always available "playmate", and this seems like it could lead to more reading and eventually higher test scores. This same effect could also apply to lone children.

Note: I'm not saying this isolation is a completely good thing (child may not have as good of an opportunity to develop strong social skills).

</comment><comment><USER20> > The largest effect they observed suggested that a one-year increase in > spacing improves reading scores for older children by 0.17 SD—which would be > three times the effect of increasing annual family income by $1,000.

In other words, instead of having your kids back to back, you wait a year ... and that's equivalent to $3000 of extra family income.

OK.

Earning 3K extra a year is ridiculously easy. Far more so than worrying about family planning. All I have to do is earn an extra $10 a day. If we split that between my wife and myself, that's an extra $5 a day. I'd rather focus on that. On top of it all, I can actually spend that money ... I can't spend 1 year.

<comment><USER21> I'd guess that 3k of income is at levels of the median or average family, where it actually matters. 40k vs 43k, that extra $3k might buy your family something important. Whereas at competent hackers income levels, I'd bet the marginal contribution of $1k toward children achievement is a lot lower. The difference between 120k and 123k is much less important.

</comment></comment><comment><USER22> This is using a predefined standard for being "smart," higher reading and writing skills. First the basis should be established that proves that being smarter, based on this metric, is actually better for every person. I find value in being smarter, but this does not mean that others will.

A better metric would be the amount of value the person derives from what he or she is doing. But this is an impossible metric to gather and even if it were it can't be used to compare individuals.

<comment><USER23> I wonder why you got downvoteed? That makes sense, actually. The predefined metric is pretty standard but maybe it is flawed. Then again, everything is relative so we have to have _some_ standard metric and can't be changing it to suit every individual either.

<comment><USER22> Perhaps there is no need for a standard for everyone. Take any student who wishes to enter into an industry, whether it is engineering, philosophy, aviation, or sports. Is there any value for him or her being rated by a standard that does not apply? Instead the student will try to achieve the accepted standard for the industry they enter.

How many years after high school will you or any employer care about your transcript? How about college? The experience you have in an industry quickly outweighs the number of years in college, at least in my industry (this may not be true when you need to go to specialized schooling, such as when you enter a medical profession, but I speak of general schooling).

</comment></comment></comment><comment><USER24> It looks like the abstract basically says that the older child does better with a larger spacing (more dedicated time with parents, possibly), while the younger is basically unaffected. That makes sense to me.

</comment><comment><USER25> Thank goodness association _is_ causation, otherwise where would be?

</comment><comment><USER26> AKA "You having another baby is bad for your toddler"

<comment><USER27> In many cases your toddler will let you know, too, in the form of jealousy.

</comment></comment><comment><USER28> Double and triple take on the title:

Throw my kids out an air lock? (Space them!)

Send my kids to the ISS? (Space them at least two years)

OK, I got this one a bit off :-(

</comment><comment><USER29> Unless you want your own TLC reality show, in which case you should just keep popping them out as fast as you can.</comment>


New Freelancer: Payment Terms - <AUTHOR>

I am a web dev with almost 8 years experience and recently started freelancing on the side. I have had my first client for about a month now, just doing some maintenance on a single site.
I recently conducted a review on the code base for the site and came up with about 50-60 hours of enhancements. We originally agreed to work on an hourly basis and the expectation of about 5 hours of work per month. They agreed to pay me at the end of each month and they also thought some project work would come up.
Today, they agreed to the enhancements I recommended. They want all the work completed as one deliverable, but are proposing that they pay for three line items as monthly maintenance (they are roughly 5 hours each) over the course of the next three months. All other items are to be paid as they are completed.
Is this scenario considered standard practice? I have yet to receive payment for the first invoice, due on the 15th. I am a bit uncomfortable delivering without being paid for a month or two at a time. Advice is greatly appreciated! <comment><USER2> Invoice weekly on 30 day payment terms. Offer a bug fix (not new feature) warranty that is conditional upon on time payment of invoices. One week prior to the invoice becoming due give your key contact a gentle reminder that a warranty is provided if the invoice is paid on time. 2 days prior to invoice being due, give them a personal phone call to gently remind them of this again, remind them that it is in their interests to have the warranty.

However, you must negotiate and get signed agreement from the client __before __you commence work. You can't negotiate terms after you have started work for a client.

Politely and without emotion let the client know that for practical reasons you can't do any work when invoices are outstanding. If such a circumstance actually comes up then politely but firmly remind them that you can't do any more with the invoices outstanding. Don't waver from this.

You should write all this stuff up into your terms and conditions document which the client signs before you do any work for them. Never do any work without a signed agreement. You might want to post to HN asking if any other freelancers are willing to post their terms and conditions documents so you can see what others do. Get a lawyer to check your T&C's.

<comment><AUTHOR> I like your suggestions - is this something that you are already doing?

Being such a low-volume project with a choppy work schedule, I think that monthly payment option that we agreed on can work well for this project. I would like to start working on some standard agreement documents, contracts, etc, but I feel like this current project is so small and low-margin (I probably low-balled myself; that's another story) that it's not really worth the effort of putting together in such a short time frame. Do you think all of this is necessary for about $200-300 worth of work per month?

<comment><USER2> I would wonder if anything is worth it for $200 to $300 per month.

For such a low volume I would ask for $1000 payment up front and that then gives them x hours to ask you to do stuff.

Hardly worth getting out of bed for that little money. What are charging per hour and what sort of programming are you doing?

<comment><AUTHOR> Yes, I see your point. I have a full-time job that pays well but also consumes a lot of my time, so this is just a side-project of mine. I can't provide great turn-around time, especially while I'm at work, so I thought that this project would be a quick way to build up a client base and get my feet wet in freelance.

I agreed to $50/hr for this project. It's a community site developed in ASP.NET/C#/SQL and I'm sub-contracting, the end-client is a Fortune 500 company. They very cheaply outsourced the project and, not surprisingly, were left with some bad code.

</comment></comment></comment></comment><comment><AUTHOR> Rather than the complicated deal that he had proposed, I am thinking of offering a monthly retainer for three months. Any thoughts or other suggestions here?

</comment><comment><USER3> Did you get any payment up front?

<comment><AUTHOR> No, it was just an hourly arrangement until any project work came along, at which time we would re-evaluate.</comment></comment>


How I met my wife and why I built yet another flight price tracker - <AUTHOR> Hello world,
I am working on putting together the beta for http://TripFate.com and thought it might be a good idea to share the story and motivation behind it.
I met my wife exactly 4 years ago - all thanks to being on the right flight at the right time. Funny thing is, I wasn't really supposed to be on that flight to Rome. As much as I loved traveling, I was a poor college student and I couldn't really afford the expensive flights.
And then it happened. I was looking for flights to random destinations after wrapping up my project report at 4 AM, and I found a round-trip ticket to Rome (from NYC) for ~$110! It was crazy because the usual prices are at least in the $350-400 range.
I got super hooked! After I returned from my trip, I registered on a bunch of websites to get alerts if there was a price drop. I did get some good deals, but nothing was as crazy cheap as the one I had found for my trip to Rome.
Long story short, I created a service for myself over the years that'd look for flights from across the internet that really were 'great' for their price. In the beginning, it simply sent API requests and had a bunch of if-else statements. However, over the years, I've added a bunch of Machine Learning and Deep Learning tricks to the algorithm.
Moreover, I have instances of my 'smart travel finder' running on around 14 different servers around the world (who knew looking for a flight from India is cheaper sometimes!).
I started getting lots of really interesting flights: ~$170 round-trip to Cancun, ~$230 to Paris, ~$340 to India... and so I decided to share it with family and friends and friends of friends. Once the list grew to over 200, I thought maybe people would be interested in paying for the service, and that's how http://TripFate.com was born. <comment><USER2> Seems down for me

edit: well this is weird, it seems accessible through a SOCKS proxy

Looks cool! I might suggest making it very clear upfront that it is an email based service - I didn't read much of the copy before signing up and was expecting there to be a search UI. Cool tool.

<comment><AUTHOR> Oh cool! Thanks! Yeah, I think I need to make that more clear. Do you think having a 30 second explainer video would help?</comment></comment>


'Hi-tech robot' at Russia forum turns out to be man in suit - <AUTHOR> https://www.theguardian.com/world/2018/dec/12/high-tech-robot-at-russia-forum-turns-out-to-be-man-in-robot-suit <comment><USER2> Very disappointing. Next time the will reveal that these are not real transformers:

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


How to make 1M easily? - <AUTHOR> <comment><USER2> Make $1. Then you'll just need to make $999,999. To make $999,999, make $1 and then make $999,998. And so on.

</comment><comment><USER3> Get a red paperclip. Trade it for something worth a little more. Keep trading up until you have 1M. [https://en.wikipedia.org/wiki/One_red_paperclip](https://en.wikipedia.org/wiki/One_red_paperclip)

</comment><comment><USER4> Start with $1k. Double it ten times somehow.

</comment><comment><USER5> Drugs</comment>


Imba the new JavaScript based language having Python,Ruby inspired syntax - <AUTHOR> http://imba.io <comment><USER2> Imba claims to use an "imperative, memoized DOM" as opposed to a VDOM. Apparently it looks like they still use a VDOM (i.e. a wrapper around the DOM). The difference is that, at compile time, they attempt to unmix the dynamic parts of a template from the static parts, then they memoize the static parts for you automatically.

Sure, there are issues with existing VDOM implementations that do not do these compile-time optimizations:

      1. Returning new JSX elements from every render
      2. Building key indexes for every subdiff

The first issue can be solved with application-specified memoization in render. The second issue is pretty hard to avoid if you want to avoid matching elements based on indexes (naive subdiffs). Implicit and explicit keys are there for a reason, namely that moving elements is assumed to be a much less expensive operation than unmounting and re-mounting them. The O(N) trash memory overhead per subdiff incurred due to key indexes is justified, in my opinion. If using an algorithm like LCS, you'll incur more time/space cost, but you will even further minimize the edit path.

If I'm not mistaken, Imba would have to use something similar to key indexes if they want to avoid unnecessary unmounting and re-mounting for templates which are composed of large dynamic lists.

I'm not sold on Imba's value proposition. The value proposition is compile- time memoization for static elements, so you avoid re-creating those templates during renders. That's great and all, but how much of SPA webapps are purely static elements? For example, consider the the following JSX template:

        {this.state.bigList.map(i =>
${i}
)}

I don't think Imba would perform much better than these other libraries for templates which are 99% dynamic (like this one), and so the dominating term here is the subdiff term, where you will end up either:

      1. Creating at least O(N) trash memory (e.g. key indexes)
      2. Doing unnecessary mounts and unmounts

<comment><USER3> We do recommend using keyed elements (indexing using <tag@{mykey}> syntax) for large lists. It includes automatic pruning of cached unmounted elements etc if you reach a certain threshold of unique memoized nodes within a list over time).

It performs a lot better for a platform like scrimba at least - which is pretty dynamic.

I just hope other frameworks will adopt our approach, because it really is a huge step forward compared to most of what is out there today.

<comment><USER2> I don't think any of my concerns were addressed. If I index a
 and its position changes in the child list, will the diff move the node (e.g. insertBefore) as opposed to unmounting/remounting it? Also, have you tested the performance of a Fisher-Yates shuffle on a list like [
]? I'm curious if that is faster than React. There are some cases where you'd want many list elements moving around.</comment></comment></comment>


The competitive value of time - <AUTHOR> https://medium.com/p/68341a06961c

<comment><USER2> Although the idea comes from Buffett, I think the quote actually came from Andreessen, but I couldn't find the original source (his old blog probably).</comment>


Ask HN: Online accounting software for non-accountant in niche market? - <AUTHOR> https://bansi.la <comment><AUTHOR> Hi, my name is Loma a solo software developer based in Lao. I'm building bansi.la (based on [https://akaunting.com/](https://akaunting.com/)) to help my company organizes proper bookkeeping, automated journal entry, and reporting.

I've turned it into SaaS and there are currently 14 paying customers so far, mostly using it for bookkeeping.

My goal is to make bansi.la as a platform for accountants and non-accountants with reporting and auditing capabilities.

I am kind of facing the roadblock now. Either:

1\. looking for an accountant co-founder to get a reporting certification from the tax authority, or

2\. acquiring more customers and focus on customers' needs. building critical mass</comment>


Say hello to Justin Trudeau, the world's newest oil executive - <AUTHOR> https://www.theguardian.com/commentisfree/2018/may/29/justin-trudeau-world-newest-oil-executive-kinder-morgan?CMP=fb_us <comment><USER2> Canada's oil is landlocked and the province blocking it from the Ocean (and therefore world markets) is doing everything possible to delay projects to expand the pipeline. Natural resources are incredibly important to the Canadian economy.

For what its worth pipelines are much safer than railway transportation which is how the bulk of the oil is moved now.

</comment><comment><USER3> I used to kind of like Trudeau Jr, but right now he's made me ashamed to be Canadian. I'd like to know the full story of how he justified this and what kind of pressures were involved.

<comment><USER4> I didn't like all the fawning JT got for being attractive and generally "presentable" upon his election. It's almost certainly because of the jealousy I feel being someone who is clearly unattractive (so the attention he got is something I can only imagine in my wildest dreams), but I think the otherwise childish jealousy was rooted in at least one valid thought:

"I wouldn't have had as easy a time getting elected, because people would be focusing heavily on my capabilities in order to figure out my potential as a future leader, rather than my appearance."

Plus, JT was mostly riding on our fond (perhaps misplaced?) memories for his dad PT, and I think people assumed that he'd be as gutsy as his father (is there a name for this fallacy?). Basically, Canadians needed a gutsy left PM, after Stephen Harper's years, but instead they got a gutless, greedy drama teacher.

Gosh I sure am bitter, but on the flip side, I get what women mean when they talk about being judged for their appearance in the work place.

<comment><USER5> Just a tip, nice hair, clothes and confidence go a long, long way. Male attractiveness is influenced in a large way by status/power/wealth, which clothes are indicative of.

You'll notice your interactions change, because the impact you have on people at first sight will change.

You can change near-everything except your bones. Clothes, hair, physical fitness, bearing and confidence.

You may not have been born attractive in your bones, but you can build yourself a step-ladder to go up a fair few notches.

The way people respond to you, based on your "attractiveness", will get you better everything from treatment in a store to a higher salary cap during job negotiations.

It's more than vanity: it's strategy.</comment></comment></comment>


Dennis Hof, Dead Brothel Owner, Cruises to Victory in Nevada State Election - <AUTHOR> https://www.nytimes.com/2018/11/07/us/politics/dennis-hof-dead-pimp-nevada.html <comment><USER2> Remember when john ashcroft lost to a dead guy?

[https://en.wikipedia.org/wiki/United_States_Senate_election_...](https://en.wikipedia.org/wiki/United_States_Senate_election_in_Missouri,_2000)

</comment><comment><USER3> It made sense when I got to this part...

 _His election means that county commissioners from his district will pick a replacement, who must be a Republican and live there. That will most likely play out in the coming weeks after the election results are confirmed on Friday, said Arnold Knightly, a spokesman for Nye County, the main county in Mr. Hof's district._

<comment><USER4> That's what I was thinking. The majority still wanted a Republican, and they'll get one, though they won't have as much say in who that person is, exactly.

</comment></comment><comment><USER5> I drove through Hof's district last year and picked up his memoir "The Art of the Pimp", which was stacked high in the gas stations.

Hof was a selfish man with selfish politics, but it was a fascinating read, and weirdly honest; i.e. Hof deliberately did not make himself look good in his own memoir. I have no idea why.

[https://www.amazon.com/Art-Pimp-Mans-Search- Money/dp/1941393...](https://www.amazon.com/Art-Pimp-Mans-Search- Money/dp/1941393276)

</comment><comment><USER6> That's the best NYT headline I've seen, even if it doesn't equal the NY Post's "Headless Body in Topless Bar".

<comment><USER7> For the sake of clarity, the headline is currently "Dennis Hof, Dead Brothel Owner, Cruises to Victory in Nevada State Election". Prostitution is legal in Nevada. Hof has been accused of rape and sexual assault. Hof held a campaign event the night before his death with a porn actor (Ron Jeremy) and an unofficial symbol of the GOP who was found guilty of egregious racial profiling by the Department of Justice while working in law enforcement (Joe Arpaio). His opponent was a woman who is alive.

The article has some truly disturbing insight from a local professor of Political Science and has tremendous value beyond a funny headline. I am glad that the headline has been revised.

<comment><USER8>
      found guilty of egregious racial profiling by the Department of Justice

The DOJ can't "find" anybody "guilty" of any crime. That's what juries are for. Obama's DOJ sued his department.

<comment><USER7> That is correct. It was a federal court that convicted him of racial profiling. He also cost the taxpayers 4 million dollars (out of a total of about 150 million) by failing to cooperate with legal proceedings and being charged with contempt.

For the sake of clarity, a jury is not required to be found guilty. An accused person has a right to a trial by jury but that right is usually not exercised due to the cost of litigation.

<comment><USER8>
      convicted him of racial profiling

Again, false. He was convicted only of contempt of court, and he was pardoned for that.

</comment></comment></comment></comment></comment><comment><USER9> Even a dead pimp and brothel owner can win us elections with enough facebook sponsoring support. Imagine doing the same for presidency! Oh wait...</comment>