In a self-driving future, we may not even want to own cars - <AUTHOR> http://www.latimes.com/business/autos/la-fi-hy-1121-la-auto-show-future-of-driving-20141121-story.html#page=1 <comment><USER3> [http://www.slate.com/articles/technology/technology/2014/10/...](http://www.slate.com/articles/technology/technology/2014/10/google_self_driving_car_it_may_never_actually_happen.html)

 _" But the maps have problems, starting with the fact that the car can't travel a single inch without one ... all 4 million miles of U.S. public roads will be need to be mapped, plus driveways, off-road trails, and everywhere else you'd ever want to take the car. So far, only a few thousand miles of road have gotten the treatment .., The company frequently says that its car has driven more than 700,000 miles safely, but those are the same few thousand mapped miles, driven over and over again.

... Safety is at stake here; Chris Urmson, director of the Google car team, told me that if the car came across a traffic signal not on its map, it could potentially run a red light, simply because it wouldn't know to look for the signal. Urmson added, however, that an unmapped traffic signal would be "very unlikely,"

... MIT roboticist John Leonard says it goes to the heart of why the Google car project is so daunting. "While the probability of a single driver encountering a newly installed traffic light is very low, the probability of at least one driver encountering one on a given day is very high," Leonard says. The list of these "rare" events is practically endless, said Leonard, who does not expect a full self-driving car in his lifetime (he's 49).

... "None of this reasoning will be inside computers anytime soon," says Raj Rajkumar, director of autonomous driving research at Carnegie-Mellon University, former home of both the current and prior directors of Google's car project."_

<comment><USER4> This is kind of irrelevant. Sure, these are problems that will prevent the technology from existing for at least another 10-20 years probably. But there definitely is going to be a future with self-driving cars. These things just need to perform better than a human, which isn't that hard all things considered.

</comment></comment><comment><USER5> if you own a self driving car, you could either have it sit in your driveway doing nothing - or you could hook it up to an api provided by uber to put your car to work.

if everyone does that with their self-driving cars, the cost of transportation will go down. it'll change the economics of car ownership; the cost of using a car will go down because the cars that exist will be put to greater use - <USER2> why bother buying one?

that whole thing could precipitate a sea-change in how the auto industry works. we'll see far fewer cars, built to be maintanable with easily replaced parts, sold to people who use them as investments that generate returns.

it's even going to change the _retail_ model if you think about it. couple the ability to see anythign you want with an occulus-rift headset, and lower traffic (thanks to fuller cars driving smarter) means it'll take less time to get where you want to go, and the model of 'a target every 1 mile' will just stop making sense.

the FUTURE!

<comment><USER6> > You could either have it sit in your driveway doing nothing

Driveways are such an American luxury! There are many places in the world that lack these. One reason I don't own a car in Beijing...where would I park the damn thing? A parking space is a comparable expense to my apartment rent.

The real value of self driving cars is (a) optimizing road bandwidth and (b) getting rid of the need for parking everywhere. I can't imagine people owning their own cars as densities increase (which invariably will happen, even in the states), especially if they don't _need_ to.

<comment><USER7> I've always been fascinated with the thought of driveways disappearing from new homes in America once self-driving vehicles take off. Future generations will see garages as a decadent luxury, akin to an indoor swimming pool or a private, on-property tennis court.

<comment><USER8> I wonder what percentage of garages are used as storage/workshops/playrooms now? In my personal experience it's very, very high.

</comment></comment></comment></comment><comment><USER9> Maybe it is because I live in a small town on a small hobby farm, but it seems to me that the vision of self-driving cars is very much a city thing.

I can't see self-driving cars being used to drive around my fields, picking up rocks, towing farm equipment, hauling hay, or any of the other things that pickup trucks are used for.

Maybe they will be able to navigate 4WD roads to get up into the mountains or out into the desert, but I'm not sure that would offer as much benefit as it would in city traffic.

The visions people just look to me a lot like the future of public transportation, and not at all the future of motor vehicles in general.

<comment><USER6> I think this is right: people living in rural areas will probably be driving on their own for a long time to come. But the world is increasingly urbanizing at high densities, and this is probably the future of personal transport for the majority.

It is not really "public transportation"; taxis are not public transit even though they are pretty ubiquitous in cities (less so in the US, but more so everywhere else).

</comment></comment><comment><USER10> During the War of 1812, word reached the East Coast of the U.S. that there was going to be a battle near New Orleans.

There was a guy who _ran_ all the way from the East Coast to New Orleans. When he got there, the battle was already over, so he ran back.

My point is this: technology is not just making us live happier and healthier lives. It's also beginning to raise a generation who won't be able to self- propel themselves over long distances, whether by foot, horse, car, plane, or whatnot. This is going to have implications for the way cities handle disasters.

I love this tech, but it stands to change the nature of what it means to be human almost as much as the electric light did.

<comment><USER11> Sorry but this is so odd to hear, but why was this guy running to new orleans. Didn't he have a horse. Also, why did he run back again once he knew the war was over. He could have waited perhaps?

<comment><USER10> Growing up in the East U.S. and being a bit of a history buff, I've heard several stories of folks running incredibly long distances in times past.

Native Americans were known to put rocks in their mouths and run for hundreds of miles. How they managed this over rough terrain is a mystery to me.

<comment><USER12> What did the rock do?

<comment><USER13> > What did the rock do?

Possibly the same trick that the Foreign Legion used in the Sahara; a small stone held in the cheek tricks the mouth into generating more salivia, reducing the perceived 'thirst'.

The underlying hydration isn't addressed but it does psychologically increase endurance between drinking.

</comment></comment></comment></comment></comment><comment><USER14> I'm really excited about this aspect of self-driving cars.

In the future, one day a father may need to schedule a doctor's appointment for his son. He will schedule it after his son's school, and a self-driving car will pick up his son in the pick-up loop (just like how he's dropped off in the morning). Dad will also schedule a self-driving car to meet his son at the doctor. He will receive notifications and photo/video of the pick-up of his son at the school. They will arrive at the doctor's office at the same time.

There's way more things that will change, but I think family planning and dynamics around travel will be one of them.

<comment><USER7> Wouldn't your intelligent agent (Google Now, for example) schedule the necessary legs of the trip with your preferred mobility provider, and keep both parties updated about location and arrival time?

"Google, make an appointment with Tony's doctor for $datetime, and arrange transportation for both of us there."

</comment></comment><comment><USER15> Makes sense from an efficiency point of view. Not exactly keen on the hygiene aspect of shared cars though.

<comment><USER16> We (mostly) resolved the issue with things like hotels. A car or bus could essentially become like a tiny, travelling hotel room and return to base for "housekeeping".

<comment><USER17> I guess if it were designed appropriately inside, you could actually use it as an accomodation and plan to sleep in it during an overnight trip, much as we've had night trains with beds onboard.

<comment><USER14> In the far future we'll see the inside of cars the same way we see the waiting room at a restaurant or doctor's office. A common place that we all don't mind sitting in for awhile, but it's really not ours to do with as we please.

<comment><USER7> Like a bus or a train?

</comment></comment></comment></comment></comment><comment><USER18> More likely is that the government will (via regulations) make it very hard to own cars. There are downsides to self-driving car though. Eventually you will have to give up anonymity and the freedom to go where you want, when you want. The government will surely "own" the system that runs the self-driving cars network. Self-driving cars aren't autonomous.

<comment><USER6> Many governments already make it hard to own cars: Beijing as a lottery for the privileged of owning a car, given the traffic problems we have here (too many cars, not enough road, horrible smog). But I think I'm OK with that, it is necessary.

Self driving cars could be autonomous, unless you believe that technology freezes in time from today and won't get better in the future. But the main value of self driving cars is optimizing road bandwidth, especially in dense cities like the one I live in, and it makes sense that they would be coordinated rather closely.

It is unclear that the government would own the cars themselves though...just like governments often don't own taxi companies.

<comment><USER18> _It is unclear that the government would own the cars themselves though...just like governments often don 't own taxi companies_

The government doesn't need to own the cars, since government will own the kill switch so you can't go anywhere.

Oh, and nice downvotes for not going with the anti-car hive mind that infests HN.

<comment><USER6> They already own the kill switch. Haven't you ever been subject to a road block before? Beijing was closing down a bunch a ring roads a couple of weeks ago because of visiting dignitaries; and there is always the occasional land slide/avalanche backing up traffic when travelling between cities through mountains.

<comment><USER18> _They already own the kill switch. Haven 't you ever been subject to a road block before?_

You seriously want to compare a government controlled kill switch to a landslide or a roadblock?

<comment><USER6> Whatever you want to compare against or not compare against, the point is that the kill switch is already there; cars are useless without roads, and roads are fairly easy to shutdown.

<comment><USER18> Except the kill switch isn't already there unless you think that there's a way for the government to shutdown every road.

If you're fine with governments having real kill switches, then please make that argument, but please don't make these silly comparisons that are obviously false.

<comment><USER6> > unless you think that there's a way for the government to shutdown every > road.

Isn't that what they* did in NYC during 9/11? And whenever the president comes to town, they'll shut down whole corridors. Now, it is inconvenient (not to mention expensive), and so they don't do it often. Also, our road systems are pretty fragile outside of cities, there are very few corridors where your car becomes basically useless if they happen to be shut.

* I assume you are being US-centric here, correct me if I'm wrong.

<comment><USER18> I assume you're being very non-US-centric since you brought up Beijing.

But you're still not getting it. This isn't about martial law, which is what you're essentially describing. Even with martial law, the U.S. way too many road, way too many people, for that to be effective, but that's besides the point, so let's focus on the kill switch.

Assume that self-driving cars would be not be really autonomous in the sense that you would have a very detailed local map or GPS that the government doesn't have their hands in. I think that's pretty reasonable considering what we know about government (at least the U.S. government and many other western governments).

If that's a reasonable assumption say 45-50 years from now, then any individual, groups of individuals, any area (big or small), any groups of area can be kill-switched with the press of a button. That is not ANYTHING like what you are describing as possible now with "roadblocks".

Don't you find that in the least bit disturbing, in that a fundamental of travel is very easily disabled for just about everybody and anybody?

I love the idea of self-driving cars. Driving is a nuisance for me as well as most people out of their teens, but for people that value freedom, you have to take a realistic look at what the cost will likely be.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Synchronizing Verilog, Python and C - <AUTHOR> http://blog.elphel.com/2016/03/synchronizing-verilog-python-and-c/ <comment><USER3> This is one of those repeatedly solved problems in chip design... Here is my solution:

[https://github.com/jhallen/joes- sandbox/tree/master/verilog-...](https://github.com/jhallen/joes- sandbox/tree/master/verilog-tools/vcsr)

My solution allows you to define registers as module instantiations throughout the design hierarchy. Parameters give the address and bit positions of each register. A tool extracts the registers and generates documentation and a C header file for the chip. The tool has to elaborate the design to determine the parameter values- so it also handles derived addresses by handling math involving parameters. It generates C names for the registers which match the register instantiation path in the design hierarchy (and tries to simplify it by providing just enough of the path to make the names unique). Field names are derived from the names of the wires connected to the register bits.

I've seen other tools which work the other way: the master is a C header file, and the Verilog is derived. I'm not a fan of this, since it means you are have to plumb signals to a central register file module, which creates a big mess.

I like to use an OR-tree for the on-chip register bus- I think it's the optimal design for FPGAs. I have a library which includes simple registers and modules which allow the internal bus to cross clock domains. Look at bus*.v here:

[https://github.com/jhallen/joes- sandbox/tree/master/fpga/hdl...](https://github.com/jhallen/joes- sandbox/tree/master/fpga/hdl_lib)

You have to plumb just two identifiers throughout the design for the registers: bus_in and bus_out.

<comment><USER4> Yes, you are absolutely right about "repeatedly solved problems", so it is definitly one in the series of "yet another ...". I'll try your program on our project files to see what registers it can extract from it. I'm assuming that there is no perfect universal solution, and I agree that Verilog-to-C (just having C in the back of your mind while working on the FPGA) is better here than C-to-Verilog. So in our case there is no automatic generator, code just helps you to avoid errors. Python program imports Verilog parameters/localparams (just constants and the the ones derived from them using expressions) and catches most of the typos when I write the generator code (not dramatically shorter than what it generates). This allows me to be flexible - the instantiated modules are not very uniform and not all have exactly the same interface - many were developed a long time ago starting as early as 2002. Not many are that old, but there are still many interface variations, and I do not mind going once more through them before switching to the C work from Verilog. I want just two things:

\- reduce the number of possible errors as a result of the manual translation and

\- make this (somewhat hand-crafted) converter be able to synchronize future changes in Verilog code to the C code that uses it, so five years from now it will be easy to add functionality to the system.

And thanks again for the links - I'll look more into your code.

</comment></comment><comment><USER5> First, I've never programmed Verilog before. But I see this breaks the DRY principle. If I'm in your position, I may put the information into data, and interpreter the data in Verilog, C, python.

Again, I don't have Verilog experience before and I might be totally wrong.

<comment><USER4> Yes, I'm guilty in DRY violation and I mentioned it in the post - I still manually translate Verilog to Python when go from simulation/debugging to hardware testing/debugging. And we are looking to use a more productive way to do this - write the simulation code (that replaces the CPU activity of the real hardware) in the programming language (Python) rather than switching to System Verilog that is somewhat in between the hardware description language and a software programming one. That is in our future plans, not there yet.

Other than that - DRY is always in our agenda, and there is only one place that holds the parameters/ preprocessor macros that define the hardware and its software interface. Python code reads Verilog files and extracts all the parameter names and values (names/types are automatically added to the Python source to allow checking). That Python code allows to run tests on the target system, do some calibration and save results in the same Verilog parameters format (same as here [https://github.com/Elphel/x393/blob/master/includes/x393_cur...](https://github.com/Elphel/x393/blob/master/includes/x393_cur_params_target.vh) , just no header). Same program uses Verilog data to export C files, it uses hand-crafted code to allow flexibility - it is not always possible to fit everything in the same format, but here the focus is again on the DRY - <USER2> code to do what is different, and use common code that processes multiple data items as much as possible. And when it is not - provide checks to catch differences when you do have to repeat yourself.

Only part of the Python code is a "translation" of the Verilog tests (and this we plan to eliminate in the future), the rest is just a continuation of the project, and when writing (not just running) that code I'm re-using data exported from the Verilog (and re-exported when there are changes that influence data). Same with C - code continues the project, re-using Verilog+Python data.</comment></comment>


9 Women Can't Make a Baby in a Month (Lean Startup Movement) - <AUTHOR> http://www.bothsidesofthetable.com/2011/03/30/9-women-cant-make-a-baby-in-a-month/?awesm=bothsid.es_AqN&utm_content=awesm-publisher&utm_medium=bothsid.es-twitter&utm_source=hootsuite.com <comment><USER2> Originally posted in TechCrunch, which was submitted here:

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

Many comments there already.

Further resubmitted here:

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


Show HN: Twitch Plays Doom - <AUTHOR> This is the inevitable post after jeff_harris released restful-doom https://news.ycombinator.com/item?id=14919534
twitch-plays-doom is a Python Twitch IRC->restful-doom proxy to control doomguy with a staggering 8 second delay.
The project was Saturday night's 'I wonder if I can make this work' session. Since it's been live there has been a team of four successfully make it to half way through E01M01.
I've since added godmode to the chat (you can guess the command).
This was fun, hope others get some enjoyment out of it.
Twitch Stream/Chat https://www.twitch.tv/dddanmar/
twitch-plays-doom https://github.com/dddanmar/twitch-plays-doom/
restful-doom https://github.com/jeff-1amstudios/restful-doom/
chocolate-doom https://github.com/chocolate-doom/chocolate-doom/ <comment><USER2> Type `iddqd` to toggle god mode

Edit: I'm getting downvotes for this? It's in the posted source code: [https://github.com/dddanmar/twitch-plays- doom/blob/master/tw...](https://github.com/dddanmar/twitch-plays- doom/blob/master/twitch-doom.py#L55)

<comment><USER2> It looks like there are two factions forming over the control of `iddqd` command.

It's a battle of trying to keep the marine alive versus killing him. Every- time someone types iddqd, god mode is toggled.

God mode makes the character invincible, without god mode on the marine dies in a few seconds.

<comment><AUTHOR> This has been my favourite part of the entire stream, didn't expect factions forming at all!

<comment><USER3> You don't expect factions? Religious wars have been raged over tabs vs spaces... tab is 2, 3 or 4 spaces... bracket on this line vs the next...

Factions are normal and I would expect them to coalesce, polarize and get more extreme over time.

<comment><USER4> I don't get that war - configure your editor to convert your tabs to spaces. Precision.

<comment><USER5> Ah, but then you commit and someone else pulls the source code down and their carefully crafted N space per tab setting is now worthless since you decided how long tabs should be for them.

Then they post an angry rant on some mailing list about how forcing tabs to spaces forces people with various reading disabilities into a tabstop setting that makes it hard to read.

And before too long it's devolved into the same old Tabs vs Spaces debate.

<comment><USER4> But... your team just enforces a style. No debate. Two spaces for Ruby I've seen almost everywhere. Two for Elixir, same. Go has go fmt. This hypothetical of different spaces is killed before it happens.

<comment><USER5> Having a style ends the debate yes. Configuring your editor to automatically replace tabs with spaces does not end the debate. It starts it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Okay, I've been watching this for a few minutes, and... the 8 second delay is FAR too long.

Doom is simply too interactive. You need to be able to control it in realtime.

I recommend three things:

\- Slow the delay right down, and possibly make it adjustable via chat commands. A 500ms-1s delay is honestly going to be the best possible thing here. Yes, some players will lag too much and won't be able to play at those latencies - which is why you make it adjustable.

\- Show, inside the video stream, the command that is currently executing, and the username executing from. This will create a unique tuple that will allow players to figure out the sync for themselves.

\- A consensus system that tallies up the next key to press, TpP-style, might be a good idea. Right now everyone's fighting to cooperate because it's concatenating everyone's actions together.

<comment> unkown-unknowns I think the delay is due to Twitch itself.

<comment><AUTHOR> 100% - the delay is as low as I can get it.

Twitch uses RTMPE for the most part, it's always going to be a little delayed. It's a decent box, compression is on, connected to fibre internet.

If anyone has any ideas of reducing latency I'd love to hear it!

<comment><USER7> Why not time dilate? Could make it a variable setting that users can control. At some setting, it'd be fast enough to send commands and win fights without god mode.

Or you could execute the command for a second, then pause the game execution. Make it closer to turn-based Doom.

<comment><USER8> Allowing a reasonable number of consecutive actions might help, too. Like if I want to go forward two steps and turn 90 degrees to the right, I could send "wwddd." Not as necessary in Twitch Plays Pokemon, but could do wonders here.

But as mentioned, it would have to be capped to some number to prevent abuse.

</comment></comment></comment></comment></comment><comment><USER9> I once played an interactive doom on Mixer (Then Beam)

Worked well for showing off the platform, since there was really a low latency. Since it uses it's own interactive input, and not relying on IRC for interaction, so it's UX is considerably more user friendly... if you want to sign up for a Microsoft Xbox live account to use it

</comment><comment><USER10> You should probably remove the toggle godmode command and force it to on. It's trivial to ruin progress with a strategic iddqd.

<comment><AUTHOR> Done. God mode stuck on now.

</comment></comment><comment><USER11> I played it for a while, it was fun but a bit frustrating having to fight the people trying to turn god mode off.

<comment><AUTHOR> God mode is now turned on without an option to turn it off.

</comment></comment><comment><USER12> The game seems paused and I mostly just hear some soft creepy music

<comment><AUTHOR> It crashed ;-(. Made a few small changes and it's back up.

</comment></comment><comment><USER13> thanks dddanmar, very cool!

<comment><AUTHOR> You've done all the hard work here, really appreciate your release that gave me a fun Saturday night!

My part took all of four hours to write, setup, deploy and post.

At this point I'm going to pull the stream down, been going 5 days now with a few crashes in Doom that are getting a little frustrating to debug.

Thanks again! This was great fun!!

</comment></comment><comment><USER14> > Your message was not sent because it is identical to the previous one you > sent, less than 30 seconds ago.

:O I can't fire fast enough!

<comment><AUTHOR> I saw someone with an idea to escape the Twitch message rules:

f \- f \- f \- f

</comment></comment><comment><USER15> Hard to play a real-time game with a 7 second delay...</comment>


The Fay Programming Language: Compile Haskell to JavaScript - <AUTHOR> http://fay-lang.org/ A proper subset of Haskell that compiles to JavaScript. <comment><USER2> While I appreciate that they moved the site out to a dedicated URL, this is a duplicate of yesterday's HN submission:

<https://news.ycombinator.com/item?id=4276625>

People may appreciate the comments there.

<comment><USER3> Indeed, the old URL 301 redirects to this one. Noticed a spike in traffic from HN and came to see the cause. I see it's at the bottom already, voting-based- moderation works. :-)

</comment></comment><comment><USER4> Amazing stuff. This may finally give me an excuse to learn Haskell.

I have some concerns, though. I'm no JS expert, but it seems to me the resulting code is a bit difficult to read. The good thing about CoffeeScript is that the code that comes out is more or less like what you put in.</comment>


Google Overtook Apple In WebKit Code Commits - <AUTHOR> http://www.techcrunch.com/2010/02/06/google-apple-webkit/ <comment><USER2> "For the first time this season, Pittsburgh made more rushing attempts than Denver. Now, the usual caveats apply, Denver might make significantly more yards per carry, for example. But, nevertheless, this graph clearly shows that Pittsburgh had more rushing plays."

What constitutes a commit varies between organizations. More than that, look at the area under the respective graphs. Apple has already made a HUGE number of commits. Presumably they've achieved many of their strategic aims. Google has barely scratched the surface, if we're to believe that raw commit numbers matter at all.

Apple's trend line is going down. Should I infer from that that Apple no longer cares about Webkit?

Apple doesn't commit to Webkit as a public service. They also don't commit as a race against Google. They'll commit precisely as needed to achieve their business goals. There is nothing interesting implied by the relative numbers of commits between Apple and Google.

<comment><USER3> Its interesting in the sense that it's rare to see many relatively large and competing companies actively making commits to the same open source project.

</comment></comment><comment><USER4> I really hate to see TechCrunch giving credence to the notion that the number of times someone commits to a given codebase is somhow representative of the actual contribution to the project. Granted, the author does say: "The graph, while it shows commits, doesn't weigh more important ones versus less important ones." but he then goes on to say that "[the graph] does clearly show that in late 2009, Google surpassed Apple as the company that now contributes the most (again, in terms of commits) to the project." Ignore the parenthetical, and it feels like the author is ignoring the issue: commits does not equal code quality.

After all, and I know that I'm over simplifying the point, (I think this is safe to say) but didn't Apple build out most of the core functionality -- the rendering engine, while what has been going on for the past couple months to a years is just adding features and extending what the base browser is? You can't determine that type of input based on commits alone.

Edit: Clarify core functionality.

<comment><USER5> Sort of.

Remember that WebKit comes from the KHTML/KJS work, so they had a rendering engine capable of taking webpages and rendering them to some degree from the start. Compatibility is loads better now than it used to be, but the web looks substantially different now than it used to as well.

</comment></comment><comment><USER6> It's good that they clarify that this is only commit counts. I guess I'm not too surprised since Google, as a newcomer (relative to Apple), surely has a whole set of features and ideas it wants to implement that Apple hasn't considered before.

In fact, the source blog explains that a lot of the work had been to make WebKit work better with Google web apps.

[http://neugierig.org/software/chromium/notes/2009/10/going-u...](http://neugierig.org/software/chromium/notes/2009/10/going- upstream.html)

</comment><comment><USER7> I see this more as a testament to the greatness of open source. Who cares who contributed more commits? What to take out of it is that open source prevails, even in a competitive environment — it makes me feel hopeful about things.

</comment><comment><USER8> _a very interesting graph: one that shows the number of code commits to WebKit_

Except the graph is of commits/day, not overall commits. This means even less than the way TC wants to advertise it. Integrate the lines and it'll be a long time before Google touches Apple's contributions in the way this story implies.

In fact, TC's coverage is flat dishonest by stripping any mention of scale and then zooming in on the overtake point. It's never any surprise to conclude that TC is sensationalist lying, but when they post numbers it casts hard light on the truth of the matter.

</comment><comment><USER9> Only one thing comes to mind.

[http://badusure.com/wp- content/uploads/2009/08/featuresbyver...](http://badusure.com/wp- content/uploads/2009/08/featuresbyversion-thumb.png)

(google image)

</comment><comment><USER10> Now that we've established that the number of commits only gives us limited information about the contribution of various people/groups, can anyone familiar with the webkit codebase give us a "state of the union" about who's actually improving Webkit most these days?

What have been some of Google's biggest contributions in the past 6 months? Apple's? RIM's?

</comment><comment><USER11> Give me commit access and I can overtake them both with a tight 'for' loop.</comment>


The Colemak Keyboard Layout - callum-oakley https://callumoakley.net/posts/colemak <comment><AUTHOR> I have been using Colemak the last ten years and have never looked back. Highly recommended!</comment>


A "Hello World" Server in Prolog - <AUTHOR> http://www.swi-prolog.org/howto/http/HelloText.html <comment><USER2> Great to see ongoing interest in Prolog. I did my Master's thesis in Prolog back in the "Fifth Generation" days [1] ... obviously the hype was waaaaay overstated but it still significantly influenced my thinking. I really think of it as one of those languages like Lisp or ML that opens your mind even if you don't wind up using it in your day-to-day job.

Plus, I thought it was entertaining to see this on the front page at the same time as "Hello, declarative world" :)

[1] [https://en.wikipedia.org/wiki/Fifth- generation_programming_l...](https://en.wikipedia.org/wiki/Fifth- generation_programming_language)

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

<comment><USER3> And I did mine more recently (2010) [1] :) (Mostly semantic web stuff ... showing how it can far outperform Java based SPARQL implementations for some stuff).

It was a real joy to work with semantic web data in SWI-prolog! Prolog lets you raise your level of abstraction so quickly, as defining prolog rules basically is a form of creating "named queries", something that is not possible e.g. in SPARQL (the canonical semweb query language).

I can't understand why this feature of prolog is not implemented more widely in more recent systems. The only example I know of that does, is Datomic [2], by Rich Hickey.

[1] [http://www.diva- portal.org/smash/record.jsf?pid=diva2%3A3988...](http://www.diva- portal.org/smash/record.jsf?pid=diva2%3A398839&dswid=-8767)

[2] [http://www.datomic.com](http://www.datomic.com)

<comment> iso8859-1 How exactly can I use Prolog in Datomic? I only saw Datalog.

<comment><USER3> Yeah, I meant that it uses the ideas of "named queries" from prolog, which is included in the datalog IIUC.

</comment></comment></comment></comment><comment><USER4> We're a pretty heavy user of Prolog for several systems. We use it for doing end of day allocations to prime brokers to determine the optimum allocations, basically a constraint solver.

I had it in the trading system for some time but I had to pull it out as I couldn't find a way to make its runtime deterministic enough. Most of the time it would be great and then on occasion I'd get 100 millisecond pauses:( I could never figure out if it was me doing something, the C bindings we were using or if Prolog just has a mind of its own:)

If anyone has any pointers on how to reason about the run time efficiency and performance of your prolog code I'd be willing to buy you a coffee!

[http://www.amazon.com/Programming-Artificial-Intelligence- In...](http://www.amazon.com/Programming-Artificial-Intelligence- International-Computer/dp/0321417461)

Awesome book, can usually be found in any used university book store!

<comment><USER5> > on occasion I'd get 100 millisecond pauses

As a first guess, this sounds like garbage collection pauses. Details of what to do about them depend on the particular implementation.

In SWI you can use the profiler to see if the garbage collector is in fact being called when you don't expect it. Then: (a) change the default (veeery low) garbage collector settings to use more memory before collection is triggered; (b) make sure you're not leaving unnecessary choice points around (listed as "redo" by the profiler, fix with correctly placed green cuts); (c) call garbage_collect/0 yourself at well-defined points when you're currently not doing low-latency stuff; (d) possibly (but I have no personal experience with this) turn off the garbage collector completely for certain sections of the code.

<comment><USER6> _change the default (veeery low) garbage collector settings to use more memory before collection is triggered_

I'm not familiar with Prolog GC but in other systems, making GC less frequent just tends to cause each collection to take even longer, as more objects have been created between each pass.

<comment><USER5> That is true as a general trend, but in my experience with SWI-Prolog the effect is not linear, and frequent small collections do cost more (in MY applications). For one thing, if you have long-lived data used throughout the program's whole lifetime, they will be visited on every collection without ever being freed. For another thing, if you have enough memory to fit all the data ever allocated by the program, you may not need to collect at all! Also, as mentioned in my previous comment, depending on the application there may be program parts where it is OK to trigger even a long-ish collection manually, while you want other parts to be fast and collection-free.

So, to reiterate: You are right in broad terms, but it all depends very much on the details of the application.

</comment></comment></comment></comment><comment><USER7> If anybody is interested in Prolog, you might find this old blog post of mine useful. I cataloged a number of pretty useful online (freely available, legal) Prolog learning resources:

[http://fogbeam.blogspot.com/2013/05/prolog-im-going-to- learn...](http://fogbeam.blogspot.com/2013/05/prolog-im-going-to-learn- prolog.html)

Sadly I've only just now _finally_ gotten around to investing some time in to trying to learn Prolog myself. I got as far as creating myself a Github repo[1] and writing "Hello, World" and figuring out how to run Prolog programs at least. It's not much, but ya gotta start somewhere.

[1]: [https://github.com/mindcrime/LearningProlog](https://github.com/mindcrime/LearningProlog)

<comment><USER8> I'm glad to know I'm not the only person who creates "learning_xyz" repositories that may or may not progress very far, though I've yet to share any of mine online.

<comment><USER7> I only recently started sharing mine. I decided there was no real reason not to, and possibly some advantages in doing so. For one, it lets anyone looking at my GitHub profile know what kinds of things I'm into, beyond my "primary" projects. And it opens up the possibility of collaborating with friends and acquaintances (or, as far as that goes, total strangers) on some interesting stuff. I also find it motivational, especially when I work on increasing length of my "streak" of activity on GitHub.

<comment><USER8> Easiest way to have a long streak: run daily backups that push to GitHub via cron ;-)

<comment><USER7> Yeah, but that kinda defeats the point. What I've been trying to do is focus on making at least one commit a day that at least fixes something trivial, like replacing a "println" statement with a "log.debug" or "log.info" or whatever (in some Grails code). This way I'm both slowly and steadily improving the code, and I get to push my streak.

Still, my long streak is only 14 days so far. :-(

</comment></comment></comment></comment></comment><comment><USER9> I had a Prolog class in university and also fiddled with it a bit extracurricularry. My biggest gripe was that (aside from being untyped and having poor support for higher-order programming, but that's probably remedied in more modern logic programming languages such as Mercury) for more complex use cases and computations the system degrades into functional programming with poor syntax: logical relations become deterministic functions with designated inputs and output, at which point I would be just better off with FP + backtracking (for example, the list monad in Haskell).

</comment><comment><USER10> I like how posts about Prolog get populular very fast, but have little to no comments. People have heard that this language is special but have never actually used it in production, so they hope that someone will shed the light on it. Unfortunatelly it usually ends with a copypasted list of 15 projects(including Watson) where Prolog is used and thats it. Maybe someone can share his/her production level experience with it this time...

<comment><USER11> I've never actually used Prolog, but like you say, it always seems like a really cool language. That said, I always wondered why it needs to be a language instead of just a library in another language. It seems there are some types of problems that are really well suited to Prolog, but I don't think it necessarily applies to all problems. So why not use another language and then bring in the relational piece as a library? Granted, I think that's what Kanren does in Scheme, but it doesn't really seem to be all that common.

Also, maybe I misunderstand, but doesn't using Prolog limit you to the unification algorithm used? If you wanted to build something like the Cassowary constraint solver in Prolog would it be really easy or would you still need to implement the algorithm from scratch?

<comment><USER12> > That said, I always wondered why it needs to be a language instead of just a > library in another language.

It can be -- and often is. Depending on the language, the syntax may not be as convenient as using Prolog directly.

</comment></comment></comment><comment><USER13> This reminded me of O'Keefe's Prolog Well-formed Pages, one of the cleanest templating approaches.

[http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl](http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl)

</comment><comment><USER14> A suggestion to anyone who's interested in logic languages, like prolog: Give The Reasoned Schemer by Daniel P. Friedman a try. It's an easy, fun book, with surprising depth if you give it some effort and thought. .

</comment><comment><USER15> When I used Prolog at university, we built really cool constraint solvers using hardcoded predicates, but is it possible to create the predicates dynamically? To be useful, if a user has a GUI where they can define rules, they've got to be loaded into the program somehow... hopefully not through code generation?

</comment><comment><USER16> I think one of Swi-Prolog's great advantages is the large library, especially tools for the semantic web. I have not had any consulting work using Prolog in at least 8 years and don't do much for-fun Prolog programming either. I used to find Prolog especially good for hacking together quick prototypes.

</comment><comment><USER17> I am OS guy . so I don't have so much experience in other than C. Yesterday I was watching youtube video about prolog , and I amazed by Logic Programming concept.Maybe for most of you it is ordinary concept , but for it was wonderful and I have plan to continue it in my spare time.

</comment><comment><USER18> Anyone have a mirror?

<comment><AUTHOR> Is it down for you?

[https://web.archive.org/web/20150913080629/http://www.swi- pr...](https://web.archive.org/web/20150913080629/http://www.swi- prolog.org/howto/http/HelloText.html)

</comment></comment><comment><USER19> For comparison:

Here's the same thing in modern Python: [https://news.ycombinator.com/item?id=10221707](https://news.ycombinator.com/item?id=10221707)</comment>


WhatsApp ranked worst for users' data privacy - <AUTHOR> http://www.independent.co.uk/life-style/gadgets-and-tech/news/whatsapp-ranked-worst-for-users-data-privacy-in-internet-snooping-report-10328539.html

<comment><USER2> This sounds to me like WhatsApp just didn't participate very openly, not that the report had any factual technical issues with the service.

Sure, them being very tight-lipped could be seen as a reason to worry about their security, although they've been technically open enough that I know a decent amount about their tech and stack. I even gave FreeBSD a fresh look after watching a few recorded sessions from their engineers.

So... A bit of FUD maybe, backed by a not-as-open-as-the-EFF-would-like policy?

(I am a card-carrying donor to the EFF, I just don't see the issue clearly.)</comment>


CouchDB vs. MongoDB - <AUTHOR> http://blog.panoply.io/couchdb-vs-mongodb <comment><USER2> The article is strangely outdated on the CouchDB side, like someone wrote it two years ago.

It fails to mention that CouchDB now has Mango, which is a MongoDB-compatible query language.

Since 2.0, CouchDB also has Dynamo-like clustering thanks to Cloudant's open sourcing of the BigCouch code.

I wonder if the MongoDB side of the comparison is more up-to-date, or equally stale.

<comment> nevi-me Mango seems interesting, thanks for that. I got thrown into a tight spot at work, where I'm building a lease calculator for the accountants, I need to build the whole thing as a self-contained application, due on Monday. Long story is that it wasn't as easy as I thought, and I ended up having to replicate Journal entries, a trial balance and financial statements. Even though Mongo doesn't have transactions, I found a good way to make my journals balance. I'm using aggregating framework to post journals to TB and FS.

The last part I was worried about is the self-contained bit, so I'm going to give CouchDB a try, and use Mango to prevent redoing everything

<comment><USER3> You don't need a different NoSQL database, you need a relational database.

</comment></comment></comment><comment><USER4> No mention of Mongo "/dev/null as a service" DB's infamous issues with data loss?

Apparently their new replication protocol isn't as utterly broken as the old one, but my understanding is that data recovery after server crashes is still a problem.

<comment><USER5> I ran into a doozy in our production Mongo 3.2 replica set just this week, where initial sync completely failed because the oplog was growing too fast. It seems this class of errors was actually fixed ( [https://docs.mongodb.com/manual/core/replica-set- sync/#initi...](https://docs.mongodb.com/manual/core/replica-set- sync/#initial-sync) ) in 3.4, which also fixed a number of the data reliability issues you mentioned (see [https://jepsen.io/analyses/mongodb-3-4-0-rc3](https://jepsen.io/analyses/mongodb-3-4-0-rc3) ). But since we hadn't upgraded, the only way to fix things was to throttle back our write-heavy background tasks during a period of low usage - definitely not the kind of thing you want to have to explain to users.

At the end of the day (see my other comment in this thread), I'm bullish about the developer experience of Mongo/Meteor, and I think that 363 days a year of significantly increased developer productivity is worth the 1 day of devops hell that might ensue from that stack choice, and 1 day of realizing that your performance problems all stem from Mongo query performance being much more reliant on manually creating indices on fields vs. an unindexed Postgres table of the same size. Sigh. On the reliability end, it helps that our (largely append-only) data model is such that inconsistencies are possible to clear up manually if needed. But on those couple days a year, I'm definitely not a Mongo fan.

<comment><USER6> I've seen this 'increased productivity' argument for Mongo over and over but I just don't see it in practice.

I've dealt with many apps and teams that use Mongo, and the amount of time spent tracking annoying bugs because of a lack of schema, writing migration scripts and the _abysmal_ performance of the database leads me to believe that the only reason Mongo devs think they are more productive is because they can get 3 lines of code to make a new collection + record in the database in 5 seconds, and ignore the 5 months of time they spent down the line.

</comment></comment></comment><comment><USER5> > Mobile support: CouchDB stands out, in that it can run on an Android or iOS > mobile device. In addition to being mobile, the database can also > synchronize with a remote master database, allowing the data to be shared > easily between mobile devices and servers.

Meteor actually provides exactly this for MongoDB; it has a "minimongo" package in the browser that supports Mongo's query language, running it synchronously against an in-memory copy of the collection [0]. And with Meteor, you can specify "subscriptions" declaratively that enable bidirectional synchronization while their owner components are in scope.

Mongo certainly has some reliability issues (see other comments here) but I've yet to find a full-stack system so painless to develop in, _especially_ if you need realtime support. With things like ToroDB Stampede [1] and a general approach of "write all your code in React with Meteor dependencies factored out into containers," there's a clear migration path towards the relational- based separate-backend-frontend world when you need to go there.

[0] [https://guide.meteor.com/collections.html](https://guide.meteor.com/collections.html)

[1] [https://www.torodb.com/stampede/docs/1.0.0-beta2/about/](https://www.torodb.com/stampede/docs/1.0.0-beta2/about/)

<comment><USER7> The CouchDB one is actually a fully persisted database, not just an in-memory cache. Both are useful, but it's not quite the same thing.

<comment><USER8> Plus the CouchDB ecosystem has Couchbase for iOS/Android (with their own tradeoffs versus mainline CouchDB) and PouchDB which is a JS version of CouchDB that runs in the browser on just about any platform and can store directly in IndexedDB.

</comment></comment></comment><comment><USER9> CouchDB replication has got to be among the easiest and nicest in the industry. Setting up master/master is a breeze.

</comment><comment><USER10> > Snapshots: Any changes to a document occur as a revision and appends the > information to the file. This means you can grab a "snapshot" of the file > and copy it to another location even while the database is running without > having issues with corruption.

This is the main feature I sell when pushing CouchDB.

Use it to project events and you'll see what I mean.

<comment><USER11> On the other hand, with v2 sharding it's acctualy harder to pass this file(s) around and can be documented better how to do so successfully.

</comment></comment><comment><USER12> I want to make an obvious point, but I know it confused me quite a bit for a while, so just in case it helps anyone else: There's CouchDB and then there's Couchbase which is similarly named but completely different.

I recommend anyone shopping for databases with easy master/master replication with eventual consistency and no single points of failure to consider Couchbase as well. It's not the same will have it's own set of pros and cons.

<comment><USER13> Couchbase is not eventually consistent

</comment></comment><comment><USER14> I really liked this article for this kind of thing :

[https://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs- redis](https://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis)

</comment><comment><USER15> > MongoDB is schema-free, allowing you to create documents without having to > first create the structure for that document. At the same time, it still has > many of the features of a relational database, including strong consistency > and an expressive query language.

The author clearly has a different definition of "strong consistency" than most. I don't see how any claims of consistency (in a data usage, not CAP sense) can be made of a database that can't properly store a number as a number or even guarantee that it's a number at all.

Also, does anyone actually like the Mongo query language? It was cute when I first saw it but I pity anyone trying to do anything complicated by manually writing those JSON strings.

<comment><USER16> MongoDB absolutely stores numbers as numbers. Always has.

And yes in a schemaless database you are required to manage the schema in your application layer as opposed to within the database. If we wanted a database with a rigid schema we would just use a SQL database.

<comment><USER6> He said can it _guarantee_ that the field "length" will always be a number and not..eg a string, or a list, or an object.

<comment><USER16> Why would it guarantee that ? It's a schema less database. It's not supposed to do that.

And my point is that if you query a single document and the field is a number then it will be returned as a number i.e. it physically stores and understands numbers.

<comment><USER6> Elasticsearch is schemaless as well, however it can guarantee that a field is a number once used.

<comment><USER16> Elasticsearch is not schemaless. It typically requires you to define a mapping (schema) upfront. You can set it to automatically infer the mapping based on the available data but this does not make it truly schemaless.

MongoDB allows a free form schema for every document. You're again comparing apples and oranges.

</comment></comment></comment></comment></comment></comment><comment><USER17> One huge benefit by adapting a CouchDB backend is you got replication free, with PouchDB on client side this opens so many opportunities.

<comment><USER18> PouchDB is one of CouchDB's killer features. During development you can effortlessly switch between storing things locally, in the browser, and then sync with a remote database.

</comment></comment><comment><USER19> I'd like to see "vs Postgres".

<comment><USER20> Postgres' JSON support is very impressive.

</comment></comment><comment><USER21> We've found the Postgres json store works just fine for our purposes, thank you very much.

<comment><USER22> The reason I rejected PG's JSON store, was it's inability to update fields inside of a JSON doc, without replacing the whole document. In your case, does this constraint push you to use more types of smaller documents, or do you just read the whole doc, update it in the application, and then write it back to the DB?

Have you ever had an issue with conflicts, where multiple instances of the app read, modify and write different things to the same document at the same time?

<comment><USER23> JSONB data-type allows for specific field modifications in the JSON object. Operators look ugly in hand-crafted SQL but, works a treat.

</comment></comment></comment><comment><USER11> I don't agrre with the article saying MongoDB is better at reading.

From my experience MongoDB is fast, but CouchDB really shines when you have a read heavy application.

Also the article didn't mention Mango queries, which is a blessing (fast indexing as erlang views), but in my opinion this feature can be a lot better with stale results, for instance.

</comment><comment><USER24> I use couch, pouch, elasticsearch and sql dbs. I never really got the "schemaless" selling point of nosql though.

I do see the point of storing documents rather than rows for some use cases, or dbs extra strong on searches, etc.

But what is the problem with an "add column" or "change datatype" operation is sql..?

<comment><USER25> Partly because MySQL requires a full table lock and full table copy to implement those operations. Much of the nosql movement originated from implementing schema changes on production MySQL databases. In many if not most cases, NoSQL is really NoMySQL.

Many other engines, PostgreSQL for example, can add a new column without constraints as a nearly instant metadata change only. Data type changes that do not require validation (expanding a VARCHAR vs CHAR to INT) are also rapid.

</comment></comment><comment><USER26> I find MongoDB easier to deploy and maintain because it's easier to build and monitor. CouchDB with Erlang not so much (for our environment, it's totally alien).

EDIT: I made a statement about our preference, for our environment. I did not make broad claims about these DBs for other people. How am I upsetting HN?

<comment><USER27> Why do you build your DBMS from source?

<comment><USER26> Specifically for CouchDB, because packages provided for CentOS/RHEL were outdated and now they don't even exist.

</comment></comment></comment><comment><USER28> Now do ArangoDB vs MongoDB. Given Arango's clustering tools recently, it should be a fair comparison.</comment>


Ask HN: Just learnt some python(Udacity CS101). Where to go from here? - <AUTHOR> Hi all,
I just completed the Udacity CS 101 course, primarily to learn python. I know C fairly well, and am actually working full time on a product, coding/debugging in C.
I have some free time on my hands, and would like to build something, and hence started learning python. My full time work of debugging and the teeny weeny programming that I end up doing doesn't give me the satisfaction I need from being a software engineer, and would love to work on building something from scratch.
Where can I go from here with python? Any open source work available for it? Or even some part time freelancing that I could do to get a firmer grip on the power of python? Or even some other stuff I should study up on? <comment><USER2> Taking into consideration that you now have a decent understanding of python and you want to build something substantial, here are some suggestions :

1\. Decide a project you want to do. Think about a piece of software you want to develop. Come up with various ideas. It can be anything - a web application, a python module, a game, a small command line utility - anything. Make sure it solves a problem and better if it can make some money for you. It will keep you motivated to complete it.

2\. Think about the MVP for your project. What are the minimum set of features you need to get the first version out. Work to develop a MVP first. You can add features later.

3\. Do a research to know which python or related technologies you need to develop your MVP. Learn those things and try to develop your MVP. When in doubt ask on forums like HN, Reddit, Quora, StackOverflow.

4\. Continue with learn-do-learn cycle till you finally develop your MVP.

5\. Show it to us. :)

Here are some different kind of projects you can try :

1) Web Application - You need to know a web framework for python apart from web technologies like HTML5, CSS3, JavaScript, jQuery, Twitter Bootstrap and a database like MySQl, MongoDB. Most popular framework for web development is Django but you can also try micro-frameworks like Flask.

2) Mashup Sites & Apps - You can fetch data from Internet through web scraping or through various public APIs made available by popular sites like facebook, twitter, g+, youtube, etc. You can then process and display these data to create interesting mashup applications. You can use Python Libraries like Requests and BeautifulSoup for web scraping.

3) Games - Develop games using PyGame.

4) GUI - If you want to develop a GUI app, I would suggest you to try Qt with python.

5) Library - Develop any new python library or improve any existing library. For example, learn how python's Requests library provided a better alternative for urllib2 library.

P.S. : If you are unable to come up with any ideas you can try some of my ideas : [http://blog.anujkumar.com/post/27913522655/please-steal- my-s...](http://blog.anujkumar.com/post/27913522655/please-steal-my-startup- ideas)

</comment><comment><USER3> Check out Pygame. There's nothing like making games to remind you how awesome programming is. Game programming ties a lot of things together — algorithms, AI, code organization, testing, optimization, etc. — and you'll learn a lot.

Or fork a Python project on Github: <https://github.com/languages/Python>

<comment><AUTHOR> I've been doing a bit of research, trying to find some github repositories that would be fun to fork and fiddle around with. Can you suggest some?

</comment></comment><comment><USER4> If you want to build web applications, I recommend spending going through Udacity's CS253 - Web App Engineering.

You'll be introduced to Django, Google App Engine, and Google's webapp framework.

Once you complete CS253, you'll need to do your own research and find tutorials related to Django, Flask, and other Python based web frameworks.

</comment><comment><USER5> Simulate cool stuff. Predict business failures/successes, make an n-gram Markov chain text generator, etc. Or something even cooler: a six degrees of separation simulation!

</comment><comment><USER6> Build a product/service you can sell to customers. Nothing focuses like money. Start with a free beta product and move from there.

</comment><comment><USER7> Checking out some open source django projects and seeing how they work sounds like a good idea.</comment>


TiVo's Last Stand - <AUTHOR> http://www.thebigmoney.com/blogs/hulucination/2010/03/10/tivo-s-last-stand

<comment><AUTHOR> I'm no big fan of _software_ patents, nor of blatant patent trolls, but I think that anyone who wants to gripe about the patent system needs to address the issue of companies like TiVo. TiVo invented a wonderful new kind of product, brought it to market -- and has never been able to make a profit, because it was _lots of work_ to grow the market for a radically new kind of product, and so most of the market growth came from cable companies bundling similar products. Products that weren't licensed from TiVo, but were simply ripped off of their designs.

I'm still a happy user of the TiVo that I bought five or six years ago. (I'm going to have to decide what to do about this new-fangled HD television thing, though.)</comment>


On Validating Parameters in Python - <AUTHOR> https://www.pythontraininghq.com/2019/05/how-to-validate-parameters-in-python/ <comment><USER2> Are there any tools to check wether exceptions produced by this approach are safely handled? I can imagine this implemented in linters.</comment>


Ask HN: What's a technology that died that you wished was still here - <AUTHOR> We're always talking about the latest trendy tech but I'm curious what older technologies you wish would have been more successful.
I'm personally a fan of lisp and wish it would have had a more prominent place in tech history.
It would have also been better if Java was Open Source about a decade before it was ... but that ship has sailed. <comment><USER2> I think Mercurial deserved to win the mindshare war. It had an easier to use command-line, but I liked how branches were handled.

Like many teams, we'd start a branch with an issue number and you'd write code to it. Eventually you'd merge it to your main branch for the product.

You of course can do the same in Git. However, let's say you just find a given line of code and you can't think how it came to be there. You 'blame' the file and find the commit hash.

In Mercurial, you'd just look up the commit hash and find the branch. In git... well, you've got a few options - [https://stackoverflow.com/questions/2706797/finding-what- bra...](https://stackoverflow.com/questions/2706797/finding-what-branch-a-git- commit-came-from)

Git won the war for some reason and it might just be because the services surrounding it were superior (i.e. Github vs Bitbucket). I don't believe it's because of it being a superior technology or user experience however.

Of course, you can still use Mercurial today but you'll feel like a second- class citizen if you do.

</comment><comment><USER3> Native windows / mac app development, even well funded company like Slack / Discord want to save development cost by sacrificing battery life / performance of the user's computer.

</comment><comment><USER4> Native desktop apps.

</comment><comment><USER5> Less messy computer designs. Computers with RS-232. The old IBM PC Model F keyboard (even with unlimited rollover). The .DVI (device independent) file format for printing. GOTO and GOSUB commands in programming languages. Unencrypted analog television. The PC BIOS (UEFI is terrible). BASIC and/or Forth in ROM.

</comment><comment><USER6> Borland Delphi. It was a really amazing way to create Windows programs without worrying about vcredist, etc.

Super small exe files that just run on any windows platform from Win xp to Windows 10(?).

Also ready made components for almost everything on torry.net!

<comment><USER7> As a teenager I tried Delphi 6 after programming in Visual Basic (DOS and Windows). I already knew Pascal and wanted to try it out.

My reaction after building the executable: wait, is that just one file? Do you mean I don't have to worry about all the crap with VBRUN432.DLL and all the other files that made my program not look cool?

The executables were already small, and I used ASPack to compress them even further. I coded fun utilities like file patchers, and some interesting network programs.

I couldn't get back to it a few years later because there was this Embarcadero thing that I felt got in the way.

</comment></comment><comment><USER8> John Backus's FL: [https://www.youtube.com/watch?v=FxcT4vK01-w](https://www.youtube.com/watch?v=FxcT4vK01-w)

IBM research really should release the FL compiler they wrote! They stopped working on it in the early 90s, and haven't said a single thing about it since.

There is the beginnings of a Haskell implementation that I tried to mess with a bit, but I don't know enough Haskell to get anywhere: [https://github.com/jgrimes/fl-hs](https://github.com/jgrimes/fl-hs)

<comment> a-saleh Rumour has it that J language could be a good successor to FL? But trying to learnin an APL dialect after I just finished learning Golang is ... tricky to say the least :)

</comment></comment><comment><USER9> Cross platform application development, aka Rich Internet Application (RIA): Adobe AIR, MS Silverlight, JavaFX.

Some of these continue to exist but seem to lack adoption and/or prominent support.

<comment><USER10> Can you elaborate on this a little bit, I'm curious as to what you miss about them

<comment><USER9> Portable efficient application development that is higher level than C and without the bloat and unnecessary abstraction of Electron.

Also a distribution model that isn't dependent on a third party's app store.

<comment><USER10> Would a Java app, suit your circumstances?

<comment><USER9> Close, but there's no distribution since WebStart was killed off (rightly so it had unending vulnerabilities).

<comment><USER11> > (rightly so it had unending vulnerabilities)

That's exactly why those technologies died off. Flash and Java have massive security issues that neither Adobe nor Oracle are capable of fixing.

That said, you should be pretty happy about WASM then.

</comment></comment></comment></comment></comment></comment><comment><USER9> HotJava Browser with the idea of being able to efficiently run sandboxed code.

There was briefly a thought that Chrome might bundle DartVM but the Dart v1 in the browser effort was a failure.

</comment><comment><USER12> Plan 9 OS, if only so that the wider Unix/Linux culture would have been knocked out of the trance that TUIs in Terminal Emulators are the pinnacle.

</comment><comment><USER13> RSS

and

xmpp

<comment><USER14> I got here through a RSS link. Would still use XMPP if it there were other users on it.

</comment></comment><comment><USER15> Has anyone said Visual Basic 6 yet? It was a pretty nice language and the ui design tools were really nice and intuitive.

<comment> a-saleh My first language! Learned in 2001? Especially the form-builder was really nice!

Later on (2006-maybe?) I preffered writing in java, i.e. generics and for-each and checked-exceptions were awesome in my opinion, I think I solved like half of my programming problems by just importing TreeMap :D , but I still missed the VB6 form-builder :)

</comment></comment><comment><USER16> Google Inbox, Gmail is still not there.

</comment><comment><USER17> Programming language in firmware.

</comment><comment><USER9> Lotus Improv. Closest today are Quantrix and maybe Airtable.

</comment><comment><USER18> RSS :(</comment>


U.S. calls on Iran to unblock social media sites amid protests - <AUTHOR> https://www.msn.com/en-my/news/world/us-calls-on-iran-to-unblock-social-media-sites-amid-protests/ar-BBHMOs4?OCID=ansmsnnews11&PC=GOOGLE-PLAY <comment><USER2> Not hard to see what's going on here.</comment>


Still fuming over HTTPS mishap, Google gives Symantec an offer it can't refuse - <AUTHOR> http://arstechnica.com/security/2015/10/still-fuming-over-https-mishap-google-gives-symantec-an-offer-it-cant-refuse/ <comment><USER2> Linked article gives background to [1] which is discussed at [2].

[1] [https://googleonlinesecurity.blogspot.com/2015/10/sustaining...](https://googleonlinesecurity.blogspot.com/2015/10/sustaining- digital-certificate-security.html)

[2] [https://news.ycombinator.com/item?id=10467452](https://news.ycombinator.com/item?id=10467452)</comment>


A flexible Ruby Passbook Library - <AUTHOR> https://github.com/frozon/passbook

<comment><USER2> I built one in Haskell at my old employer as well that works pretty smoothly (the whole pkpass format is implemented on type level): <https://github.com/tazjin/hs-pkpass>

Unfortunately the tool built around it never made it into production, marketing cancelled the project :(</comment>


The Seth Godin Apprentices - <AUTHOR> http://www.forbes.com/forbes/2009/0427/066-marketing-seth-godin-the-apprentices.html

<comment><USER2> From the article,

"Emily Kate Boyd, a songwriter from Atlanta, shares her idea for a new venture: a nonprofit that will expose wealthy donors to fledgling artists who need their support. "How do you use 'groupthink' and wisdom of the crowds to do this?" Godin asks her in his signature marketer's jargon."

Ok let me try!

How would you use Blue Ocean Strategy and long tail value stream personalization to do this?

yay I can do this too!

<comment><USER3> _How would you use Blue Ocean Strategy and long tail value stream personalization to do this?_

That's easy: crowdsourcing!

<comment><USER2> "That's easy: crowdsourcing!"

Whoa! competition! :-)

</comment></comment></comment><comment><USER4> Out of 9 students, selected from hundreds, 2 of them want to help MLM? What a class.

"His students don't miss the math classes. They want to learn how to build a business from scratch and market the hell out of it. Two people want to sell training material to multilevel marketers."

<comment><USER5> The fact that he chose them, is quite telling.

</comment></comment><comment><USER6> Having had the opportunity to "intern" with Seth as an early architect of Squidoo, I would recommend spending time with him to anyone. Seth is exceptionally intelligent, and a very giving person. I count the summer of 2005 as one of the most pivotal moments in my career, where a lot of the "standard" marketing curricula I was taught during college was outright challenged.

I was also able to see how a startup could be very quickly and efficiently architected and launched. Squidoo went live less than 6 months after that initial summer. And while it isn't a Google-like success story, they are profitable and still growing.

<comment><AUTHOR> "And while it isn't a Google-like success story, they are profitable and still growing."

Actually, Squidoo seems to have just hit the tipping point.

</comment></comment><comment><AUTHOR> My new business gets a brief mention on page two:

"Krupp, a recent graduate of Cornell, came up with 'Swagapalooza,' a conference where marketers pay to get their products into the hands of influential bloggers. ('You're going to have to take a cab because [the bag of freebies] won't fit in the subway turnstile. It's going to be awesome!')"

<comment><USER7> Alex, you may have mentioned this to me at last week's meetup, but are you permitted to blog or write about your business prior to launch?

PS: Congrats on the mention!

<comment><AUTHOR> Well I'm trying not to talk about it too much until I get a few key sponsors, because if I can't do that then the whole thing will have to be canceled. But if you want to talk about it, or if you know of product companies who would benefit from being able to give a five minute pitch the world's most-followed bloggers, then send me an email and I'd be happy to discuss it.

</comment></comment></comment><comment><USER8> Am I the only person who finds Godin un-inspiring/non-thought-provoking?

<comment><USER2> "Am I the only person who finds Godin un-inspiring/non-thought-provoking?"

No! I find that most of his books are blown up versions of very obvious ideas. Maybe he _is_ a genius and visionary and I just don't see it. Shrug.

<comment><USER9> I thought Purple Cow and All Marketers are Liars were ok, but his online professional marketing persona is all aphorism and no substance.</comment></comment></comment>


Quick notes from Startup School 2012 - <AUTHOR> http://philfreo.com/blog/quick-notes-from-startup-school-2012/ <comment><USER2> Joel Spolsky said "get big fast" is a good strategy if you win by taking the market and "grow slow" is better if there is a hugely crowded market with lots of entrenched competitors but either way picking a strategy early on is really important.

The talks that really hit home for me had a theme of pushing through and not giving up. Those were Jessica Livingson about the common problems she sees startups face over and over and those from the founders of Pinterest and Weebly about all the time and commitment it took to become successful.</comment>


Using vim inside irb - <AUTHOR> http://vimcasts.org/episodes/running-vim-within-irb

<comment><USER2> This will change my life :)

(sounds more dramatic than I mean it, but seriously: this is really going to save me time)

</comment><comment><USER3> Very nice. However, should not irb take from the $EDITOR environment variable, like several other such programs and allow editing of contents by itself, rather than requiring another gem to be required.

I have earlier tried out other "plugins" to irb (iirc wirble to name one) .. these usually used to slow down loading of irb, and often result in messy outputs. So finally, i use a clean, default irb install. I'll certainly try this out, however. Thanks.

<comment><USER4> Yeah taking from $EDITOR would be great. I use emacsclient extensively and $EDITOR is set differently wrt to context.

As a temporary solution I have a monkey patch as shown here: <http://github.com/jberkel/interactive_editor/issues/2>

<comment><USER4> FYI the upstream has it done already.

</comment></comment></comment><comment><USER5> Someone in the comments mentions Conque (<http://www.vim.org/scripts/script.php?script_id=2771>) which makes it easy to run other applications (mysql, irb, etc.) in a split and send text from your current buffer to the other program. As the commenter mentions, this is sort of the opposite of what this vimcast shows, and for some people might be preferable.

</comment><comment><USER6> Is there an emacscasts? The closest I can find is <http://www.emacswiki.org/emacs/EmacsScreencasts> which isn't as cohesive.

<comment><AUTHOR> I found these with a quick search: <http://www.emacswiki.org/emacs/EmacsScreencasts>

<comment><USER6> That must have been a very quick search because that link is in my post :)

<comment><AUTHOR> Lesson learned: read two times before posting if you're just awakened. Sorry about that.

</comment></comment></comment></comment><comment><USER3> Slightly offtopic, but I have to say I like the HN folks a lot. I find that at reddit, vim and ruby related threads and posts get down-voted rather senselessly. The same post on HN gets upvoted and thanked.

The "formatting with par" cast was nice too. Nice pleasant voice, too.

</comment><comment><USER7> Just a heads up for python people who are feeling jealous: ipython does this also :)

<comment><USER8> [http://ipython.scipy.org/doc/nightly/html/config/editors.htm...](http://ipython.scipy.org/doc/nightly/html/config/editors.html)

"TextMate¶

Currently, TextMate support in IPython is broken. It used to work well, but the code has been moved to IPython.quarantine until it is updated.

vim configuration¶

Currently, vim support in IPython is broken. Like the TextMate code, the vim support code has been moved to IPython.quarantine until it is updated."

I tried vim in ipython, it worked in a very simple test: define a function, :wq and run the function. Was able to get back to the same edit because ipython reports the /tmp file name after the editor returns. Dunno what's broken.

Fallback: you can use ipython, python or anything else as the argument to ScreenShell in vim.

<http://www.vim.org/scripts/script.php?script_id=2711>

</comment></comment><comment><USER9> Life-changing, thank you :)

</comment><comment><USER10> This is life changing. I stopped using utility belt a long time ago since it hasn't been updated, but never heard of the interactive_editor gem.

This is the simplest way to get something in vim that resembles Slime. The only other way of doing this I have seen is the Rube Goldberg contraption that (ab)uses Screen, Vim buffers and pipes.</comment>


TPM (trusted platform module) chip hacked - <AUTHOR> http://hosted.ap.org/dynamic/stories/U/US_TEC_CRYPTO_CHIP_CRACKED

<comment><AUTHOR> See also <http://www.technologyreview.com/blog/editors/24756/>

This was a hardware hack, not a software hack.

<comment><USER2> Thanks - the AP link doesn't work (maybe because I'm not in the US?) and sends me to a page to select which state I'm in, but this link does.

<comment><AUTHOR> Try this too: [http://www.google.com/search?q=Security+chip+that+does+encry...](http://www.google.com/search?q=Security+chip+that+does+encryption+in+PCs+hacked)</comment></comment></comment>


Focus Fusion: Has cheap fusion power been right under our noses all along? - <AUTHOR> http://www.extremetech.com/extreme/184280-focus-fusion-has-cheap-clean-earth-saving-fusion-power-been-right-under-our-noses-all-along

<comment><USER2> The answer to 'question headlines' is usually, no.</comment>


Pittsburgh is the most liveable city in the U.S. - <AUTHOR> http://www.publicradio.org/columns/marketplace/business-news-briefs/2011/02/its_official_pittsburg_is_1_in.html <comment><USER2> D.C. is third and Detroit is 7. This might just be a trick to see if they can get anyone to buy their $500 report to see WTF they are talking about.

<comment><USER3> I don't know about D.C. or Detroit, but here is my instance of the class "Pittsburgh":

85 year 2000 sq. ft brick house on 1/4 acre. 4 BR, 2 ba, 2 car garage. Totally gutted and modernized. 3 miles from downtown, 1 mile from Oakland (Carnegie- Mellon, Pitt, Carnegie Museum/Library, Schenley Park). Walkability index 92. Within one hour flying and 8 hours driving of 50% of the U.S. population. $160K. Same house in Miami: $500K. Same house in California: 7 figures + first born.

4 distinct seasons, but some people still don't like the weather. I prefer these thoughts:

"Everybody complains about the weather but no one does anything about it." - Mark Twain

(Looking at gray sky) "What a beautiful day, Herman!" - Lily Munster

<comment><USER4> Or me: Here's my house: [http://maps.google.com/maps?f=q&source=s_q&hl=en&...](http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=641+Maryland+Avenue,+Pittsburgh,+PA&aq=0&sll=40.455046,-79.930215&sspn=0.009372,0.01929&ie=UTF8&hq=&hnear=641+Maryland+Ave,+Pittsburgh,+Allegheny,+Pennsylvania+15232&ll=40.45516,-79.930215&spn=0.009307,0.01929&t=h&z=16&layer=c&cbll=40.455066,-79.930189&panoid=kLaDfqOqymd2T-qvZoUkPg&cbp=12,48.95,,0,1)

I have the bottom floor. 3 bedrooms. 3 roommates. $1200/month rent, so I'm paying $300/month. (my girlfriend and I share a room.) I live in one of the more affluent neighborhoods in town. Yep. It's that cheap.

20 minutes walk from CMU, 30 from Pitt. Buses come either one block or 4 blocks away. CMU shuttle goes _past my house_. One block away: 4 bars. A restaurant. Two coffee shops. A bunch of other junk. A Japanese grocery store two blocks away, regular groceries about 5, a Whole Foods about 8. My two neighbors on either side are families.

Pittsburgh is sweeeeet.

<comment><USER2> Can you live there without a car?

<comment><USER4> Yep. I do bike a lot because I dislike the bus, and they're never on time.

</comment></comment></comment></comment></comment><comment><USER5> <http://www.flickr.com/photos/ajbrustein/5222637962/>

It's a shame about the grey, overcast winters and the muggy summers though. I went to college there for four years, and it's a great city, I just couldn't stand the weather.

</comment><comment><USER6> Looking at the worldwide list it seems like access to healthcare plays a really strong part... which I guess makes sense if you're calling your metric "Livability"

</comment><comment><USER7> Pittsburgh, seriously? Between the small, crowded, pothole-filled roads and buses which are never on time, it's impossible for me to get anywhere around here. The Steelers football fanaticism drives me insane and the weather is terrible. I absolutely cannot wait to move away from here next year; the city's only redeeming quality in my eyes is the plethora of universities.

<comment><USER8> > Between the small, crowded, pothole-filled roads

Well, the wide ones have potholes too.

> buses which are never on time

I wouldn't say "never"...

> Steelers football fanaticism

well, yes...

> the weather is terrible

Wait, what? I'll tell you what's terrible. Bright, sunny days all the time are what's terrible. Downright depressing if you ask me.

> I absolutely cannot wait to move away from here

Some people just don't like "livable". Go figure.

</comment></comment><comment><USER9> We just moved from NYC and bought a house out here... it's not NYC, but it's a pretty nice place to live :)

</comment><comment><USER10> Pittsburgh can be a bit of a shock for the San Francisco set though. There are comparatively few of what I'll call "post-hippie" establishments here. They're around, don't get me wrong, but not like in the liberal bastions of the West coast (Seattle, Portland, San Francisco, etc.)

One of the most celebrated places to eat around here, Primanti Bros., sells giant greasy, meaty sandwiches with fries and coleslaw inside. Froyo places have just shown up recently!

</comment><comment><USER11> By some criteria, I'm sure. But if you like Broadway shows, it's not the best choice. And while there's a river or two, the surfing's not all that good. I suspect there are better places weather-wise, too.

And I might be interested in some of those criteria at some point, but it's like some article that said it was great to retire in Fayetteville, Ark...

</comment><comment><USER12> Again ;-). If memory serves, around 1985 Pittsburgh got that title (from Rand- McNally, publishers of Places Rated Almanac, I think).

<comment><USER13> Pittsburgh's 1985 win (in the middle of the steel industry collapse) prompted a lengthy screed about how cumulative ratings are assembled from a UW psychology prof: <http://www.briem.com/files/Loftus1985.pdf>

Pittsburgh keeps winning most livable city awards today for the same reasons it won in 1985: it's a city that rates good or very good in everything and bad in almost nothing.

</comment></comment><comment><USER14> Pittsburgh is the 29th most liveable city in the World.</comment>


US Supreme Court approves expanded hacking powers - <AUTHOR> http://www.bbc.co.uk/news/technology-36169019 <comment><USER2> "Well, when the president does it, that means that it is not illegal."</comment>


German scientists to conduct nuclear fusion experiment today - <AUTHOR> http://www.theguardian.com/environment/2016/feb/03/nuclear-fusion-germany-scientists-experiment-angela-merkel <comment><USER2> "Merkel, who is a doctor of physics, is expected at Wednesday's event, which is happening in her constituency."

A nation lead by a leader that is both a women and a scientist. I would say this is progress regardless of the experiment outcome.

<comment><USER3> She's also the daughter of a priest, so we basically have all bases covered :)

<comment><USER4> "A woman, a priest, a physicist, and chancellor walk into a bar..."

</comment></comment></comment><comment><USER5> The Guardian about ITER: "(...) is considered fairly easy to build but extremely difficult to operate." If this is true, ITER is so failed. Wikipedia: "Construction of the ITER Tokamak complex started in 2013[6] and the building costs are now over US$14 billion as of June 2015, some 3 times the original figure.[7] The facility is expected to finish its construction phase in 2019 and will start commissioning the reactor that same year and initiate plasma experiments in 2020". It's so easy to build, that is already 3 times more expensive. And it will be so hard to operate, that it will never work.

<comment><USER6> "35 countries"

That's the real issue, they could be building a toaster and it would be 3x over budget.

PS: _The ITER project was formally agreed to and funded in 2006 with a cost estimate of €10 billion ($12.8 billion) projecting the start of construction in 2008 and completion a decade later_ So, it's not really massively over budget _yet,_ they just decided to build something else.

<comment><USER7> Well, the Wendelstein 7X experiment is mostly funded by Germany as an investment into the east/north German science infrastructure. That makes it easier to coordinate, but it's hard to finance such a project. A project, which will have commercial use decades away, and whose commercialization would need much larger funding...

We have actually enough financing needs in the German energy landscape currently: dismantling the nuclear power legacy, find a safe storage for radioactive materials and the research and development of the renewable energy landscape - which is in the hundreds of billions of Euros over the next 35 years.

</comment></comment></comment><comment><USER8> Livestream is live here: [http://www.mpg.de/9915939/wendelstein7x](http://www.mpg.de/9915939/wendelstein7x)

</comment><comment><USER9> Is fusion something we could expect to become a real source of energy in say the next 15-20 years? I assume just building a fusion reactor will take more than a decade.

<comment><USER10> The running joke is that it's always been 15-20 years away. Since 1960.

<comment><USER6> Nah, used to be 50-60 years ago, 20 years after that it was 40-50, then 20 years after that 30-40...

Honestly, we could have working devices today. Funding has just been less than expected. Don't forget there was a ~30 year gap between JET and ITER.

PS: There was also initial talks for ITER to be a working power plant, but it was significantly cheaper to downscale the device.

<comment><USER11> From what I understand it was the downscaling that politicians demanded to reduce costs that caused most of the cost increase. Lots of design parameters had to be changed as a result of it, new technologies developed to get things to work on the smaller scale, etc. There was also a lot of mismanagement in the beginning, with the Japanese management being completely new to the area (the director general was Japan's former ambassador to Croatia). Later, management was restructured several times and now people with experience in plasma physics are in charge. Source: A retired nuclear fusion physicist who was indirectly involved in ITER told me this.

</comment></comment></comment></comment><comment><USER12> That headline sounds like something from the beginning of a superhero movie

</comment><comment><USER13> If only that kind of money and research was put into properly exploiting the nice big yellow fusion reactor that's already in the sky... No need to worry about plasma abrasion of Tokamak walls and magnetic confinement if that happened.

<comment><USER14> Germany has spent the most on solar subsidies of any country. Don't make this an exclusive situation. They can do both.

<comment><USER13> Solar panels aren't the only way.

<comment><USER15> Solar panels aren't the only renewable subsidized in germany.</comment></comment></comment></comment>


which design looks better - can't agree with cofounder - <AUTHOR> https://plus.google.com/u/0/113389625012958748964/posts/gQwArb7CoEb <comment><USER2> If this is for the Windows Modern UI, I would have to agree that you should lose the background image.

Who is your target audience? A/B testing, maybe?

<comment><AUTHOR> This is a windows 8 store app... A/B testing might be more work than I can spare right now... so I am just asking people online... I am starting to see a trend though (based on g+ likes)

</comment></comment><comment><USER3> Skeuomorphism has little value in 2012, even more less going forward.

Although its just the background in this case but it does get in the way of text and other UI elements.

Beats me as to whether why people continue doing this stuff, most notably Apple and many Mac-specific apps. Annoys me no end!

</comment><comment><USER4> Nice job of using social media to scoop a quick web opinion.

That said, whoever wants the paper bg should accept that they aren't a designer and focus on other productive tasks in the company.

More importantly, there are a few other glaring issues in this design that go beyond a simple background image decision.

Similar to having two CEOs being bad for running a company, having two "art directors" can completely ruin your product.

</comment><comment><USER5> both need work (what's with all the checkboxes? Quite confusing), but the one without the annoying background image is definitely better...

<comment><AUTHOR> it's a "todo" app, so you kind of need the checkboxes :)

<comment><USER2> there is a better way to do checkboxes in windows modern ui style. I don't know off the top of my head but essentially there should be a way for you to make the label a checkbox that you can toggle (and provides a cool Metro like animation feedback when you check / uncheck)

this might be something nice to have for v2...</comment></comment></comment>


Show HN: Not having a Mac I copied Bother to track my freelance time in Chrome - <AUTHOR> https://byrly.com/waywo/ <comment><USER2> Also check out automated reporting tools like [https://wakatime.com](https://wakatime.com)</comment>


IP geolocation database - <AUTHOR> http://ipinfodb.com/ip_database.php

<comment><USER2> They are pretty unclear about how this is better than the Maxmind free DB they've based it on.

That one comes in a small binary file that allows to avoid even using a SQL DB for the lookups (faster for some people + easier to manage)

<comment><USER3> I asked them on their forum, a few months ago, this exact question. Below is their response...

With the DAT file [from Maxmind], you cannot do grouping (group by city,region,country), select IP by country (where country_code = 'US'), modify the data (eg : change country code from ISO to FIPS standard), join with other SQL tables and you can only do queries one at a time... Some people might not have access to the server (eg shared hosting) and the MySQL DB could be the only way they can install it. Also, some develloper might prefer using the data in a MySQL format because thats what the application they are running is using.

There is a few extras such as IP CIDR by country and I might add timezone soon.

</comment></comment><comment><USER4> Here: <http://news.ycombinator.com/item?id=530086> and here: <http://news.ycombinator.com/item?id=555782>

<comment><USER5> Same database. Don't think we really need more topics pointing to the same page...

</comment></comment><comment><USER6> The only thing it gets right is the (US) State I am in. Still, that might be good enough for some people.

<comment><USER7> 7 states off for me.

</comment></comment><comment><USER8> It gets my down to the borough of London I live in.

<comment><USER9> It thinks I'm in Bradford, about 60 miles from where I really am, on my home O2 broadband connection. At work, it just says "United Kingdom".

The geolocation on FF3.5 put me in a town five miles down the road at home. Very clever, considering my computer has no wi-fi!

</comment></comment><comment><USER10> Try dropping this code on your address bar, only works on Firefox 3.5

       javascript:navigator.geolocation.getCurrentPosition(function(position){window.location.href="http://maps.google.com/?ll="+position.coords.latitude+","+position.coords.longitude;});

(Click on "share location" button when asked, privacy concerns)

</comment><comment><USER11> awesome</comment>


Abdication, Succession and Japan's Imperial Future: An Emperor's Dilemma - <AUTHOR> https://apjjf.org/2019/09/Breen.html <comment><USER2> > There is, after all, ample precedent for this: women have succeeded to the > throne on ten previous occasions

> [When this comes to pass,] the emperor system, which depends on an unbroken > line of male heirs, will collapse.

These two statements seem to be in conflict.

<comment><USER3> Not exactly; notice the following passage:

> What is striking is that 74% have no objection to the offspring of a woman > emperor succeeding to the throne. If this were to happen, it would be an > historical first.

Women have succeeded to the throne, but they have been succeeded in turn by offspring of an earlier male emperor. Every emperor (in theory) has been able to trace their ancestry back to the sun goddess through the _paternal_ line.

Tracing ancestry through the maternal line as well would be a significant change.

<comment><USER4> > sun _goddess_

> _paternal_ line

Hmmm.

I mean, I guess it depends whether you count her sons as the first generation or not, but still, why would deity-ness (is there a better word for this? Deism?) pass from her to her sons and thence only to their sons?

<comment><USER3> I mean, the real answer is probably that the rules were developed in the context of a patriarchal culture. But they're hardly alone; many countries have historically practiced agnatic primogeniture which works quite similarly.

</comment></comment></comment></comment><comment><USER5> If they really want a male descendant, there are other branches of descendants of previous emperors. But after WWII the Japanese royal family was restricted to the main branch and the cadet branches became commoners.

</comment><comment><USER6> I just love the legalese idealization, on "how the emperor is challenging the law" I mean, 'legal scholars' taking themselves too serious for a change...

The rest of the text just reads like legal sadism against a person who apparently is all powerful but shouldn't do anything

</comment><comment><USER7> its 2019 and people in developed countries still care about (and support with their taxes) kings, queens, emperors and such?!

<comment><USER8> I wonder, of civilizations that have lasted the longest, which ones had kings, queens, emperors and such versus the opposite?

<comment><USER9> That's not an argument that something is good. Civilizations willing to perpetuate genocide tend to survive longer and achieve more economic success than those unwilling to, for instance (they face fewer external threats).

To be clear I disagree with the person you're responding to - I just think we should be careful about counterarguments with significant collateral moral damage.

<comment><USER8> You've taken my response to another degree, but I wholeheartedly do not disagree with you. In fact I admire it. I think you want to remind us that we as humans are horrible when given power, irrespective of title.</comment></comment></comment></comment>


Long Range Reconnaissance Imager Images (Raw Format) from Ultima Thule Flyby - <AUTHOR> http://pluto.jhuapl.edu/soc/UltimaThule-Encounter/ <comment><USER2> Since [https://news.ycombinator.com/item?id=18800547](https://news.ycombinator.com/item?id=18800547) is high on the front page, it would be better to post this link as a comment in that thread.</comment>


Need Some Expert Advice? Ask Steve (Steve sometimes writes for TechCrunch) - <AUTHOR> http://www.techquilashots.com/2007/07/27/need-some-expert-advice-ask-steve-me/ Marketing or PR ideas? Overall assessment of your website, business, or app? <comment><USER2> Thanks for the link.</comment>


Restic – Backups done right - <AUTHOR> https://restic.github.io/

<comment><USER2> This looks interesting. There isn't much on here about the actual tech behind it. If I back up a 2gb .sql file -- and run the dedup, how efficient is it going to be? If I need to restore one that's 2 weeks old, how does it do?

Say I want to do daily snapshots for 30 days, and always 30 days. Will it trim old data?</comment>