Ask HN: What kind of spam/SEO gaming is this? - <AUTHOR>

Link to the account (requires login): http://www.facebook.com/profile.php?id=100000838258266&sk=wall
Some screenshots (in case you don't want to log in): http://imgur.com/a/wGuVN
There's literally thousands and thousands of posts.  They don't actually make any sense, but they're spot-on grammatically, and a lot of WWII-era jargon. Google turns up nothing except people wondering what she is saying.
So what's going on here?  Spies communicating?  Some type of spam/SEO gaming?  Rabbit hole for an ARG?  Testing some kind of FB bot software?
I can't work out who would be incentivized to create this and what sort of purpose it could serve. <comment><USER2> The comments that "Karin" is leaving on her own status updates strike me (caveat: I am not a mental health professional, though my parents both are!) as fairly classic paranoid (like, actually diagnosably paranoid) talk. Delusions of persecution via secret networks operating within complicated bureaucracies, interspersed with violent imagery, is pretty much what paranoids spend their time thinking about. 500 years ago they probably would have given you an elaborate description about all the different kinds of demons in hell; now it's all about the CIA and the Bilderberg Group or (in this case) international academia.

Anyway, long story short, my guess is that this isn't spam/CEO gaming at all, but a mentally ill human being. I'm frankly surprised there aren't a lot more Facebook/Twitter accounts like this.

</comment><comment><USER3> She is a paranoid schizophrenic

[http://chanarchive.org/content/1_b/331156470/1306721998799.p...](http://chanarchive.org/content/1_b/331156470/1306721998799.png)

<comment><AUTHOR> Oh. I was hoping for an explanation quite a bit less sad.

<comment><USER4> when in doubt - 4chan to the rescue

but seriously - very sad. notice she must spend _all days_ talking to herself on facebook.

<comment><USER3> if you dig through the various 4chan archives, youll see people actually found her home and went to verify its her. Legion really is everywhere.

</comment></comment></comment></comment><comment><USER5> <http://chanarchive.org/4chan/x/11079>

"Look at this entry on May 23rd:

Francesca is now a leading figure in the art world and regularly participates in the major biennales by commissioning new works of contemporary art through her foundation called Thyssen-Bornemisza Art Contemporary which she founded in 2002 in Vienna Austria.[1] and has built up her own art collection with over four hundred pieces of contemporary video and digital art.[3] The website of the foundation is www.tba21.org. TBA21 has an exhibition space in a historical palace on Himmelpfortgasse 13, in Vienna. It exhibits works from the collection in thematic exhibitions twice a year. The Foundation also organises exhibitions of its collection world wide.

'Video and digital art' That's a bingo! Its an art piece."

</comment><comment><USER6> I have no idea, but how could this possibly be "SEO gaming?" There aren't even any links. What would they be promoting?

</comment><comment><USER7> When I see stuff like this I immediately think of an ARG (Alternate Reality Gaming).

Check out <http://www.argn.com/> for more info on ARGs.

</comment><comment><USER4> wow, the posts are nothing compared to the comments! and there are thousands of them

I was betting on a fb test account for spam-bots, but I googled she also has a yt account <http://www.youtube.com/user/refbatch> which is even more creepy than her fb.

first for me it was obvious that's a bot, now I see the very short intervals in the conversation do not make the content impossible to be human generated, still OP's question is valid: what the hell is it???

<comment><USER8> Wow! This is horrifying! It looks like the video from "The Ring"...

<comment><USER4> yeah, creepy as hell. if it was a facebook api gaming bot, why on earth they would make a wierd yt account?

unless it's some kind of viral.. a very creepy viral...

oh, and I like the 'spies communicating' theory

</comment></comment></comment><comment><USER9> Facebook based turing test?

</comment><comment><USER10> Looks like a Markov chain text generator.</comment>


Mirah: JRuby + static-typing + fast JVM bytecode - <AUTHOR> http://www.mirah.org/ <comment><USER2> For me a HUGE feature is:

"Mirah code has no runtime dependency other than libraries accessed directly from Mirah code."

Wow - Charles has done an amazing job sticking true to that. In fact so much I thought it was a core aim.

I love scala, clojure - but there is significant runtime libraries to include. for most people this isn't an issue (and it isnt' for me most of the time) but Mirah doing what it does without runtime deps, is a refreshing alternative.

<comment><USER3> Without knowing too much, cant you do that easily enough for the other two? At least scala, you could package scala-library.jar with all the other classes (I would imagine clojure wouldnt be too much extra).

Of course unless you run it through proguard or similar, its gonna me massive.

<comment><USER2> well it is still 2-3 od MB of weight. I guess you could strip it down easy enough, and package it. But if you are delivering a library - then it has to play nice with other libraries that may also want to use scala - if you really wanted you could jarjar it into its own namespace (!) but that would be pretty extreme.

If you write your app in scala, and unless you are deploying to a phone, it is rarely an issue (it doesn't bother me at all) - but Mirah as a drop in replacement for a java compiler, that is very compelling and something to watch.

Also - the fact that I use the scala libraries heavily means I need very few other deps myself - so for me it is a net win.

</comment></comment></comment><comment><USER4> This actually looks exciting.

Anyone have any idea when it will stop being "experimental"?

<comment><USER5> You can build "real" apps today. You can also just write Java whenever you feel Mirah is limiting you.

<comment><USER4> There are other questions one asks with a language dubbed "experimental".

Will it remain stable? Will it remain supported? Will more people write things in it so that it develops a community of users?

</comment></comment></comment><comment><USER6> I'd love to see the video, but all I can see is embed code.

<comment><USER7> <http://samhuri.net/mirah.html></comment></comment>


How to sell Windows 8 in Japan - <AUTHOR> http://blog.tsukumo.co.jp/mt-static/FileUpload/pics//Akiba/20121002//win8_you.png

<comment><USER2> Let's "sell" Linux to them, shall we?

Ubuntu: -) [http://static.desktopnexus.com/thumbnails/8013-bigthumbnail....](http://static.desktopnexus.com/thumbnails/8013-bigthumbnail.jpg) -) [http://dump4free.com/preview/1/ubuntuBabeAnime_wallpaper1280...](http://dump4free.com/preview/1/ubuntuBabeAnime_wallpaper1280x1024.jpg)

Archlinux: -) [http://static.desktopnexus.com/thumbnails/601041-bigthumbnai...](http://static.desktopnexus.com/thumbnails/601041-bigthumbnail.jpg) -) [http://somoslinuxeros.com/wp- content/uploads/2012/08/archlin...](http://somoslinuxeros.com/wp- content/uploads/2012/08/archlinux-wallpaper-1.jpg) -) [http://blog.desdelinux.net/wp- content/uploads/2012/01/shizuk...](http://blog.desdelinux.net/wp- content/uploads/2012/01/shizuku__kantoku___arch_linux_by_dannie92-d3icse5.jpg)

Linux in general: -) [http://animecrowd.ru/uploads/images/b/f/f/9/237/linux_anime....](http://animecrowd.ru/uploads/images/b/f/f/9/237/linux_anime.png) -) [http://static.desktopnexus.com/thumbnails/10944-bigthumbnail...](http://static.desktopnexus.com/thumbnails/10944-bigthumbnail.jpg) -) [http://1.bp.blogspot.com/_BCi8KPUm4no/TOoY3mtqEMI/AAAAAAAAAG...](http://1.bp.blogspot.com/_BCi8KPUm4no/TOoY3mtqEMI/AAAAAAAAAGQ/HVRD6nxIlIM/s1600/34088_469913099895_616599895_6466054_6469726_n.jpg)

Fear not Linux-community, we are well prepared for fighting windows in Japan :D

</comment><comment><AUTHOR> Friend tells me the girls' names sound like "seven" and "eight" and they both use a kanji that also means "window." BAD PUNS.</comment>


From Good to Great: 5 part series on better CSS with Compass and Sass - <AUTHOR> http://blog.derekperez.com/tagged/compass-sass-good-to-great

<comment><USER2> As someone who only knows enough CSS to rip apart templates and customize them, this is really cool. thanks.

</comment><comment><USER3> I'm not sure I understand why precompiling CSS mixins and inheritance are a good idea. If you can define multiple classes for an element (which can override each other), why bother?

<comment><USER4> Chris Eppstein (develops compass) does a great job breaking down the why (for tools like sass in general) here => [http://chriseppstein.github.com/blog/2009/09/20/why- styleshe...](http://chriseppstein.github.com/blog/2009/09/20/why-stylesheet- abstraction-matters/)</comment></comment>


AMD Prices 3-D Tech to Spur Virtual Reality Market - $199 - <AUTHOR> http://www.wsj.com/articles/amd-prices-3-d-cards-to-spur-virtual-reality-market-1464725394 <comment><USER2> This makes me very excited for Zen CPUs pricing/performance, too, especially in light of Intel's tendency to add a couple more cores and double the price of its chips.

</comment><comment><USER3> This is still unbelievable. How AMD can price the card so cheap when Nvidia cannot is going to be interesting. Hope this forces Nvidia to reduce their prices too...

<comment><AUTHOR> Yeah, the leaked/faked slide has it at 5.5GFlops, which is just shy of the 980ti.

</comment></comment><comment><USER4> Oh wow this is exciting. Dropping the cost of the hardware is definitely a welcome chip away at the consumer barriers to entry with VR

</comment><comment><USER5> Is this sufficient to use HTC Vive? I spent $3000 to buy the computer only (for Vive).</comment>


TechCrunch Doomed? AOL's Engadget Is Getting Crushed By Independent Gizmodo - <AUTHOR> http://www.businessinsider.com/techcrunch-doomed-aols-engadget-is-getting-crushed-by-indepedent-gizmodo-2010-9 <comment><USER2> I'm reluctant to trust 3rd-party traffic numbers, but it this _was_ true, then why? Gizmodo and Engadget all but post identical content. I'm not sure why anyone would prefer one over the other.

</comment><comment><USER3> you can compare direct real traffic numbers.

Engadget numbers: <http://twitpic.com/2suiav> Gizmodo numbers: <http://www.quantcast.com/gizmodo.com#traffic>

So looking at sept, Engadget ~18 million uniques vs ~12 million for Gizmodo. (I used cookies, not "people" for Gizmodo's numbers as I suspect Engadget's numbers are also the higher "cookies" number without knowing the exact source)

FYI, MacRumors is about 9.4 million uniques for Sept using the same metric.</comment>


Show HN: Dopamine API – Turn any app into a habit - <AUTHOR> http://usedopamine.com/ <comment><USER2> The Dopamine API finally gives developers a tool to reliably and scalably increase retention and engagement through behavioral reinforcement techniques. It takes the guesswork out of so much of UX design that dictates an application's growth and staying power.

</comment><comment><USER3> How did you figure out the optimal reinforcement schedule for behaviors? That doesn't seem like something you can just brute force with number crunching.

<comment><AUTHOR> Right you are! This can't be bruit forced. We use brain wiring model and behavioral models to figure out when/how to reward users. We also run a lot of experiments when we have hunches about ways to improve the system.

</comment></comment><comment><USER4> Looks neat, and we might give you guys a try. I'm wondering about a couple of things that weren't super-obvious to me from the website and video alone:

* does it work with a web-app? I saw curl examples, so probably it does, but what about those reinforcements?

* speaking of which - apart from two simple popups on the video, is there a "library" of cool reinforcements to use?

* not trying to underestimate the science behind this, and just playing devil's advocate here - did you test the actual difference between your algorithm and a semi-random/ultra-basic reinforcement trigger? (something along the lines of `if reinforcements_today < 3 && rand() > 0.7 then reinforce()`)

<comment><USER5> hey @gingerlime, I'm Ramsay, Founder @ Dopamine Thanks for the feedback!

1.) We're releasing our web sdks next week: A PHP version and a Python version, each with a JS frontend wrapper. If you email me at email@example.com I can poke you when it's shipped!

2.) We do! To get dev's off the ground we released a library of popups with different icon images like you saw. You can modify parameters like color, duration, copy.

AND you can arbitrarily call any UX-updating function from the code that handles the Dopamine API's response. This lets you map a response we give you to any function in your app. We're sprinting to deploy a way to do this more elegantly on the integration dashboard also.

3.) Yes, we did. TL;DR: We outperform alternatives that devs are resorting to right now. @tdaltonc: care to chime in?

<comment><USER4> Thanks for answering all my questions. I'll ping you guys and see about testing this out. We created a learning platform for anatomy[0], and gamification and motivation is one of the things we know we can and should improve. Sounds like dopamine can be a good fit.

p.s. I really like the name!

[0] [https://www.kenhub.com](https://www.kenhub.com)

</comment></comment></comment><comment><USER6> Brave New World wasn't supposed to be a product pitch

<comment><AUTHOR> I totally agree.

If you're in to BNW I'd recommend Huxley's little known follow up 'Island'.

[https://en.wikipedia.org/wiki/Island_(Huxley_novel)](https://en.wikipedia.org/wiki/Island_\(Huxley_novel\))

He shows that all the same technologies that the characters of BNW use to chain people to the state, can also be used to set them free. Habits can be your best friend or your worst enemy. We can't unlearn what we know about how to change human behavior. But we can decide that while casinos and gaming companies are using these insights to numb people, we're going to use the same insights to help people become their best selves.

We only make production keys available to teams that we're sure are working in their users' best interests.

<comment><USER6> Thank you for taking the time to reply, I do hope you'll keep in mind the ominous aspect your product draws on. I wish you and your team all the best, but be careful where you go with this please.

Also my concern isn't about habits directly, more that you're selling the manipulation of those habits in an automated, generalisable way.

</comment></comment></comment><comment><USER7> My head is spinning... this is super awesome!

</comment><comment><USER8> have you ever created a successful and engaging app using your own science?

</comment><comment><USER9> Disgusting. Stop trying to subversively manipulate people to turn them into addicts.

<comment><AUTHOR> Obviously, I don't think that our product is subversive. I think that there is a moral imperative for our product. A huge percent of the world's human suffering stems from peoples' inability to do the 'simple' behaviors they wish they could (eat less, go to the gym more, study, relax when they get home from work).

We're not stupid: app-based approaches are not silver bullets. But if we're going to help people fix some of their major lifestyle-based problems we need to do so with a rigourized technology of human behavior. Less sophisticated versions of what we do are already being used - and mostly by gaming companies. We're bringing the most powerful technologies for changing human behavior to bare on some of the biggest problems there are.

For example, medical interventions, (i.e. curative care) involving doctors, specialized clinics and other health professionals is very expensive and will only become more so in the future. Preventative care - especially through mobile devices and apps - is extremely important if we want to lower the cost of health care over the long term. The most effective approach to prevention is building better, healthier habits. And apps scale stupidly well.

We only make production keys available to teams that we're sure are working in their users' best interests.</comment></comment>


Show HN: Visualization of Longevity and Mortality - <AUTHOR> https://www.infino.me/mortality/usmap <comment><USER2> Very cool. I think if you added a few more ways of slicing and dicing this data, you would have a decent chance at getting it accepted to a bioinformatics journal. For example, Oxford Journals Bioinformatics has an "Application Note" type of submission for useful programs that aren't quite original research. I work with one of the editors and he was impressed with the interface and thought it would have a good shot at acceptance.

In particular I think there need to be options added to normalize the y-axis of the graph beyond raw counts to percentage of deaths by age group to control for the fact that the number of deaths per bin is not the same.

It would also be nice to add a little more categorization to the causes of death, in a tree-like structure. For example, all vascular disease, with cerebrovascular disease, CVD, etc, as subtypes.

Also it would be nice to be able to ask questions like, "which states have the most (or least) fraction of deaths by, e.g., CVD"? Do some states have smaller or larger gender gaps in particular diseases?

<comment><AUTHOR> I DO have a much larger viz in the works! It lets you cut down by race, year (1999-2013), and a few other metrics. I wanted to put this out first to see how it performs on various devices. Stay tuned!

I come from an academic background. Made this in my PhD: amass-db.org

But my core passion this days is the project that this viz is hosted at (www.infino.me). I think I can make a much bigger impact with more consumer- facing nonprofit apps than in publishing academic articles.

<comment><USER2> Cool, I am looking forward to an improved version.

I would be interested in your rationale behind how the public would/could use this kind of data. I think the infino.me/health seems to be an example, pointing out major risk factors behind cancer and CVD. But don't you think this is already common knowledge?

Or is the primary goal to get people to voluntarily share their health and genotype data to get a big dataset for analysis, and maybe eventually provide a sort of personalized risk assessment? I wonder how the FDA views that sort of thing.

<comment><AUTHOR> In short, I built a search engine for my genome. Im letting the rest of the world use it ;)

I did my PhD work in diabetes genetics. It runs in my family, and Im kinda pissed that its killing off a large fraction of us. The eventual goal is to make this into some kind of communal science effort where people can contribute open source analysis pipelines. I need the right kind of organizational structure however to keep the data safe and centralized but still allow open source research.

So, some kind of platform where algorithms can get in, results can get out, but raw data stays locked up. I want a world where this kind of research happens in the open, and not privately in biomedical corporations.

<comment><USER2> It is a good idea in general, but the idea of infosec for genetic data is a minefield. I deal with similar limitations daily -- one of my areas is large- scale meta-analysis of expression data, which was dandy when that data was collected using microarrays. Now, it's RNA-seq, so a lot of that data indeed stays locked up and you have to apply for special permission to access individual datasets from dbGaP, making large-scale studies difficult/impossible.

But although "algorithms in/results out" sounds good in principle, I think it will be hard to implement in practice. You would have to make algorithms run without network access to prevent a bulk_send_data_to_ip() type of function from being written, but that would hamper complex programs requiring external data.

In general I think the only realistic way forward is to take the 1000 genomes approach of finding people who are willing to take the privacy risks of truly open-sourcing their data. But it sounds like an interesting idea and I hope I'm wrong and your approach turns out to be workable.

<comment><AUTHOR> I like your thoughts here! Indeed I have been hoping to mostly attract people who are willing to be fully open with their data. If I ever get big enough to implement this 'algorithms in/results out' approach I intend to re-engage the whole userbase and have people opt-in to crowdsourced scientific analysis. To prevent data leaking I figured we would start with full code review, and indeed air-gapped analysis.

Its a continually evolving thing. I imagine it would be years before I get to that stage. Depends on if I find funding or university help.

Hit me up at firstname.lastname@example.com if you'd like to chat more.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> As lifespan in the modern age continues to increase, it is interesting to dig into the leading causes of death for perspectives on where to put our research efforts.

Made using the dc.js library. It's interactive! You can click on any of the plots to refilter the data.

<comment><USER3> I think it's worthwhile not to put all our efforts into curing a particular cause of death. First because this doesn't necessarily increase quality of live for the elderly, which I think is hugely important. Secondly, because after a certain age all kinds of things break down and the current leading cause of death (eg cancer, heart-disease, alzheimer) is likely just an effect of general accumulation of damage in the body.

<comment><AUTHOR> Agreed completely. My deepest passion is aging biology. What I learned however in studying type II diabetes and obesity, is that the molecular mechanisms are hugely aligned. Its all the same core metabolic genes that the aging biologists focus on in worms and flies. Those are the genes that seem to be related to insulin signaling and diabetes.

My core vision of this project is to better understand this overlap.

</comment></comment></comment><comment><USER4> The age of death graph cuts off the values of the y axis on the left, so all I can see is a bunch of "00,000" values. I can only really make relative assessments to the age groups. :/

<comment><AUTHOR> Im tempted just to turn the axis off and make a box showing total counts. Getting things to line up is always a pain. Yuck!

Thanks for reporting the bug.

</comment></comment><comment><USER5> Not to sound snarky, but uploading my fitbit data IMO just solved the mystery of obesity (at least for me).

I burn ~3200 calories a day and I walk >10 miles a day. This is the 100th percentile of your data and that floors me.

So I have to say that step 1 is getting people to get off their asses and move. It'd be nice if they cut down on red meat and sugar intake while they were at it, but small steps, no?

<comment><AUTHOR> Well, so this project of mine is in beta, which makes you the 22nd Fitbit user. Not the best sample size :) Im on the higher end too. Not sure how we stand up against the 20 million other fitbit users out there.

<comment><USER5> Cool, one thing though, you're not getting my genome. That's like giving you my fingerprints and we've just barely met. My fitbit data has probably already outed me to you given what I said previously. I'm OK with that because there's nothing but good news there. My genome? Well, it's a mixed bag like anyone else's hence the 20K+ steps per day as an ongoing service patch.

I do wish there were a way to anonymously calculate the very comparative statistics you're generating, but alas I don't see one. Am I missing something?

<comment><AUTHOR> No problemo!

Really what we need is some kind of homeomorphic encryption process that would enable large scale Genome Wide Association Studies (GWAS) to be performed without actually divulging the underlying raw data. Until that happens though, scientists like myself have to contend with the privacy concerns of many.</comment></comment></comment></comment>


Open source in Genomics: Sequencing a Genome a Week - <AUTHOR> http://radar.oreilly.com/2009/07/sequencing-a-genome-a-week.html

<comment><USER2> I think any university is able (or will eventually attain the capability) to do this if it hasn't already. Next-gen sequencing combined with microarrays can make it happen. The only real issue is the cost of doing the reads. There aren't too many universities dedicating a major amount of resources to sequencing genomes though (well, here in California at least), so kudos to you Washington University.</comment>


Ask HN: What speech-to-text library do you recommend? - <AUTHOR> I need creat transcripts for a bunch of audio files. Also, they may contain a bunch of uncommon technical terms that might require continual training/updating.<p>Any suggestions? <comment><USER2> Here is a list you will find helpful [http://blog.neospeech.com/top-5-open- source-speech-recogniti...](http://blog.neospeech.com/top-5-open-source- speech-recognition-toolkits/)</comment>


Ask HN: What questions would you ask someone to assess their maturity? - <AUTHOR> Like for an interview of someone new to your industry. <comment><USER2> Maturity is not necessarily a good trait in an employee. Companies hire recent grads specifically because they are immature and will be easier to manipulate. And conversely, companies are often wary of older, mature candidates because such employees won't be easy to manipulate and exploit.

Also, mature people usually come to the conclusion that working a job for someone is pretty sucky way to live, and will either come to terms with it, which often leads to trying to get as little done for as much money as possible (i.e. getting a good deal), or will want to go independent, which will make them unhappy while they're employed. These issues are usually non- existent in the graduate crowd, as they are just amazed that someone is treating them as adults, giving them responsibility and paying for completion of tasks.

</comment><comment><USER3> Anything to do with several possible answers and assessing how they lay out different solutions, their trade off and work towards a pragmatic and incremental solution.

</comment><comment><USER4> Speaking from the perspective of someone who entered the industry relatively young and had the opportunity to grow into management roles: I'd say the hallmark of maturity is willingness to adapt to change, take necessary risks and overall maintain their individual interests in projects responsibly. Maturity is in fact, just survival. That is, do you think this person can hold their own, choose their tactics and strategy wisely and pick their battles? Passion is good, maturity is nice to have, but I'm consistently surprised by what young and old people can do given the right opportunity, the right management and the right culture.

</comment><comment><USER5> That depends. What do you consider to be the hallmarks of "maturity" or "immaturity"?

</comment><comment><USER6> Asking what questions they would ask. You can tell a lot about a person by the questions they ask.

<comment><USER7> I only ever really ask interviewers about what they work on and their general day to day. What more is there to really ask?

Or do you mean, if the tables were turned, what would you ask?</comment></comment>


Tesla's next-generation Superchargers should be much faster - <AUTHOR> https://www.engadget.com/2016/12/26/tesla-supercharger-v3-teaser/ <comment><USER2> For reference, gas contains about 33kWh of energy per gallon, and if we assume you pump 20 gallons in 5 minutes when you fill up your car you have an effective energy transfer rate of about 8 MW at your gas pump. Even if we give an electric vehicle a 3x efficiency ratio, we still need about 2.5 MW to be equivalent to the old petroleum infrastructure.

<comment><USER3> The comparison is not quite that easy. The old petroleum infrastructure is more centralized.

You can get electricity almost anywhere, adding a charging station to parking places or garages is far easier and safer than hypothetically laying gasoline pipelines everywhere. So there are more opportunities for partial charging when the car is idle.

<comment><USER4> > easier and safer than hypothetically laying gasoline pipelines everywhere

Ironically, that's safer exactly because electricity won't give you those MW- scale powers.

</comment></comment></comment><comment><USER5> Assuming he's not being sarcastic, it could be power aimed at semi trucks. That would probably be sub-megawatt for regular charging, and 1-2 for supercharging. It's gonna be a lot more important to have a well-developed charging network for trucks since they are working vehicles: nobody is gonna buy a truck and then sit around and wait for it to become profitable to drive. Maybe we'll see some extra-large charging spaces opening up soon...

[https://www.reddit.com/r/teslamotors/comments/4u0yci/why_i_w...](https://www.reddit.com/r/teslamotors/comments/4u0yci/why_i_was_wrong_about_electric_tractor_trucks/)

<comment><USER6> Long haul truck fleets will be much more suited for swaps than recharges.

<comment><USER7> Not really. Unless you are driving team you still only get 10-11 hours of driving a day. (iirc. I know the regulations have changed a LOT since I grew up in a truck in the early 00's)

There is plenty of time to recharge a truck over night at a truck stop. The issue is gonna be infrastructure at the truck stops. I am gonna guess at 150-300 spaces at most truck stops. If the majority of trucks go electric then I am not sure the electric grid's connection to the truck stop is gonna be able to support that.

Anybody know the math on how much electricity would be needed to take an 80,000lb truck 700 miles? (700 miles would be on the very upper end of the scale but you want that kind of range to accommodate for climbing hills with a full load.) And after that the math for charging say 100-200 of them? (I doubt the truck stops will all be charging at once)

<comment><USER5> I did a bit in the link above

</comment></comment></comment></comment><comment><USER8> I wonder what the Tesla charging contacts are rated for. Assuming they keep the straight-to-battery model, 350kW is around 1000A. I think Tesla chose the best available contact for its size (I forget the brand name), but 1000A is a _lot_ for that size contact. They may have to devise a way to actively cool it.

I doubt that they want to start supercharging at higher voltage. A DC-DC converter at that scale will be fairly large. I suppose they could add some contactors internal to the battery pack to change the cell wiring to double the voltage and halve the current for charging purposes.

<comment><USER9> I don't claim to be an expert, but it appears that Tesla has experimented with liquid cooling Supercharger stations before: [https://electrek.co/2016/07/21/tesla-ends-its-thin-liquid- co...](https://electrek.co/2016/07/21/tesla-ends-its-thin-liquid-cooled- supercharger-wire-experiment-in-mountain-view-but-the-tech-lives-on/)

In the above case, they used liquid cooling to make the charging cable diameter smaller, but perhaps the technology can be used to make the regular Supercharger cable capable of handling more power.

<comment><USER8> Cooling the cable might be easier: you can make a hollow braided copper tube, insulate and seal around it, and run liquid through it. But you can't run liquid through the contacts unless the car has plumbing for it, and I doubt it does.

</comment></comment></comment><comment><USER10> Even 4-5 minutes is still an eternity if you're in a queue behind 10 cars during the holiday rush, and have to 'fill up' twice to get to your destination. What would be a 20 minute wait for gas becomes an hour, for something that doesn't even give you the same range.

<comment><USER3> How often does that happen per year?

<comment><USER11> I do not know but I do want to reach friends and family as quickly as possible so that we can all spend time on our tablets and phones at same place.

<comment><USER12> A tremendous yawp of a LOL, thank you :-)

</comment></comment></comment></comment><comment><USER13> Is it just bulk that makes the batteries non replaceable? Putting in charged ones are after all the simplest way to speed up charging if the replacement is relatively simple, and a well proven solution for other battery powered devices.

<comment><USER14> They had a swappable demonstration a couple years ago and the model s supports it.

Main issue is a social issue - people like to have ownership of their own battery pack.

<comment><USER15> > They had a swappable demonstration a couple years ago and the model s > supports it.

This was basically a ploy to get government dollars. The tax rebate per vehicle was partially determined by capabilities the car had theoretically, even if they weren't deployed in a useful manner.

[http://www.csmonitor.com/Business/In-Gear/2015/0312/Tesla- ba...](http://www.csmonitor.com/Business/In-Gear/2015/0312/Tesla-battery- swapping-useful-service-or-tax-credit-ploy)

[http://www.latimes.com/business/autos/la-fi-hy-tesla- battery...](http://www.latimes.com/business/autos/la-fi-hy-tesla-battery-swap- harris-ranch-20150310-story.html)

> Main issue is a social issue - people like to have ownership of their own > battery pack.

What's the evidence for this? People have no trouble with propane tanks they don't own for gas grills.

<comment><USER5> As in Tesla didn't want to store and insure tons of batteries, especially because their current limiting production factor is batteries. Every battery that can be swapped is one that isn't being used in a car.</comment></comment></comment></comment>


seocontest2008 - <AUTHOR> http://seocontest2008.harenatv.com ok <comment><USER2> links here are nofollow and never pass pagerank

<comment><USER3> yeah, typically any user-gen links are nofollow</comment></comment>


What is the most crude Unix tool you've ever used? - <AUTHOR> Something with million dark command line switches, something that makes you cry and poop, but something that you know has the functionality you need and you're too busy or lazy to reimplement it as a legit script. Something that makes you cringe and is ugly as one liner. Something that is super useful. <comment><USER2> _sed_ and _awk_ command strings can be quite long.

One can do a lot combining _find_ with cpio or tar to selectively extract files for backup.

I don't consider any of this to be "crude"; I find it quite elegant.

</comment><comment><USER3> That sounds like a very deliberate description of find...

<comment><AUTHOR> For some stuff I sometimes wonder if the author can actually remember the logic behind e.g.: flags order or the syntax.

</comment></comment><comment><USER4> tar has a confusing ordering of parameters (as compared to other UNIX tools) and handling of switches. It's one of those tools that I don't use that often, so I always have to look up examples.

I'm not the only one... see [https://xkcd.com/1168/](https://xkcd.com/1168/)

<comment><USER3> czf, and xzf are all you really need to know most of the time. Oh, and sometimes cjf and xjf.

</comment></comment><comment><USER5> ln

It just does too many things. Confusing switches. Confusing order of arguments. Easy to mess up.

Ugh.</comment>


Givers & Takers - <AUTHOR> http://www.guglanisam.me/givers-and-takers

<comment><USER2> Great thoughts. I've also always been fascinated by the choices people make in careers. There are some professions that are almost exclusively concerned with creating new value in the world. There are others that focus on taking value that others have created and consuming it directly or moving it around. There's a whole continuum in the middle.

Sounds like a whole new blog post of it's own.

<comment><AUTHOR> The problem I think is that many people only think short term and hence focus on taking value, they feel they start giving they wont be able to take. Where as people who focus on long term know that if they give value now, in the long run in will come back to them in multiples</comment></comment>


Lambdas: Coming to a Java 8 near you. - <AUTHOR> http://insightfullogic.com/blog/2011/dec/6/lambdas-coming-java-8-near-you/

<comment><USER2> I'm actually pretty excited about this. This will make my life less miserable any time I am forced to solve certain types of problems in Java.</comment>


How to Guess Better on an SAT  - <AUTHOR> http://www.freakonomics.com/2011/12/08/how-to-guess-better-on-an-sat/

<comment><USER2> Also, essay length is directly correlated to score.

<http://www.nytimes.com/2005/05/04/education/04education.html>

</comment><comment><USER3> wouldn't people that know the answers be able to give a fuller explanation taking more words?</comment>


How we tune out distractions - <AUTHOR> http://news.mit.edu/2019/how-brain-ignores-distractions-0612 <comment><USER2> Something I noticed a long time ago: I can listen to music and code at the same time, but I can't listen to music and write an email. Might be that music and speech are processed by the same area of the brain that can't multitask. While writing an email, the brain either classifies music as a distraction and starts filtering it (you don't _hear_ the music while writing human text), or just signals to turn it off completely. Somehow this is not a problem while writing code!

So what is special about coding that makes it compatible with music?

My best theory is that coding, though it looks like you are typing text, is managed by the areas of the brain responsible for _action_ and not speech (and it is why music can't get in the way). Though programming itself is not action, it's a planning activity, but something suggests planning an action and acting should happen in the same area of the brain. When you write a program, you create a mental model of the future program and imagine how it will _act_ in various situations. If the input can not be parsed, raise an error, etc. A "theory of mind" applied to a virtual machine rather than a human.

Which brings me to another interesting question of why programming comes "naturally" to some specific type of people, while it can be a challenge to others: it is those of us who can build and maintain a "theory of mind" of a machine relatively easy. Similarly to the real "theory of mind" and sociability that is given to some but not the others.

Anyway, I don't know what the bottom line of this can be, but for one thing, coding is not what it seems. It is not at all just typing text. In fact as a coder, you should think more and write less - that's one of my mottos. The better the mental model of your future machine is, the more elegant and reliable your code will be.

<comment><USER3> When writing, I think music can create a mood mismatch. When coding, momentum is more important than mood.

That's my guess anyway. I found the same thing as you, and came up with that theory many moons back when I was listening to a speed metal song on headphones while watching a street performance, and noted how silly the music made it seem. They were moving so gently and the music really clashed with it in bizarre ways.

</comment></comment><comment><USER4> The paper in question:

Miho Nakajima, L.Ian Schmitt, Michael M. Halassa, "Prefrontal Cortex Regulates Sensory Filtering through a Basal Ganglia-to-Thalamus Pathway"

[https://www.cell.com/neuron/fulltext/S0896-6273(19)30479-9](https://www.cell.com/neuron/fulltext/S0896-6273\(19\)30479-9)

[https://doi.org/10.1016/j.neuron.2019.05.026](https://doi.org/10.1016/j.neuron.2019.05.026)

[http://sci-hub.tw/10.1016/j.neuron.2019.05.026](http://sci- hub.tw/10.1016/j.neuron.2019.05.026)

</comment><comment><USER5> I wonder why we don't do this when listening recorded audio.</comment>


7 reasons you need to stop making whitepapers - <AUTHOR> https://medium.com/@VladimirPolo/7-reasons-you-need-to-stop-making-whitepapers-d0e64b6d943 <comment><USER2> one reason is enough for me. they are boring and it seems like the only reason people make those is to get more emails for their database.

<comment><AUTHOR> I totally agree with you. That's the reason we started to look for another way to deliver interesting and engaging content. And found academies.</comment></comment>


Show HN: (WIP) Axel = Haskell and Lisp - <AUTHOR> https://axellang.github.io <comment><AUTHOR> Axel is a programming language project I've been working on for a couple years to scratch a personal itch: namely, to help alleviate the pain of Template Haskell by integrating a Lisp-esque macro system into Haskell. Axel's syntax is Lisp-like but the semantics are those of Haskell, so (IMHO) it's a happy medium between the two.

It is still very work-in-progress (as the GitHub issues make obvious), but I can no longer resist the temptation to share :-)

Any feedback/questions are appreciated – this is both my first non-trivial PL project _and_ Haskell project, so I'm sure there are many areas for improvement.</comment>


The WordPress Block Patterns Resource List - <AUTHOR> https://gutenbergtimes.com/the-wordpress-block-patterns-resource-list/ <comment><USER2> Tutorials, plugins, themes, and more. Everything you would need to know about the new WordPress feature in 5.5</comment>


Scaling Mercurial at Facebook - <AUTHOR> https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/ <comment><USER2> _Our code base has grown organically and its internal dependencies are very complex._

So instead of cleaning up the internal dependencies, they decided to rewrite Mercurial. That is the kind of thing Facebook likes to do: for example, when PHP got too slow, they wrote a PHP compiler....

<comment><USER3> I think you may not grasp how many thousands of engineers Facebook employs at this point. It is literally easier and less risky for them to assemble a 5-10 person team to fix Hg than to fix the code of thousands of other engineers.

<comment><USER4> While that is true, it is also true that it would have made sense for them to pay for Perforce upfront. I would say that hindsight is 20/20 but I'll wager there was an engineer there who did say this at the time...

<comment><USER5> Perforce won't scale to that level either. As Google has shown. Google's "Piper" is based on Perforce but isn't Perforce, because Perforce couldn't hack it.

</comment></comment></comment></comment><comment><USER6> [https://news.ycombinator.com/item?id=7019673](https://news.ycombinator.com/item?id=7019673) 871 days ago - 241 comments

</comment><comment><USER7> I generally see two reactions to the "one codebase to rule them all" approach (used by Facebook, Google, et. al):

1\. Holy god why would you let your code grow to such a massive, interdependent scale? Just release everything separately and versioned so that breaking changes don't affect everyone all at once. The idea of git being a bottleneck is absurd and you are using it wrong.

2\. This is a very reasonable, practical approach to sharing code across a company. It reduces siloing and ensures that major refactors can happen in one pass without a ton of coordination. Better to fix the version control system than waste endless resources refactoring millions of lines of code.

Both reaction is valid. Having worked in both styles of codebase, I recognize that there are trade-offs in either case. The optimal solution depends on the project and the team.

Sometimes the path of least resistance--that is to say, the path to getting things shipped and, in turn, making money--is to let the codebase grow organically and worry about cleaning up any messy interdependencies later, once you have a better idea of what code you even need to keep around. In this scenario, it's important to recognize that developer efficiency is going to be an uphill battle in the long run, but if you are proactive about maintenance and tooling improvements then this approach can still be relatively painless.

Other times, especially when you're working on a tried-and-tested product with a clear API and a dedicated team, it can be productive to split it out and let the team manage their own versioning and releases. This becomes especially useful if the product is open source. (For instance, I wonder how Facebook manages its open source releases relative to its shared Mercurial codebase.) In this scenario, developer efficiency is usually less of a problem, as proper use of versioning can ensure faster, more agile updates to each product. But the downside is that your company as a whole can end up in a kind of versioning hell, where every project depends on a different version of every other project, and keeping everything up to date can require a huge amount of coordination.

So, in the end, pick your poison. My reaction, years ago, was more along the lines of #1, but I used to be much more of an idealist earlier in my career.

<comment><USER8> Approach #1 lands you in a dependency hell where you have to maintain multiple incompatible versions of each internal library or framework, or each external library that's in use, multiplies the work involved in upgrading dependencies, and in other various ways leads to its own problems. There's no panacea but I can see the appeal of having a single shared codebase.

<comment><USER9> Still, much easier to manage with branches than before git and mercurial were around.

<comment><USER8> It's not a question of managing source branches, it's a question of whether you have to update your OpenSSL dependency once for the whole company or a thousand times over for each individual software package.

</comment></comment></comment></comment><comment><USER10> The same kind of work is being done on Git these days:

[http://thread.gmane.org/gmane.comp.version- control.git/29510...](http://thread.gmane.org/gmane.comp.version- control.git/295106/)

<comment><USER11> I believe this is Twitter once again attempting to integrate their use of watchman (open sourced by FB) into the git core.

Their first attempt was in May 2014: [http://www.spinics.net/lists/git/msg230487.html](http://www.spinics.net/lists/git/msg230487.html)

<comment><USER10> Yeah, David Turner has been working for Twitter. But his work is based on previous work on an "index-helper" daemon by Nguyễn Thái Ngọc Duy who is not working for any company as far as I know.

<comment><USER11> He's also involved in the thread from May 2014.

</comment></comment></comment></comment><comment><USER12> > January 7, 2014

This is years old. Am I missing why this is newly relevant?

</comment><comment><USER13> This seems to be an old article (January 7, 2014) anyone know if Facebook still use Mercurial?

About securing different parts of the repo, the mercurial server actually doesn't have any user authentication! You are meant to do that yourself with SSH or a web server, where you should be able to have more restrict access to some special folders.

About using a single repo, it does make sense to have all code that interact with each other at the same place. Imagine changing a variable name in some API and at the same time update all usage of that name in the whole codebase. And imagine the bureaucracy and people management for just making a variable change if there where separate repos witch you might not even have access to.

</comment><comment><USER14> I kind of like to hate on Facebook because they waste my time and (try to) track me everywhere. But I'm also a big Hg fan, and Watchman looks awesome. So it's hard to completely hate them. Sigh. They're kinda like Google.

</comment><comment><USER15> (2014)

</comment><comment><USER16> It's funny how they did not use Perforce which works really well for large repositories.

<comment><USER17> They did mention Perforce in passing:

> For a repository as large as ours, a major bottleneck is simply finding out > what files have changed. Git examines every file and naturally becomes > slower and slower as the number of files increases, while Perforce "cheats" > by forcing users to tell it which files they are going to edit. The Git > approach doesn't scale, and the Perforce approach isn't friendly.

I don't know if Perforce's "unfriendliness" is enough reason not to choose it nor do I know if that was the only reason they rejected it. However, speaking for myself, I vastly prefer Subversion, Git, and Mercurial over Perforce precisely because Perforce requires you to ask for permission before you can edit a file.

<comment><USER18> For any of the major IDEs with Perforce plugins, this happens automatically when you start editing a file. It's essentially a non-issue for normal use cases. Things work a little differently when you're offline, but for most people, offline work is uncommon.</comment></comment></comment>


So then what is computer engineering - <AUTHOR> So Computer Science is Engineering? <comment><USER2> Computer Science = theory of software (should really be called Algorithmics or Informatics)

Software Engineering = practice of building software (what people should be studying instead of CS)

Computer Engineering = building hardware</comment>


Douglas Coupland: Moody - <AUTHOR> http://www.ft.com/cms/s/2/c737c3fc-1468-11e5-ad6e-00144feabdc0.html <comment><USER2> "Douglas Coupland is currently artist in residence at the Google Cultural Institute in Paris"

Try explaining THAT to someone from past decades. Wow

<comment><USER3> The Medici's made a fortune in banking and politics and were great sponsors of art.

<comment><USER4> I think more-so what past decades may find unusual is that a Canadian, born in Germany, is an artist in residence position in France, at an American institution.

<comment><USER5> In all fairness, in the days of the Medicis, those who were both educated and well-off lived in as cosmopolitan a society as the one you describe.

</comment></comment></comment></comment><comment><USER6> > Until the mid-20th century, alcohol was it.

Not really. Cannabis, opium, mushrooms, etc. have been around forever and have been marginalized to a greater or lesser extent over time, and often much less than they were in the 20th century.

I've enjoyed some Coupland work, but I didn't get this piece at all.

<comment><USER7> I'm with you - this is a noted (at least in Canada) author, who appears to be ignorant of history and especially of markers in his own craft. Sherlock Holmes/snuff, etc.

<comment><USER8> > _Sherlock Holmes /snuff, etc._

Sherlock Holmes or Freyd etc, is not indicative of any trends in the general population. Might as well have used Mescalito indians as an example to rampant psychedelics use in the USA in the 19th century...

<comment><USER7> "It originated in the Americas and was in common use in Europe by the 17th century"

[https://en.wikipedia.org/wiki/Snuff_%28tobacco%29](https://en.wikipedia.org/wiki/Snuff_%28tobacco%29)

<comment><USER8> In the same Wikipedia articles it mentions several times that it mostly spread among the elites.

</comment></comment></comment></comment></comment><comment><USER9> Is "neural reconfiguration generated by extended internet usage" a real phenomenon, or is that just a clever turn-of-phrase for reading?

<comment><USER10> Neural reconfiguration generated by extended anything is probably real. This is the point of practicing or training.

<comment><USER8> It also happens with not practicing and not training, drug use, prolonger stress, brain-washing etc (in the negative way).

</comment></comment></comment><comment><USER11> I usually like to read Coupland, but I disagree here. Seems to me there were always ways to experience different moods: simply by doing things. Watching a sun setting would evoke different moods than chopping wood or reading a book.

</comment><comment><USER12> I get the impression, reading certain writers, that they live in some parallel universe very different from my own. Just about every paragraph here had me saying 'what?'.

<comment><USER13> Try reading Generation X [1] by the same guy, I'm still trying to make sense of the book after 2 weeks of finishing it :P

[1] [https://en.wikipedia.org/wiki/Generation_X:_Tales_for_an_Acc...](https://en.wikipedia.org/wiki/Generation_X:_Tales_for_an_Accelerated_Culture)

<comment><USER14> 20+ years later it's hard to have a context on Generation X and how perfectly it captured that moment in time. (American Psycho was published the same year - how's that for context!). Post-Regan, Post-yuppie (well, almost), Pre- grunge, mostly pre-internet...

Generation X, McJob etc are all parts of the lexicon now. Fight Club always felt to me like a kind of follow-up to Generation X.

It's the weakness in Couplands whole "capture the zeitgeist" storytelling. 150 years on, Great Expectations is still relateable. Generation X, not so much. I still love the book though :-)

</comment></comment></comment><comment><USER15> I don't exactly disagree with what he said, but what was the point of this article?</comment>


Transitioning Firefox's rendering engine from Gecko to Servo - <AUTHOR> http://jensimmons.com/post/jan-4-2017/replacing-jet-engine-while-still-flying <comment><USER4> I've seen this before:

>> At some point in mid-2017, all new CSS will be built with Quantum plane parts, not Gecko. Going forward, it will be much easier and more enjoyable to implement new CSS properties. Which makes it easier for folks in the open source community to contribute.

If you're not careful this can drag on for years with half the stuff done one way and half the new way - especially once you reach the point where "all new stuff is built the new way". There can come a point where you need to just purge the old stuff. We've seen this in places like GIMP moving to GEGL, and several project moving to GTK3 (GIMP, Inkscape, and others), the purge of java from LibreOffice, and now there's this mushy migration to Wayland. Firefox is not the only project migrating to rust either.

In all these cases I'm actually _in favor_ of the migrations, and many of those have been completed over years. It's just that once a path has been defined I feel like there needs to be a more concerted effort to actually complete the transition sooner rather than later. Let new features take a back seat and get your internals switched over. I know it's a balance but working on a project that's straddling the fence is almost always slower in the long run.

Having said that, firefox is huge so subsystems will need to switch to rust one at a time. I'm just saying that once CSS can be done the new way they need to _require_ it to _all_ be done that way, not just new stuff. Perhaps that is the case and it wasn't spelled out clearly in TFA.

<comment><USER5> A good way to force this along is to have a champion for the work, and an automated burndown metric that random devs can watch and influence.

Mozilla is pretty good at the latter, cf. [https://arewefastyet.com](https://arewefastyet.com)

<comment><USER6> Seems like Safari is doing better than everything else if I'm reading the charts right.

<comment><USER7> I don't think so. It's at the bottom for "Sunspider execution time" and "Octane score", but I would expect execution time to be "lower is better" (so Safari is best), but a score to be "higher is better" (so Safari is worst).

<comment><USER8> On "Octane score" you can see the vertical axis reads 0 at the top and 40000 at the bottom, so it seems it's always "lower is better" across the three graphs, which also means Safari is the fastest browser, if you consider just these metrics. I'm actually surprised...

</comment></comment></comment></comment></comment><comment><USER9> > Going forward, it will be much easier and more enjoyable to implement new > CSS properties. Which makes it easier for folks in the open source community > to contribute. Which makes new things come out faster.

I had never really thought of Servo in these terms before, but it makes a lot of sense.

Mozilla, being a nonprofit, can't compete with Google / Apple / Microsoft doing things _their way_. They inherently have a greater need for the free- time contributions.

Given that, if you can make contributions easier and "fun", by choosing a more modern language and toolchain, it could theoretically be a competitive advantage.

Thinking about it like this, the recent Rust marketing articles make a lot of sense. Rust marketing matters because the more Rust developers there are, the more potential Servo (and thus Firefox) developers there are.

Whether it pans out or not remains to be seen, but as a way to attempt to hack a problem, I really like it.

<comment><USER10> Mozilla is really just another software company owned by a nonprofit. They have hundreds of millions in revenue and have been "profitable" in many/all years. But they are definitely much smaller than Google/Apple/MS and can't benefit from ecosystem lock-in effects.

<comment><USER9> Everything's comparative, of course. Mozilla isn't a solo dev's weekend project, but it's also not a top 10 most valuable company in the world, like all of its competitors are.

<comment><USER11> Also, Mozilla, the way it is setup, does not have the same incentives as its competitors do, all of which are publicly traded firms.

</comment></comment></comment></comment><comment><USER12> > And Firefox runs on Gecko. Which is old. Like really old. I think it's the > oldest rendering engine still in wide use.

Gecko may be oldest, but not with wide margin: KHTML (the origin of webkit and blink) was started in 1998, only a year after Gecko. Of course, probably not much (if any?) of the original KHTML source is still present in webkit, and because of the nature of open source development, there is blurry line between projects.

I actually ran KDE 1.0 as my main DE and used KHTML as my primary browser (falling back to Netscape when particular site was incompatible). I did immediately appreciate the coherence & elegance of KDE. It lasted for several years before OS X came and finally won me. Oh, those were times.

<comment><USER13> You are still on KDE 1?

<comment><USER14> No, "run" is Past Simple here. It took me a few moments to get that though.

<comment><USER15> Is that an Americanism? Ran is most common in the UK.

<comment><USER16> I think they omitted 'had' from run. The past tense of run is 'had run', 'was running' or 'ran' depending on how you want to use it after all.

<comment><USER12> Thanks for correcting, I meant the past tense, not a native English speaker, fixed run -> ran.

</comment></comment></comment></comment></comment></comment><comment><USER17> There is really interesting podcast episode about Rust and Servo [https://changelog.com/podcast/228](https://changelog.com/podcast/228) with [https://en.wikipedia.org/wiki/Jack_Moffitt](https://en.wikipedia.org/wiki/Jack_Moffitt)

Definitely worth listening to, tons of info there.

from show notes interesting presentation: [https://docs.google.com/presentation/d/1-FSfNO- oT9Wqo2swvm6U...](https://docs.google.com/presentation/d/1-FSfNO- oT9Wqo2swvm6UnsybYzsmKcb_DScJpd-4PIA/edit)

</comment><comment><USER18> I'm so happy to read this and all I can say is I hope they succeed - <USER3> faster, the better. I used to run Firefox and loved it so much, but it started falling behind in performance so much that I had to switch out of necessity. I haven't really seen it improve much over the years. On the contrary, Safari, while it always felt a bit slower than Chrome, is feeling faster and faster with each update.

Working at a company where I occasionally create presentational sites, I often have to create and optimise animations that some designer thought would be so very radical and the two browsers that are extremely painful to support are usually Firefox and Internet Edge-splorer (pardon the pun).

I have animations that run at a smooth 60fps in Chrome and Safari effortlessly, quite often producing 1-2 FPS in Firefox. Their updates are quite weird too, between the last 3 updates, I've seen the project I was working on run bad enough that I had to fallback to the mobile-lite version on FF to running acceptably (30+ fps) to running like crap again.

And maybe we'll see 16 year old style rendering bugs get fixed finally, too? Please, pretty, please?

After ripping on it a bit, tho, I have to say: I'm looking forward to running Firefox again in the future, as much as I like Safari at the moment, it's closed source and I don't like being exposed to Apple's whims (especially lately), where if they decide to destroy by making it unusable I'm left out to dry and quite frankly Google Chrome just creeps me out now.

<comment><USER19> > I have animations that run at a smooth 60fps in Chrome and Safari > effortlessly, quite often producing 1-2 FPS in Firefox.

Can you give an example? I'm sure Mozilla's animation people would love to hear about this.

</comment></comment><comment><USER20> Is this an announcement of a change in strategy? I'm a big fan of rust and Servo, but my understanding was that it's still "experimental" and they're learning stuff about concurrent rendering and stuff like that, with no _concrete_ plan to use Servo in Firefox (or make Servo a standalone, supported browser). I know there's a few odds and ends in Firefox that use rust, but I thought the future of Servo was still ambiguous. Am I (was I) wrong about that?

But it sounds like now the official plan is to get Servo into Firefox. Great!

<comment><USER21> It's called Project Quantum, they announced it a few months back, as a formal project to integrate Servo components into Gecko.

<comment><USER20> Ah, great. Must have missed that announcement. Thanks! I noticed the blog post using that term but didn't realize it was from an old announcement.

</comment></comment></comment><comment><USER22> Wow, I think the comments section below was ugly.

I have been worried about Firefox and seriously questioned some of the decisions along the road but I think and hope I always respected the devs who volunteer for this.

</comment><comment><USER23> Call caniuse, flexbugs, quirksmode, stackoverflow and it's companion codepen on the deck, there will be some action!

creating a renderer in 90% of the work, the other 90% is documenting its bugs and quirks.

<comment><USER24> Correct. That's why it's such a massive task. Servo is pretty decent at supporting a lot of web standards now. Unfortunately, the real web is made of quirks and implementation targeting workarounds.

I think the biggest lesson from Servo is that entry barrier to the web market is already much higher than we would like it to be.

Having a great new web engine supporting 100% of web standards does not get you even close to being ready to serve the web.

And the willingness of web developer community to take the "one browser only feature" bait is a major part of the problem.

</comment></comment><comment><USER25> Good to see some internal motivation from Mozilla's side for a bridge between rust and c++. This will be needed to drive major adaptation of rust.

</comment><comment><USER26> It will definitely be welcome to see the fairly aging Gecko replaced. The nightly build of servo barely renders a number of websites and won't at all for more media laden sites (as you'd expect). I hope this merge via Quantum[1] will be forthcoming soon, so we can test it.

[1] [https://wiki.mozilla.org/Quantum](https://wiki.mozilla.org/Quantum)

</comment><comment><USER27> Wouldn't it be easier to build a new plane around the new engine, do some flight tests and after it's ready transfer all passengers?

<comment><USER28> That has two problems:

1) A lot of flight tests can't be done without a large fraction of passengers on the plane.

2) It may make getting to the final end state faster (though maybe not), but it means you don't get any benefits until you make the switch. Doing things incrementally means you start seeing benefits much earlier. Classic throughput/latency tradeoff.

<comment><USER27> What's better to end up in the final end state later, or lose customers because your software is crashing and is harder to maintain because you're introducing totally new way to do stuff?

<comment><USER24> That's a leading question and a false dillema.

</comment></comment></comment></comment><comment><USER29> Even though the title might disappoint, it's super interesting to see where Firefox is going. I can't wait for 2017!

<comment><USER30> Looking forward to it too; this is a big deal because it will put a Rust implementation on many millions of desktops. I'm totally fed up with CPU and memory hogging browser bloat on my laptop. My dev env runs so much better when I kill all Chrome processes. I know that the article is only talking about the render engine, and not JavaScript, which I suspect is the main browser bloat culprit , but I'm still hopeful. Bring on the Rust JS engine I say!

<comment><USER31> Rust is neither faster nor more efficient than C++.... its benefits lie elsewhere.

<comment><USER32> Rust should be just as fast as C++ and C. Benchmarks are hard of course because optimizations and such. But if Rust is significantly slower, than it is a bug.

<comment><USER31> I think you may have misunderstood my comment, as I did not mean to disparage Rust's speed nor imply it was slower than C/C++. Rust, at best, can match C/C++. But Rust cannot be faster than C/C++; therefore, by function of simply being rewritten in rust (and not because it was _rewritten_ ), that does not, in and of itself, make the resulting executables faster.

<comment><USER33> There is no proof that any existing C/C++ implementation can produce code that is globally optimal. I wouldn't say that it is impossible for Rust to beat C/C++...there is _plenty_ of room for improvement in compiler optimization engines.

I would even say that the room for improvement is potentially greater for rust than it is for C/C++, due to the type system. It hasn't been taken advantage of much yet, but MIR is one of the first steps to do so. It's an intermediate stage representation, like llvm's IR, but with all type resolution intact. There are plenty of known and even formally proven code optimizations that can only be used if certain guarantees are proven (such as the guarantees made by a strong type system).

</comment></comment></comment></comment></comment></comment><comment><USER34> Unclear on the audience for this post. All the "jet engine" stuff sounds like it's aimed at consumers, but this is of no interest to average consumers; instead, shouldn't this be of interest to devs who build web apps or embed rendering engines?

</comment><comment><USER35> Note to author, please change your font, It's really hard to read on my screen. [http://i.imgur.com/C9RdFHv.png](http://i.imgur.com/C9RdFHv.png) Windows 10 + Chrome.

</comment><comment><USER36> I am very happy seeing C/C++ getting replaced by something more modern and safer as Rust

(though the debug version in Rust is probably slow - that will be something interesting to see)

</comment><comment><USER37> Curious about the results. Most of luck to the team.

</comment><comment><USER38> They are still using many unsafe blocks and there was an use-after-free before :P

<comment><USER39> Yes. But the point is any unsafe code can be reviewed separately and be subject to more stringent checking than the majority of code which is safe.

I've been looking at the HTML parser they are writing (servo/html5ever) which is incredibly impressive and parses the hideous Daily Mail homepage in my tests in < 30ms. It uses the tendril library which contains lots and lots of unsafe code, but this library is set out to do a very specific thing which is make parsing strings much much more efficient. This is a design tradeoff that is desirable; as long as tendril can be shown to be robust it's a good decision over a slower parser.

</comment></comment><comment><USER40> Did the comment section on this website look weird to anyone else?

</comment><comment><USER41> Makes me wonder what's going to happen to Presto now that the Chinese bought Opera ASA...

<comment><USER42> Presto was only still being used in Opera Mini, it had been swapped out for Blink in the desktop and full-fat mobile versions.

<comment><USER41> I know, but I'm replying from a Presto-powered desktop browser :) .

People have been asking for open-sourcing of it ever since the switch happened, but I guess we'll never see that happen.

<comment><USER43> Realistically, at this point, I'd say it won't happen. I wouldn't have ruled out Opera Software ASA open-sourcing it once it was a mere historical curiosity, but with it having gone to the new owners of the consumer browser business, I can't see it happening.

</comment></comment></comment></comment><comment><USER44> What do folks think of internetisms that the author uses like "Because Mor Better Ideas™."?

I see a number of engineers use broken phrasing like that in posts and presentations and it comes off really badly to others not in on the "joke". Does anyone really find that sort of thing actually funny or additive or is it the equivalent of trite office humor gone online?

<comment><USER45> It's annoying and unprofessional. Stop trying to be cutesy and present the information in a way that people who are busy can consume quickly and make decisions on.

Is this the tone of the whole project? I'd love to contribute, but I don't want to wade through a reddit-comment-thread-level of forced references and memes to do that.

I get the reason for doing it, and I like that the internet isn't full of drab corporate-speak all the time, but this piece just missed the mark I think. The title doesn't really communicate the intent well and instead feels like its trying to be a little clever for the sake of being clever. It's really a two or three sentence press release that got fluffed up with some non-corporate language.

<comment><USER46> > I'd love to contribute, but I don't want to wade through a reddit-comment- > thread-level of forced references and memes to do that.

I'm going to have call you out on this. You have no wishes to contribute. Because asking this question reveals you haven't even bothered to look at the repositories, join IRC channels, or subscribe to the mailing lists.

You're here to complain and you're using hypothetical constructive motivations to masquerade that fact. State your opinion without the fussy lie, there was really nothing wrong with it.

<comment><USER9> I love this comment.

The term for the grandparent comment is concern trolling.

</comment></comment></comment></comment><comment><USER47> The submission title has been changed from "Replacing the Jet Engine While Still Flying" to "Mozilla's project to replace Gecko with Servo" (at the time of this writing).

Some of the other comments are pertaining to the "Jet Engine" title. For anybody that might be confused, like I was :)

<comment><USER48> Unfortunately the new title seems to be misleading in a different way. There is no "project to replace gecko with servo". There is a project to advance gecko so it is state of the art in browser engines. Much of the current state of the art has been developed in Servo, and the natural way to bring that technology to gecko is to integrate the components from servo directly. This has other nice properties like increasing the Rust-to-C++ ratio, which we believe will be a win for safety and maintainability. But it is nevertheless components, rather than the whole shebang. Servo, for example, only just got document.write support and still (as far as I know) doesn't have a correct representation of document history. So it is some way from being a production grade engine for use on the general web.

<comment><USER49> Well, you can write individual components in Rust and put them into Servo and then refactor the existing C++ to make it modular enough for those components to be replaced by the Rust version.

Then eventually you'll be able to replace enough components that it's all Servo, and no Gecko. At that point Servo will be functionally complete, as its individual components will be on par with the Gecko components.

<comment><USER43> I think it's unclear whether everything will get replaced by Rust components from Servo: certainly, smaller components are likely to get replaced, but larger interwoven parts are obviously going to be far harder to replace. I suspect not all of the Rust code that replaces the old C++ code will be from Servo: some will be written specifically for Gecko.

<comment><USER49> Firefox has already committed to eliminating XUL components. Once it has the correct APIs to emulate existing add-ons, mobile Firefox could probably switch over to Servo. Desktop has a lot more cruft and features, so it will probably be harder to switch.

But I wouldn't be surprised if Servo is usable on mobile in 2017.

<comment><USER48> I would be astonished if Servo is usable as a mass-market web browser in 12 months. Writing a rendering engine is _hard_ because there is quarter of a century of legacy to deal with. By the metric of "can I use this for 100% of my browsing needs" Servo is far from being complete.

Much of Mozilla's "quantum" work is actually about improving C++ code e.g. the Quantum DOM project [1], which is a drive to improve scheduling so that a single background tab, even in the same process, can't jank the tab you are currently using [2]. Importing servo components wholesale simply wouldn't help here because Servo doesn't have a sufficiently complete DOM implementation, and I'm not sure the implementation it has contains all the desired properties.

[1] [https://billmccloskey.wordpress.com/2016/10/27/mozillas- quan...](https://billmccloskey.wordpress.com/2016/10/27/mozillas-quantum- project/) [2] I am occasionally taken to refer to this project as "Presto: the good parts"

</comment></comment></comment></comment></comment></comment><comment><USER50> I'm on this rust hype train for a long time. This move by mozilla is probably going to be the biggest success story that might give rust a lot of attention. I hope the new engine is fast as heck and uses less battery in all my devices. Please!

<comment><USER51> If performance is not competitive, it will not be much of a success story, but it will be more interesting to see how much better it will be in terms of security issues.

<comment><USER52> It was better 2 years ago (with caveats) - [https://www.phoronix.com/scan.php?page=news_item&px=MTgzNDA](https://www.phoronix.com/scan.php?page=news_item&px=MTgzNDA)

But there's definitely place for speed gains due to multithreading.

<comment><USER53> After years of the multicore hype, we finally can reap its benefits.

</comment></comment></comment></comment><comment><USER54> I was honestly expecting an interesting story about a real jet engine being replaced in flight.

<comment><USER55> The story changed its title from being about Gecko and Servo to this literally in between me viewing the frontpage and clicking on the comments link.

This story here is IMO should be extempt from the "original title" rule - <USER3> original title is _annoyingly_ misleading.

<comment><USER56> Leave the title, append it with "Transitioning from Gecko to Servo".

<comment><USER57> Yup, as soon as possible. I was also looking forward to read about jet engine being replaced in mid air.

</comment></comment></comment></comment><comment><USER58> I was disappointed after reading the title when I saw the article...

<comment><USER59> Yeah, talk about setting people up for a letdown. :) I was expecting some insane experiment from the golden era of aviation.

<comment><USER60> And the analogy is a bad one, too. I think it's trying to make the task sound more difficult than it is.

If we stick with the airplane analogy, maybe this is better: it's like incrementally converting an older model jet engine to a newer model jet engine in between flights. Every incremental version must work correctly, which isn't easy, but the upgrades are definitely performed on the ground.

</comment></comment></comment><comment><USER61> Wouldn't it be more appropriate to have written rust in a GPU language like OpenGL or OpenCL, since the aim here was to replace the display engine?

Curious as to why use a CPU language for the display engine rewrite? It seems to be wasting the GPU all modern systems now contain..

Also, is it fully replacing the display engine, including the font renderer and image codecs?

<comment><USER62> Servo makes incredibly good use of the GPU. Being able to do that, and iterate so fast on that work, is part of what Rust brings to the table.

(I don't think they've swapped out the font renderer and image codecs yet, but there are quite a few bits and pieces they have swapped out as the Rust community delivers more pure Rust libraries.)

<comment><USER63> > Servo makes incredibly good use of the GPU.

 _Too_ good, in fact: it won't run on any laptops that I own because their GPUs don't support a sufficient level of OpenGL.

One great aspect of Firefox-with-Gecko is that you can throw it onto just about any machine with more than 512MB of RAM and it will provide bootstrap web access ( slow or otherwise ). That's going to be lost when everything is Servoised. I guess it's back to links2 at that point.

<comment><USER64> How old are your laptops?

For ease of development, webrender2 is configured to compile with the latest OpenGl 4.x features. I believe there is a way to build it to target a lower OpenGl version.

Edit: Correction, its currently targeted at OpenGl 3.2. There's an open issue for bringing it down to OpenGl 3.1 which is the version supported by integrated Sandybridge GPUs. Considering 40% of people running Intel are using Sandybridge or older, that's probably why it wont run on your laptops.

<comment><USER63> Youngest laptop here is from 2011:

 _Intel Corporation Mobile GM965 /GL960 Integrated Graphics Controller_

 _OpenGL renderer string: Mesa DRI Intel(R) 965GM_

Maximum OpenGL version for that chipset is 2.0, apparently, though I can't find a way to push it beyond 1.4 on Linux

I appreciate that six years old is ancient by SV standards but I would be interested to learn what proportion of Firefox users are on equally old hardware. I did try launching Servo with CPU rendering but it hung indefinitely.

<comment><USER64> Servo isn't a production ready consumer browser and it won't be for a long time because its purpose is to facilitate research into parallel browser engines. While a 2007 chipset may not be very old among the average consumer, it is probably not going to work for a developer machine that's going to be compiling a huge codebase under active development.

I don't think the software fallback has gotten much love but AFAIK it'll work fine once llvmpipe support is added to webrender2 [1]. Once that is done, rendering will work with the vast majority of laptops and desktops running Linux/MacOS/Windows. The OpenGL version supported by that chipset is over a decade old so devoting time to compatibility this early in the project would be a waste of time (and defeat the purpose since the standard predates the explosion of mobile devices).

[1] [https://github.com/servo/servo/issues/13653](https://github.com/servo/servo/issues/13653)

</comment></comment></comment></comment></comment></comment><comment><USER65> This didnt deliver.

</comment><comment><USER66> By the time they will finally make the switch, Firefox' market share will probably have plunged to a very low single digit percentage.

<comment><USER67> Actually, it's already there. Has been since last year.

</comment></comment><comment><USER68> Missed opportunity to name the CSS engine replacement project "Gangnam".

</comment><comment><USER69> I just wish that their UI (UX? ugh...) team was as competent as their engine team appears to be.

<comment><USER70> What is your complaint, exactly? Considering it includes support for almost total customization of the user interface by third-party code, I think they've done an excellent job with the UX.

<comment><USER69> I expect that support to vanish under the dual guise of multi-process and "security". Never mind that more and more Firefox have been taking on the appearance of a Chrome clone, rather than offering a distinct look.

<comment><USER71> Have you seen the browser.html project?

</comment></comment></comment></comment><comment><USER72> This seems apt: [https://www.joelonsoftware.com/2000/04/06/things-you- should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never- do-part-i/)

Mozilla spending time on this suggests Mozilla doesn't know what to spend time on.

<comment><USER73> Ironically Mozilla is the best counter-example to that Joel on Software article.

The article specifically mentions that Netscape shouldn't try and re-write their browser. But if they hadn't done that, we wouldn't have Firefox. We'd still have an incremental improvement over Netscape 4.7.

For those who can't remember Netscape 4.7, let me remind you, it wasn't very good at the end. If they hadn't rewritten it, causing Joel to write that article to tell them they were wrong, there would be no relevant browser called Firefox today.

<comment><USER74> The complete rewrite wasn't initially too good either. It took them years to bring it on par with Netscape 4.7, warts and all.

I've been in a talk of a mozilla developer like a decade or more ago, shortly after they had released the rewrite. His comment on starting a project like that from scratch: "don't". What they intend to do (slowly and gradually transition to Servo) seems consistent with an organization that has learned from this experience.

<comment><USER75> Ah, the "Mariner" cancellation debacle.</comment></comment></comment></comment>


Show HN: Turn articles to read into podcasts to listen - <AUTHOR> https://remarkboard.com/?hn1 <comment><USER2> Cool! I prefer listening instead of reading so this is a great service to me!

<comment><AUTHOR> Thanks a lot! Do you find it hard to understand how the app works?</comment></comment>


TLS 1.2 Support Added to Chromium - <AUTHOR> https://chromiumcodereview.appspot.com/14772023

<comment><USER2> Anyone one know if GCM is coming soon?

<comment><USER3> It's a little odd to me that so few folks support GCM. It's not that difficult to implement (I've done so, in my free time), it's patent unencumbered and it's extremely secure. So why not use it?</comment></comment>


Show HN: Introducing Skej (by Quasi Convex Union) - <AUTHOR> http://blog.convex.io/post/73244132617/introducing-skej

<comment><USER2> Very exciting. But I expect it will take some a bit of time to appreciate Skej.

</comment><comment><USER3> Awesome!</comment>


Bash script and / or vs. Python or Perl - <AUTHOR>

Hola.  I'm currently trying to decipher at what point should I include Perl or Python functions into a Bash script, or is there a better method?<p>i.e.(If you want to develop a script(s) that performs multiple functions like, Retrieve information from multiple websites, creating a file/folder for each or saving them in an existing file/storage, creating a log file/folder for each instance etc..) Also, I looking to develop an internet monitoring scripts that captures my internet traffic and logs and displays it on a small window.. So a discussion how how you guys would approach this and other scenarios like it would be a great help..  Thanks <comment><USER2> You could download your website using wget or curl, create a directory with the timestamp and saving the snapshot to that folder. You could use tcpdump or pcap and filter it by different criterias. Umh, is this your first assignment in the new job? You can use many tools but simpler is better. no tienes por que reinventar todo cuando existen las herramientas. Saludos</comment>


Universal algorithm set to boost microscopes - <AUTHOR> https://actu.epfl.ch/news/universal-algorithm-set-to-boost-microscopes/ <comment><USER2> I've been looking for an algorithm for a while to examine photos to get their "real" resolution, both to compress my personal collection better, and to provide a relatively rigorous demonstration of when a "12 megapixel photo" is "really" a 2MP photo due to the camera as a whole not being able to support it. I wonder if this could be the basis for what I'm looking for.

<comment><USER3> Be glad you're not taking RAW photos, or this isn't even an option. :(

Anyone have any suggestions for doing the same thing for video?

<comment><USER4> RAW usually compresses, just not as well as lossy. For example, the lossless FLIF image format usually compresses images quite well (and it's lossless - you can binary compare the before and roundtrip images to check).

For video, I suspect there's things like FLIF, but with interframe knowledge, allowing even more compression.

None of these should beat good lossy codecs, but they vastly outperform completely uncompressed data for the stuff people normally capture.

If you somehow capture true random noise, then these wont' work. But most recordings of interest are much more structured, hence compressible.

[https://flif.info/](https://flif.info/)

<comment><USER3> Not really. Some RAWs from some cameras do compress, but not others. (Not sure why; maybe it's already pre-compressed.) As an example, I tried just compressing a random 30MB RAW from my camera (just a photo of jeans, nothing particularly unusual) with 7z on Ultra compression, and it saved—guess what—a whopping 2.2% of its size.

<comment><USER5> 7z is a generic lossless compressor. These algorithms tend to specialize in exact repeating patterns in sequences. Good for english prose, but images tend to have non-exact patterns in two dimension. A dedicated algorithm like FLIF will be much better at picking those up. I would expect an order of magnitude difference in performance between 7z and FLIF.

For the curious: the way these non-exact pattern compressors work is by subtracting out the predicted pattern and then storing the remaining signal, which will be smaller numbers and therefore take less bits to store.

</comment></comment></comment></comment></comment><comment><USER6> Here's the paper (source code is linked in the article): [https://www.researchgate.net/publication/335405938_Parameter...](https://www.researchgate.net/publication/335405938_Parameter- free_image_resolution_estimation_based_on_decorrelation_analysis)

</comment><comment><USER7> What about programmatically determining the resolving power or clarity of an optical component such as a lens or filter while in-place on a camera assembly? This often varies across different parts of the component due to design, dirt, damage, manufacturing issues, etc.

</comment><comment><USER8> Wow, I have casually looked for a tool to get the real resolution of a captured image for years. The best I could do is the comparing the max distance away from a target(checker board or April tag).

<comment><USER9> This isn't for photographs of natural scenes but for microscopic imagery -- not the same.

</comment></comment><comment><USER10> Could this theoretically be used/adjusted for telescopes too?

<comment><USER11> It would be fun to try it with full-res TIFF Hubble images: [http://hubblesource.stsci.edu/sources/illustrations/](http://hubblesource.stsci.edu/sources/illustrations/)

The open source plugin for the image analysis algorithm with is here: [https://github.com/Ades91/ImDecorr](https://github.com/Ades91/ImDecorr)

</comment></comment><comment><USER12> If I were trying to solve this problem, I would Fourier transform and look to see at what spatial frequency the signal stops being larger than photon shot noise. Seems like the obvious first attempt at an approach.

But that's not what they're doing - they're doing something about "image partial phase autocorrelation", which are all words I know but not together. I wonder why the naive method isn't adequate.

<comment><USER13> The usual approach is to assume that those that have dedicated a good chunk of their life to a problem have tried the obvious. Aka as the 'why don't you' fallacy.

It's a good approach to entering a new field, and sometimes (rarely) it actually gets results. But the normal situation is that those in the know have thought of, tried and probably reject all the approaches that a newcomer would come up with in the first 10 minutes.

<comment><USER12> I'm not implying my obvious approach is better and that anyone is stupid for not doing it instead. People downvoting me for implying that are not being charitable.

On the contrary, the fact that they did not use it is good evidence that it is inadequate, given they spent a long time on the problem and I'm sure simpler solutions occurred to them. So I'm agreeing with you here. I'm just expressing interest it knowing _why_ it isn't adequate.

Though for what it's worth I do work a lot with image processing (of trapped atoms though, not biological samples), so my first thoughts are also coming from someone who's spent a decent chunk of time considering these things.

</comment></comment></comment><comment><USER14> I love it when algorithms have such a real world measurable effect.</comment>


Ask HN: Any practical advice/tips for a new Machine Learning guy? - <AUTHOR>

I just moved from a software engineer position to a machine learning team. I know most of ML theory from my comp sci classes, I've re-read the PRML book by Bishop and I'm working through Hastie as we speak. What I'm missing is practical knowledge. I've been using Python and Scikit-learn recently on the tutorial problems from Kaggle, and I know I should get familiar with a Mapreduce implementation like Hadoop. What other skills/tools should I be familiar with? <comment><USER2> Get Webb's book: [http://www.amazon.com/Statistical-Pattern-Recognition- Andrew...](http://www.amazon.com/Statistical-Pattern-Recognition-Andrew- Webb/dp/0470682280) Play with tools like GGobi.

Be aware that most stuff in industry is waaaaay simpler than what comes out of academia. A simple linear classifier, if it works, beats a support vector machine that takes 10 times longer to implement. Most of your day will be spent wrangling data, not dealing with fancy math.

<comment><AUTHOR> Thanks. You hit the proverbial nail on the head. Data wrangling is precisely where my degree doesn't help. Does Webb's book have any pointers for data manipulation or are there other resources?

<comment><USER2> You don't need a book -- just follow the KISS principle and you'll be all right.

IMHO a system that is able to keep its data in plain-text json or CSS files stands a better chance of success than one that stuffs it into proprietary databases and weird binary formats.

Mind you, it always depends on the nature of the data and the skillset of the team. Like most things, the easiest and simplest path is not a universal absolute, but heavily contingent upon circumstance.

Perhaps if you could provide more details of your particular problem, I could provide more detailed help....</comment></comment></comment>


This Guy Found a Way to Block Robocalls When Phone Companies Wouldn't - <AUTHOR> http://www.wired.com/2015/01/guy-found-way-block-robocalls-phone-companies-wouldnt/

<comment><USER2> _Even as Nomorobo has flourished, the country's leading phone companies still avoid such call blocking. And that's rather baffling._

"Rather baffling". I wish I had that dry of a sense of humor. Naturally, the easiest assumption is that the Phone Companies make money from "Anne" and "Rachel" from "Cardholder Services". Given that Bank of America has a "Card Member Services" that calls and sounds a lot like "Anne" and "Rachel", I bet the credit card companies also make a lot of money from it: they get to add overdue charges and other fees when people hang up on legit notices that sound fake.

I can understand the phone companies' stance, and the credit card companies' stance - it's just like ISPs and spam. I can't understand why the FTC and/or the FCC don't go after these scummy scammers. The robocallers are almost certainly using PBXs to put fake IDs on the calls - I haven't gotten a successful call back on any number. I've heard rumors that a lot of the robocallers are also using hacked PBXs as cut-outs. That's _got_ to be illegal. You'd think the F*C agencies would want to stop the robocallers just to stop the constant stream of complaints they get.</comment>