Inheriting the Trauma of Genocide - <AUTHOR> https://www.wsj.com/articles/inheriting-the-trauma-of-genocide-11550761430 <comment><USER2> In the former Yugoslavia we have a concept of "inat", which (among other things, it's a complicated and multifaceted term) is kind of a genetic hatred, passed down from generation to generation. The attempts at genocide in the region are sure to have strengthened those hatreds in future generations, as did all of the other regional conflicts in the past.

</comment><comment><USER3> I can trace my personal issues as a result of my parents experience to their parents experience in WW2 (Germany). My grandfather for example as a teenager had to clear landmines as a prisoner of war. The damage from these experiences lasts for generations, like a ripple effect.

<comment><USER4> Are you sure about that?

Family history sure does have influence, but tracing (and blaming) personal issues to postgenerational trauma sounds like a cheap excuse. Unless you just use it to understand where you came from and move on from there. But I doubt focussing on historic traumas are helpful to overcome "issues".

<comment><USER5> Do you speak from personal experience or are you trying to correct the experience of others based on your mental image of how it should be?

<comment><USER4> Both. I experienced too many people clinging to past unbill and using it as a excuse to not go forward. As I said, finding out about it, can be helpful, but not if it is focused too much. The OP reminded me of it, so I saw a pattern and replied to it.

</comment></comment></comment></comment><comment><USER6> Even something less traumatic like being drafted for the Vietnam War has a measurable impact on descendants: [https://marginalrevolution.com/marginalrevolution/2016/01/be...](https://marginalrevolution.com/marginalrevolution/2016/01/being- drafted-during-the-vietnam-war-also-hurt-your-descendents.html)

<comment><USER7> A previous paper by the same author said that those drafted in Vietnam earned less throughout the rest of their careers, and proposed that the difference was due to a loss of work experience.

[http://economics.mit.edu/files/14352](http://economics.mit.edu/files/14352)

"This paper also proposes a simple explanation for the loss of earnings to white veterans: they earn less because their military experience is only a partial substitute for the civilian labor market experience lost while in the armed forces. Goodness-of-fit tests suggest that for whites, the time-series of veteran status coefficients is consistent with this hypothesis. Experience- earnings profiles estimated using Social Security data imply that white veterans suffered an earnings reduction equivalent to the loss of two years civilian labor market experience."

The more recent paper you linked to an article about, proposes that the decline in sons earnings are due to an increase in their likelihood of joining the military, less parental time during their formative years, and reduced starting economic positions. The paper's author seems to see it as essentially being the opposite of genetic.

<comment><USER8> There's another obvious theory that will explain that difference. It was easy to dodge the draft. You could say that those who didn't ended up earning less because failing to get out of going was a signal of incompetence.

Or, if you were aware that the problems they had in supplying raw manpower to Vietnam led the army to emphasize drafting people who should legally have been unable to serve based on their very low IQs, you could observe that it would be pretty shocking if veterans as a class showed equal earning power to society in general.

> They were, to put it bluntly, mentally deficient. Illiterate. Mostly black > and redneck whites, hailing from the mean big city ghettos and the remote > Appalachian valleys.

> By drafting them the Pentagon would not have to draft an equal number of > middle class and elite college boys whose mothers could and would raise Hell > with their representatives in Washington.

> The young men of Project 100,000 couldn't read, so training manual comic > books were created for them. They had to be taught to tie their boots. They > often failed in boot camp, and were recycled over and over until they > finally reached some low standard and were declared trained and ready.

[https://www.mcclatchydc.com/opinion/article24544984.html](https://www.mcclatchydc.com/opinion/article24544984.html)

[https://www.amazon.com/McNamaras-Folly-Hamilton- Gregory/dp/1...](https://www.amazon.com/McNamaras-Folly-Hamilton- Gregory/dp/1495805484/)

<comment><USER9> I believe these papers made some attempts to avoid seeing the effects of draft-dodging. For example one of them goes only by draft numbers, without looking at who actually fought, and finds worse outcomes among the children of the group with bad numbers (fighters and dodgers) compared to good numbers. But I don't know enough details to say whether some biases remain.

Indeed "McNamara's Morons" is a pretty crazy story. Turns out the army had rules for who to recruit for a good reason.

</comment></comment></comment></comment><comment><USER9> Un-paywalled: [https://outline.com/ZPBe47](https://outline.com/ZPBe47)

</comment><comment><USER10> As I can't read the full article. Do they indicate any kind of leads into an hypothesis that the trauma is transferred through the genes themselves? Or is this more an effect of culture and education?

<comment><USER11> Un-paywalled: [https://outline.com/ZPBe47](https://outline.com/ZPBe47)

</comment></comment><comment><USER12> What can I say? One of my grandmothers came back from Auschwitz, the other from Lichtenwörth. Most of their generation didn't survive. And then I went to Yad Vashem when I was 16. That was a grave mistake. Don't go to Yad Vashem at 16 especially not when you have relatives affected by the Holocaust. I haven't seen a World War II movie since, I can't.

</comment><comment><USER13> I have seen this first hand amongst my friends who are grandchildren of holocaust survivors.

For many of them their grandparents anxiety is very visible and part of their lives. One grandparent would always steal the free bread from restaurants, another could not be left at home alone, another bought an Uzi and gold and kept it hidden in the house in case the Nazi's come back... the list keeps on going.

I grew up in Skokie which has(or had) the largest concentration of holocaust survivors in the world. Even more than cities in Israel.

</comment><comment><USER14> One must put in contrast the eagerness to push epigenetics, inheritable trauma with the unwillingness to accept the heritability of IQ and its consequences.

<comment><USER15> It seems to me that each are eagerly embraced by opposing quarters.

Maybe if each side could drop their defenses and consider the other position, we could come up with a more integrated theory and actually get somewhere.

</comment></comment><comment><USER16> And this is a fantastic argument why 'The West' owes reparations to the descendants of the West African Slave trade. The genocide in Rwanda, the WW2 Jewish Holocaust (to name but two recent atrocities); these were over within a handful of years. Every single second of it was worse-then-horrible and equally shows the worst of humanity. They nonetheless ended.

The West African Slave trade lasted for HUNDREDS of years. "Chattle Slavery" only ended in name and one needs only look at the Prison system in the United States to see the still evident policies and procedures that continue to this very day to continually harm the descendants of slavery. This is an ongoing crisis, that must be resolved.

What tortured damage lingers in the DNA of these descendants? We have proof that Rwandans, and Jews have suffered damage and harm; is it too hard to imagine that we owe a debt and an obligation to healing these injuries?

And for healing to begin, the damage must stop.

<comment><USER17> That slavery was horrible, nobody debates. That reparations are the best way to address it is a different story.

Pinker's book _Better Angels of Our Nature_ documents, among other things, how ethnic conflicts have been successfully dismantled around the world. A key part of the successful recipe is a final round of partial justice whereupon only the most egregious crimes get addressed, the aggressors accept the truth of what they did, issue full apologies, and all claims are extinguished. There is no attempt at real justice, but it does end conflict and leaves everyone better off.

By contrast cries for justice have historically resulted in a new round of conflict, which creates a round of retribution, and a continuation of conflict that leaves everyone worse off.

The USA went through this effort after the Civil War. All claims to reparations for slavery should be considered long extinguished. And as much as you don't like it, the US descendants of slavery are massively better off than their ancestors were, and are likewise both better off and happier than most of their relatives in Africa.

It is clear that injustice is not done. I fully support an end to the Drug War, a reduction of prison sentences and a similar round to end the ongoing and current conflict over the same. Not based on long past claims to victimhood based on the slave trade, but based on current injustice.

However we have a lot more examples today of how to successfully end ethnic problems in countries as diverse as Northern Ireland, Timor and Liberia. There is clearly a right way to do it, and that is what I would want us to do now.

Very notably it requires a focus on closing the books on past history, a final round of forgiveness/redemption, followed by a better path forward. Which is the exact opposite of the kind of justice that the reparations crowd is asking for.

<comment><USER18> Ok, so pay reparations for the drug war?

<comment><USER17> For the damage caused to communities by the implementation of racist policies ostensibly in support of the drug war? Absolutely!</comment></comment></comment></comment>


TX chemical plant owners lobbied for relaxation of safety rules - <AUTHOR> http://www.ibtimes.com/political-capital/texas-republicans-helped-chemical-plant-exploded-lobby-against-safety-rules <comment><USER2> When flooding was imminent; all operations should have been shut down and all energetic (they manufacture organic peroxides) materials requiring refrigeration should have been removed from the site -- either by on-site destruction or by transport to another site. This is nowhere as challenging as Fukushima; it's really _not hard_ to quickly transform organic peroxides into something inert/safe.

If they're fine with all their plant being ruined due to water ingress and don't care about flood protection, that's up to them, but if they're going to run away and leave unstable energetic materials, that's unacceptable.

At least their pressure relief systems seem to be somewhat working, per their spokespeople ([https://twitter.com/keribla/status/903241791264215040](https://twitter.com/keribla/status/903241791264215040)), it's far better that the relief valves/discs open up and that the peroxides flare themselves off than they stay unburnt and explode later.

</comment><comment><USER3> The plant is built on a flat piece of ground. They could and probably should be required to build a berm around the facility by pushing up dirt and created a 10ft/3m high wall. If they had a flood bladder they could of put it in front of the gate and basically kept the entire facility dry with the help of pumps running.

The couple of 100k it would have cost seems a small price to pay for flood insurance. I suspect they don't care and probably have the plant and it's equipment insured for 10 times the value. That's typically how these places operate. Now they can collect their insurance at 10 times the value of the loss.

<comment><USER4> And when the electricity went out, and then their generators were depleted, leading to the lack of refrigeration which caused the explosion. How would your solution have mitigated this situation?

<comment><USER5> The generators failed because they were flooded. Running out of fuel should not be an issue: you can easily have a couple weeks worth in the tanks, and deliver more by boat as needed.

<comment><USER6> There is a datacenter in the Netherlands – I couldn't quickly find out which one – of which the first floor is waterproof and has provisions for boat access on an upper floor, exactly for this scenario.

</comment></comment></comment></comment><comment><USER7> This is the result of decades of republican control. You reap what you sow.</comment>


The Interface Hall of Shame - <AUTHOR> http://hallofshame.gp.co.at/ <comment><USER2> And the saddest part is that, since this list was compiled in the early days of the Web, the vast majority of the examples are from desktop applications -- which means they had access to a standard toolkit of GUI elements. (They may not have understood how to _use_ it, as the examples show, but at least they _had_ it.)

The rise of the Web, which has no such toolkit, as an application platform has therefore opened the doors to UI atrocities the likes of which the perpetrators of these could only dream.

<comment><USER3> HTML has luckily until recently been too limited to allow many of the UI atrocities well paid developers at huge software companies have managed to produce.

Take a look at the in depth critique of Lotus Notes. Half of it is still valid for the current version 18 years later. I thought I'd gone crazy the first time i tried to use the somewhat special IBM password prompt in Notes 9.

</comment></comment><comment><USER4> > the folks at ryka, a manufacturer of women's shoes, wanted to be certain > that no potential customers could be excluded. thus, rather than providing > option (or radio) buttons to indicate one's gender, they decided to use > checkboxes, to allow the potential customer to indicate male, female, or, > well, both, and for that matter, none.

Er, yes? That is in fact somewhat more inclusive than choosing male or female with radio buttons? Not ideal, but still better? Why is this in a hall of shame?

<comment><USER5> I agree, but if the user left both boxes unchecked you would have no way of validating whether they had simply forgotten to answer the question. A drop- down list would probably best, with "Male", "Female" and "Other"

</comment></comment><comment><USER6> I'd like to add 'hover the mouse in the magic spot' to the list, where UI elements are hidden until the mouse is above them. Facebook and Google are primary offenders. It's so goddamn hipster and entirely useless, even harmful.

<comment><USER7> Coined as [http://en.wikipedia.org/wiki/Mystery_meat_navigation](http://en.wikipedia.org/wiki/Mystery_meat_navigation) by [http://www.webpagesthatsuck.com/mysterymeatnavigation.html](http://www.webpagesthatsuck.com/mysterymeatnavigation.html)

</comment></comment><comment><USER8> What's hilarious is the website itself is really the winner for the "Hall of Shame"

<comment><USER9> it's original layout is better: [http://hallofshame.gp.co.at/index.php?file=shame.htm&mode=or...](http://hallofshame.gp.co.at/index.php?file=shame.htm&mode=original)

</comment></comment><comment><USER10> I always liked their critique of the common file dialogs introduced with Windows 95: [http://web.archive.org/web/20021017105308/http://www.iarchit...](http://web.archive.org/web/20021017105308/http://www.iarchitect.com/file95.htm)

The design seems normal to us now, but it's still problematic. (Although the rest of the UI seems to be getting worse at an even greater rate, so people might not expect the dialogs to make sense anymore.)

In particular, the horizontally scrollable non-detailed view (faithfully copied by KDE) might have made sense when filenames were restricted to 8.3 characters[1] but is absurd with long file names.

[1] As in the Windows 3.1 file manager: [http://images.pcworld.com/images/article/2012/04/windows31_1...](http://images.pcworld.com/images/article/2012/04/windows31_11-11344016.jpg)

</comment><comment><USER11> Is it an attempt at irony that they greatly hamper the readability of their UI by lowercase-ing all of the main text on the site?

<comment><USER12> The UI on that site is pretty horrid, however it is a decade and a half old.

<comment><USER10> The horrid UI is all from "GP designpartners" who took the content from the original (sensibly designed but no longer online) Isys Information Architects site.

</comment></comment></comment><comment><USER13> God, I had repressed what old windows UI's looked like

</comment><comment><USER14> can someone add the microwave at my work to this list?</comment>


Show HN: Onion Packer – An open source Textures and Images organizer - <AUTHOR> https://mikepicker.github.io/onion-packer-page/ <comment><USER2> This doesn't do texture packing, does it?

The name might be a slight bit confusing

<comment><AUTHOR> Nope, we put "packer" in it because we liked the sound :)

<comment><USER3> Yeah that's very confusing then

</comment></comment></comment><comment><USER4> Sometimes it's just easier to do a quick search and modify the result instead of keeping a huge texture library available constantly. But keeping an inventory of scratch/bump maps to use on a variety of projects is actually something I've been looking into...then wham, here it is. Anybody have experience with it?

<comment><AUTHOR> Hi and thanks for your comment. When designing Onion Packer we focused on the designer need of: \- quickly finding the right texture / image \- have a fast way to preview it on a 3D model

You mentioned bumps, which is something that is in our roadmap (3D preview, together with diffuse textures).

We are looking for precious feedbacks and testers, since we are in the initial phase. If you have some good suggestions it is very easy that it will be considered. Onion Packer wants to take the direction that its users suggest it to go :)

Give it a try, it's totally free.

</comment></comment><comment><USER5> It would be much more interesting as kind of a plugin to Pinterest than as a standalone app.

<comment><AUTHOR> Hi, thanks for your feedback. I didn't know that Pinterest allows developers to create their own plugins. Could you kindly describe me how Onion Packer could take advantage of it? Thanks :)

<comment><USER5> AFAIK it does: [https://developers.pinterest.com/](https://developers.pinterest.com/)

As an housing architect, Pinterest simplified a lot my workflow by keeping all images in the same place (it allows private boards and full resolution). There is plenty of room to improve, their tools are not designed for professionals. You could build on top of that.

<comment><AUTHOR> Thanks so much, we are already discussing what can be done :)

</comment></comment></comment></comment><comment><USER6> Why use "rar" rather than "zip" for the download

</comment><comment><USER7> A link to the Github page would be nice.

<comment><AUTHOR> Thanks! We'll add a link on the website</comment></comment>


Investors turn entrepreneurs into insecure little teenagers - <AUTHOR> http://venturebeat.com/2012/07/26/investors-turn-entrepreneurs-into-insecure-little-teenagers/

<comment><USER2> Wish I knew this when I was fundraising for my startup.</comment>


MNPP - A high performance web server in a one-click installer - <AUTHOR> http://getmnpp.org/

<comment><USER2> Mac + Nginx + Percona + PHP love them all!

</comment><comment><USER3> MAMP is from the past, agree. And nice site.

</comment><comment><USER4> _Install a world-class PHP_ development environment _on your Mac. Unleash the speed of the webserver everybody is talking about, Nginx._

 _the Apache web server has lagged in terms of performance during the last few years. MNPP can handle much more requests per second than Apache with PHP implemented as a module._

Seriously, is there anyone deploying something that requires high simultaneous requests-per-second on OSX? One click install is great for the development environment, but none of these are one-click installs on a cheaply scalable, which means Linux on commodity hardware, production environment.

But the easier it's made to create a development that is like the production is going to be a big win. As a systems guy whose team is in charge of that kind of thing, the fewer hoops, and thus fewer workarounds, that are necessary to get a complex system with a lot of different parts up and running for the developers to develop against, the better.

<comment><USER5> MNPP is a desktop application for local execution, the closest thing to a production environment. MNPP is beginning and is on the way to make things easier for the developer.

</comment></comment><comment><USER6> Jyr is definitly working hard on getting this project up and running, its looking better every day! Congratulations!

<comment><USER5> Thanks, comming soon new features like create of vhost from the terminal</comment></comment>


Qt5's Linux Requirements Cause Problems - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTE4NTk <comment><USER2> This is yet another horrible naming mess. As far as I can figure out, the following is correct:

There are two things named GLX: First, it's a network protocol for sending OpenGL requests to an X server. Second, it's a library that X clients use to set up an OpenGL context. Traditionally, the GLX library used the GLX protocol, but in these days of client-side rendering the GLX protocol is just unused legacy junk.

Next, Xlib. Xlib is the traditional client library for the X protocol. I'ts a huge unmaintainable non-threadsafe mess, too low-level for application developers but hiding too much of the X protocol for toolkit developers. Everybody hates it.

As an alternative, the X developers created the XCB ("X C Bindings") library. XCB is much smaller than Xlib, is thread-safe and gives toolkit devs very fine control about how they handle X11 communication. XCB-GLX is XCB's implementation of the obsolete GLX protocol. (Most of XCB is auto-generated based on protocol descriptions, so it was little extra effort to include it for completeness.)

Now the GLX library API is still based on Xlib, not on XCB. The X developers however made sure that a single application could simultaneously use both XCB and Xlib, <http://xcb.freedesktop.org/MixingCalls/>. So that shouldn't be a problem.

I don't understand why Qt5 can't use that, and the article doesn't explain.

<comment><USER3> The GLX library (which is implemented in terms of Xlib data types) itself is implemented by the nvidia driver (it speaks some other driver-internal stuff to the nvidia kernel-side bits) -- as you mention, rendering is client-side these days, so the implementing GLX protocol doesn't amount to much.

It is maybe still possible to use enough of of xlib+nvidia-glx in an XCB app to make things work but I think that's uncharted territory -- and it seems likely to me nvidia's glx expects you to have the other pieces of xlib around, such as using xlib's event queues.

<comment><USER4> > It is maybe still possible to use enough of of xlib+nvidia-glx in an XCB app > to make things work but I think that's uncharted territory -- and it seems > likely to me nvidia's glx expects you to have the other pieces of xlib > around, such as using xlib's event queues.

I've done XCB+Xlib+GLX + proprietary graphics drivers, it does work although it's sort of uncharted territory but if you're brave you can make it work. Initialize Xlib as usual, then use XSetEventQueueOwner to enable handling events with XCB and finally do you GLX stuff with the Xlib Display object.

<comment><USER5> That was part of my point I have stacks of xlib and glx books/docs xcb's documentation is severely lacking. I want to write my desktop not fool around with xlib here and xcb there I am getting old and would like to see Desktop Linux as a major player in my life time. I just want something concrete xlib and glx for now gives me that. When wayland is stable enough and has hardware acceleration for nvidia's binary blobs then Ill move on to that. I dont want to put all my eggs in one basket on something that might happen.

Nvidia needs to just come out and say yes if wayland proves fruitfull we will support it.

<comment><USER3> I know this opinion may be unpopular, but: people have been successfully writing xlib apps for literally decades. There's no reason to use xcb for that type of app, especially if you're just trying to get a GL window on the screen and you don't expect to be doing lots of tricky X calls.

</comment></comment></comment></comment></comment><comment><USER4> This article is (at least a little) wrong. By the way I wrote the XCB-OpenGL doc that is cited in this article.

You _can_ use XCB with OpenGL, but you won't be getting rid of Xlib altogether because of GLX depends on Xlib. It does not mean that you cannot use XCB or get any advantage out of it.

So you use Xlib+GLX for OpenGL initialization and XCB for events and windowing stuff. Works like a charm.

> It means that they're forcing us to install and use XCB that doesn't support > Hardware Accelerated Graphics using your ATI/NVIDIA binary drivers. And it > ends up reverting back and using XLIB/GLX anyways.

"Forcing us to install" is a rather awkward choice of words since you most likely do have XCB installed and the version of Xlib you have is built with XCB.

And the XCB+GLX+Xlib hybrid setup that is detailed in the XCB wiki article works just fine with Nvidia (and presumably ATI) drivers, with hardware acceleration.

<comment><USER5> The point I was trying to make was not that it cant be done but you end up mixing Xlib and xcb regardless. Its that xcb cant be used stand alone. In that sense its crippled.

And I build my system from scratch and granted my version of x is older Qt4 never had the xcb requirement, It was always Xlib.

Instead on XLIB+GLX its not XCB+XLIB+GLX

But XCB does nothave support for hardware acceleration it still needs Xlib.

By the way thank you for taking your time and writing those docs, being there isn't much on XCB as it is. Maybe you can talk some sense into the XCB guys to take a couple weeks of and document XCB properly.

<comment><USER4> > The point I was trying to make was not that it cant be done but you end up > mixing Xlib and xcb regardless. Its that xcb cant be used stand alone. In > that sense its crippled.

GLX is the weak spot, not XCB. And GLX is not something that we can change. Hopefully the situation will improve, either through a GLX+XCB backend, EGL or Wayland.

You can't get rid of Xlib, but you can still benefit from XCB by using it for the non-gl stuff, which would be the majority of Qt, or any other X11+OpenGL app for that matter.

And it would make no sense whatsoever to try to use a pre-XCB version of Xlib. Unlike XCB, which is machine generated and (partially) formally verified, Xlib has had bugs at a whole different scale.

> By the way thank you for taking your time and writing those docs, being > there isn't much on XCB as it is. Maybe you can talk some sense into the XCB > guys to take a couple weeks of and document XCB properly.

XCB is a machine generated library based on X11 specifications. The X11 specs are the documentation you want, just apply XCB coding conventions like the XCB source generator does. I don't want to bug the devs, they have better things to do than writing docs for noobs.

<comment><USER5> "I don't want to bug the devs, they have better things to do than writing docs for noobs."

11 years of procrastination nice no wonder half your dev team left to go work on wayland with an attitude like that.

Hay did you know wayland has docs for noobs <http://wayland.freedesktop.org/docs/html/>

</comment></comment></comment></comment><comment><USER6> And this is why, my friends, we don't have a Linux desktop. At some point, we need get some stability and backwards compatibility in our GUI toolkits. Otherwise, we see this problem over and over again - GUI API updates break application developers, and those developers have to put time and effort into restoring functionality rather than adding new features or improving usability.

Windows will happily run 10 year old GUI code. OSX will still run 7 year old GUI code. But Linux? Depending on the which window manager you're using, even 2-3 year old code can be horribly broken by API updates. As a developer, this is one of the chief reasons I'm considering abandoning Linux and moving to OSX. It's just too bothersome to deal with the ever-increasing flux in Linux GUI libraries.

<comment><USER7> I thought Ubuntu was the one distro that was moving towards a consistent desktop.

I think somehow that consistency in the unix/linux world is an anathema, with a good old whack of NIH syndrome.

<comment><USER8> Ubuntu created a new shell on top of Gnome 3. I'm not sure how that makes for more consistency. Unity is not widely adopted outside of Ubuntu and Gnome 3 is so unpopular that there are two projects to keep Gnome 2 around; Mate, a fork of Gnome 2 and Cinnamon, a layer on top of Gnome 3 that has a UI similar to Gnome 2.

</comment></comment></comment><comment><USER9> I love how there's a certain amount of rational explanation and then the closing one line "the reason I'm so pissed off, blah blah blah". It's genuinely funny for some reason :)

<comment><USER5> Yahhh have a bunch of your code base broken when they remove a major class and not tell anyone then dont provide an alternative and you won't think its very funny my friend ;)

</comment></comment><comment><USER10> Whilst I agree some of the choices they've made for Qt5 are right now not great, there's no forced upgrade to Qt5. Qt4.8 will still see fixes, the source is there, all will be well.

I do get where the ranter/writer is coming from, it's one of the reasons I'm holding off on going Qt5 for any big projects.

</comment><comment><USER11> correct me if i'm wrong, but qt4.x should happily coexist with qt5.x, providing all the legacy support the author might require. i'd be surprised if qt4 didn't get backported fixes and possibly even features from the 5.x branch, especially if a lot of popular apps end up still depending on it.

<comment><USER5> There not planning to replace the QX11Info() class the removed and independent had to start coding a replacement and apparently he needs help. The XCB docs/tutorials are almost non-existent and do to that I never bothered to pick it up so I cant help him. You don't remove a class like that and not tell any one or provide a replacement. Its rude.

They didn't bother to take consideration for those that were using those api's. Now all my codes broken and I have to hope that guy writing the XCB QX11Info() class for the xcb comes threw or I have to replace thousands of lines of code.</comment></comment>


The Actual FCC Net Neutrality Repeal Document. TLDR: Read Pages 82-87 [pdf] - <AUTHOR> https://transition.fcc.gov/Daily_Releases/Daily_Business/2017/db1122/DOC-347927A1.pdf <comment><USER2> Here are some links to the relevant antitrust laws:

Sherman Antitrust Act (1890) [https://en.wikipedia.org/wiki/Sherman_Antitrust_Act](https://en.wikipedia.org/wiki/Sherman_Antitrust_Act)

Aspen Skiing Co. v. Aspen Highlands Skiing Corp. (1985) [https://en.wikipedia.org/wiki/Aspen_Skiing_Co._v._Aspen_High...](https://en.wikipedia.org/wiki/Aspen_Skiing_Co._v._Aspen_Highlands_Skiing_Corp).

Transparency in network management and paid prioritization practices and agreements will be relevant.

"We find that antitrust law, in combination with the transparency rule we adopt, is particularly well-suited to addressing any potential or actual anticompetitive harms that may arise from paid prioritization arrangements." (p.147)

If antitrust law is sufficient, as you've found, there would be no need for Title II Common Carrier regulation in any industry.

We can call phone numbers provided by any company at the same rate because phone companies are regulated as Title II Common Carriers. ISPs are also common carriers.

"Public airlines, railroads, bus lines, taxicab companies, phone companies, internet service providers,[3] cruise ships, motor carriers (i.e., canal operating companies, trucking companies), and other freight companies generally operate as common carriers."

[https://en.wikipedia.org/wiki/Common_carrier](https://en.wikipedia.org/wiki/Common_carrier)</comment>


My Cuistot – Healthy and Weight Loss Food Delivery - <AUTHOR> https://www.mycuistot.com/ <comment><AUTHOR> Let us introduce My Cuistot, a French company that offers Chef-cooked prep meals delivered right to your doorstep. What's our difference in regards to the multiple alternatives offering a similar service? A few facts: We work with a network of chefs in your area, to provide fresh, healthy food, at affordable prices. If you want to eat balanced and healthy, why not making it delicious, a high-quality meal, a Paris-inspired dish every day? Our company is the only healthy food delivery service present and expanding internationally (in the US, UK, Singapore, Spain, and France), thanks to an efficient business model that is profitable and sustainable in time. Yes, we've been bootstrapping for a while, growing from our revenue stream and we continue that way. By utilizing selected local independent chefs and local delivery services we keep the best quality service at the lowest price, and we are profitable. We've sold over 1M Euros in our first year. Our international expansion program will definitely boost our business as a more efficient approach within the food delivery ecosystem. We do not use a central kitchen or processed foods that have to travel a long way, our meals are homemade based on seasonal ingredients and trusted sources. The meals are cooked in small batches right next to your door and delivered the same day, arriving always fresh. In addition, our tasty meals can also be customized to adhere your specific dietary restrictions, whether you are following a low-carb, gluten-free or any weight loss plan, our chefs guarantee the same quality for your customized weekly plan. In the States, we are now present in New York City, San Francisco, Los Angeles, Washington D.C. Visit us at [https://www.mycuistot.com/](https://www.mycuistot.com/) for more information, order your first meal or give us some feedback, we read every suggestion.

</comment><comment><AUTHOR> It is great to verify by yourself how healthy the products can be, even in a city like NYC: [https://www.mycuistot.com/nyc-healthy-food-prepared-meals- de...](https://www.mycuistot.com/nyc-healthy-food-prepared-meals-delivery)

</comment><comment><AUTHOR> My Cuistot is a healthy food delivery service working 5 countries and more than 10 cities (Paris, Lyon, Madrid, Barcelona, Singapore, London, Washington D.C., Los Angeles, San Francisco, New York City...)</comment>


Ask HN: recommendations for a mail client? - <AUTHOR>

Looking for a desktop mail client to replace Outlook. I'll use it to access a Gmail account as IMAP and a POP3 account. I'm dissatisfied with Outlook 2007 (home) and even more dissatisfied with Outlook 2010 (work). I'm also dissatisfied with Gmail's web-based client. Outlook is unintuitive in practically every common task (and worse for the uncommon tasks). Gmail is too minimalistic. I'm getting ready to evaluate Thunderbird. I just want to solicit some recommendations. Seamless interface to Google contacts and calendar would be a plus. <comment><USER2> \- If you want to go old school, you might try Alpine.

\- I use Opera a lot, which has an email client built in. Since my browser is open all day, it makes it easier to search through old indexed mail with just a click. I don't like keeping multiple apps open all the time. So it works out for me. Its RSS feed client interface is neatly tied into that as well(although minimal). I subscribe to important notification, project activity feeds there(which don't belong in my regular Google reader). So i would you suggest you take take it out for a spin. it doesn't have GCal integration, but thats on my speed dial anyways.

<comment><USER3> You beat me to recommending "alpine" (<http://www.washington.edu/alpine/>). Alpine is super fast, you can use it just about under any OS (as long as it has terminal window) and it understands SMTP and other protocols well enough that I've managed to use it in a lot of different situations from my basement DSL server.

</comment></comment><comment><USER4> Thunderbird would be a good choice. Mozilla has a few calendar solutions aswell: <http://www.mozilla.org/projects/calendar/> (haven't used them, I'm happy with google calendar's web interface).

<comment><AUTHOR> I like Google calendar, and Google contacts meets my needs, so I'd like to work with them, and I see Thunderbird has several add-ins to work with both, but see my reply above, I just can't come to terms with the Gmail client.

</comment></comment><comment><USER5> May I know why do you think outlook is unintuitive and also why is Gmail minimalistic? I love Gmail personally and would love to know if I there can be other features in other clients that you are looking for which will make managing emails easier.

<comment><AUTHOR> Outlook unintuitive -- Here's an example: Try to access your signature(s) for adding/updating without starting a new email message first. I think I'm mostly peeved at 2 things: changes to menus in Outlook 2010, and poor handling of the message list for IMAP accounts.

Gmail minimalistic -- I just never caught on to the label thing. I know some people love it. It also seems I can't choose a different signature while composing an email. And the arrangement of buttons never seemed right to me. Probably the biggest thing is by default I want to see a folder tree of my email, arranged in the state I last left it in. The Gmail client is just a different paradigm.</comment></comment>


First glider discovered in a cellular automata on an aperiodic tiling - <AUTHOR> https://plus.google.com/110214848059767137292/posts/ZBdwythH2RF

<comment><USER2> This looks fascinating; any chance someone can easily explain the significance of the terms and the image? Seems daunting to look everything up and try to understand as a layman.

Edit: Awesome, thanks everyone! <3 HN

<comment><USER3> A 'glider' is a self-propagating pattern generated in Conway's Game of Life. It's a basic simulation of complex behavior using a grid governed by simple rules made to suggest isolation, reproduction, and overpopulation. These simple rules produce some incredibly complex patterns, some of which can be likened to creatures. The 'glider' is a very basic one that travels in a relatively straight line and can be used to activate or transmit information between other patterns.

One actually showed up drilled into the side of a new retina Macbook Pro; I wrote it up for TechCrunch (with suitable woolgathering): <http://techcrunch.com/2012/06/23/laocoon/>

This Game of Life uses a totally different grid style, which changes the patterns that emerge and the math involved. This guy has created a glider for a rhomboidal grid environment, and that's... pretty cool.

<comment><USER4> Hey man I gotta say I dug that writeup - did any more information surface regarding whether that pattern is indeed inside _every_ retina Pro?

<comment><USER3> No word on that - not very many people want to drop two large on a laptop and then peel back every layer. But I'd say if we see it even once more that's a sign that it's probably a constant. Glad you liked the article.

</comment></comment></comment></comment><comment><USER5> haha, I just found an Google Easter Egg, while reading this thread :)

> Google "Conway's Game of Life"

PS. Also, somebody posted it on HN 3 weeks ago, but got no love: <http://news.ycombinator.com/item?id=4224926>

</comment><comment><USER6> How exactly did they go about proving that it continues to glide forever, despite the lack of periodicity? Is there some finite combination of subsequent tile groups in aperiodic tilings, such that you just have to show that all of them involve a transition another part of the glider cycle?

<comment><USER7> Watch the cyan tile carefully in the animation. It always propagates to adjacent rhombi across edges, all of which are parallel.

</comment></comment><comment><USER8> isn't this pattern the 2D projection of a periodic 5D pattern ?

what would it mean for the glider's path in 5D (well, 6D with time) ?

<comment><AUTHOR> Yes, I think that's right. This page talks about De Bruijn's pentagrids method, which uses the same rhombi ribbons as the glider travels on as the axes of the 5D space: <http://www.ams.org/samplings/feature-column/fcarc- ribbons>

Five possible directions for the glider to travel in = Five dimensions of space.

(Is that right?)

</comment></comment><comment><USER9> Awesome! For years I have had a desire to see "life" on a penrose tiling. Are there more examples out there?

</comment><comment><AUTHOR> New Scientist wrote an article on this: [http://www.newscientist.com/article/dn22134-first-gliders- na...](http://www.newscientist.com/article/dn22134-first-gliders-navigate- everchanging-penrose-universe.html)

</comment><comment><USER10> This explanation of the work the automata rule needs to do was interesting: <http://mrob.com/pub/math/quad-grid-glider.html> (from g+)

</comment><comment><USER11> I have to sign in to read this? =/

<comment><USER12> You have to sign in because you're signed in to a Google account but not Google+. If you were either signed in to Google+, or not signed into Google at all, you would see the article without a sign-in prompt.

<comment><USER13> That's just plain stupid and annoying. I didn't notice yet since I've abandoned my Google Account a few months back and am therefore not signed into Google at all.

However, why do they do that? Hasn't it occurred to them that not everybody with a Gmail Account wants to be on G+?

<comment><USER14> >Hasn't it occurred to them that not everybody with a Gmail Account wants to be on G+?

Of course it's occurred to them. Why else would they be trying to force them?</comment></comment></comment></comment>


Launching Brands in Public - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2009/09/launching-brands-in-public.html

<comment><USER2> Honestly, I don't like these business models of trying to force brands to interact with their own customers on someone elses terms. It instantly reminds me of the 37signals vs GetSatisfaction debacle, albeit with slightly more product disclosure this time.

Edit: Link to 37s blog post <http://37signals.com/svn/posts/1650-get- satisfaction-or-else>

</comment><comment><USER3> _"Each page collects tweets, blog posts, news stories, images, videos and comments about a brand... If your brand wants to be in charge of developing this page, it will cost you $400 a month."_

This is extortion.

Hello, I made this page collecting negative reviews of your company, would you kindly pay $400 a month for a chance to reply? (Sorry Seth, you can say all day that feeds will be "algorithmic" and include positive reviews as well, but you have no business incentive for keeping it that way. And anyway people will always complain about a brand more than they praise it in public.)

</comment><comment><USER4> "You can organize it [what people are saying about you] by highlighting the good stuff and rationally responding to the not-so-good stuff"

Of the example links, only Trader Joe's had a list of "Not so happy" Twitterers. And all they complained about was not having a local Trader Joe's.

I don't think any brand can manage bad press from a single page. But it would be nice to be proven wrong. Good luck!</comment>


TOML, Tom's Own Markup Language - <AUTHOR> https://github.com/mojombo/toml <comment><USER2> I note that, like many erstwhile specs, TOML does not document the escape sequences accepted in strings. Nor does it exhaustively specify integer formats and float formats - rather ironic for a spec that advertises "TOML is designed to be unambiguous and as simple as possible."

The limitation on array types seemed fairly arbitrary at first glance, but after thinking it over I realized it aided compatibility with languages that do not support homogeneous arrays. Though as far as the types go, I would add boolean and perhaps non-quoted strings for single-word values.

Now that the technical criticism is out of the way, holy crap this guy is arrogant.

<comment><USER3> Well, he's the CEO of Github, and he's probably been drinking, so I suppose a little bit of arrogance is expected.

<comment><USER4> For the love of baby jesus why can't people get the 'H' right.

<comment><USER5> As proper nouns become more common, they first lose any capitalization in the middle of the word, and then finally capitalization of the initial letter. It's human language. It happens.

<comment><USER6> Yes, and I think it's arrogance on the part of Wordpress (there I did it) folks to insist that everyone capitalize it in the prescribed manner. Especially since they weren't consistent from the get-go. They even went so far as to make Wordpress (trolol) itself filter content to be capitalized if someone tries using the lower case p. [http://justintadlock.com/archives/2010/07/08/lowercase-p- dan...](http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit)

<comment><USER7> It's to do with protecting their trademark though. That whole human language makes proper nouns normal words - companies don't like that at all. In the case of WordPress, there's a lot of potential for abuse if anybody can call their system it or whatever.

</comment></comment></comment></comment></comment></comment><comment><USER8> Urg. Off topic, but I dislike this perl/ruby tendency of calling hash tables _hashes_. When I see the word _hash_ , I always think of a value (ie a hash code) and not a data structure. Why couldn't they call it a hash map, hash table, map, table, dictionary etc like all the other languages...?

<comment><AUTHOR> I agree with that. 'map' or 'dictionary' are the best choices I think (or 'associative array', but why bring arrays into it). That's the interface, of which a hash table is just one possible implementation.

<comment><USER9> I've never liked 'dictionary'. The analogy isn't at all apparent to me. A dictionary explains what words means. The thing we're talking about doesn't explain what keys mean. (Someone who spends most of his time writing python here.) 'map' or 'mapping'.

<comment><USER10> A dictionary maps words to their definitions. The words are the keys, the definitions are the values. Seems reasonable to me. Though as another predominantly pythoner, I do prefer map as well.

<comment><USER9> In a dictionary the value (meaning) is often (partially) implied by the key (word), by etymology etc. In the data structure there need be no relationship between the key and value other than the fact that they are a key-value pair in this instance. It introduces messy cultural concepts into what should be a clean, abstract concept.

</comment></comment></comment></comment></comment><comment><USER11>
        Because we need a decent human readable format
        that maps to a hash and the YAML spec is like
        600 pages long and gives me rage. No, JSON
        doesn't count. You know why.

I do not know why, And would love if one can explain me?

Other than comments, I see not difference between both.

Also, that human readable is not an accurate, as it should be hacker readable, you know, IT folks are the only target audience of those files.

        [owner]
        name = "Tom Preston-Werner"
        organization = "GitHub"
        bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
        dob = 1979-05-27T07:32:00Z # First class dates? Why not?

        {
            "owner": {
                "name": "Tom Preston-Werner",
                "organization": "GitHub",
                "bio": "GitHub Cofounder & CEO\nLikes tater tots and beer.",
                "dob": "1979-05-27T07:32:00Z"
            }
        }

<comment><USER12> In JSON that datetime won't deserialize to a datetime instance in your language in a conforming parser. Further JSON has no comments (this is a killer for a configuration format).

<comment><USER13> There are ways to fake comments by using extra fields:

{ "what i want": "what i really really want", "ಠ_ಠ":"Ignore the eyes" }

<comment><USER14> I think you just helped Tom make his argument... :)

</comment></comment></comment></comment><comment><USER6> It isn't a markup language. I'd like to correct this mistake that was started by YAML. :/ <http://en.wikipedia.org/wiki/Markup_language> (Using the bacronym "YAML Ain't Markup Language" only helped it grow, making more people confused as to what a Markup Language is.)

I like it, though. More grepable than JSON or YAML, with the way it handles nested keys using dot notation.

<comment><USER15> This has been fixed. [1]

[1] - [https://github.com/mojombo/toml/commit/aa4ac1d6df1031ebe871c...](https://github.com/mojombo/toml/commit/aa4ac1d6df1031ebe871c472011c1a4f3fb00885)

<comment><USER6> Like hell it has. People know what ML means at the end of a file format.

</comment></comment></comment><comment><USER16> I've always been a fan of the .INI syntax but the lack of a standard (which I think Microsoft should have championed) made the format hard to use consistently. There have been attempts at standardization [1] but, alas, they never spread widely enough. In light of the above, I'm glad to see an INI- derived format with a real spec -- not necessarily because it might replace JSON but _because it might replace INI._

Speaking of INI, for the longest time the killer app for INI files for me was persistent data storage in batch scripts (.bat/.cmd files in Windows 9x/NT). Using a command line utility like [2] or a similar program from IBM that sadly wasn't legally redistributable you were able to achieve persistence with minimum effort, which would otherwise be difficult to program in batch. I even wrote a portable clone of inifile.exe for MS-DOS and Linux to be able reuse my scripts more easily. TOML would sure benefit from the same.

[1] <http://www.cloanto.com/specs/ini/>

[2] <http://www.horstmuc.de/wbat32.htm#inifile>

</comment><comment><USER17> The biggest concern with JSON seems to be the lack of comments. So what voodoo is Sublime Text 2 performing? Why can't we just use that?

      {
        // Sets the colors used within the text area
        "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",

        // Note that the font_face and font_size are overriden in the platform
        // specific settings file, for example, "Preferences (Linux).sublime-settings".
        // Because of this, setting them here will have no effect: you must set them
        // in your User File Preferences.
        "font_face": "",
        "font_size": 12,

        // Valid options are "no_bold", "no_italic", "no_antialias", "gray_antialias",
        // "subpixel_antialias", "no_round" (OS X only) and "directwrite" (Windows only)
        "font_options": [],

        // Characters that are considered to separate words
        "word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",

        // Set to false to prevent line numbers being drawn in the gutter
        "line_numbers": true
      }

<comment><USER18> Some JSON implementations supports comments, others don't. If you know the one you use supports (and will continue to support) comments, go ahead and use it. It just won't be portable.

Douglas Crockford himself suggests you "Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser." That sounds like a reasonable workaround.

[https://plus.google.com/118095276221607585885/posts/RK8qyGVa...](https://plus.google.com/118095276221607585885/posts/RK8qyGVaGSr)

</comment></comment><comment><USER19> _> There should only be one way to do anything._

 _[...]_

 _> There are two ways to make keys._

I guess I haven't had enough whiskey yet.

<comment><USER18> > Tabs or spaces. TOML don't care.

And two ways to indent.

</comment></comment><comment><USER20> Given Jekyll's enormous backlog of issues and pull requests[0], can we expect this to be maintained or supported any bit beyond the late night drunken brain fart that this is?

[0] <https://github.com/mojombo/jekyll>

<comment><USER21> Parker Moore and I (along with many contributors) have been spending quite a bit of time on Jekyll recently. Over the last 30 days we've merged 17 pull requests and closed 62 issues. We're ramping up for a 1.0 release and there's a brand new website in the works. You can check it all out on the master branch.

Tens (or possibly hundreds) of thousands of people use Jekyll now. It's interesting to note that Jekyll started out as a "brain fart" as well. Just one amongst hundreds of blog engines. I wrote it because I was dissatisfied with everything on the market, and I thought I could do something different and better, to serve my own needs. I open sourced it, because I thought others might get a kick out of it.

I'd wager that most of the great things we use today started as nearly ephemeral emanations from someone's mind, often late at night, or helped along by a snifter of brandy. The funny thing is, if you never try out your crazy ideas, you'll never know which ones might have changed the world.

<comment><USER22> Tom, I've been waiting _two years_ on a pull-request to the official gem which adds the ability to view open/closed issues in private repositories.

<https://github.com/defunkt/github-gem/pull/59>

The pull has 19 people asking for integration and has some stellar comments:

"seriously? year long pull request with two lines of changes?"

"I normally would think that the github gem features for paying users would get a lot of attention from the folks at github..."

I even tried getting it pulled via pre/postsales emails to email@example.com (I'm a enterprise customer) which was met with a "yeah, i'll tap him on the shoulder to integrate - year later nothing.

<comment><USER21> That project isn't actively maintained at the moment (nor is it an official GitHub project), but I'll see what I can do tomorrow to get it merged in and released. Sorry for the frustration!

</comment></comment></comment></comment><comment><USER23> And how is this better than xml?

      <owner name="Tom Preston-Werner"
             organization="GitHub"
             bio="GitHub Cofounder & CEO\nLikes tater tots and beer."
             dob="1979-05-27T07:32:00Z" />

      <database server="192.168.1.1"
                ports="8001 8001 8002"
                connection_max="5000"
                enabled="true" />

      <servers>
        <alpha ip="10.0.0.1"
               dc="eqdc10" />
        <beta ip="10.0.0.2"
              dc="eqdc10" />
      </servers>

<comment><USER24> Let's see:

. No native support for numbers, dates, booleans or lists. The latter can be implemented using subelements, but it's so cumbersome that you skimped on that and used a non-typed string instead (the database ports).

. Redundant verbosity. Root elements, closing tags, way too much crap to be manually inserted.

. XML parsers are huge, complex beasts which have no place in many smaller applications.

. Being XML, it leaves way too many possibilities for crappy developers. Namespaces in config files, oh joy!

<http://harmful.cat-v.org/software/xml/>

<comment><USER23> Most of your points are environment specific and I think that you forgot the strongest of them - "xml APIs usually suck". In .net they are non-issues. And about being cumbersome and verbose, the point I tried to make is that you don't have to be zealous and put every small piece of data in a separate element. No reason not to put data in attributes or even in comma/whitespace separated strings, if that piece of data can be extracted in one short line of code.

<comment><USER24> _Most of your points are environment specific_

How so? .Net can't magically discover the types of values or prevent developers from abusing the format.

 _you don't have to be zealous and put every small piece of data in a separate element._

But then you're layering a complex format with a custom application-specific parser, with an unknown syntax (e.g. spaces vs commas, are ranges supported, etc). It obviously can be done, but it's a mess.

</comment></comment></comment></comment><comment><USER25> Ruby parser here: <https://gist.github.com/jm/5022483> Please fork and improve. :)

<comment><USER26>
        # line 36
        text.split("#").first

This will have trouble with a line like:

        tweet = "TOML is #awesomesauce"

\--

        # line 43
        array = $1.split(",").map {|s| s.strip.gsub(/\"(.*)\"/, '\1')}

You should recurse into coerce here, or you'll just lose types. (Also you're assuming arrays of strings.)

        array = $1.split(",").map {|s| coerce(s) }

\--

You're also not dealing with nested key groups. (eg. [servers.alpha]).

\--

That being said, naïve string parsing is a terrible way to build a new markup language implementation. It's the reason the Markdown landscape is such a mess[1]. What this really needed is a formal grammar.

[1]: I actually tried to fixed that by writing a formal lexer & informal parser for Markdown in a side-project of mine[2]. It's not quite there yet, because for practicality reasons I wrote my own parser instead of a formal AST-generating parser.

<https://gist.github.com/kballenegger/29dabe4b6e762ee221df>

[2]: <http://getmacchiato.com>

<comment><USER25> Yup array handling is weak. I was going to recurse into coerce, but then the examples made it seem like only strings will be accepted in arrays (he put "8000" in there rather than just 8000). I'll get clarification.

Made it into a proper project/gem here if you want to file issues: <https://github.com/jm/toml>

And good call on the nested key groups. Shouldn't be hard to knock that out.

</comment></comment></comment><comment><USER27> _Cool_ , the market isn't fragmented enough already.

 _Yes_ , being the CEO of Github does give you the power to do whatever you want.

 _Of course_ , drinking and coding is a great idea. The Ballmer peak isn't a joke, it's a way of life.

<comment><USER28> What's this fragmentation you speak of? Surely you won't be forced to use one particular format you don't like. An API usually supports multiple formats.

</comment></comment><comment><USER29> Are arrays of maps a bad idea? Someone posted a pom.xml file pointing out how horrible it was, and I thought to myself "How would this look in toml?"

I was all set to try a translation when I hit this section:

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-drive</artifactId>
        <version>v2-rev53-1.13.2-beta</version>
      </dependency>

      <dependency>
        <!-- A generated library for Google+ APIs. Visit here for more info:
              http://code.google.com/p/google-api-java-client/wiki/APIs#Google+_API
        -->
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-plus</artifactId>
        <version>v1-rev22-1.8.0-beta</version>
      </dependency>

      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.13.2-beta</version>
      </dependency>

      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client-servlet</artifactId>
        <version>1.13.1-beta</version>
      </dependency>

How would I represent this in TOML?

      [dependancy1]
      groupId    = "com.google.api-client"
      artifactId = "google-api-client"
      version    = "1.13.2-beta"

      [dependancy2]
      groupId    = "com.google.api-client"
      artifactId = "google-api-client-servlet"
      version    = "1.13.1-beta"

That's not right, it clearly should be an array, but I don't think the standard supports it. At best I would think you'd have to use parallel arrays

      [dependencies]
      groupIds    = ["com.google.api-client", "com.google.api-client"]
      artifactIds = ["google-api-client"    , "google-api-client-servlet"]
      versions    = ["1.13.2-beta"          , "1.13.1-beta"]

and that's just not pretty.

<comment><USER30> why not

[dependencies.com.google.api-client] artifactId = "google-api-client" versions = "1.13.2-beta"

[dependencies.com.google.api-client] artifactId = "google-api-client-servlet" versions = "1.13.1-beta"

<comment><USER29> but the syntax is colliding there, You define _dependencies.com.google.api- client.artifactId_ twice.

Also it creates the key value maps:

       dependencies.com
       dependencies.com.google

which shouldn't exist, so that doesn't seem right either.

<comment><USER30> Good point, I didn't notice that one. Certainly an interesting case. The ones that exist that shouldn't I don't think are as big of issues but it is certainly not an easy problem to solve here.

</comment></comment></comment></comment><comment><USER31> Ah, the power of fame. Implementations spreading like weeds. Four already in javascript, even though the spec is not anywhere near finished:

        npm search toml
        npm http GET https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1361700343737
        npm http 200 https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1361700343737
        NAME                  DESCRIPTION                   AUTHOR            DATE
        node-toml             TOML parser                   =ricardobeat      2013-02-24 10:08
        toml                  TOML parser for Node.js       =binarymuse       2013-02-24 04:19  toml parser
        toml-node             TOML ====                     =thehydroimpulse  2013-02-24 08:01
        toml-parser           A TOML parser for node.js     =aaronblohowiak   2013-02-24 06:41

<comment><USER32> In a few years, maybe we can have "nfnpm" (noise-free node package manager).

</comment></comment><comment><USER33> What is wrong with JSON? Everything already supports it.

JSON has two drawbacks: a lack of comments (although you could add "#" keys in relevant places) and no binary support (arbitrary conventions include base64) but this doesn't support binary anyway.

<comment><USER34> A few issues (although I do use JSON in config):

It isn't a friendly form of human input. My error rate is 50%+ , you have to lint on save to catch things that are invisible to the naked eye

No ability to override, extend or reference keys. This is most useful in config objects where for eg. in a dev object you want to override the username and password for a database connection but not repeat all the other parameters

No comments

<comment><USER33> You can override in pretty much the same way TOML does. Instead of replacing an underlying object, you update it with the values read from JSON.

</comment></comment></comment><comment><USER35> Hey Tom, why not use git's config format?

<http://git-scm.com/docs/git-config>

</comment><comment><USER36> About the use of mark up language as config file. I see that in most Python apps, the config file is just another Python script and not using another markup language. This way makes sence in a dynamic language and it feels natural. I understand it is a habit to use yaml in Ruby apps for config. Is it not possible to just use Ruby script as config file since the script can be loaded dynamically? What are the pros and cons of using another markup language as config file vs using just the app language(Python/Ruby)?

<comment><USER37> Your configuration file might need to be read by more than one language.

It's also nice to have a configuration file mean the same thing regardless of its runtime environment.

</comment></comment><comment><USER38> This is quite nice but there are a few of things that I miss:

1\. A way to have multi-line values for non array types

2\. A more flexible number syntax (e.g. allow hex and binary integers, allow exponents on floats, allow NaN and +/-Inf)

3\. Make it possible to have an extra comma after the last element on an array (as in Python)

4\. Add a way to "include" another config file

#1 is important because some projects require all lines to have a max width of 80 lines, including on config files.

#2 is important for scientific/engineering projects. I think the current simple format shows that this format is a little too web centric. If this is going to be used for non-web stuff this is a must.

#3 is something that helps when putting this sort of configuration file in version control. Without this, adding an extra entry to a multi-line array creates a diff in two lines rather than 2 (since you must add a comma to the line above the one that you inserted). This is something I miss in JSON and which Python did just right (IMHO).

#4 would be useful in cases in which you want to provide a base configuration file for example.

Also, maybe I missed it but it is not super clear what would happen if you redefine an existing entry (I hope it is possible). Finally, is order important?

EDIT: typo.

<comment><USER39> +1 for #3

It's not just in the diffs. Trailing commas make editing the list easier.

</comment></comment><comment><USER40> It seems to me that YAML does this better already (with parsers which are already high-quality).

If we want simplicity, then why not make sure it is a subset of YAML?

<comment><USER41> Agreed, I'd much rather have a normalized subset of YAML without the object serialization stuff (I don't even understand why it's there: why take a format intended to be read by humans and then muck it up with complex and dangerous object serialization notation).

<comment><USER42> And without anchors and reference too.

</comment></comment></comment><comment><USER43> Python has ConfigParser which parses ini-style config files, I assume it uses some standard grammar.

<http://docs.python.org/2/library/configparser.html>

</comment><comment><USER44> Working node.js version: <https://github.com/aaronblohowiak/toml>

I just need to auth and push it to npm.

<comment><USER45> Nice work! It's too bad that this guy squatted on the `toml` package name without any implementation: <https://github.com/BinaryMuse/toml-node>

<comment><USER45> __Update __: It seems that he has provided an implementation now. I feel better about that, I can't stand when people squat on package names in Node.js.

(Meta: the edit link expired, hence the reply to myself)

</comment></comment></comment><comment><USER46> If this had be done by any Tom no one would have upvoted

<comment><USER47> So? If Git had been invented by anyone except Linus, probably hardly anyone would be using it today.

</comment></comment><comment><USER48> Don't want to be a naysayer, but what's wrong with something like CSON (CoffeeScript Object Notation)?

</comment><comment><USER49> Would this be considered legal?

      [ [1,2], ["a", "b"] ]

<comment><USER50> The README says not to mix data types because "that's stupid" (which I don't know if I agree with); but I don't know if that answers your question.

You have an array of array, which at that level, satisfies the spec. The children individually keep types contained.

That said, I'm going to assume the intent is to not allow that.

<comment><USER49> Would it be okay to understand arrays as integer indexed keys?

For example, wouldn't that mean something like:

      array = [ [1,2], ["a", "b"] ]

Be the same as this:

      [array]
      0 = [1,2]
      1 = ["a", "b"]

</comment></comment></comment><comment><USER51> I'll be the first to ask: whats wrong with JSON?

<comment><USER50> IMHO, although it's very easily readable by humans, it's not quite as easily written by humans.

I've always preferred INI over JSON for this reason.

<comment><USER52> I would prefer INI over JSON as well except that JSON lets me nest arrays and INI doesn't. So this looks really nice.

On the other hand I'd like to mix my data types as much as I darn well please.

</comment></comment></comment><comment><USER53> Dear industry, if you are going to add comments to JSON, please make it the /* */ variety.

<comment><USER29> Why? I dislike those comments.

<comment><USER53> Text editors will sometimes insert end-of-line characters in the name of word- wrap.

Using the end-of-line as a comment terminator would require significant refactoring of JSON parsers, which were previously at liberty to lump CR and LF together with SP and TAB. A starting and ending token, on the other hand, fits the pattern already required of a JSON parser.

<comment><USER54> > Text editors will sometimes insert end-of-line characters in the name of > word-wrap.

In this decade, only a brain damaged text editor would do that.

</comment></comment></comment></comment><comment><USER55> Can't wait to see the end result.

This reminds me of a new project I'm working on called Leewh. It's based on Wheel and kinda has the same overall function, but I needed something to get my project rolling quickly and using .ini and JSON syntax separately felt... well... too square, I guess.

I figured I'll come up with something more well rounded.

</comment><comment><USER56> Spent a couple of hours this evening on a small parser written in CoffeeScript:

<https://github.com/biilmann/coffee-toml>

Error handling is rough and it still doesn't handle groups with dots [alpha.beta], but appart from that it should be fairly complete.

</comment><comment><USER4> Another parser for Ruby is hiding over here: <https://github.com/parkr/tock>

<comment><USER57> Its empty.

        class Tock
           VERSION = "0.0.1"
           # TODO: IMPLEMENT ALL THE THINGS
        end

</comment></comment><comment><USER58> The issues I find with TOML:

<https://gist.github.com/espadrine/5028426>

</comment><comment><USER59> Looks interesting. What's the rationale behind disallowing something like "-.1234". Is this how it's done elsewhere?

<comment><USER44> makes parsing slightly easier. also '-.' might blur together so you would think it is just '-1234'

</comment></comment><comment><USER60> I like the format. A formal spec would be nice, to aid implementations in as many languages as possible.

</comment><comment><USER61> I really like the hash key format.

Parsing JSON for arbitrarily nested keys is nasty, and this makes it extremely natural.

</comment><comment><USER6> How is this different, or better, than the configuration format that git itself uses?

</comment><comment><USER62> at first glance i thought this was crazy. but now, i think this might actually work.</comment>


Ask HN: What's your favourite ISO standard code? - <AUTHOR> <comment><USER2> I'm a big fan 8601

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

<comment><USER3> Came here to say the same thing. 8601 can really helps simplify the handling of dates in APIs. [http://apiux.com/2013/03/20/5-laws-api-dates-and- times/](http://apiux.com/2013/03/20/5-laws-api-dates-and-times/)

</comment></comment><comment><AUTHOR> There's 22560 to pick from: [https://www.iso.org/standards-catalogue/browse- by-ics.html](https://www.iso.org/standards-catalogue/browse-by-ics.html)</comment>


Lettuce Recall: e. coli - 23 States - <AUTHOR> http://www.google.com/hostednews/ap/article/ALeqM5hEnc00D5YgQjLxbZqLLkjOw_fwzgD9FHV0QG2

<comment><AUTHOR> FDA: [http://www.fda.gov/NewsEvents/Newsroom/PressAnnouncements/uc...](http://www.fda.gov/NewsEvents/Newsroom/PressAnnouncements/ucm211145.htm)

CDC: <http://www.cdc.gov/ecoli/2010/ecoli_o145/index.html>

Freshway Foods: <http://www.freshwayfoods.com/recall/>

A Freshway Foods press release says the recalled shredded romaine lettuce was sold to wholesalers, food service outlets, and some in-store salad bars and delis in the following areas: Alabama, Connecticut, District of Columbia, Florida, Georgia, Illinois, Indiana, Kansas, Kentucky, Maryland, Massachusetts, Michigan, Missouri, New Jersey, New York, North Carolina, Ohio, Pennsylvania, Rhode Island, South Carolina, Tennessee, Virginia, West Virginia, and Wisconsin.</comment>


Tracking Mobile Phone Usage During World Cup Final - <AUTHOR> http://tech.tapjoy.com/engineering-blog/tracking-mobile-phone-usage-world-cup-final

<comment><USER2> Some people were asking what the USA graphs looked like during the NED vs. Argentina match. Similar, but a bit less pronounced on the dropoff. I still can't get over that 30 minute lead up to the game. I feel like I'm missing what that actually is.

Here's a link to the tweet / picture of that graph. [https://twitter.com/dustywes/status/488787721960583168](https://twitter.com/dustywes/status/488787721960583168)

</comment><comment><USER3> To me one of the more interesting trends is the sharp downwards drop during PKs. I wonder if the 'phone burying' that happened during PKs is a result of people not wanting to miss it, not wanting to hear about the outcome from others, or a little of both?

<comment><USER4> I'd say it stands to reason that people didn't want to miss the outcome.

You could imagine someone casually watching the game is now suddenly riveted to what he or she is watching since the intensity and drama just spiked.

</comment></comment><comment><USER5> Unrelated to the topic: that logo animation (as you scroll) is very distracting.</comment>


(Android) Developer Income Report #15 - <AUTHOR> http://www.kreci.net/reports/developer-income-report-15/

<comment><USER2> Great to see some solid income from an Android developer! I find it interesting that the primary source of revenue is adverts in free apps. Some of the comments I've seen previously on HN seemed to indicate this isn't really possible. Evidently it is :)

It would be interesting to see some stats about active users / new installs, to see how that relates to the advertising income.

</comment><comment><AUTHOR> Comments as usual welcome and strongly desired!

<comment><USER3> I am really glad for you. I've been reading your posts since day 1 and it seems that you are doing better as time passes.

What I would like to know is how much you save per month and how much you spend. Are you saving aside some money for the future (in case of a rainy day)?

Thanks

<comment><AUTHOR> I am saving some money each month. Hope to have more to save soon ;)</comment></comment></comment>