Tell HN: Hacker News Watch - <AUTHOR>

http://hnwatch.scalien.com
Demo account: demo/demo
Hacker News Watch monitors submissions so you don't miss out on topics, comments and commenters relevant to you.
You add keywords (like a Google search) which are saved as permanent searches. Hacker News submissions and linked pages are monitored for your keywords. Results are delivered to your browser in real-time via a Google Reader type interface.
It's a release-early-release-often type release, so it's still rough around the edges (eg. broken on IEx.x). We'll work on features/bugs based on your feedback.
About the project: When we released Keyspace, our replicated key-value store, we would gladly have payed $10/mo. for a service to monitor the real-time web for comments about us, so we can quickly react and make connections. The existing sites ("social media monitoring") are not very good, so we started building our own. HNWatch is a HN-only toy version of this more general product, which is also our primary use-case for Keyspace development.
Hacker News Watch has been OK'd by pg. <comment> old-gregg I'm on this page: <http://hnwatch.scalien.com/welcome.html>

First, it won't let me use "old-gregg", then I use "oldgregg", I click "Register and Login" and nothing happens.

Edit: hitting enter on that form works. I guess the bug is that you don't re- enable submit after a user corrects his input.

<comment><USER2> "And this is as close as you can get to Baileys before your eyes get wet."

</comment></comment><comment><AUTHOR> Clickable link:

<http://hnwatch.scalien.com>

<comment><USER3> and you can also use guest/guest as a dummy login

<comment><AUTHOR> Right now we don't support multiple sessions a la Gmail, except the demo/demo user, which is read-only, hence this is not an issue.

If you open a new session with the same user (eg. in another browser) the previous one will be logged out. If people use the guest/guest they will keep kicking each other out.

</comment></comment></comment><comment><USER4> An alternate solution is to use <http://searchyc.com> and your favorite RSS reader e.g., <http://rss.searchyc.com/searchyc?sort=by_date>

</comment><comment><USER5> Keystrokes would be great.

I use the "j" and "k" keys on google reader to go up/down.

Allowing me to export topic feeds to RSS (and into google reader) would also be helpful.

<comment><AUTHOR> Thanks for the feedback. Keys and RSS are next in the task queue.

</comment></comment><comment><USER6> (demo account) When I go to Watches > Feynman I see 5 matches. The third has "python" highlighted 4 times, but I don't see any mention of "feynman". That's confusing.

I'd rather not have "python" highlighted, since that is not in my selection at that time, even though it is in the global selection.

Otherwise it looks nice, but it goes against how I use HN. Lots of interesting things here don't match my "official" list of interests.

<comment><USER7> Just an idea: if you add "hacker news" as a keyword, you will get all the articles, and if you add your interests then the articles will be organized as well.

</comment></comment><comment><USER8> Hi, I think you'll lose a lot of potential users (like me) because your site requires registration.

Depending on your plans for the site, this may not be a big deal. However, can you explain the reasoning behind requiring registration

<comment><AUTHOR> So we can keep your keywords apart from other user's keywords. I'm not sure what you mean!

<comment><USER8> What I meant (and said) is that many users will not use the site because it requires registration.

<comment><AUTHOR> The site stores "permanent searches" per user and displays the results to the user after logging in on a Google Reader-like interface. Can you explain what's wrong with this? Perhaps you're saying we should let you define searches and export them as RSS so you can add them to your existing feeder?

</comment></comment></comment></comment><comment><USER9> IMO <http://news.ycombinator.com/item?id=808534> should be filed under Java and not Python

</comment><comment><USER10> I think you need to add something on the front page there that lets people know that they need to register (and not just enter their HN username/password).

<comment><AUTHOR> Good point, I added a message.

<comment><USER10> You might want to fix the formatting a bit on it. I just check it on my laptop (1024x768 resolution) and with FireFox 3.5 maximized, it's cut off and won't let me scroll to read the second line. There's a web developer plugin for Firefox that will let you resize the browser to common resolutions so you can see how the site will look on various screen sizes (and let you tweak your CSS so it works on all of them).

<comment><AUTHOR> Thanks, fixed that interface bug.</comment></comment></comment></comment>


Should You Lose Sleep Over 100% Reliability? - <AUTHOR> http://blog.classfrog.com/2011/10/should-you-lose-sleep-over-100.html <comment><USER2> No.

<comment><AUTHOR> Never?

<comment><USER3> As long as you're healthy, you could make up for it. True story.</comment></comment></comment>


Ask HN: Why aren't more startups trying to break into cable industry? - <AUTHOR>

I've been working in the cable industry for 10 years focused on bringing new technologies into the space to drive innovation and value added services.  I always end up working with the same people just running different startup companies.
I know it's a difficult industry to get your foot in the door but I'm wondering why aren't new and fresh players trying to get in?
If a killer startup is interested let me and I can try to help. rhasson at gmail dot com.
Roy <comment><USER2> BTDT.

The reason is probably because the MSO's are horribly slow at adopting new technologies. On top of that if you try to do anything that deals with actual content you get the joy of dealing with the studios and layers of DRM and other bullshit as well.

<comment><AUTHOR> very true but with the scale of users and the rate of growth the opportunities are also very large. AS for dealing with studios and such, usually that's not the startup's problem, that's something the operators will work through if your company is bringing real value. You are right that's not a fun process but it's quickly changing since the operators are losing money to the Internet (if you may) and realize things need to change.

I'm involved in some very interesting projects where this view of operators as being slow and difficult is changing.</comment></comment>


Subsecond Offset Visualizations: Unusual patterns from cloud computing - <AUTHOR> http://dtrace.org/blogs/brendan/2012/03/26/subsecond-offset-heat-maps/

<comment><USER2> The method used to identify the zoneadmd freeze in Riak would be perfect for diagnosing x-runs in realtime audio applications. Here's hoping that awesome monitoring and visualization techniques developed for the cloud find their way into the hands of the jackd and ALSA developers.

</comment><comment><USER3> This reminds me of run-sequence and lag plots:

[http://www.itl.nist.gov/div898/handbook/eda/section3/runseqp...](http://www.itl.nist.gov/div898/handbook/eda/section3/runseqpl.htm)

[http://www.itl.nist.gov/div898/handbook/eda/section3/lagplot...](http://www.itl.nist.gov/div898/handbook/eda/section3/lagplot.htm)

The field of Exploratory Data Analysis (EDA) is full of great techniques. See the root of the above guide.

</comment><comment><USER4> What software is he using in the screenshots?

<comment><USER5> Software at Joyent called "Cloud Analytics" [http://dtrace.org/blogs/dap/2011/03/01/welcome-to-cloud- anal...](http://dtrace.org/blogs/dap/2011/03/01/welcome-to-cloud-analytics/)</comment></comment>


Boxer launches with Dropbox integration before Mailbox - <AUTHOR> http://readwrite.com/2013/06/05/new-boxer-ios-email-app-is-all-about-adding-features

<comment><USER2> I didn't think avatars next to emails was worthwhile, but after using the app for a bit, I find I've processed priority for a message before reading the subject.

Starting to really like this app!!!

</comment><comment><USER3> Very slick app. Just downloaded, simple and easy to use like mailbox but with way better integrations (oh hai, Exchange server). and I got a free version, nice!

</comment><comment><USER4> We want Android!!!

Seriously, if anybody can fix mobile email, it's Jason.</comment>


RMS: Can we rescue OLPC from Windows? - <AUTHOR> http://www.fsf.org/blogs/rms/can-we-rescue-olpc-from-windows/blogentry_view <comment><USER2> You really probably want to refrain from posting rms's articles, given your nick.

<comment><AUTHOR> I meant the other rms, I don't really write many articles for the FSF.

<comment><USER2> This was precisely my point. I know you're not Stallman, but newcomers might not.

<comment><AUTHOR> It's pretty clear if they click on my profile.</comment></comment></comment></comment>


Show HN: LGBT News – Hacker News for LGBT Topics - <AUTHOR> http://equaldex.com/news

<comment><USER2> Why not just use a subreddit?

<comment><AUTHOR> LGBT News is part of a larger site -- Equaldex ([http://equaldex.com](http://equaldex.com)) is a crowdsourced database of LGBT rights, showing every law related to the LGBT rights in each country and region.

I created LGBT News because there was a lack of other information outside of the actual laws in each country and region. When you visit Russia's page ([http://equaldex.com/region/russia](http://equaldex.com/region/russia)), you might assume that it's a little more LGBT-friendly than it is, but if you see some recent headlines about LGBT rights in Russia, it might give you a totally different impression.

When you submit news to LGBT News, you tag it with a country or region so that the news is then surfaced to that country's page.

</comment></comment><comment><USER3> That's great! I've been thinking of starting a similar project. What fork/ version of news/arc are you using, and could you provide some technical details about how the parent site is implemented?

<comment><AUTHOR> Thanks so much!

The whole site (including LGBT News) is built from scratch, using PHP and MySQL. I came across a few turnkey Hacker News sites, but didn't really like any of them. I decided to build LGBT News from scratch just because I thought it'd be easier to integrate into the existing site, and I thought it'd be a fun project (I usually tend to do that for the learning experience).

Login uses Facebook Login (which has been a huge headache), countries and regions were implemented using an ISO database, and some of the additional data (population, religions, etc.) comes from Freebase.

<comment><USER4> Facebook login? Yuck.

<comment><AUTHOR> Yeah, I did it just for the ease, then it turned out to be more work than it was worth.

</comment></comment></comment></comment><comment><USER5> Is this Safe For Work?

<comment><USER6> Why might you think it woukdn't be?

<comment><USER7> Perhaps epochwolf has been to a pride parade and extrapolated.

<comment><USER5> Something like that. I'm a part of the furry fandom. This is the first site I've even seen were LGBT is not heavily associated with sex.

I didn't mean to offend.

</comment></comment></comment></comment><comment><USER8> I previously submitted equaldex.com and it got no traction (at least none that I could tell -- no upvotes, no comments). I submitted it in part because of the beautiful GIS work. I have a certificate in GIS and the maps for different subtopics are really beautiful pieces of work -- they are interesting, informative and have visual appeal. So while you are there, check out that piece as well, if you missed it before.

<comment><AUTHOR> Wow, thanks so much! I appreciate it! When the site first launched in February, someone submitted it HN and it didn't receive any traction as well. :( Maybe someday!

<comment><USER9> Was this me‽

<comment><AUTHOR> Yes. And isn't it funny that we've become BFFs through a Hacker News post?

<comment><USER9> So true. Hey, friend!</comment></comment></comment></comment></comment>


Chinese student makes an 'iPad' for his girlfriend in 10 days - <AUTHOR> http://www.whatsonxiamen.com/news22443.html

<comment><USER2> Homemade laptop to tablet conversions are hardly new. Is this HN worthy because he put an Apple sticker on a Windows tablet? At least he could have modded the software: <http://hackaday.com/2010/03/15/eat-your-heart-out-ipad/></comment>


Erlang: A New Way to Program That's 20 Years Old - <AUTHOR> http://gigaom.com/2007/12/19/erlang-a-new-way-to-program-thats-20-years-old/ Geeks everywhere got excited recently when they heard that SimpleDB might be based on Erlang. Why? Is Erlang the next big thing? Probably not -- it's a 20-year-old language that some programmers find weird. <comment><USER2> Since I partly learnt programming at college and was taught about CSP and Occam, erlang's lightweight processes and inter-process communication model are very appealing. And it's interesting to see a number of projects get written in it, and since even Facebook is using it... :-)

This particular article references Tim Bray's attempts to use erlang for web log processing. He found erlang to be very slow because of the I/O implementation, and criticized it for its regular expression handling. This seems like a silly test since surely you'd use Perl and friends for something like that.

Personally, I'm interested in building something with erlang just to get my feet wet with the language. And I'd be interested to hear about the experiences of others with erlang in real projects.

<comment><AUTHOR> having never played with it I am tempted, I think a webserver might be a could project for it.

<comment><USER2> The problem with a web server is that I'm not sure there's much interesting inter-process communication which I think is where erlang would really shine. Sure you can spawn a lightweight process for each incoming connection, but after that?

<comment><AUTHOR> true, but what about a comet one? that way its doing a little more than serving up data.

<comment><USER3> A friend of mine is working on a comet server in Erlang at <http://code.google.com/p/erlycomet/>

<comment><AUTHOR> that looks pretty smart. Anyone know what the hardware to connections ratio is for it?

</comment></comment></comment></comment></comment></comment><comment><USER3> For those of us who program in Erlang calling it 'weird' is a compliment :-) I think it's like complaining about parenthesis to a Lisper ...

Both Lisp and Erlang make you think is a different way that once you get into that mode of thinking you really do become more efficient.

<comment> a-priori I totally agree, but really, I don't see what's so horribly strange about Erlang. Don't get me wrong: it's my favourite language and I'm in the process of founding a startup with Erlang as the core language. I just don't understand the aversion... people seem to treat it like an impenetrable terra incognita.

<comment><USER4> i think its more to do with functional aspects of the language rather than it's "user-interface" aka the syntax. erlang as first intro to functional language might be non-trivial (imho ofcourse). starting with sicp to understand it's (functional programming's) essence should put anyone on terra- firma.

</comment></comment></comment><comment><USER5> I recently tried Erlang and it was fun, but I am not that excited by it anymore. It could do with some convenience features, like arrays. List module could be imported per default and stuff like that. I ended up having to write my own methods for fairly standard things (could have been because of my lack of experience with Erlang, though). And I only did some simple project euler problems, nothing big.

<comment><USER6> You may want to examine Erlang again. The recent R12B-0 release included an array module that allows you to do nice sparse-arrays, etc.

<comment><USER5> Thanks, will do.

</comment></comment></comment><comment> a-priori That article's horse crap. Do they not have any better criticism of Erlang other than "it's weird"?

<comment><AUTHOR> I didn't really feel they were criticizing it but merely pointing out that its not a main stream programming language.</comment></comment>


Never trust the client - <AUTHOR> http://gafferongames.com/2016/04/25/never-trust-the-client/ <comment><USER2> "Never trust the client" is good advice for _every_ kind of application. Clients are filthy liars.

Clients have bugs. Old clients don't upgrade. Packets arrive out of order. ACKs never make it to clients, causing clients to repeat what the client believes to be a failed operation. All of this is before even considering an attacker actively trying to subvert you.

The server should always be the source of truth. It should always enforce all the consistency rules. Database schemas can be a critical tool here as well.

Don't blindly slap whatever the client sends into a no-SQL database, then vomit it back out for queries.

<comment><USER3> I saw a talk where a guy was showing how to cheat at some games. A lot of games will detect and crash you out if they detect a debugger attached to them.

Things like Punk Buster, et. al. are more like anti-virus software: they try to find the signatures of known chat clients.

So it's best to write you own...and rename your debugging process to "Google Chrome." He got pretty far with his auto-walker in some MMOs. He had limiters so his runs wouldn't be too fast and would go up/downhill correctly...or so he though. He forgot to multiple by -1 somewhere and the server banned him for attempting to fly of into space.

<comment><USER4> More modern anti-cheat software seem to have a trend to move to kernel space[1] and block user-mode access. So it's not just signature checking, but some generic attack prevention as well. (Cheats also move to kernel space, of course.)

Wonder how soon there will be a market of PCI-e cheat rigs for DMA attacks...

____

[1] Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their machines.

<comment><USER5> > Yep, gamers are literally accepting rootkits that allow arbitrary remote > code execution on their machines.

That's certainly risky and rather horrible, but what's the alternative? Multiplayer games are a huge business and a huge culture, and all that goes down the drain if people cheat.

Game companies have millions of people around the world competing for prestige and money. They're running game software on their own personal computers-- machines that are also full of their financial records, naked pictures and personal correspondence. If your game is full of cheaters, you're done. If your game gets players hacked, you're really done.

I have no idea what the solution is, and I'm really glad it's not my job to figure it out.

<comment><USER6> The solution is simple: do everything server side. Look at World of Tanks for a great example of this. They pretty much let people run free with mods in multiplayer and even the worst of those mods can barely provide an advantage in online play. They do this by managing absolutely everything server side. Ammo, direction of aim, position, enemy players appearing and disappearing etc. Basically your server should be built to send only what's absolutely necessary and your client should be built to use absolutely everything so cheats can't provide much advantage rather than vice versa.

<comment><USER7> An even better solution: let the competitive advantages be given only by doing things the computer is bad at and human beings enjoy doing.

If you get a competitive advantage from doing something like grinding, which computers can do better and more tirelessly than humans, and humans tend to dislike, then inevitably you will have cheating. (e.g. WoW)

If on the other hand the competitive advantage is from working out a strategy of in what order to play your cards to maximise your chances of building up your strength while attacking the opponent and yet keeping something in store for surprises the opponent may spring on you - a really complex strategic task - then that's something people enjoy doing and the computer sucks at. (Hearthstone)

People may be addicted to the first kind of games, but is that something that should be protected? It's kind of similar to people addicted to slot machines... sad, a reality we have to accept, but not something we should expend vast amounts of intelligence trying to sustain.

Of course, there are people who will do it for the money, and don't stop them, but realise that they are basically just a few steps short of people refining formulae for meth to make it more addictive - the fact there's a business case that exploits a human weakness doesn't mean it's a productive use of intelligent people's time.

<comment><USER8> There are some things computers are really good at and that human beings also enjoy doing. Computers are insanely fast, yet plenty of reflex-based games exist. A lot of high-level competitive games have a dexterity dimension. FPS games for example are a mix of strategy and dexterity, with a big emphasis on dexterity. RTS games like Starcraft put a bigger emphasis on strategy but still require insane finger dexterity at the highest levels. The dexterity part of the game could be done far better by a simple AI. Aim bots in FPS or inhumanly micro-management in RTS have been demonstrated, yet those games are still played, and interesting.

One of the examples you gave, Hearthstone, actually had many bots running on the ladder for a time. Their goal was grinding, but even so, a number of them was better than a significant portion of the human playerbase. With the recent advances in artificial intelligence, computers are not that bad at this kind of task.

Overall, I don't disagree with your main point though. I have no qualms automating boring and repetitive tasks in non-competitive games. And if a competitive game has those parts, I'd probably avoid playing it. I'd rather spend my time coding than wasting it grinding because it's part of some game I otherwise enjoy. I feel it is indeed a more productive use of my time. I wouldn't go as far as judging other people who like the grind though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Since this is a multi-player game this is obviously a big problem but I've always wondered how you'd handle this in a single player game with a leaderboard.

Let's say you have a Bejeweled clone/match-3 game and a global high score board. What can you do to prevent fake scores? You can obviously obfuscate things, sign requests, etc but at some point the client needs to sign the score it's sending up so the client has the key.

You could use this model of recording inputs and playing them back on the server but that seems like it would be a ton of work if your game is popular and an extraordinary cost for keeping a simple score board clean.

Do you try and rely on subtle math tricks that mean that certain score numbers are de-facto invalid because no combination of scores could end up with that as a final total?

Is there any way to handle the issue other than deleting scores that seem likely fake (large round numbers, for example, or those orders and orders of magnitude higher than other scores)?

<comment><USER10> If you have a deterministic game model(RNG seeded properly, pure functions, etc) you can actually just send the user inputs(which are very small compared to the whole game state) and replay the whole game to verify.

This is the common model in RTS games called Lock Step since all clients are advancing a number of frames based on all inputs from other clients in "lock step".

It's also very common way to implement replay and debugging for reproducing rare network bugs.

<comment><USER11> Using the Bejeweled example of a single-player game, and assuming it's properly deterministic, could a malicious actor not just falsify the steps taken as well as the score? It would be more difficult, but not that much more difficult considering the challenge is the time limit and lack of undo. Both would be removed if you were simulating steps.

<comment><USER12> They could, but they can't falsify the game seed - the server determined order for what gems spawn when. This way I can send actions (whether real or hacked) that would be executed in the server against the "real game". If the client's move did not result in a score then no score is recorded, even if the client thinks it should.

<comment><USER13> But it would mean a bot could get the highest possible score for that seed by going back in time and trying again.

</comment></comment></comment></comment></comment><comment><USER10> They missed one key bit on CS's network model(which is what made it so great) is that they would actually re-wind the gamestate to do hitchecks so you could have a latency of 200ms+ and have a reasonable experience.

Also the common term for resolving these types of things on the client is called "dead-reckoning". You've always got a diverging states from latency so you're continuously trying to reconcile this on the client.

Simple Newtonian physics based games(Subspace, etc) are famous for being latency tolerant since the simulation is incredibly deterministic and are based on the players extrapolating where things will be in X time rather than twitch responses(which is also why fighting games are so hard without using a solution like Counter-Strike). You could play SubSpace on a 500ms dial-up connection and still be competitive without needing to lead for lag.

<comment><USER14> There's something I always wondered about the gamestate rewind thing:

Is it correct that the gamestate rewind only works for hitscan weapons (instant hit bullet)? What about slow moving projectiles or physically accurate bullets? Can the server spawn the projectile 200ms in the past at the time you pressed the button? But then other clients would receive the information about 400ms later after the initial keypress, which does not seem right...

<comment><USER10> The projectile issue actually is much better.

Since as a player you're trying to shoot the projectile to "predict" where it will intersect you're actually playing to the strength of latency and dead reckoning(that's the SubSpace case above).

You want to segregate your action into twitch(reactionary: hitscan, parry, etc) and predictive(slow projectile, > 250ms ttl, etc) and only rewind/replay for the twitch case.

There's also the case that when you rewind and do confirm a gamestate change you need to gracefully handle resolving it on all clients. That's why you'd see people warp back around corners when shot in Counter-Strike. Their player movement speed slowed after being hit and the server reconciles it and then the clients interpolate the result.

</comment></comment></comment><comment><USER15> another recent example of "never trust the client" is the amazon kindle unlimited debacle.

in case you missed it: the client syncs the last page read. so you can buy a book, jump to the last side and amazon marks it as read, without checking for intermediate states.

the problem is: amazon pays authors by "pages read". so people publish fake books with 3000 pages, let sweat shops try the book for free and just jump from the first to the last page, sync and it registers with "this customer read all 3k pages".

now create 20 fake author accounts and 30 fake reader accounts, publish 20 fake 3k books (one for each fake author account and they're practically filled with 3k pages of randomly scraped web content) and you got 20 _30_ 3000 = 1.800.000 pages read.

if you are an aspiring author and publish a novella with, say, 50 pages and 10.000 readers devour every single page of it, you've got 500.000 pages read.

the faker can do this in a week and take about 4 times more than, even though it took you 2 months to write it. payouts are out of a pot shared between all authors. thus, authors lose in the short run (less money now), cheaters win big time (a lot money now), amazon doesn't lose money (now) because the payout is the same.

in the long run it's still problematic because small authors are unhappy once they realize what's afoot (and earn 1k instead of 10k). big name authors don't care as much if they earn 1m or 1.1m. customers aren't likely to buy the fake books anyway (cheaters take them offline before the free trial period ends) so they're not really affected.

<comment><USER16> That could reasonably be considered fraud. If I was Amazon, I'd pursue them, publicly.

</comment></comment><comment><USER17> The Division is an interesting game from a QA perspective. While client-side architecture is one thing, blocking bugs are present in the game and have been a strong deterrent to community stability.

Case in point, it was recently discovered by the community that gear with the "Protection from Elites" bonus actually _increased damage taken_ from Elites: [https://reddit.com/r/thedivision/comments/4g6lnk/tested_conf...](https://reddit.com/r/thedivision/comments/4g6lnk/tested_confirmed_protection_from_elites_increases/)

And that's not even getting into the loot quality issues and the complete lack of a carrot-on-a-stick that has been codified in many, many games. (Massive actually _made the game grindier_ because people were hitting end-game content too fast. Which only punished people who did not hit the content yet.)

<comment><USER15> coincidentally i re-read the post about the riot games league of legends automated testing infrastructure yesterday. it's fascinating (and honestly, i'm even a bit envious!).

in case you haven't read it yet: [https://engineering.riotgames.com/news/automated-testing- lea...](https://engineering.riotgames.com/news/automated-testing-league- legends)

guess it's down to the value of competitive multiplayer. e-sports are the focus of games like LOL (or, i guess, CS), instead of throw-away gaming.

the division won't have international competitions in 3 years - and that's ok with ubi soft. because they'll have a couple of new games out by then and players will have bought those instead of still playing the division.

</comment></comment><comment><USER18> I'm still constantly shocked at how many games do this. In the MMOG world it is really easy to do everything right, UO came out in 1997 and the devs outright told everyone working on similar games "never trust the client" and "the client is in the hands of the enemy". Yet games like FFXI and WOW that came out many years later have the client setting the position of the player and the server just blindly accepting it, allowing for common and popular speed/pos hacks.

<comment><USER19> UO had rubberbanding rampant - that is, you'd move on the client, then warp back to an old position after the server said you actually didnt move there.

It was terrible.

Most all MMOs with WSDA movement trust the client to set the player's position and it mostly works. Cheating through warping or speed is easily detectable through other means of post-verification and banning players that fail that verification. It makes the game feel more fluid to the player while still not really allowing cheating.

Everything else is generally handled serverside which is fine because it mostly doesn't need as high a reaction time as movement to feel natural.

If speed/warp hacks are a problem, it's not because the developers that use client-set-movement aren't able to fix it, it's because they don't care.

<comment><USER18> >UO had rubberbanding rampant

Only if you had high latency and tried to move somewhere you couldn't actually move.

>If speed/warp hacks are a problem, it's not because the developers that use client-set-movement aren't able to fix it, it's because they don't care.

That's precisely what I said. Obviously they can fix it, since it was fixed before they started development. They did it wrong and don't care.

<comment><USER20> Yep, I was playing it from Australia on dialup, had about a 200+ms ping. What ended up happening is my character would be running in the wilderness, then after a few seconds it would snap back because I hit the side of a house/castle.

</comment></comment></comment></comment><comment><USER21> I doubt that the developer's didn't know not to trust the client - they likely made a business decision.

I (used to a lot more) play Elite: Dangerous. A space sim that has multi- player. They made the decision to use (mostly) p2p/client networking to save money - they wouldn't need nearly as many servers. This has caused other issues in addition to cheating - a low limit on the number of players in the same "instance" of the universe for example.

But it was a business decision - imo the wrong one, but what do I matter?

<comment><USER22> Yea and I'll go out on a limb and say it was the correct one. The shelf life of a popular game like this is probably shorter than most people think so it makes sense to offer an amazing experience that you couldn't necessarily achieve with an authoritative server model and then by the time hackers have defeated the game players have probably moved on to the next.

<comment> floodyberry- Guaranteeing your multiplayer blockbuster game designed to have "infinite gameplay" will be dead in the water the instant hackers discover its highly flawed networking model doesn't sound like a "correct business decision".

<comment><USER22> It was marketed to have infinite gameplay. What game do you know that honestly has achieved that?

</comment></comment></comment></comment><comment><USER23> How do we reconcile sentiments like "never trust the client" alongside this community's hope for decentralization, á la "The Internet Has Been Stolen From You. Take it Back Nonviolently"?

<comment><USER24> In decentralization you are always the server and everyone else is the client. You have ways to validate what they send to you. It works out because they all think of themselves as the server and everyone else as the client too.

This is of course a vast simplification but the trust part is the same. No one trusts anyone but themselves and validates everything everyone sends them.

</comment></comment><comment><USER25> Obviously, this applies to all networked applications—not just games.

It's embarrassing how often I see web apps which use something like Firebase with absolutely no validation or access control. Often the developers behind them don't even realize they have a problem. Their excuse is that "most users wouldn't have any reason to hack it, so why does it matter?"

Developers need to realize their clients are inherently in the hands of hackers. Any security needs to be done on the server if it is going to succeed at all.

<comment><USER26> Can you recommend a go-to book for this kind of stuff?

</comment></comment><comment><USER27> Ubisoft appears to have some institutional problems. Their other recent Tom Clancy title, Rainbow Six Siege, is hands-down one of the most rewarding & intense shooters I've ever played, however it too is yet to realise its full potential due to amateur-hour quality issues and ongoing troubles with hackers.

</comment><comment><USER28> The Division also uses TCP instead of UDP so they're clearly totally incompetent when it comes to networking.

</comment><comment><USER29> Does anyone have a mirror for the "this is super bad" video?

<comment><USER30> I couldn't find it, but I did find a reddit thread with over video examples:

[https://www.reddit.com/r/thedivision/comments/4gblza/hackers...](https://www.reddit.com/r/thedivision/comments/4gblza/hackers_are_currently_making_the_dz_unplayable/)

</comment></comment><comment><USER31> I would think that in 2016 this should be something everybody knows....

<comment><USER32> Yeah, isn't this basically the first thing you learn in game networking?

<comment><USER33> Or in any sort of networking work where you don't control both ends of a connection.

<comment><USER34> Even if you do, you still should never trust the client. Who knows when you might lose control of one end?

</comment></comment></comment></comment><comment><USER35> Trusting the client, in essence, turns a game into one of your childhood: shouting matches of "I hit you!" "No you did!" "I totally did".

</comment><comment><USER36> I think there's a false dichotomy here. You can't simply ignore the client, so no matter what, you have to have a set of server-side checks that ensure the client's inputs are valid.

Part of what this article offers is "you can't fix it by adding server-side checks", guessing that if they haven't done it already, it's impossible to do. I think it's entirely possible that their model is reasonable (takes movement, fire events, etc. instead of position, inventory, etc.), and they simply haven't guarded against malicious inputs. Adding server-side checks is _exactly_ what you need to do to make movement/firing inputs safe!

The existence of a certain class of bug doesn't mean the whole architecture is broken. It may simply mean they shipped the game without trying to detect cheaters. That may be a bad idea, but if the design is right, it's certainly fixable.

<comment><USER37> I think you might be misunderstanding the scope of an "input". It's something like "the player pressed the key/button that maps to move forward", not "move to position X". Teleport hacks wouldn't be possible in the former case because the player has to actually move their avatar to the desired position by traversing the game world through a series of inputs. The server would then process the movement inputs, and the avatar would say, bump into a wall, preventing it's movement. There would be no input for "my position is now X".

<comment><USER36> Is an input always valid? "Firing once" is an input: you have to validate that it's been long enough since last firing that you should act on it (limit the rate). "Moving left" is an input, but by how much? Can I send "Left, 9999999" and replicate a teleport hack by pre-calculating these inputs?

You could bound the inputs to a simple stream of enums (FIRE, LEFT, RIGHT, etc.), but it wouldn't be crazy to batch it up a little bit and send some magnitude data as well (FIRE 2, LEFT 50, etc.). It's a little harder to validate, but depending on the specifics of implementation, that could be a win.

<comment><USER38> "Moving left" is NOT an input. An input is "The controller is pushed to the left" (with perhaps a numeric value of how far it is pushed to the left). "Firing once" is similarly NOT an input. "The fire button is down" and "The fire button is up" are inputs. That is how well implemented first person shooters have worked since the Quake days (I think Quake 2 actually).

The point of the article is actually that the server doesn't validate anything. There's nothing to validate. The only data it gets from the client is the state of the controls. Then it runs the real simulation. The client only ran a prediction of what it thought the server would do. Sometimes, it's wrong and corrects itself when it gets new values from the server.

</comment></comment></comment></comment><comment><USER39> The server-side network model he describes here is the same architecture Meteor is designed with (see this page: [https://www.meteor.com/why- meteor/features](https://www.meteor.com/why-meteor/features)). With Meteor, you get client side prediction and latency compensation (they call it "optimistic UI" now) for free. I've always been impressed they decided to build that, because I sure never would have myself. In fact the Meteor team has always said you need this kind of architecture in order to build true real-time applications. But I haven't seen other web-oriented platforms take a similar approach. Did the Meteor team just know something no one else has picked up on (despite it apparently being common practice in the games industry)? What gives?

<comment><USER40> Even though I don't use Meteor anymore, I still like DDP[1] a lot. It's simple (can be implemented in 50-100 lines), but it is the core of Meteor. There's a specification for it in their Github repo. Meteor's "optimistic UI" is basically an abstraction on top DDP, IMO.

[1] [https://www.meteor.com/ddp](https://www.meteor.com/ddp)

</comment></comment><comment><USER41> One can easily observe this "server is the actual game" property in Minecraft when running on an underpowered server.

At home, Minecraft runs on my home server (with a small Athlon CPU) and it fails to keep up with the required speed of the game, so the server log will show messages like "server clock running behind, skipping 58 ticks" every so often.

An observable effect of this is that you have to hold the right mouse button just a little bit longer than the actual animation when eating stuff. And when you look at the sun, you will see it moving forward continuously (as calculated by the client), but skipping back a tiny bit every few seconds (when the client adjusts for the server's time drift).

</comment><comment><USER42> I'll bet there was at least one developer who saw they were doing it wrong, and told them, and was overruled. I'd love to hear his/her account.

<comment><USER41> That type of story grows old after the 100th time you hear it.

<comment><USER42> Also, get off my lawn.

</comment></comment></comment><comment><USER43> Console port gone horribly wrong? I mean, how else do you violate the most simple of game rules - never trust the client?

<comment><USER17> The irony is that the console versions are the least-impacted, as the client- side hacks are only loadable on the PC version.

<comment><USER44> Walton's phrasing is kind of ambiguous, Console port could mean port from console or port to console.

It could have been developed for console first.

<comment><USER43> "Console port" in the gaming world unambiguously means "a game that was originally developed for a console, then ported to the PC." The opposite would be "PC port."

</comment></comment></comment></comment><comment><USER45> If you don't know this you should not be working on software. It's a latent risk to customers.

<comment><USER46> It's a video game, not a life critical system.

<comment><USER45> A game can include a payment system, or processing of personally identifiable information. Security is important.

</comment></comment></comment><comment><USER47> I thought it was a common sense to treat the client as merely the data representation and nothing else, sad to see that multi million dollar companies make rookie mistakes.

<comment><USER48> I guess in the eyes of a corporate, it's only a mistake if it harms the bottom line.

Sounds like this would though, if players can't enjoy a fair experience.

</comment></comment><comment><USER49> I'm surprised that "never trust the client" isn't among the basic concepts that everyone should know, at least on HN. It's such a basic premise.

<comment><USER50> If you ignore the context, "Never trust the client/patient/enduser/etc..." is probably equally true.

</comment></comment><comment><USER15> now that i think about it - doesn't GTA5 suffer from the exact same problem? cheaters spawing tanks above people practically must be a client game state problem.

<comment><USER51> Yes and that is why I think it's a new business model to make games not last long on the PC. At least the multiplayer part.

They promote the shit out of games before release and expect them to expire a few weeks after. Reducing operational costs. They also don't have to develop and maintain an anti-cheat, a better server-side structure, and they can close down most servers.

I think it was a unexpected consequence of a bad console port to pc that proved to be quite lucrative. And now they know people will keep buying no matter what, hence the new disposable pc game business model.

Basically, if you play on a PC you're screwed. Another reason not to buy a console or support games like the division on the pc.

</comment></comment><comment><USER52> I was not interested in this game, but now knowing that it can be hacked in cool ways makes me interested. I only care about playing with friends, and this would allow for some super cool custom game modes. It's not a bug it's a feature!</comment>


Mockup of new iTunes 8.0 interface published - <AUTHOR> http://www.appleinsider.com/articles/08/09/08/mockup_of_new_itunes_8_0_interface_published.html <comment><USER2> This "mockup" looks like a screenshot of the current version with a couple red boxes outlining the areas where new things will be. How is this news or even remotely interesting? Is anyone actually reading the articles on here anymore before voting them up?

<comment><USER3> I think this article is a joke. Right?

("Genius playlists" instead of "smart playlists"?)

</comment></comment><comment><USER4> Link to the original source would be nice, too. <http://kevinrose.com>

</comment><comment><USER5> I'm willing to bet this version will _still_ be the slowest piece of software to ever run on the Win32 platform.

How about they fix that instead?

<comment><USER6> They did - it's called Mac OS X.

<comment><USER5> My point was more that when Apple forces you to use their software to be able to do _anything_ with their hardware, they could at least put some effort into making their software not suck.

iTunes in Windows on a modern 2GHz Core 2 Duo is still slower than Winamp was back on a 66Mhz Pentium. There is no excuse for this shitty performance.

<comment><USER3> What hardware requires iTunes?

The iPod doesn't even need to run Apple software on itself, much less on the "host machine". (Yes, I use Rockbox on my iPod and rsync to sync my music.)

<comment><USER7> iPhone, iPod Touch</comment></comment></comment></comment></comment>


Show HN: ReddWall – An Automatic Reddit Wallpaper Changer - <AUTHOR> https://github.com/matthewbauer/reddwall

<comment><USER2> pretty cool that nsfw content is not allowed by default

<comment><AUTHOR> Submissions to /r/wallpapers shouldn't be NSFW but it checks just in case!</comment></comment>


Analytics App for iPhone and iPod Touch - <AUTHOR> http://analyticsapp.com/ <comment><USER3> The app looks quite nice (and useful). I'd install it instantly if it was free. But it's not. So I guess I'll just settle for my usual online access. I'm almost always near computer so it's not that crucial for me to have it on my iPhone. But for people on the ago and in need of total control - this can come in handy.

<comment><AUTHOR> I haven't bought it yet myself, but have heard good things (and the site definitely makes it look good).

It's a shame Google can't roll out this sort of interface itself though - <USER2> as a webapp. It's done pretty well with the Gmail one.</comment></comment>


Ask HN: Ideas for small projects - <AUTHOR> Hello HN,
I'm currently learning Golang and I decided to do some small projects to get fluent in this language.
My strategy is this:
- pick a small project(development time should not be longer than one month) and try to finish it
- in parallel read posts about the language and watch some talks and try to apply new ideas as you learn them
- don't try to be perfect. Sometimes is good not to implement stuff you don't want to focus on(error handling, parallelism etc.)
- with each project increase the difficulty/level of novelty
I found out that this strategy works well for me. Small projects keep me motivated enough to work after job. I already did 2 small projects: https://github.com/zuzuleinen/dave and https://github.com/zuzuleinen/jobber but right now I'm kinda out of ideas.
If you have ideas of small projects(can be any silly stuff) which more or less fit in my strategy I would be glad to hear them.
PS. My background is PHP web development.
Thanks! <comment><USER2> Build youtube video downloader</comment>


Hedge Funds Pumped Up Silicon Valley, Now They're Pulling Out - <AUTHOR> http://www.bloomberg.com/news/articles/2016-03-24/hedge-funds-pull-back-in-silicon-valley-as-ipo-market-atrophies <comment><USER2> Watching this version of tech bubble unwind has been very interesting. The hedge funds pulling out, the markdowns on unicorn value. If this is a typical cycle it means that the oxygen(cash) will be depleted for a few years while the losses are absorbed. The lack of investment will recharge funds as new money comes in, and everyone will wait for some breakout hit to come out. Then cursing themselves for having "missed" it by being to hesitant they will once again start opening the money taps. Circle of life in the valley.

<comment><USER3> whats your guess on how long before will housing be affected?

<comment><USER4> I don't think housing will be affected the way you think it'll be affected.

Hedge funds are buying lots of real estate, Single Family Homes included [0] [1] [2]

It's a flight to safety, and with jobs moving to cities, millennial preferences with them, and restrictive zoning/NIMBY, real estate is the perfect landing place.

[0] [http://www.motherjones.com/politics/2013/11/wall-street- buyi...](http://www.motherjones.com/politics/2013/11/wall-street-buying- foreclosed-homes)

[1] [http://dealbook.nytimes.com/2014/06/27/investors-who- bought-...](http://dealbook.nytimes.com/2014/06/27/investors-who-bought- foreclosed-homes-in-bulk-look-to-cash-in/?_r=0)

[2] [https://newrepublic.com/article/112395/wall-street-hedge- fun...](https://newrepublic.com/article/112395/wall-street-hedge-funds-buy- rental-properties)

<comment><USER3> thanks for your insight

</comment></comment></comment></comment><comment><USER5> Exit value volatility was a known risk when the hedge funds started investing in the Valley.

Exit timing volatility is a new phenomenon. It's one thing to say, "within 5 years they'll be publicly traded/acquired and I'll have liquidity at an unknown value." It's another entirely to say, "in an unknown amount of time the company will be publicly traded/acquired and I'll have liquidity at an unknown value."

The latter prevents the hedge fund from actually creating hedges.

<comment><USER6> It's been quite a while since hedge funds were actually in the business of hedging.

<comment><USER7> yeah, we need a different name for these things, like FAM, "flexible asset managers", or AIMs, alternative asset managers. The key point is that they can do whatever they want, not that they "hedge" anything.

<comment><USER8> Unregulated mutual fund?

<comment><USER9> Hardly. There's tons of regulations around them.

</comment></comment></comment></comment></comment><comment><USER10> It's unreasonable to assume that the faucet for investment money will be open indefinitely, especially when investors don't get the benefits they would have with a public company: liquidity, transparency, etc.

Staying private indefinitely is not just regulartory arbitrage, it's also maintaining significant control and information assymetry between managers / early investors and the rest of the investors and employees.

</comment><comment><USER11> Maybe viable business models after seed stage funding has run out might become a thing again.

<comment><USER12> Wait wait, you want companies to make money off the product they sell? That's so 90's.

<comment><USER6> What? Revenue? No, no, no, no. No revenue.

Why would you go after revenue?

If you show revenue, people will ask how much, and it will never be enough.

</comment></comment></comment><comment><USER13> Or "The dumb money showed up, got burnt, bailed."

</comment><comment><USER14> Why own shares of a valuable business when you can buy the entire business for pennies on the dollar when they're about to go bankrupt?

EDIT: Then sell them during the next bubble.

</comment><comment><USER15> Oh man, I'm so going to be downvoted on this, but...

 _" I'm done with intangible valuations, unknown exits, unknown liquidity, and I want something that if I put my money into it now, I'm not going to hit a grand slam, but I'm going to get something that's immediately yielding."_

Since when has a combination of intangible valuations, unknown exits and unknown liquidity every been anything other than an extremely high risk proposition?

<comment><USER16> Sounds like what the author wants is a bond or dividend stock, not a startup fund.

</comment></comment><comment><USER17> These things are going to happen anyways, a feature of anti-fragile systems is that they can handle and deal with volatility and stressors, so we're going to be fine.

The easy times can't always be in, and you will never catch the next good times if you're not in it well beforehand.

</comment><comment><USER18> yaaawn more misleading titles. 'Pulling out' would imply lower valuations, of which there is no evidence for startups like Snapchat, Pinterest or Uber. Instead of selling, what is happening is that we're seeing a flight to quality, which is something I predicted months ago.

</comment><comment><USER19> when in the end of 2013 and in 2014 pension funds and similar money from out of state started to be 'absorbed' [through hedge funds of course] into the Valley, it kind of was pretty clear that this is the last, the 'IPO' wave, ie. the last fools who will be holding the bag (which is sold to them by Valley's VCs). The Valley has got these money now, will catch the breath and will be getting ready for the next wave...

The thing can become interesting if somebody happened to have sold/bought a good [leveraged] amount of bonds and CDS on all those startups around - i mean it is pretty obvious that pooling startups together into a bond would make it an AAA bond the same way like pooling subprime mortgages before 2008 produced AAA bonds :)

</comment><comment><USER20> And nothing of value was lost.

</comment><comment><USER21> How Freudian!</comment>


Ask HN: Any good alternative to AHK? - <AUTHOR> Got this little AHK script that got bigger overtime. It's a price checker tool for a game called Path of Exile:
https://github.com/thirdy/trademacro
Where it:
1. activates on clipboard copy event 2. parses clipboard data 3. do a POST request 4. web scrape the result 5. format and output into a tooltip
AHK is great bec:
1. Very easy to use, just like javascript, you only need a notepad and run it right away 2. It has solid support for defining hotkeys. 3. Easy tooltip, but it gets messy beyond simple ones. 4. Small runtime, a few megabytes. This is good since users are non-programmers who don't want installing stuff. 5. Easy for non-programmers to contribute since it's very simple for making macro scripts. Not a must, but good to have.
While AHK is okay, the code gets messy fast and hard to debug if you do not know all the language rules and best practices.
I would like to ask if there's something else I can go for? Have an easier life, statically typed, lots of compiler checks (in AHK, if you got something wrong, goodluck!). <comment><USER2> I think [jnativehook]([https://github.com/kwhat/jnativehook](https://github.com/kwhat/jnativehook)), is one good route. Now I just have to find the right scripting language and package java as self extracting 16mb 7zip.

``` import org.jnativehook.GlobalScreen; import org.jnativehook.NativeHookException; import org.jnativehook.keyboard.NativeKeyEvent; import org.jnativehook.keyboard.NativeKeyListener;

public class GlobalKeyListenerExample implements NativeKeyListener { public void nativeKeyPressed(NativeKeyEvent e) {} public void nativeKeyReleased(NativeKeyEvent e) {} public void nativeKeyTyped(NativeKeyEvent e) { System.out.println("Key Typed: " \+ e.getKeyText(e.getKeyCode())); }

        public static void main(String[] args) throws NativeHookException {
            GlobalScreen.registerNativeHook();
            GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
        }

} ```</comment>


"Alone Together": An MIT Professor's New Book Urges Us to Unplug  - <AUTHOR> http://www.fastcompany.com/1716844/alone-together-an-mit-professors-new-book-urges-us-to-unplug

<comment><USER2> Please change the title of the submission, this isn't editorialization but downright insult.

Meanwhile: flag.

<comment><USER3> I thought it was a great question to open the interview with.

</comment></comment><comment><USER4> She clarifies right at the start of the interview that she is not a Luddite.

<comment><USER4> The title of the submission has been changed. It used to be "I didn't realize MIT hired Luddites."</comment></comment>


Will the Revolution Be Drupalized? FLOSS, Dictatorship, and Saving the World - <AUTHOR> http://drupalwatchdog.com/volume-4/issue-2/will-revolution-be-drupalized

<comment><AUTHOR> And this article has a nice retort by xjm, another active drupal contributor:

\- [http://xjmdrupal.org/blog/contribution-influence- drupal-8](http://xjmdrupal.org/blog/contribution-influence-drupal-8)

<comment><USER2> Really good article. It clarified a bunch of things that were indeed misleading on OP's article. Thanks for sharing.</comment></comment>


Scala 2.12.0-RC1 released - <AUTHOR> https://issues.scala-lang.org/projects/SI/versions/11503 <comment><USER2> Keen eye! The release is tagged and the artifacts are indeed on maven central, but we are holding the official announcement for a few days to be able to launch with a nice set of community libraries already published. So much for flying under the radar :-)

</comment><comment><USER3> Here is the 2.12 roadmap [http://www.scala- lang.org/news/2.12-roadmap](http://www.scala-lang.org/news/2.12-roadmap)

</comment><comment><USER4> Great.

What's the status on performance slowdown wrt to relying on Java 8 default methods in 2.12[1]? Hopefully this is not a JVM limitation[2] and can be sorted out during the RC cycle.

Fewer generated class files _and_ improved performance would very much be a nice-to-have.

[1] [http://www.scala-lang.org/blog/2016/07/08/trait-method- perfo...](http://www.scala-lang.org/blog/2016/07/08/trait-method- performance.html)

[2] [https://bugs.openjdk.java.net/browse/JDK-8161334](https://bugs.openjdk.java.net/browse/JDK-8161334)

<comment><USER5> The blog entry doesn't mention the impact of that performance regression on Scala 3 (aka Dotty).

<comment><USER4> Sure, but Dotty is like hindsight, (arriving the year) 2020.

Regardless, there's a significant performance regression to sort out prior to the 2.12 GA. If it is a JVM limitation it won't be solved until at least Java 9 (according to the fix version listed in the bug report), which will mean 2.12 loses one of the stated goals of the release: reduction in number of generated class files (with perhaps slightly faster build times).

Anyway, we'll see in the coming weeks/months if a resolution or workaround manifests.

</comment></comment></comment><comment><USER6> too bad they require JDK8 while App Engine supports only JDK7 :(

<comment><USER7> What does this mean?

They probably require JDK8 for compiling/building the class files, but can you target 1.7?

See target flag for javac ( [http://stackoverflow.com/a/21206909](http://stackoverflow.com/a/21206909) )

<comment><USER8> You can only make use of the target flag when not making use of new bytecodes oder APIs introduced in a specific Java version.

Scala 2.12 is replacing some of their own code with Java 8 new features, so they rely on a Java 8 compatible JVM.

This will also prevent Scala 2.12 to target Android, because even Android N isn't 100% Java 8 compatible, specially the low level JVM features like invokedynamic and method handles are not supported on DEX format.</comment></comment></comment>


Autocomplete using Tries - <AUTHOR> http://dibaiee.ir/autocomplete-predict-trie/ <comment><USER2> So tries are a really cool data structure and they're the natural fit for an autocomplete, but a while back I had to implement an autocomplete widget (over stock tickers) and it turns out that for many relatively small, dense data- sets, binary search over a sorted array with a linear scan to find suffixes is a much (10x+) faster approach.

The problem is that a trie is a very cache-loose data structure. Every node is connected to every other by pointers, and they may be spread all over main memory. Finding the first node usually involves chasing several pointers; enumerating each successive one involves chasing several more. Meanwhile, if you just had a sorted array, all subsequent results would be on the same page at least, and many would be on the same cache line.

YMMV, based on your data's size and shape. Sorted arrays usually work best when the full data set is small and dense (eg. stock tickers), while tries may work better for sparse data (eg. sentences typed in by users). Always benchmark before committing to an implementation.

<comment><USER3> Your conclusion is likely correct given your data, but did you happen to evaluate HAT-tries as well?

[http://crpit.com/confpapers/CRPITV62Askitis.pdf](http://crpit.com/confpapers/CRPITV62Askitis.pdf)

<comment><USER2> Nope I didn't - I did this work in 2006, and the HAT trie didn't come out until 2007. I did try a number of different variations on how to do the internal storage of nodes though - the fastest was what the paper described as a burst-trie - as well as other binary search tree structures. The speed difference was well over 5x though (IIRC, it was something like 17x from best string trie vs. binary search), so if the paper's conclusions hold it probably wouldn't have mattered.

<comment><USER4> Your comment provoked a quick search on pointer-less encoding of tries. It turns out one such implementation was patented in 2006

[http://www.google.com/patents/US20060020638](http://www.google.com/patents/US20060020638)

</comment></comment></comment></comment><comment><USER5> When you have more than a handful of strings, you will want to return only a small number (k) of completions, preferably sorted by some pre-assigned score. Depending on how you order the trie, you can only get the first k completions by lexicographic ordering, which could be very far from the "best" completions.

A common approach to solve this is to store in each internal node the maximum score among all its descendants, and sort the children of each node by maximum score. This way by doing a best-first search with a heap you can efficiently retrieve the top-k completions by score.

If you then have millions of strings, it becomes tricky to do this in a space- efficient and cache-efficient way. I wrote a paper a few years ago with different space-time tradeoffs: [http://www.di.unipi.it/~ottavian/files/topk_completion_www13...](http://www.di.unipi.it/~ottavian/files/topk_completion_www13.pdf)

</comment><comment><USER6> You may also want to check this spelling correction algo. I'm using it along with trie. Original is in C# but ports are available.

[http://blog.faroo.com/2012/06/07/improved-edit-distance- base...](http://blog.faroo.com/2012/06/07/improved-edit-distance-based- spelling-correction/)

</comment><comment><USER7> Speaking of autocomplete, how would you design a data structure and declaration syntax to feed to the autocomplete/parsing system of a constrained CLI?

By "constrained CLI", I mean the kind that controls a router or other piece of equipment which has a well-defined (um, somewhat) syntax, as opposed to the somewhat more free-form aspect of the shell.

I ask, because one of my jobs had me occasionally working in the CLI declarations for a type of router. The cli commands could be in the form "interface foo enable", where "interface" could be shortened its shortest non- ambiguous form ("int" IIRC), and "foo" was a string corresponding to one of the interfaces on the system. Pressing TAB after "int" would automatically suggest the list of interfaces that exist on the system. This command had an opposite in the form "no interface foo enable" (yeah, prefixing "no" instead of postfixing "disable", though to be fair that may have been possible as well). A declaration of such a syntax was done with something along the line of:

      node(id=interface, type=keyword, keyword=interface, no_prefix=yes, next=int_name);
      node(id=int_name, type=string, next=enable);
      node(id=enable, type=keyword, keyword=enable);

(with several extra bells and whistles to account for the int_name string referencing the existing interfaces on the system and to indicate that the command was only complete with "enable" at the end).

There were hundreds of declaration files containing lines like that, it was parsed by a humongous Perl script that output a 7MB source file containing the data structures fed to libinput. It was easily the slowest part of our compilation process, and Emacs would choke on that 7MB sourcefile.

It was terrible, but I never found examples of how to do it better. Anyone have any experience?

</comment><comment><USER8> It seems you'd get more mileage out of a trie if you also compared it with a sort of zipper approach. The idea being that if I type "a", I should just focus the trie around "A". If I next type "l", then I focus the "l" around my new root, so I find all strings starting "Al". It doesn't change the complexity class of completion, but maybe the small optimisation is worth it.

</comment><comment><USER9> I was watching this lecture last night about tries and suffix arrays. Pretty cool stuff!

[http://youtu.be/NinWEPPrkDQ](http://youtu.be/NinWEPPrkDQ)

</comment><comment><USER10> This looks really cool.

Do you have any speed comparisons vs traditional autocomplete methods?

<comment><USER11> Tries are pretty much the tradition autocomplete method.</comment></comment>


US Court Rules That Kim Dotcom Is a 'Fugitive' and Thus DOJ Can Take His Money - <AUTHOR> https://www.techdirt.com/articles/20150227/18171630168/us-court-rules-that-kim-dotcom-is-fugitive-thus-doj-can-take-his-money.shtml

<comment><USER2> What a crock, just because their extradition efforts unraveled in a puff of official fraud.</comment>


One of the ways I am approaching the crowded iPhone Twitter client space - <AUTHOR> http://motionobj.com/blog/the-conversation-view-in-simplytweet

<comment><AUTHOR> There are many Twitter clients on the iPhone at the moment. Most of seem to be focused on implementing the API and offering integration to other services. Some are doing very well and are very impressive.

While I'm also doing some of that, I'd like to experiment in a different way, that of building new features. The conversation view, while it is not a totally new concept (it is available in a similar form in the Summize page, and the current Twitter search page), doesn't exist yet on the iPhone clients and it's pretty interesting how much you can do in the backend to churn out just a view of a conversation.

Digress a little: I've been working full-time on iPhone applications for the past 3 months but have only started selling a few weeks ago (a delay of 3 months due to the paperwork blackhole!). And it's been a huge challenge to break into the market and break even, but nevertheless an interesting experience.

As I mentioned in the article, I have a few ideas (for features) in my mind which I'll be experimenting with. If anyone of you have any ideas, please feel free to share them and/or discuss/comment on what I have done.

<comment><USER2> This is interesting, why an iPhone application rather than something that can be perhaps web-based?

I am working on (and by "working on" I mean, I created some messy code 5 months ago and then abandoned it but cling to the dream that I may one day finish it) something similar, but wanted a web based UI - I have the same issue whether it is on a mobile client or at my desk. I want a twitter client that is smarter than a linear display of what's going on - and instead figures out the context of tweets (like replies and retweets) and intelligently gets me that context

It looks like you are trying to solve that issue with replies, kudos to that.

<comment><AUTHOR> Being an iPhone application partially solves the selling part of the equation. You still need to market and have a good product, but sales and delivery is done for you, at the cost of 30% revenue and somewhat unpredictable release schedules.

This particular functionality is actually a web service though. I built this running on a server and the iPhone client talks to the service. This provides some flexibility in terms of release schedules and most importantly works around the default Twitted rate limit. There is just no way a standalone Twitter thick client can do this without hitting the rate limit all the time, making the feature useless.

It's interesting you mentioned retweets though, I haven't thought about that. One thing I'm looking into is the timestamp, @names and some herestics based on commonalities between tweets. I come from a search engine background, so mining text and relationship is always interesting to me.

Why did you stop your work though?

<comment><USER3> _Being an iPhone application partially solves the selling part of the equation. You still need to market and have a good product, but sales and delivery is done for you, at the cost of 30% revenue and somewhat unpredictable release schedules._

Interesting. A web based application doesn't need delivery, but I wonder what kind of marketing you could get by leveraging the app store to market your product, but actually deploy it on the web. In other words, put a simple app on the app store that is merely a shortcut to spawning the web browser and taking you to your page. Could be free or paid, depending on how people respond to it. You could do more frequent updates too, without having to go through the app store, since it is web based. Do any apps do this currently?

<comment><AUTHOR> If it's a web app, and you don't need/want the app store distribution, then you probably want to build it as a web app and market it as such. The app store itself is not much of a marketing tool unless you are already very popular.

But then if it has no app store presence, how would you charge the user? I might build a few more features around the web service approach to take advantage of the rapid deployment benefit you mention, but probably not as a full blown web app. I don't know of any app doing the latter, but I'm not surprised if there is.

</comment></comment></comment></comment></comment><comment><USER4> Not to scope-creep but:

Have you thought about virtual Twitter follower groups (e.g. groups of people you don't actually follow but still like to overhear and/or summize search terms actings as groups)?

Also, have you considered implementing visualizations like these: [http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeo...](http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/topology.html)</comment>


Ask HN: Do you keep a diary? - <AUTHOR>

Just wondering if people maintain diaries today. If you do, how long have you maintained it and what were your reasons for keeping a diary? Thanks! <comment><USER3> I've tried a couple of times to keep an actual paper journal. Every attempt fell flat after within the second or third week. Even online attempts with tools like Google Docs, didn't hold out.

Last year (8 days short of exact) I started using the OhLife.com service. Oh Life will email you everyday at a set time of your choosing. All you do is reply to the email with your entry, you can even add a photo, and they store it away.

The emails also come with excerpts from past entries. E.g. "Two weeks ago you wrote...". (You can turn this off) Finally, the service comes with export features when you care to leave.

If you don't feel like writing anything for the day, just delete the email. When you get the next one tomorrow you can pick right back up. I still don't hit every day but I consistently at least recap the events in a week.

You can probably directly correlate the length of my entries with how stressed out I am about something in my life. My reason for starting a journal is to slow down and reflect upon things when otherwise things are just too crazy. It helps both at the time of writing, and later if I care to read through things again with a clear mind. When you're stressed out you can do all manner of irrational things when you're not thinking things through clearly.

Since starting, I've also picked up on writing about the pleasant things in my life. E.g. fun nights out with my gf and friends, vacations, funny things at work. Even when things seem dull and boring I'll at least throw it into a weekly recap.

<comment><USER4> would be good to enable a feature where you have to submit emails of at least one friend. when you fail to submit a daily entry, you friend gets an email to encourage you. knowing someone else will be pestered about your slacking will be just one more motivating factor. :)

<comment><USER3> So far, I think the daily emails are enough of a reminder. Even if you skip a day, it comes back the next automatically. With a paper journal, if you forget one day and it gets buried there is no external process that's reminding you to do it. (Except your then guilt ridden conscience)

Also, I don't think the dynamic of having a friend involved would work to well. Why would I like to be bothered if my friend can't keep his commitment to write a journal. As soon as it becomes a habit and they don't fix it, I'm just going to mark it as spam.

<comment><USER4> I think its key to bring the social aspect of the net in from rather a passive thing to an engaged thing. I certainly would sponsor a good friend to stay on track. It would likely motivate me to do the same so in would be reciprocal.

</comment></comment></comment></comment><comment><USER5> Yes. I do. I had tried before and found that I failed quickly because I would try and do like everyone suggests, set a specific time and make sure I write in it. Or at the very least write once a day.

That didn't work for me at all. It felt like a chore, and one that I didn't enjoy so I just stopped. This time I bought one (A nice Moleskine) when I was struggling internally for a long period and felt I just needed to get some things out. I wrote in it frequently during that time and only wrote in it when I felt like I needed to or wanted to. Any time of the day, didn't matter when it was.

I find this to be really helpful and going back and reading what I had wrote is very interesting. The whole process is great. I still write in it although not as frequently right now. The frequency varies. The only trick is that I keep it with me in my laptop bag so when I feel like writing it's available.

Also having a pen and paper is far better for me than typing it in electronically. I can't see myself changing that habit. So if I were to pass on any advice I would say buy one and keep it close to you at all times so that when you feel like writing you can. This is what worked for me - <USER2> milage may vary.

<comment><USER6> Echoing this post, and adding "Fountain Pens".

Seriously, a nice fountain pen makes writing so much more enjoyable. Grab yourself a decent (>$30) fountain pen and a quality ink (I like Noodler's). Combined with a journal that has quality paper, your writing experience will be so much more pleasant. Fountain pens encourage better style and your hand doesn't cramp since no pressure is required.

Plus, it's nice not having chicken-scratch that looks like a ten year old's writing (or a CS major)

</comment></comment><comment><USER7> I've kept a diary of sorts most of this year. Every night before I go to bed I try to fill a notebook page with all my thoughts from the day. Think about what I want to do tomorrow.

What I ended up doing by mistake which I really like is that when I get to the end of a diary, I have usually written only on the front side of pages. So I start writing on the back sides of the pages and I watch as my life unfolds in reverse. I can see how I felt yesterday, then 3 days ago, then 5 days ago, and then it gets to several months. And I am looking back on how I thought/felt and seeing all these patterns. You start looking at what you wrote in a different like. Patterns, like maybe a person in your life being sad often or a certain idea that you keep writing about, start to really emerge clearly.

I think it is a worthwhile habit if you want to understand your mind. It also helps me sleep most of the time by letting me get stuff out of my head.

</comment><comment><USER8> Since I put every interesting thing I do (be that code, documentation, poetry, blog entries, or just random stuff, including pictures I take) in git, one could count that as a kind of diary.

I've been keeping such a thing for over a decade now, first in CVS, then in TLA (aka GNU Arch) and now in Git.

All my mails since about 1998 is kept and archived aswell.. and the reason I keep everything, and store them in git, is because I have an unnatural desire to cling on to every bit of stuff I wrote, every discussion I've been involved in, and so on. Having it in git also allows me to easily replicate all or parts of it on my different machines, as a cheap backup solution.

</comment><comment><USER9> I wanted to create an audiojournal so i could store my longer thoughts that would be tedious to type. For example, a dream journal. So I created an autohotkey script that would accept tags and then open up audacity and record whatever I had to say. The script exports it as an mp3 and appends the mp3 to a playlist. In this way, I can listen to all my audio notes on a particular subject, like review from my biochemistry class. I posted it on the forum, with a bunch of other scripts I use: [http://www.autohotkey.com/forum/viewtopic.php?p=465918#46591...](http://www.autohotkey.com/forum/viewtopic.php?p=465918#465918)

</comment><comment><USER10> I keep a work log using Day One on the Mac/iOS. Mostly so I can remember who I called, changes I made to code, etc. I rarely if ever look back on it.

That being said, I never delete anything and have files going back 18 years on my Drobo, so I can pretty much have a record of online activity for over half my life.</comment>


The view from a U.S. swing county - <AUTHOR> https://www.cbc.ca/news/world/kent-county-michigan-election-1.5711507 <comment><USER2> "I think fear beats anger," <\- American politics in a nutshell. Former Yugoslavia was more coherent than this, it is essentially a description of social gunpowder, a loose collection of highly volatile ingredients waiting for sufficient activation energy to let loose.

</comment><comment><USER3> Two words: Weimar Republic</comment>


Becoming an accomplished software designer - <AUTHOR> http://www.jbrains.ca/permalink/becoming-an-accomplished-software-designer <comment><USER2> I've found that the successful design of large, complicated systems requires extensive use of intuition and abstraction, which can only be gained through lots of experience. (Continually reflecting on how new knowledge impacts on on relates to your existing knowledge is a good way to embed it at an instinctive level.)

Unfortunately, not everyone seems to be equal when it comes to the ability to use intuition and abstraction, or even the motivation to think about the work they do. This tends to lead to people who can only write code if they're given a detailed specification. (Hopefully they've got analytical smarts, because otherwise even that may not be enough for them to contribute at a high level.)

</comment><comment><USER3> I went through several posts on the site and they all seem to be fairly content free. Specifically I read through the linked post and the one on modular design, and it reads like more of a sales pitch than an informative article.

<comment><USER4> I could tell just from the menu links: Consulting, Coaching, Training, Speaking. Those are all pretty much synonymous :-|

And all the Agile/XP stuff, ugh.

</comment></comment><comment><USER5> Articles like this make we wonder how awesome I must be. I don't feel awesome. But apparently there are people out there who need telling that sometimes things are obvious, and sometimes you need to think.

</comment><comment><USER6> The comment thread on the article itself are well worth reading.</comment>


Google+ gets hashtag support and real-time search - <AUTHOR> https://plus.google.com/107117483540235115863/posts/dXovwc1hSyY

<comment><USER2> Besides this new linking feature, I don't understand how the hashtag feature should work in google+. If I try to search for "#android", what I get is a list of posts mentioning "android", without the hash. What I really want though isn't a casual mention of the word, but posts which were deliberately tagged "#android".

Am I missing something?

<comment><USER3> Recursion?

##android?

I kid.

You _can_ search for the full hashtag string (hash + word) in normal G+ search. I also noted a couple of days ago that the "Sparks" feature seems to have been revamped into a G+ permasearch / saved search. Your sparks now default to "Everything" searches (people, posts, Web, not sure about comments). And you can save any given G+ search to create a new spark.

Not sure if they're going to retain the name or if they're done messing with this feature yet, but it's one of the first things in a long time (well, a couple of months) that I've seen on G+ that struck me as useful and cool (granted, there's been a lot of under-the-hood tinkering and some interesting features released).

The whole Real Names / #nymwars situation has really, really dented my interest and faith in Google though.

<comment><USER2> I tried again, and even using quotes (ie, searching for "#android") I only get posts with just "android", without the hash...

</comment></comment></comment><comment><USER4> Google+ is almost where Friendfeed was in 2008, awesome. All we need now is feed and service imports and we've got a done deal.

</comment><comment><USER5> I was worried this wouldn't work very well for them, because Google always wants to put "relevant" stuff first and "most recent" (the way Twitter does it) later. So from that point of view, they could never match Twitter for latest news. But putting the latest news on top of the relevant ones is a pretty smart way to do it, rather than just relegating it to another tab.

Also, danmaz74 has a point. If you search for #Android, you should see _only_ posts containing the hashtag "#Android" and _then_ sort them out by relevancy, and so on. But 100% of the posts should have the hashtag in them if that's what the user was searching for. For non-hashtag queries they can use their regular relevancy algorithms.

<comment><USER3> And most recent is _always_ so terribly relevant in Twitter feeds ....

I'd like to see some sort of ranked system. Google does really good for relevance, but timeliness also matters. Some sort of score where a relevant / trusted but not quite-so-recent post gets promoted on top of spambots would actually be a Good Thing[tm].

</comment></comment><comment><USER6> Off topic, but how do you do bold/italic text in G+? And can it also do headings? Seems like great way to blog if it did.

<comment><USER7> <http://www.lmgtfy.com/?q=google+plus+cheat+sheet>

</comment></comment><comment><USER8> Any new platform API's to go with this?

</comment><comment><USER9> What's the motivation for building Google+? What problem does Google think it is solving? What does it think it is contributing to the world with Google+?

<comment><USER10> For starters, an alternative to Facebook that isn't Facebook.

<https://www.xkcd.com/918/></comment></comment>


Toyota Finally Has the Power in Electric Cars - <AUTHOR> https://www.bloomberg.com/opinion/articles/2019-01-22/toyota-panasonic-battery-venture-is-an-electric-car-power-shift <comment><USER2> I've been waiting for one of the big Japanese automaker to make a reputable electric car. I'm hopeful for 2020 especially after Toyota announced that they're joining NVIDIA's DRIVE. An electric car that has Level 2 self driving capabilities and 200 mile range under $30000 would be awesome.

<comment><USER3> The biggest selling electric car is from Japan. The Nissan leaf.

Yes, you used the weasel word "reputable" \- but what better reputation is there than having the most sales? Nissan from Japan sells the most electric cars.

Apart from sales, the Nissan Leaf scores 7-8/10 and 4/5 from the critics. Which is around the same as the Tesla model 3.

If the critics think they are ok, and they sell the most of all electric cars... then they can be considered reputable.

<comment><USER4> He also mentioned a 200 mile range, which the Leaf is still working towards; Nissan's website clearly states the latest Leaf has a 150 mile range [1]. I've been lusting after all electric cars for a while including the Leaf but range is definitely a concern.

Kudos to Tesla for breaking open the market and creating all electric cars with 200+ mile range. But I'm with the original poster in that I want 200+ miles and a quality product with no fit and finish issues or supply-chain problems when there's a breakdown. Tesla has one of three right now and eventually the majors will catch up.

[1] [https://www.nissanusa.com/vehicles/electric- cars/leaf/range-...](https://www.nissanusa.com/vehicles/electric- cars/leaf/range-charging.html)

<comment><USER5> For anyone interetsed, the Leaf E-Plus is coming within the next couple months with a 200 mile range: [https://insideevs.com/leaf-e-plus-nissan- joins-200-mile-club...](https://insideevs.com/leaf-e-plus-nissan- joins-200-mile-club/)

There's still no active battery cooling though, which is a disappointment.

<comment><USER4> Particularly in hot climates there's concern both around battery performance and actual range. Practically speaking you need to factor in climate control use when driving, which lowers range.

</comment></comment></comment></comment></comment><comment><USER6> Toyota has squandered its huge lead in hybrids and is now quite late to EVs. I'm glad to see them make these moves, but this should've happened over 10 years ago. These things take time.

<comment><USER7> > Toyota has squandered its huge lead in hybrids and is now quite late to EVs.

Toyota is somewhat late to _battery powered_ pure EVs (ignoring the limited RAV4 EV contemporary to the GM EV1 and Honda EV+), because they were heavily invested both hybrids, including PHEVs, and hydrogen fuel cell vehicles. OTOH, other than advanced battery tech, they aren't late to anything involved in battery-powered pure EVs (PHEVs have a superset of the needs of pure EVs, and fuel cell vehicles are pure EVs), but that's just a matter of making a deal with Panasonic, which they've done now, per the story—their competitors don't have exclusive special sauce here.

<comment><USER8> They made a deal with Panasonic for quite a small % of their production (Chinese brands only)

</comment></comment></comment><comment><USER8> AFAIK, the Panasonic deal is only to Chinese Toyota subsidiaries. Toyota still does not intend to manufacture battery electric vehicles and still pretend the auto market will fully switch to hydrogen first (as crazy as it sounds).

</comment><comment><USER9> Last year there were reports that the Tesla/Panasonic batteries in the Tesla Model 3 contained much less cobalt and that this was a significant competitive advantage for Tesla. Does anyone know if the enabling technology is Tesla's (or exclusive to Tesla through their agreement with Panasonic)? If not, will this be available to Toyota for use in their cars?

<comment><USER10> It will not be a competitive advantage for Tesla and the low-cobalt cells will be available to Toyota.

Panasonic makes and designs the cells (the part with the cobalt), Tesla just arranges those cells into a battery (adds control systems, cooling, framing etc.)

<comment><USER8> > It will not be a competitive advantage for Tesla and the low-cobalt cells > will be available to Toyota.

source?

</comment></comment></comment><comment><USER11> Strange that Toyota were so early with the hybrid cars, the Prius came out over 20 years ago. But they are now behind with full BEV's. Hydrogen just hasn't got the momentum at the moment.

<comment><USER8> >Strange that Toyota were so early with the hybrid cars, the Prius came out over 20 years ago.

[https://en.wiktionary.org/wiki/compliance_car](https://en.wiktionary.org/wiki/compliance_car)

</comment></comment><comment><USER12> I used to think the Hybrid Synergy Drive in the Prius and other Toyota hybrids was a fancy name for an electric motor bolted onto the gearbox of a regular ICE car. I've owned several Prii over many years.

For those interested here's a great video explaining how it really works. It blew my mind...

[https://youtu.be/E_xCssR8qQI](https://youtu.be/E_xCssR8qQI)

</comment><comment><USER13> Really glad we're shedding our dependence on Tesla to shoulder the future of the electric car industry. This is probably the single most important anti- climate-change measure the world is taking right now, and it'd be a shame if it lost steam because of Elon's breakdown. But I think Tesla managed to get the snowball rolling just in time.

<comment><USER14> Bill's stat on how many gas powered cars would need to be taken off the road (exchanged for electric) to equal the emissions of a single coal plant blew my mind.

[https://mobile.twitter.com/billgates/status/1052914693042450...](https://mobile.twitter.com/billgates/status/1052914693042450432?lang=en)

<comment><USER13> That is eye-opening, although:

> even if clean energy supplied all the power, over 1.5 million people would > still have to switch

So it does factor in the current state of electricity-generation, which makes a big difference. I guess the way I've always looked at it is, the energy industry has a big head start (and much more flexibility) in moving to clean sources than cars do. It's _really_ hard to:

1) Create a cultural change for billions of individual people

2) Replace the infrastructure of fueling stations

3) Create the technologies to make electric motors and storage feasible on a moving platform, where space and weight are at a premium

Each of those things has its own powerful network-effect holding it in place. While not _easy_ per say, I think the energy sector has much more opportunity to branch out. If you want to try out clean nuclear energy, you just decide to make your next plant a nuclear one.

I honestly think one of Tesla's greatest contributions to the world - on par with its battery innovations - was making electric cars "cool". I think this was the core genius behind Musk's business plan. Much as we'd like to think otherwise, car culture in America has always been one of the greatest barriers to adoption of non-fossil-fuel vehicles; in the past, hybrids and electrics have always been boxy nerd-wagons. Elon said, "let's start with an exotic sports car". He broke that most entrenched of barriers and I think that's what really got the ball rolling.

</comment></comment></comment><comment><USER15> Assuming drivers have access to plug-in charging, I doubt the large-scale need for 150 mile+ ranges, or even 100.

There will be a market for short-duration exchanges between ICE and short- range electric car owners for long trips.

Or just rentals of long-range vehicles (or trunk-battery-packs) for those with short-range vehicles that meet 99% of their needs.

<comment><USER16> Or an increased demand for long-range travel systems such as airplanes, buses, railroads, and/or zeppelins. America has fetishized the long distance road trip for a long time, but it's not the only way to travel.

</comment></comment><comment><USER17> How big of a deal is this? How will battery technology be impacted? What did Tesla's open-sharing of their patents do to the landscape?

</comment><comment><USER18> Call me when there's an affordable Tesla alternative with RWD/AWD. Torque steer is bad enough with ICEs.

</comment><comment><USER19> range isn't even a concern, make them charge in 10 mins please! I'd be fine having a car that can go ~100mi but can charge in a short time and have a battery that will hold those specs for at least 7 years

<comment><USER20> > range isn't even a concern, make them charge in 10 mins please!

Range absolutely is a concern. I've pretty much no use for a car which only goes 100mi but don't mind overnight charging in the slightest. I'm waiting for EVs to do 600 miles on a charge at highway speed, with heating and/or AC.

<comment><USER21> You're going to be waiting a long time. EVs do not perform well at highways speeds so your ask is ridiculous. A 600 mile range use-case is a boundary condition at best as there are few ICE vehicles that can even achieve that. EV aren't going to eliminate the need for ICE vehicles but they should easily be able to accommodate 90-95% of the market.

The biggest barrier to EV adoption currently is people incorrectly thinking they need a 200-300 mile range since that's what their ICE vehicle currently gets.

We're a two car family and when we got the Leaf it was initially my commuter car (~25 miles one way) but quickly became our primary vehicle. We still had an ICE vehicle that was also used as a commuter but we ceased using it almost entirely beyond that. Last fall we sold our ICE vehicle and bought another EV and our lives have been so much better for it. Our biggest concerns now are how to transport lumber home from the home center as we no longer have a junker.

<comment><USER20> > You're going to be waiting a long time. EVs do not perform well at highways > speeds so your ask is ridiculous.

That means they don't perform period, ICE don't magically avoid aerodynamic drag.

> A 600 mile range use-case is a boundary condition at best as there are few > ICE vehicles that can even achieve that.

Every ICE I've driven was able to achieve around that level. A 200~300mi range is what's ridiculous(ly low). The best car I've had could exceed 850 at 60~65mph.

<comment><USER21> > That means they don't perform period, ICE don't magically avoid aerodynamic > drag.

It has more to do with the transmission. Most EVs are more aerodynamic than ICEVs but still suffer at high speeds because they lack a transmission and thus require more power to maintain high engine RPMs. An ICE in comparison has a transmission to reduce the RPMs at high speeds.

> Every ICE I've driven was able to achieve around that level.

That's fine but not everyone needs that range. On a daily basis most people do not travel more than 100 miles. Even the slowest L1 charger can put 60 miles of range on an EV overnight plugged into a regular outlet. An L2 charger using a 30a outlet, found in most laundry rooms, can do ~20 miles an hour.

Every two car family where one person has a commute of less than 100 miles round trip would be just fine with an EV equivalent to a Nissan Leaf.

<comment><USER20> > It has more to do with the transmission. Most EVs are more aerodynamic than > ICEVs but still suffer at high speeds because they lack a transmission and > thus require more power to maintain high engine RPMs. An ICE in comparison > has a transmission to reduce the RPMs at high speeds.

Still a distinction without a difference.

> That's fine but not everyone needs that range.

Of course not, I quite specifically mentioned that it was my specific requirement in the original comment.

> Every two car family where one person has a commute of less than 100 miles > round trip would be just fine with an EV equivalent to a Nissan Leaf.

Good for you. A leaf still is of little use to me. Even if the infrastructure were in place, which it is not.</comment></comment></comment></comment></comment></comment>


Over a Million Are Denied Bank Accounts for Past Errors - <AUTHOR> http://dealbook.nytimes.com/2013/07/30/over-a-million-are-denied-bank-accounts-for-past-errors/?hp

<comment><USER2> So if a person has an over draft, they repay the fees and interest, yet it is still a reason to disqualify them? That seems a bit to harsh to me. Yet being the NY Times is also likely that they left out other details of those they profiled, such as bad credit history or other things that would preclude them from getting a checking account.

It seems that businesses, and our society in general, are moving to a state where all sins are held against you into perpetuity.</comment>


Gender Graph: Quantifying Gender Bias - <AUTHOR> http://gendergraph.tk <comment><USER2> Thanks for checking out the Gender Graph project:)

The binary model is made by word2vec:

[https://github.com/dav/word2vec](https://github.com/dav/word2vec)

Gender graph uses word embeddings trained by word2vec, the implementation is in the source repo under:

src/gender_word_plotting.c

</comment><comment><USER3> So the source repo has a binary file in it, which seems to have been made by vec2bin:

[https://github.com/sneha-belkhale/gender-word- plots](https://github.com/sneha-belkhale/gender-word-plots)

The python scripts are pretty simple. I'd like to see some methodology drill down / peer-review to make sure these models are sane. I don't really have the mathematics background myself.</comment>