The Macroeconomics of Chinese kleptocracy - <AUTHOR> http://brontecapital.blogspot.co.uk/2012/06/macroeconomics-of-chinese-kleptocracy.html <comment><USER2> There are a lot of things I don't understand about China's economy, and every time I think I might have a handle on it, I come across juicy tidbits like these ones:

* The ghost city of Ordos. Built _on spec_ for one million residents, this city sits empty in the middle of nowhere. A lot of money went into building all its plazas, museums, parks, office buildings, and residences, but no one needs or uses any of it.[1]

* The New South China Mall, in Guangdong Province. With nearly 10 million square feet of retail space, it's _by far_ the world's largest mall. Opened in 2005, almost no one ever visits it, and only around 1% of the retail space has been leased -- it just sits empty. A lot of money went into building it, but no one needs or uses it.[2]

* A well-known hedge fund manager recently reported that China is building "2.8 billion square metres of Class A office space over the following couple of years... That's basically a five-foot by five-foot office cubicle for every man, woman and child in China." A lot of money is going into building _a new cubicle for everyone_ , but what's the economic rationale?[3]

[1] Here's a recent BBC article on it: <http://www.bbc.co.uk/news/magazine-17390729> and a great photo essay in Time: [http://www.time.com/time/photogallery/0,29307,1975397,00.htm...](http://www.time.com/time/photogallery/0,29307,1975397,00.html)

[2] Here's a recent video of the mall on a Saturday: <http://www.youtube.com/watch?v=Eel1r1nm1lU> and here's an article about it: [http://www.dailymail.co.uk/news/article-1223747/Ghost- mall-T...](http://www.dailymail.co.uk/news/article-1223747/Ghost-mall-The- worlds-largest-loneliest-shopping-centre.html)

[3] For example, see [http://www.theglobeandmail.com/report-on-business/rob- magazi...](http://www.theglobeandmail.com/report-on-business/rob- magazine/chanos-calls-china-syndrome/article596067/?page=all)

<comment><USER3> A city for one million residents is very small for China. Most of the time such a place would only be called a village. I lived in another ghost city in China for a few months. Suddenly, over night the city filled up and everyone was told they must work in a certain industry. Previously there was some other small industry (e.g. a shipping company with a few trucks with using the street as a warehouse and local services like a laundry mat). They were all kicked out because they were not the designated industry. The laundry mat re- opened a few weeks later on another street.

People forget that China is a command economy. The government tells you where to live and what to do. If you want to live somewhere else or do something else you need to apply for permission from the government.

Cities like Ordos shouldn't make anyone blink. Once the government knows what it wants to do it will be filled overnight.

<comment><USER4> Sorry, but you're just 100% wrong. You're describing some version of China from the 1960s, not today.

People in China are not told where to live, or what job to do. The government makes use of various macro-economic tools to steer the economy much more forcefully than in Europe perhaps, and perversely, the market forces (w/ Chinese characteristics!) are also fairly brutal and fast-changing, but people mostly choose their own professions and locations and in many respects, society behaves pretty similarly to the US/Europe.

<comment><USER5> > People in China are not told where to live, or what job to do.

Not directly, no, but the hukou system still exists, and the choice of living location is in some circumstances still heavily restricted.

</comment></comment></comment></comment><comment><USER6> This post does not pass the smell test. Yes, there is a lot of corruption in China and the political elite is enriching itself at the expense of the public and private sector. One mechanism for this certainly involves the government suppressing interest rates on bank deposits, and then directing banks to provide loans to preferred enterprises, which often engage in real estate. This is not actually a horrible approach to development since it keeps the government from having to finance everything up-front and a lot of the time the projects actually end up working. But sometimes it leads to non-performing loans and everyone knows there is much more of this than is claimed.

But even so the alarmism doesn't make any sense. If we multiply the amount of state-acknowledged NPLs at the largest five Chinese banks (~300 billion RMB) by an order of magnitude and we still only have 500 billion USD in bad assets. Sure this is a lot of money, but the Chinese government has previously dealt with the NPL issue by dumping cash into the banking sector and will doubtless continue to do so if necessary to maintain the status quo. 500 billion dollars still pales in comparison to China's more than 3 trillion in foreign currency reserves, so who cares? In reality, this system is actually sort of preferable since no-one can effectively loot state currency reserves yet, so bailing out the banks gets the money back into play.

To the extent there are stresses in the system, its that real estate development has been on the rocks since 2008 and prices are getting past the point where people can throw themselves into practical servitude in order to buy property. If you follow the Chinese media, right now it looks like the bubble will play out with local governments buying properties from cash- strapped developers at inflated prices (bonus question: guess who will issue the loans to finance this?) in order to turn them into social housing projects (bonus question two: guess who you need to be related to in order to get apportioned these assets?). Since it seems likely the poor are going to get screwed regardless, the real losers in the coming years are Chinese citizens locked into 30 or 40 year mortgages on underwhelming properties who will soon find themselves doubly-screwed as cash-strapped localities who can no longer charge real estate developers such inflated prices for real estate switch to issuing property taxes instead.

<comment><USER7> Interesting that you feel the need to start your refutation with nothing more than "smells bad." To me that reads like you don't even believe your own envelope arithmetic enough to not throw in some superfluous rhetorical support.

<comment><USER6> Huh? The post claims non-performing loans are some sort of poison pill for Chinese economic and political stability. The point of the back-of-the- envelope calculation is to show this isn't the case using some simple math. The blogger could easily have run those numbers himself.

And the reason I said "smells bad" instead of "wrong" is that China is complex and some things that seem wrong on first pass might actually be right. As far as I know, for instance, the blogger is also wrong when he implies that the big four are holding significant amounts of Treasuries on their balance sheets. The reason I believe this is because the People's Bank of China sterilizes currency inflows and monopolizes currency exchange. So the banks which are the most exposed to non-performing SOE debt should not have the USD to invest in US Treasuries and it should mostly be the PBOC which handles Treasury purchases. Googling for terms like "ICBC" and "US Treasury Bonds" suggests this is in fact the case since it doesn't pull up any documents suggesting ICBC is buying Treasuries. But maybe the bank is awash in them and the blogger knows something other people don't? China is strange. It could happen.

<comment><USER8> > he implies that the big four are holding significant amounts of Treasuries > on their balance sheets

What? Where? The only mention of "big four" in his text is about big audit firms being silent about evidence of fraud perpetrated by big Chinese companies.

<comment><USER9> I think gp meant the big 4 state owned commerical banks: people's bank of china (pboc), construction, industrial + commerce, and agricultural

[1] [http://en.wikipedia.org/wiki/Banking_in_the_Peoples_Republic...](http://en.wikipedia.org/wiki/Banking_in_the_Peoples_Republic_of_China)

</comment></comment></comment></comment></comment><comment><USER10> John Hempton (the author of the blog) is awesome, thought the crap he has to deal with is usually not. I find his accounts fascinating, kind of an Australian Michael Lewis mini-me. You can take a look at another post from him of a couple of years ago taking a look at Linux/Windows/Apple [http://brontecapital.blogspot.com.es/2010/08/fund-manager- ex...](http://brontecapital.blogspot.com.es/2010/08/fund-manager-experiments- in-geek.html)

</comment><comment><USER11> Negative savings rates are fine, as long as capital is created and the price of goods produced by that capital is falling due to efficiency improvements.

Where you get the boom/bust is when increased investment and loans creates a feedback loop with the money multiplier causing prices of assets to increase in value even as the supply of those goods increases. Production is encouraged to become wasteful and inefficient because inflation and production taking place over time takes care of the profit margin. When the credit runs out, interest drags the prices back to their non-inflated money supply value and you get debt deflation and doom and gloom covers on The Economist.

China fixes debt deflation by printing the money and handing it to the banks in exchange for their bad loans. In the west, the way things are set up, for better or for worse, we have to borrow it into existence and pay it back with interest, further burdening the tax payer and forcing government austerity. China can take care of the moral hazard that comes with printed money bank bailouts because the government has political control of the financial sector. The government routinely tells banks to stop lending to certain sectors and slaps very specific regulations on to what kind of people and on what terms bank can lend to borrowers. In the west, we like to let the "free market" run things which is why we got rid of Glass/Stegal, etc.

<comment><USER7> I don't see how what you're saying addresses anything in the article. What am I missing?

<comment><USER12> It sounds like "kleptocracy is fine provided it doesn't cause a boom/bust cycle".

</comment></comment></comment><comment><USER13> It's always interesting to focus on China and I definitely do not disagree with the article. However based on the subject, what is happening in China is also happening elsewhere; especially in the West. I think it's also important to look in the mirror and get our own house in order first.

<comment><USER14> Right, corruption is a global pandemic. Who can say how much the bids are rigged in awarding US military-industrial contracts (funded both by US taxpayers and global dollar-demand), to say nothing of state and local gov contracts (eg NYC paying $632m for a 911 phone system upgrade[1]). And wall street fleecing everyone else, as usual.[2]

The article makes some very insightful points, but I'm not convinced that Chinese SOEs are more evil than any other centers of power (just one manifestion of growing inequality). One casualty overlooked here are Chinese SMEs: "The real problem is the limited presence of other financial intermediaries and the rudimentary nature of bond and equity markets, both of which poorly serve the needs of small private companies and local governments."[3],[4]

The author is right about deflation as the sandtrap up ahead, but that's just the consequence of a decelerating economy and we're still to see how soft/hard China lands. In doing a root cause analysis, one can chase down endless trails corruption. But if you want to find a problem which can be solved with a technological solution (as opposed to a social solution), it comes down to a distinct lack of progress in energy tech. Productivity gains in IT just haven't been enough to offset the rising cost of energy (as argued by Peter Thiel)[5]. Sure, the rising cost of energy is tempered a bit during deflationary cycles. But its a lose-lose, because so is economic growth (harmed both by too much inflation _and_ deflation).

1\. [http://yro.slashdot.org/story/12/05/31/1953210/comptroller-a...](http://yro.slashdot.org/story/12/05/31/1953210/comptroller- accuses-hp-of-overcharging-nyc-163m-on-911-system)

2\. [http://www.nytimes.com/2012/06/10/business/banks-could- retur...](http://www.nytimes.com/2012/06/10/business/banks-could-return-a- favor-to-governments-fair-game.html)

3\. [http://www.bloomberg.com/news/2012-06-05/tall-tales-about- ch...](http://www.bloomberg.com/news/2012-06-05/tall-tales-about-china-s- banks-hide-economy-s-problems.html)

4\. [http://www.bloomberg.com/news/2011-11-06/china-credit- squeez...](http://www.bloomberg.com/news/2011-11-06/china-credit-squeeze- prompting-suicides-along-with-offer-to-sever-a-finger.html)

5\. <http://www.youtube.com/watch?v=XRrLyckg8Nc>

</comment></comment><comment><USER15> In China, a married couple who are both only-children can actually have 2 children. This was an alteration to the policy made in 2010 and was exactly designed to stop the 4 grandparent problem.

Ref: [http://www.cbc.ca/news/world/story/2009/10/28/f-rfa- germain....](http://www.cbc.ca/news/world/story/2009/10/28/f-rfa-germain.html)

</comment><comment><USER16> Except for the one child policy and a few other specifics I'm not sure that the poster is actually talking about China.

</comment><comment><USER17> The article forgets about the big business of the local gov'ts in China, who are the driving (selling) force behind the building boom. It is correct, that investment in real estate is the best options for most lower and middle class Chinese.

The local gov'ts expropriate the land from peasants and sell is for housing development. In the absense of substantial tax income, this is the one important source of income for cities and towns. There is often no legal way for people to fight the expropriation, because executive and judicative powers are all in the local party's hand.

</comment><comment><USER18> It doesn't take a genius (or quite so many words) to come to the conclusion that when the economy is growing fast corruption starts and when the economy slows down the poor will get angry about cortuption.

That said - I'm not really for predicting the future in narrative form like this because it is very one eyed. There's plenty of signs pointing in other directions as well.

</comment><comment><USER19> Based on the comments it seems many people are missing out on some of the most important points the blogger is making.

First, a very large percentage (maybe 40-50%) of Chinese companies going public on Western and developed Asian exchanges have turned out to be complete frauds. There have of course been some very large companies that have been very successful and they are likely completely honest, but there are also many, many often smaller companies who's financial statements are pure fiction.

It turns out that the biggest beneficiaries of the frauds were politically connected families, yet none has been prosecuted. The Chinese had decided to open things up a little bit, essentially taking baby steps towards the Western model and require companies to file at least a minimal amount of information domestically and to make some this information theoretically publicly available. Furthermore when a company goes publicly in most markets outside China, it has to file a whole smorgasbord of financial information.

Most of these frauds were uncovered by a careful examination of financial statements companies going public were required to file. A number of the frauds were in fact discovered by this blogger himself (see his earlier posts). In many cases the financial statements were just ludicrously implausible. In other cases they were listing facilities which did not exist etc. Very few were in anything other than plain view.

Remember that this really hurts honest Chinese companies (and there are many high quality Chinese companies that do things by the book) because you are going to have to do far more due diligence on a Chinese company because you can't really rely on the financial statements. Even after you do due diligence you are going to demand a discount. While there is a mania for anything Chinese by naive retail investors everything seems fine if you are a small company with a limited float but for a huge company trying to raise a lot of capital, you have to raise money from well informed institutions.

While companies that only list domestically are harder to do due diligence on, it seems, based on work done by the blogger and others, that the percentage of frauds listing on the Shanghai exchange is at least as high as the percentage of frauds listing on foreign exchanges.

Imagine if 40-50% of US companies going public over a period of time were frauds and this was discovered through their public filings. Legislators and regulators would be lining up to require more disclosure. Instead the Chinese have now changed the law so Chinese companies have to file less information and the information they do file is practically a state secret. This is somewhat akin to companies trading on the NYSE filing absolutely NO financial statements and the SEC and Congress preventing anyone from seeing what they did file.

Especially given that in the few cases where it is possible to trace the ultimate beneficiary of the frauds, it has been a politically connected family member, none of whom have been prosecuted, it is hard to ascribe any reason to pass rules restricting access to company financial information other than a desire by the elites to steal as much as they can through stock fraud.

</comment><comment><USER20> do they really have see-through apartment buildings in china or is that a mistranslation?

<comment><USER21> I'm going to possibly expose myself to some ribbing by assuming this this a genuine question instead of a statement that just presses the joke.

By "see-through" I assume the author refers to (mostly motel style) apartment buildings that are completely unoccupied or even unfinished and hence they lack blinds, drapes, furniture, (and sometimes walls). Thus, you can completely "see-through" them from street level.

You can---by the way---see the same phenomena in the American South where gulf-relief zones made building (or to start building) new apartments/condos in some areas practically a tax-dodge but where the natives in those areas don't have the means to buy them at even a quarter (sometimes eighth) the cost.

<comment><USER21> I'm not sure about in China, but in the South another way such buildings are "see-through" is that the buildings were built elevated over completely empty parking lots.

There are streets where you can see two or three streets over "through" these empty parking lots.

</comment></comment></comment><comment><USER22> I dont get it.. when the Western nations steal resources from other countries (Oil,natural resources,scientists etc) its considered growth or "preserving" interests... when the chinese or any other non-westen countries do this its considered a kleptocracy?

sounds like sour grapes to me...

</comment><comment><USER23> I wonder if anyone actually understood what the one child policy would have. I mean, was this predictable? Did the Chinese government know it was going to create this situation?

</comment><comment><USER24> lets just say that they learned from the best ;)

</comment><comment><USER25> Sounds slightly less corrupt than Wall Street.

<comment><USER26> There should be a name for the phenomenon on the internet whereby any article about any phenomenon in any non-US country of the world will inevitably result in someone piping in with _"oh yeah? it's even worse in the US"_

<comment><USER24> yeah its called 'highlighting hypocrisy'</comment></comment></comment>


Canadian Oil Sands product (Western Canadian Select) drops to $10/barrel - <AUTHOR> https://oilprice.com/oil-price-charts <comment><USER2> Oil is normally a fungible commodity product(with refinery limitations based on the type of crude). Perhaps that plays a role in the large discrepancy between other oil prices. Or the large drop in demand in the locales it serves.

<comment><USER3> I believe the reason the price for this type of crude is so low is because it is a very low quality product, which means the refinery has to spend a lot of money refining it in exchange for not very much yield.

At the same time, the oil well cannot just simply store the oil or stop producing the oil-- there are costs and risks associated with both options. I think crude completely degrades after 2 years of storage.

So, there's a chance you might temporarily see negative prices, which is the oil well basically saying "we'll pay you to get this stuff out of here".</comment></comment>


Create evidence for your future Bitcoin predictions - <AUTHOR> https://www.markmywords.email <comment><USER2> Suggestion: add an ability to write a hash of prediction to the Bitcoin blockchain (for a fee from the user) and the ability to see this hash alongside the prediction on day X with the link to the corresponding blockchain record. This way it won't be necessary to trust your website about the fact whether the prediction was actually made on the date you claim.

</comment><comment><AUTHOR> any feedback is more than welcome!</comment>


Homemade flying hovercraft - NZ reporter rides w/o seatbelt (video) - <AUTHOR> http://www.crunchgear.com/2010/03/02/buy-your-own-flying-hovercraft/

<comment><USER2> One of the commenters on the site mentions how this craft achieves flight. It's called "ground effect". See: <http://en.wikipedia.org/wiki/Ground_effect_in_aircraft>

<comment><USER3> I still think this is one of the best demonstrations of the ground effect ever in a vehicle:

<http://www.youtube.com/watch?v=YSYmSnpQ360>

</comment></comment><comment><AUTHOR> Hat tip: James Fallows of The Atlantic - [http://www.theatlantic.com/science/archive/2010/03/good- news...](http://www.theatlantic.com/science/archive/2010/03/good-news-about- flying-in-four-parts/36974/)

</comment><comment><USER4> Interesting. Is he turning by using the elevators as ailerons, or is it only turned with the rudder?

</comment><comment><USER5> Uh, just a quick correction: the reporter is not from NZ; she's Australian.

<comment><USER6> FYI: You can tell by: a) The deep voice b) She's attractive</comment></comment>


Reasons To Give The Vim Text Editor A Chance - <AUTHOR> http://www.makeuseof.com/tag/top-7-reasons-to-give-the-vim-text-editor-a-chance/

<comment><USER2> Just last week I was about to start learning Vim, but after perusing the shortcut list I decided I could do better, so I rolled my own. Basically it's just a multi-modal keystroke catcher/dispatcher running transparently in the background. The upshot is that most of the commands work transparently in my IDE, in notepad, and even this little textbox I'm typing in right now!

Unfortunately, the original point was to increase my productivity, which I've failed at horribly... because I can't stop playing around with the code!

<comment><USER3> Open source it and we can all waste time playing with the code!

<comment><USER2> Definitely. I'm gonna dogfood it a few more weeks and then throw it up on github.

</comment></comment></comment><comment><USER4> My reasons for being a vim user a lot more practical than those I see on these "top 10 reasons for trying X":

\- In the long run, it's faster to learn and use an "efficiency" editor, so I need to learn one of vim, emacs, notepad++, etc. The differences between these are probably negligible for a proficient user.

\- Of these, only vim will be installed (or vi, which has a big enough overlap that it won't matter to me) on every system I'm going to need to use.

These are, incidentally, the same reasons I use QWERTY instead of Dvorak.

<comment><USER5> Dvorak has actually been shown to really be no better than QWERTY - <http://reason.com/archives/1996/06/01/typing-errors/3>

<comment><USER6> You're right about that, but Dvorak is much easier on the hands. The average distance travelled by your fingers is greatly reduced. (It looks like Colemak beats both, though: <http://colemak.com/Compare.>)

<comment><USER7> I type Colemak 99% of the time, but the 1% I don't, it can be a really frustrating experience. It amazes me that 20 years of typing ability was forgotten almost entirely in a month.

</comment></comment></comment></comment><comment><USER8> I've been tooling around with emacs, having plopped down vimpulse and viper on it. I get slime for clojure, the power of elisp for modifications and so on, as well as my preferred editing style, which is modal. It's not for everyone, but it works for me. It helps that my life isn't terribly busy, and I enjoy taking the time to make everything work together. Of course, caps rebinding is a must for either.

It's been fun, either way. Time will tell if it ends up being practical.

<comment><USER9> When I started learning Lisp, I tried using Emacs with viper and vimpulse.

Although it did make using Emacs less painful, it still required way too much knowledge of Emacs to use effectively and configure than I had time to dedicate to learning it.

Emacs+SLIME+vimpulse+viper might be good enough for someone who already knows Emacs or who hasn't invested a lot of time in learning vim. But for someone fluent in vim, I just don't think huge time investment in learning Emacs well is worth it.

<comment><USER8> That's completely understandable. I really don't have a huge reason to be doing things this way. I've just been going through The Joy of Clojure and decided to give emacs a spin, and I wanted some similar editing idioms while messing with it.

I've basically been translating the shortcuts and techniques I use in vim into some ugly elisp, bit by bit, assuming they don't work as expected with vimpule/viper. I wouldn't say it's an amazing solution, but mucking through the emacs docs to get things working has been a quick way to get a basic proficiency in how emacs works, and how elisp can be used.

Ultimately I still end up in vim for most of my editing, and I keep tacking things onto emacs as I go, but mostly when I'm just writing some clojure. I wouldn't say it's efficient at all; it's just interesting enough to kill time with because my life isn't very busy and it seems 'nifty'.

</comment></comment></comment><comment><USER10> I love vim, I use it daily, but always for quick text editing. For real coding I need an IDE (netbeans). I never understood how people can code without debugging, profiling, code exploring. I'll probably get voted down, but, what Vim saves me, I wasted it on debugging. So I don't see any advantage using it as my primary editor.

<comment><USER11> Most people that use vim also don't use graphical debuggers. I use the "print" statement.

<comment><USER12> Spewing print statements all over a piece of code is as bad as any other shotgun debugging technique. The reason breakpoints and watches were invented were to _reduce_ reliance on bad ways of doing things.

<comment><USER11> What's good about print statements is that they don't require me to do anything more than once. When you run code in a debugger, there is a lot of manual interaction involved. continue, break, see where you are, think about that, poke around, repeat. With print statements, you run your test, analyze the output, and make the changes. It's all automated except for the analysis step, which is all the human should be doing.

If you need breakpoints, watchpoints, and a GUI to click around in, your code is too complicated and unmaintainable, which is probably why you need a debugger in the first place.

<comment><USER12> Manual interaction? Sorry, but I'm still very skeptical. Pausing in a debugger does not require materially more "manual interaction" than endlessly running your program to spit out some printed statements--it just front-loads the manual interaction so you're doing it sooner and, if you're doing it right, doing less of it. A debugger allows live autopsy, which is far more valuable than this silly print-statement thing--when your print statement does not return as expected, you are not much better off with your print statements than just seeing the broken output of the program.

Couple live autopsy with live edit-and-continue and you've got a recipe for a considerably more effective way of debugging code.

And "your code is too complicated and unmaintainable if you need a debugger" is preposterous on its face if you've ever...oh, I don't know...written a driver? Or any other remotely complex (you're conflating complicated and complex) task with a significant number of interlocking parts? (Hell, one could just as easily say that your code is too complicated and unmaintainable if you're barfing print statements all over the place.)

<comment><USER11> You "step over" instead of "step into". Now what? You have to start over.

With test cases and print statements, starting over is free. If you need more information, edit the code to give it to you and re-run.

Getting a debugged program back to the desired state is, in my experience, difficult even with an automatic test. Not only does the program state have to be right, but so does the debugger state. Without the debugger, you have half the state to bother with.

</comment></comment></comment></comment></comment></comment><comment><USER13> I chose it because I am under the impression that it is more ergonomic than Emacs and mainstream text editing environments. I learnt the basics of Emacs before I learnt vi/m.

</comment><comment><USER14> Coincidentally, all the points equally apply to Emacs. Well, except the last one, I guess.

<comment><USER15> Exactly. Emacs doesn't need an elaborate case for its defense; non-modal is more natural/easier-to-learn/BETTER (control-this, control-that) than modal. Not merely my 2 cents -- it's the TRUTH!

<comment><USER16> Long time vim user here, and I'm considering learning emacs. How do you _know_ it's the truth? And, how did you get started?

<comment><USER17> I've been using emacs since the 1980s, got started in school because it's the editor one of my early comp. sci. courses used. Tried vi a few times, and I still use it occasionally on systems where emacs is not available (this is one real advantage of vi[m] it tends to be on even the most bare-bones systems), but the separate input and command modes have never really felt natural to me.

</comment></comment></comment></comment><comment><USER18> I've tried hard to love vim, but as a programmer's editor, for C++, it's just awful.

Now, many of the problems are because C++ is awful (hard to parse, for indenting / formatting), and C++ compilers are awful (20 page error messages).

In particular, I tried half a dozen packages and none could tame C++ template error messages, while xcode, visual studio and cde in eclipse all mastered this years ago. A shame.

</comment><comment><USER19> My reason for using vi/vim is that it's the lowest common denominator text editor. You'll find it by default on most any Linux or BSD system.

<comment><AUTHOR> That's my reason too. I use it on Linux, BSD, Mac OS X, and MS Windows. I like TextMate for some tasks better than Vim, but my ratio of time spent in both is still 9:1 (Vim:TextMate).

</comment></comment><comment><USER20> Reason 8: Vim keystrokes can be incorporated into ex scripts, either alone or in "here" scripts. These commands are already useful, they can do stuff like replace strings in lines that are N lines above or below lines holding another string, and they can be leveraged further via scripting.

For example, a search and replace across files under the working directory:

tgt_string=$1

repl_string=$2

for file_name in $(grep -rl "$tgt_str")

       do

ex - $file_name << END_HERE_SCRIPT

%s/$tgt_string/$repl_string/g

wq

END_HERE_SCRIPT

        done

Yes, the indentation of the "here" script is ugly, white space before line texts can bork execution.

Yes, sed or awk can do very similar things, maybe better. My point is, it's nice to get some of these capabilities just by knowing your editor.

(Ed: Sorry about the formatting, if I don't double-space the script it turns into one large text clump.)

</comment><comment><USER21> When they started pushing Unix on us in 2nd year CS, I hated VIM with a burning passion. After a little while of using it though, I can say my typing efficiency is far, far, higher than it was before, and I can "flow" better since I don't have to interrupt my stream-of-consciousness with a mouse movement. I wouldn't use anything else nowadays.

</comment><comment><USER22> It's not surprising to see that the logo isn't amongst the list :)

I use a mix of Elvis and Vim as I'm training up on vi-likes, and I'm not sure which I prefer yet. Vim has more-intuitive-to-me stuff like character-by character deleting (ie characters are removed when you delete, not when you leave Insert mode), but elvis has things like pressing = twice to reflow paragraphs.

Vim may win in the end as Elvis is hard to google for...

<comment><USER23> Vim can reflow too, but I will admit that 'gwap' is a bit unintuitive...

<comment><USER22> cool, thanks for that!</comment></comment></comment>


Online platform's EULA barred software developer from owning copyright in code - <AUTHOR> http://blog.internetcases.com/2017/10/26/online-platforms-eula-barred-software-developer-from-claiming-copyright-ownership/ <comment><USER2> So, i pulled the case up, and this summary is, with all due respect, crappy.

This was a motion to dismiss. Not a trial judgement.

Yes, it gets copyright law very wrong (you can't prevent copyright from existing by contract, you can only say who owns it, and that requires a specific written instrument).

However, the court granted leave to amend the complaint: " Ameritrade's Motion to Dismiss as to the First Counterclaim will be granted. However, leave to amend will be accorded so as to permit Mr. Matthews the opportunity to allege nonconclusory facts that explain why Mr. Matthews' alleged software modifications to TD Ameritrade's API are protected by a valid copyright."

So basically, not much to see here yet.

<comment><AUTHOR> With that adjective it sounds as though you didn't think much respect was due to begin with!

In any event, the summary is very clear that this was a motion to dismiss, not a trial judgment. So your critique is likely to mislead.

And yes, the court left open the option for plaintiff to replead. But I would suggest that does not do much to mitigate the extent to which the court's reasoning here as to how the agreement could limit a claim of copyright is questionable.

But thanks for your comments. I just did not feel that your word choice reflected well on our profession. Let's try to be friends anyway!

</comment></comment><comment><USER3> I looked up the case [1]. The copyright claims, as well as one of the claims for breach of contract, were dismissed without prejudice, which (as far as I understand) means he failed to allege enough facts to support his claim, but can come back and try again. Of the claims that were dismissed with prejudice, one of them were outside of the statute of limitations, one of them were a claim of breach of contract because his account was terminated (dismissed because the contract explicitly allowed TD to do this), one was a claim of "trespass to real property", which I believe relates to a claim that TD had physically destroyed his hard drive, and one was dismissed because (from what I can tell) it wouldn't apply to the sort of relation the two had.

I'm not a lawyer and so can't say conclusively, but it seems to me the court isn't saying "yeah they're right you don't have copyright here" as much as they're (for the most part) saying "you didn't include enough information in the suit, come back and try again".

[1] [https://docs.justia.com/cases/federal/district- courts/alaska...](https://docs.justia.com/cases/federal/district- courts/alaska/akdce/3:2016cv00136/55660/62)

</comment><comment><USER4> Am I understanding it right? Ameritrade provides an API, developers using it don't own the copyright in the code they write because it's considered derivative work, Ameritrade can do anything it wants with that code (but how did they get it?).

I wonder if any of us could do the same if we had the code. Anyway, why should one want to use that API now?

Java API was deemed to be not copyrightable if I'm not wrong. That is not an online API but does it matter and is it a precedent? Apparently not, maybe because of the EULA. Imagine if Java came with a license saying that developers don't own their Java code. Probably we would have forgotten Java by the end of the 90s.

</comment><comment><USER5> That doesn't make sense. As soon as the developer wrote the code (I.e. fixed it in tangible form) he had copyright in it. Copyright cannot be transferred except by a specific written transfer, which doesn't exist in this case.

<comment><USER6> Not really enough information to go on here. If there was something in the agreement prohibiting "derivative works" it would seem that TD Ameritrade could prevent the developer from making use of the service-derived product, but as you say, this shouldn't invalidate the developer's copyright or give ownership to TDA. The actual EULA text would have been useful here.

</comment></comment><comment><USER7> It would be so much better to identify "TD Ameritrade" instead of "Online Platform" in this HN Title.

<comment><AUTHOR> I try to make the analysis more about the facts and the situation rather than about parties' identities. I don't want to make it sound like I have any kind of agenda toward a particular type of entity. I hear what you're saying though.

<comment><USER7> Here this party identity adds a lot of clarity. Online platform is very ambiguous as to what it even is that is being dicussed. And the litigation is the result of actions of a specific company.

</comment></comment></comment><comment><USER8> Good things EULAs are not enforceable in my country. No one ever reads them.

<comment><USER9> Which country?

<comment><USER8> Norway. We have strong consumer protection rights that you cannot sign away. Also laws about unreasonable contracts.

<comment><USER10> However, strong consumer protection rights generally only protect consumers. Professionals writing commercial software and working for a company are not consumers.

(At least this is how it works at the neighbour, Finland, and I think it is the same most everywhere).

<comment><USER11> You are probably on to something. Most Norwegians are so used to being protected as consumers so a lot of the time they are taken by surprise when acting as professionals.

<comment><USER8> True, always funny when someone skimps on taxes by buying a computer for private use as "a professional", and then gets angry when it wont get fixed for free.

But with that said, I think most stuff in an EULA wouldn't be enforceable even in a professional context. And the worst thing to happen when breaking an EULA would probably you lose your right to use the product, not whatever they wrote in the EULA.

</comment></comment></comment></comment></comment></comment><comment><USER12> Two questions: is this a fraud? That is, is this a way to misrepresent the intention of the provider? And if it is, is it punishable as such?

<comment><USER13> TOS are usually there to keep the provider safe from such claims. By most TOS the user has close to zero rights. Legal people know what they are doing.

</comment></comment><comment><USER14> Why are some user names green on hn?

<comment><USER8> They are new. Probably to spot trolls and astroturfing, I guess.

</comment></comment><comment><USER15> More of this sort of large corporate skullduggery please.

Then perhaps there will be enough political pressure to get the scam stopped.</comment>


Show HN: A puzzle game inspired by functional programming, written in PureScript - <AUTHOR> http://david-peter.de/cube-composer

<comment><USER2> PureScript is a game changer. Compilation is fairly simple (unlike GHCJS), full Haskell'ish type system and modern/compact syntax, picked up a lot of momentum lately.

It find it by far the best AltJS implementation currently available.

Have a look at the code implementing the transformer functions, so clean!

[https://github.com/sharkdp/cube- composer/blob/master/src/Tra...](https://github.com/sharkdp/cube- composer/blob/master/src/Transformer.purs)

Nice demo!

<comment><AUTHOR> Thank you! I started this project with plain JS + lodash, went on to JS + ramda and ended up using PureScript. I absolutely recommend it. I also have been using Haste before (Haskell to JavaScript), but I really like the lightweight architecture around PureScript, the super-simple FFI and the generated JS.

<comment><USER2> Thanks for these insights. I used the Fay project to compile Haskell to JS for some time. But in the next overhaul I probably switch to GHCJS, as for my project interop with server-side Haskell code it a requirement.

If I did not need that interop I go for PureScript in a heartbeat. CoffeeScript/TypeScript/ES6/Opal, they all don't come close to what PureScript delivers.

</comment></comment></comment><comment><AUTHOR> This is still work in progress. I would love to hear your feedback.

GitHub link: [https://github.com/sharkdp/cube- composer](https://github.com/sharkdp/cube-composer)

<comment><USER3> * Rather than saying to hit 'R' to reset have a button (keyboard can work too, but only allowing the keyboard goes against the rest of the game which is mouse/touch driven).

* On the right have the words "Goal" on top of the image, maybe put a box around it or something to separate it from the other images that appear.

* For the first level you need a "pit of success". Limit the available functions to only the one that works.

* The first few levels need to introduce and teach the user how to use each and every function separately. Say for 12 levels the first three teach/introduce a concept, the next 6 are actual simple/medium levels and the final 3 are the more difficult (but not impossible) levels before repeating and introducing a new concept.

* When you solve it don't put the message up top in little text, but next to the program and bigger bolder so the user knows. Ideally with some sort of css transition.

* When you solve it put a link to "Play next level" or automatically go to the next level after a short animation or something

* Only expose levels after you have beat them.

* After doing a function rather than instantly showing the next cube put a .5 second opacity transition (or something) so the user will notice what they did.

Lastly, but most importantly play test in person. Show someone your game, but don't say a single word. Write down everything they do wrong and debate how you can improve it and try again. Do not give them advice on what to do. If they can't figure it out neither will a ton of random people on the internet (I didn't the first time I saw the game and just closed it as I didn't realize I had to drag it over and I was on a tablet and saw the 'R' command and figure there was other keyboard only commands.)

Remember it is _not_ fun to lose. Hard is fun, but you want to guild the user to have fun, be challenged, and build on the game concepts you have taught them. It isn't fun to give up because you have no clue what to do.

If you build in a way that users can create puzzles and share them (say by putting the user generated level in the url) the game would have more life as users spread the word by showing off their creations.

<comment><USER4> > After doing a function rather than instantly showing the next cube put a .5 > second opacity transition

Please, no animation. Instantaneous feedback is perfect as it is. My 2cts.

<comment><USER3> Yeah .5 seconds is way to long, the reason for the animation is that in this game you are looking at the list of functions and only after you are done does your eyes have time to register changes elsewhere. If it has already changed your brain has to try to figure out what has changed when the system can provide hints.

Because you would rapidly move them around changing it to be 0.05 or something just slow enough so that your brain would notice movement above, but not slow enough to impede in trying new things.

</comment></comment></comment></comment><comment><USER5> Awesome game! The stackequal function is confusing though... Any help or description would've saved a lot of time...

<comment><AUTHOR> I couldn't come up with a better name for this function. I will try to add a help-panel or introductory chapters to make this more clear. Thank you very much for the feedback.

<comment><USER6> Ah.. it's like .. smush equal neighbours together .. yeah, tricky to name!

</comment></comment></comment><comment><USER7> Maybe I've just stared at the page too long looking for what to do, but I had to come into the comments to figure it out. My eyes completely glossed over "Goal" as it doesn't really stand out and I just assumed that shape was a logo. Could use some short text saying something like, "Make the left image look like the right image."

Otherwise cool/fun game concept, although like others have mentioned, stackEqual is a bit confusing as to what it does.

<comment><AUTHOR> Thank you for the feedback. I will definitely work on these two points.

</comment></comment><comment><USER8> Great implementation! I'm researching functional programming front-end solutions for my latest web app project. PureScript has been on my radar but would love to hear about others' experiences. Has anyone else here used PureScript? What was your experience like?

</comment><comment><USER9> I like also your geography quizz (not original but it's a nice implementation):

[http://david-peter.de/quizzity/](http://david-peter.de/quizzity/)

</comment><comment><USER10> Thi is damn fun, well done. Any plans for a mobile version?

<comment><AUTHOR> Thank you. The drag and drop should work on mobile (I use [https://github.com/RubaXa/Sortable](https://github.com/RubaXa/Sortable)). I definitely have to make the layout responsive, however.

</comment></comment><comment><USER11> Always nice to see isomer [0] in the wild :) Cool game - I hope the library didn't slow you down too much!

[0]: [http://jdan.github.io/isomer/](http://jdan.github.io/isomer/)

<comment><AUTHOR> On the contrary. It was a pleasure working with Isomer! It's an integral part of the game .. thank you very much!

</comment></comment><comment> ilya-pi This is so amazing, I love it so much! Very challenging, yet highly entertaining.

<comment><AUTHOR> Thank you! I haven't really worked on a nice 'transition' in difficulty. I will try to add more introductory levels with explanations in the future.

</comment></comment><comment><USER12> Amazing game!

On the "Fort" level, the map [blue][white]->[blue] removes the [blue] block, rather than the [white]. This is a different behavior than the map [red][red]->[blue], which converts two [red] into one [blue].

<comment><AUTHOR> Absolutely! I fixed it: [https://github.com/sharkdp/cube- composer/commit/ece7c6dbeb0b...](https://github.com/sharkdp/cube- composer/commit/ece7c6dbeb0bed0f11dfc4fa292fbc2f1f073175)

Thanks for the feedback!

</comment></comment><comment><USER13> I know this is not reddit, but I couldn't resist being a bit juvenile about this =) [http://imgur.com/9W6DGFj](http://imgur.com/9W6DGFj)

</comment><comment><USER14> I solved the second one using stackEqual. Still have no idea what it does...

The interface is really fun though, and the blocks look nice. Only the "Solved!" text is quite small and not easy to spot.

<comment><USER15> stackEqual stacks neighboring blocks of the same color on top of each other.

<comment><USER16> Not quite, it stacks neighbouring columns with the same pattern of colours on top of each other, e.g. [http://i.imgur.com/35N4tPu.png](http://i.imgur.com/35N4tPu.png)

The columns have to be the same pattern exactly (same height, same colours)

<comment><AUTHOR> Exactly! The code for stackEqual is here: [https://github.com/sharkdp/cube- composer/blob/master/src/Tra...](https://github.com/sharkdp/cube- composer/blob/master/src/Transformer.purs#L45-L49)

I should definitely add a better description somewhere!

</comment></comment></comment></comment><comment><USER17> This is very challenging.

Very very challenging</comment>


Streaming Files from/to MongoDB with ReactiveMongo and PlayFramework - <AUTHOR> http://stephane.godbillon.com/2012/11/28/writing-a-simple-app-with-reactivemongo-and-play-framework-pt-3-gridfs.html

<comment><AUTHOR> By the way, the repository of the application discussed in this article is on github: <https://github.com/sgodbillon/reactivemongo-demo-app> :)</comment>


Justin.tv goes High Def - <AUTHOR> http://blog.justin.tv/2008/11/justintv-goes-high-def.html

<comment><USER2> "Im pleased to announce that today Justin.tv officially supports DVD quality broadcasting using the h264 video codec - and it even works on a Mac!"

DVD quality, not HI-DEF (720p) But I guess DVD quality on the internet is Hi- Def when you compare to youtube quality.

<comment><AUTHOR> You can broadcast in 720p resolution, but most users choose not to since the player is only 320x240 (unless you go to full screen mode).

</comment></comment><comment><USER3> Maybe I'm missing something, but the suggested HD examples still look like shit.

<comment><USER4> Looks like /officecam has a bad usb cable. We'll fix it soon.

</comment></comment><comment><USER5> Out of curiosity, what's the average percentage increase in bandwidth required to stream a H.264 stream over the Sorenson/On2? Anyone know?

<comment><USER6> Increase? Why would a better format use more bitrate for the same quality?

Generally, H.264 is 2-3x (or more) better than FLV1/Sorenson H.263, and 1.5-2x better than VP6, but it depends on the encoder and the bitrate. In general, the lower the bitrate, the greater the advantage of H.264. Note the encoders vary dramatically: Apple's, for example, is so bad I would be completely unsurprised if VP6 won out in a comparison.

Fortunately, basically everyone doing H.264-in-Flash is using x264. Unfortunately, not all of them have a clue what they're doing...

<comment><USER5> _Increase? Why would a better format use more bitrate for the same quality?_

HD is not of the same quality.

<comment><USER6> Sure, but HD doesn't imply H.264, nor does H.264 imply HD; the choice of resolution and the choice of video format are completely orthogonal.

<comment><USER5> Pretty much every video site out there (from YouTube down) are encoding HD videos at higher resolution. For example, YouTube's SD video is 320x240 and their HD is at 448x336. What you're suggesting is technically true but not really based in reality.

<comment><USER6> What you said isn't true either--and I can confirm it, because two weekends ago I met with the guy who wrote the Youtube video encoder ;)

Youtube has no "HD video"; the "High Quality" mode just sends you to the H.264 video, which isn't there for the primary purpose of being "Higher Quality"-- its in iPhone-compatible Baseline Profile, for the purpose of being compatible for mobile devices, in particular phones and such that they intend to provide support for. If Google was really aiming at "higher quality" they would have chosen full-on High Profile H.264, but they intentionally chose Baseline for mobile compatibility. Apparently storage was at enough of a premium that they explicitly chose not to have two formats available, and just chose the most compatible option.

The resolution chosen for the H.264 encoder is different _because its meant to be targeted at the iPhone_. Again, the "higher quality" mode is a secondary feature; the real purpose is to target mobile devices.

Edit: Also, reading your post, what you said makes no sense--"they're encoding HD videos at higher resolution", well, obviously, that's what HD means. Are you sure you didn't mean to say "they're encoding H.264 videos at higher resolution"?

<comment><USER5> _what you said makes no sense_

Everything I said is absolutely correct. It's just that you are misconstruing what I said. Go check YouTube resolutions and then tell me they're not correct. You're the one making spurious connections between television HD and what YouTube calls HD, not me.

Again, re-read what I said and not what you think I said.

1) YouTube's SD video is 320x240

2) YouTube's HD video is 448x336

3) Their HD uses MORE bandwidth

The fact that they use it for iPhone and who knows hat (G1 maybe) is completely inconsequential since you can play almost any YT video in HD by appending a variable to the end.

<comment><USER6> _2) YouTube's HD video is 448x336_

"HD" is not an arbitrary term that means "higher resolution than what we had before". Unless perhaps you're in marketing.

If you told anyone on the Youtube team that their "&fmt=18" was "HD", they would probably laugh you out of the room.</comment></comment></comment></comment></comment></comment></comment></comment>


TCP/IP over audio  - <AUTHOR> http://www.anfractuosity.com/projects/ultrasound-networking/ <comment><USER2> Remember the BBC micro and other computers of that era, which used audio tapes to save programs? I recall a BBC TV programme about technology from when I was a kid. In at least one episode, they played such a tape on the air, so that we could record it (by holding the cassette recorder near the TV speaker), and then load the program ourselves.

Is this a false memory or can someone else confirm seeing this?

<comment><USER3> It's probably true. The rate of data on the tapes was probably slow enough that even over a lossy TV broadcast signal it would still survive.

I think the Commodore Cassette drive was 50 bytes/sec?

<comment><USER4> I was able to copy Commodore cassettes using my father's high end audio setup. A friend with a standard two-tape deck ended up with corrupted tapes though, so the bit rate must have been close to the limit of the medium.

<comment><USER2> Your friend probably had a problem with azimuth (head alignment), which can usually be fixed with a small screwdriver:

[http://www.endino.com/archive/cassettes.html](http://www.endino.com/archive/cassettes.html)

</comment></comment></comment></comment><comment><USER5> As an aside, the tun/tap interface in Linux is a fantastic way to muck around with lower-level networking without getting into the kernel or hardware. Essentially, it creates a virtual network interface, except instead of hardware, data goes to your userspace program. You can then just do a read() to grab packets and do whatever you want with them, using Python, Ruby, or anything other programming language.

I wrote a prototype proxy in Go that can split network traffic over two Internet connections using some hacked-together tun code[0] and everything happens in userspace.

[0] [https://github.com/erjiang/tuntuntun](https://github.com/erjiang/tuntuntun)

<comment><USER6> Yeah, I'm trying to tunnel TCP packets over Facebook chat[0] (to get some free Internet when using "social media" mobile plans).

[0] [https://github.com/matiasinsaurralde/facebook- tunnel](https://github.com/matiasinsaurralde/facebook-tunnel)

<comment><USER2> Interesting. Have you tried using a DNS tunnel? It would be similarly slow if it worked over your connection.

<comment><USER6> Yes, both ICMP and DNS tunnels work on most of the mobile plans here (I'm from Paraguay, South America). We had an interesting experience with the Internet.org campaign, they signed an alliance with the biggest telco (Tigo - Telecel, Millicom International), so all the users are getting free Facebook access. This small project I'm trying to code involves a critique to the Internet.org campaign ("free Internet for poor countries"), Internet != Facebook.

</comment></comment></comment></comment><comment><USER7> There have been several threads on HN about ultrasonic networking in recent months. One was a simple chat client, called Quietnet [1]. The other was malware called BadBIOS, which has the ability to communicate over hi-def audio [2].

[1] [https://news.ycombinator.com/item?id=7024615](https://news.ycombinator.com/item?id=7024615)

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

<comment><USER8> The alleged ability to communicate over audio, since its very existence is questionable.

<comment><USER9> Does nobody here remember modems? You take an old 2400 baud modem that's supposed to work over a crackly telephone line - www.engadget.com/media/2009/05/090527-300baud-01.jpg

that's literally how TCP/IP was invented. This stuff - pure, analog audio - went all the way up to 28.8kbps, which was the limit of the line bandwidth. Why not just take those protocols and put them into a speaker and microphone. Why bother writing new protocols? Just start with modem protocols and play with the frequencies.

Home Internet connectivity was literally born out of TCP/IP over audio...

<comment><USER10> Communicating through copper wires using electrical signaling at audio frequencies is _very_ different from communicating through air using acoustic waves. Even assuming 'perfect' speakers and microphones you have completely different transmission effects than you have with low frequency electrical signals in copper.

<comment><USER11> Please do thorough research. Modems were originally, more often than not, used with acoustic couplers.

<comment><USER10> It's unclear what difference that makes in the context of my post. The fact remains that the modulation and signaling protocols developed for use in modems were designed within the constraints of electrical transmission across miles of copper wire, not through sounds waves in an unknown acoustical environment. The constraints for the two situations are entirely different. Acoustic couplers are designed to minimize any acoustical impact of their use to avoid the exact acoustical problems you'd have transmitting across a room.

<comment><USER12> Yes. Also, the upper limit on the dynamic range of the telephone network is somewhere around 3400 Hz, well within the range of human hearing. This protocol is designed to send data in a frequency range that most people can't hear, or at least can't hear very well.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is neat, but for a teenager, 18kHz is more "instant headache" than "ultrasonic".

</comment><comment><USER14> Amateur radio folks have been doing this for a long time, since the early 1990s at least.

<comment><USER15> Radio is electromagnetic waves, not sound waves.

<comment><USER16> He's more correct than you think. Since the 90s there's been an explosion of sound card based digital modulation schemes. Usually you see a waterfall spectrum from 0 to "whatever" and you click where you want to operate. Essentially the attached SSB transceiver is a linear transverter from audio to some RF.

So instead of tuning your radio to 7.070 MHz and clicking on the computer waterfall at 1200 Hz (aka operating at 7.0712 MHz) you just unplug the radio from the computer, use speaker and mic instead of something plugged into speaker and mic jacks and click on 18 KHz or whatever.

In the early days of PSK-31 and other modes you did demos at radio club meetings and whatever by just letting it rip over the speakers. Loud and annoying but works pretty well across a room or further.

The main limitation is most SSB communications radios cut out around 3400 Hz at the high end so the software that is written for sound card digital modes cuts out somewhere above that, but sometimes not as high as 25 KHz or whatever, because 99% of the users and devs will never fool around with ultrasound.

Because I like to use a HF modulation mode called Olivia I mostly use an old version of DM780 software (from when it was free) and multipsk (free) although I could use FLDIGI (which is also free). In my infinite spare time I'll see what unnatural limits have been built into the software. This topic of ultrasound networking comes up on HN like clockwork every week or so, so I'll report back next time.

(Edited to add, one thing I like about multipsk is the, um, innovative UI. Go to images.google.com and take a look.)

</comment></comment></comment><comment><USER17> Side question: UDP seems to be the preferred protocol for VoIP-type of services. While the size of a UDP message is generally much larger than that of TCP, and some missed UDP messages are acceptable (analogous to cellular communication some signal weakness/loss is acceptable), any other strong reasons people prefer UDP over TCP in VoIP?

<comment><USER18> What happens when packets are dropped in UDP? A bit of audio corruption.

What happens when packets are dropped in TCP? A hard-to-predict amount of delay. And retransmission of audio data that you might just throw out anyway. (There are alternatives to discarding the data that should have already been heard, like temporal compression, but that's hard to do right, too.)

</comment></comment><comment><USER19> In the old days, they used to call this a "modem". Long live the Hayes 1200 baud modem of the early 1980's.

</comment><comment><USER20> Is there any step-by-step setup guide for dummies? I'm entirely new to gnuradio and have no idea how this is supposed to work. It seems very interesting though!

By the way, I'm using Linux Mint 15 and fairly experienced with Debian-based Linux systems.

</comment><comment><USER21> I couldn't see any information on the linked page - anyone know what the latency and throughput characteristics of this set up are?

Would be very interesting to understand how audio attenuation impacts the TCP/IP connection.

<comment><AUTHOR> I haven't done proper throughput tests with it yet.

I'll see if I can dig out a pcap file I took using it, which should give you an idea of the latencies involved.

[Edit] I've just updated the page with a wireshark screenshot which shows the latencies and also a link to the pcap file.

Something which I'm keen to look at doing is extending it beyond 2-FSK, to improve the throughput.

<comment><USER22> Definitely, to QQAM encoding and you should be able to get a decent baud rate out of it. I believe both QAM and QQAM are built into gnuradio as encoding options.

</comment></comment></comment><comment><USER23> How is it that they receive and transmit ultrasonic frequencies with a computer sound card? Is there not a low-pass filter at around 22KHz on inputs and outputs of all sound cards?

<comment><USER24> The built-in audio on most PCs these days supports 96kHz or even 192kHz sample rates.

<comment><USER25> The DAC may sample at that resolution, but it's another matter if the driver will pass an ultrasonic frequency. Looking at a few datasheets from various manufacturers, I don't see any mention of bandpass filters. So either they don't have them or they don't think it's worth mentioning.

</comment></comment></comment><comment><USER26> This to me is incredibly awesome. The question is, could you use radio frequencies meant for speech/music for it? I think so, since morse code is sent on these same frequencies. What about streaming video over short wave radio?

<comment><USER27> > What about streaming video over short wave radio?

That's what TV broadcasting does. But it's radio (electromagnetic) waves, not sound waves.</comment></comment>


Review of Studies About Standing Desks - <AUTHOR> http://www.fastcodesign.com/3045217/evidence/everything-science-knows-right-now-about-standing-desks <comment><USER2> OT, but this image from the article:

[http://b.fastcompany.net/multisite_files/fastcompany/imageca...](http://b.fastcompany.net/multisite_files/fastcompany/imagecache/inline- large/inline/2015/04/3045217-inline-i-1b-everything-science-knows-right-now- about-active-desks-copy.jpg)

looks like hell made real on earth. Only thing missing are the demons forcing workers trying to escape back into the pit of anxiety.

</comment><comment><USER3> I see no mention of the fact that lots of people who swore by treadmill desks also started swearing at them after about 6-9 months.

The problem is that your head is supposed to move when you are walking. When you are working at a computer, your head has a fixed point that you are trying to make stable. This is simply untenable posture and causes all manner of problems.

I wonder if that kind of problem holds for just standing, though.

<comment><USER4> Probably solved after the 4k VR displays arrive.

You would look rather ridiculous walking on a treadmill with a keyboard, wearing a Rift or something. But I think this could be the optimal setup.

<comment><USER5> Sadly not - I've got eye problems from staring at a screen 8 hours a day. Now I have to use an app which forces me to look out the window every 10 minutes and focus on something at a different distance.

</comment></comment></comment><comment><USER6> "did lose weight, though they experienced no changes in body composition, such as body mass index"

They got shorter from using standing desks? Only way you can lose weight but not change your BMI...

<comment><USER7> Taken literally, yes, but I'm guessing what it actually means is lost _fat_. Assuming similar mass was added in muscle, BMI would remain the same. (BMI not being a terribly useful metric...)

<comment><USER8> Actually, BMI _is_ a terribly useful metric (and it's unfortunate bashing, nowadays, is an echo chamber phenomenon in fitness circles around the web).

The study this is referring to has a small- _ish_ _n_ (36), so, no big deal here - it seems that they took body composition measurements (among many others) without a significant overhead, they even built a lab within the premises of the corporation they were doing the study in. And they got very rich data with it (although the difference in body fat didn't reach significance, others such as waist circumference did).

But imagine that they were doing a different study. Something like a cohort, longitudinal and distributed: studying various corporations which use standing desks during a long, long time (a decade?). This would imply many different people collecting data in different context and different times (and, effectively, bothering even more people). Building labs or ensuring similar equipment across the different sites would be very expensive and laborious - not to mention error-prone! Just imagine the overhead of getting body composition indicators - even something simple as asking people to measure their waist, but during a decade across N sites.

In this kind of large study, a seemingly simplistic but nonetheless standardized (and, in a way, normalized) indicator such as BMI is an extremely helpful tool. Imagine you want to do an analysis not by weight, but by by "obesity" ranges, or check if "obesity" status changed: getting body composition is nearly impossible, but using the BMI pre-established ranges (lean, normal, overweight, obese) will actually be feasible (you just need height and weight!). And yes, although a bodybuilder will be considered overweight or obese by BMI, remember this is a study with a large enough _n_ \- edge cases will eventually average each other and BMI will hold true for the sample. The BMI will be a cost effective (and feasible) solution to analyse something more than weight changes.

<comment><USER9> In that case BMI gets misused a lot. The bashing comes because whilst it may be useful on a large statistically significant population it is nearly useless at an individual level. One can take two people of identical BMI and one can be actually very fat and the other very slim.

<comment><USER10> The fact that it takes into account just height and weight is problematic. No consideration of bone structure or body frame.

At my absolutely lightest, when you could see every rib sticking out, my BMI was still comfortably in the range considered overweight. If I were to live through the Bataan death camps, I might get down to skin and bone enough to be in the normal range.

<comment><USER8> > The fact that it takes into account just height and weight is problematic. > No consideration of bone structure or body frame.

That's a bug, not a feature, if you allow me to grab the expression from software. It's problematic as any other indicator has "problematic" features.

My point being: when you assess any indicator, you can't look only at it's ability to correctly reflect reality (validity). You'll also have to consider other stuff: is it cheap? can I trust people to use it correctly? can it be used consistently? Taking into account only height and weight will diminish validity, but give you positive answers to these three questions. It's a trade-off (and, IMHO, one that's being bashed excessively, considering the empirical evidence saying it's not that "invalid" at all).

Compare it with e.g. skinfold estimation of body composition: skinfold estimation is more valid, yet science shows us that it requires a highly trained specialist for it to be reliable (i.e. to do it consistently; and even with professionals, there's not much consistency). This is also _problematic_ , but - again - it's a bug, not a feature.

> At my absolutely lightest, when you could see every rib sticking out, my BMI > was still comfortably in the range considered overweight.

... and that's you being an outlier, or close. :) I'm one as well; also overweight, by BMI standard. But I have to consider that my care with nutrition and fitness should also be close to outlier in nature, regarding population in general.

Knowing this, you and I (and our physicians) will take it into account. And - if the need arises - use another metric. I do both skinfold estimation of body composition and waist circumference measurement but rely mostly on the latter for tracking progress (I'm not a professional and, of course, it's _me_ measuring _myself_ , so I choose the method where I might mess up less).

<comment><USER10> I'm not so sure that I'm really an outlier, to be honest. I think the data that the BMI calculations are based on is outdated. It's the same numbers you see from New York Life actuarial tables from the 40s and 50s, when big chunks of the population experienced malnutrition.

Quite honestly, I have no idea how someone could be 6'2" and only weigh 148 pounds, which is the bottom end of "normal" BMI, according to the NIH[1].

[1] [http://www.nhlbi.nih.gov/health/educational/lose_wt/BMI/bmi_...](http://www.nhlbi.nih.gov/health/educational/lose_wt/BMI/bmi_tbl.htm)

<comment><USER8> Although the formula is (way!) older, the BMI was imported to public health in the 70s and the categories were devised by the NIH in 1985, slightly revised in 1998.

I also feel the example you gave is extremely low, but less so if you consider the subject as a female, don't you think? It has a BMI of 19, which, on men, I feel most physicians would frown upon. Bear in mind _national_ standards; I'm from Portugal, the normal here might be thinner.

As a curiosity, in France and Spain fashion shows can't _use_ models with BMI > 18\. Your example minus 8 lb wouldn't even be allowed in fashion shows, where people are _expected_ to be ungodly underweight. As such, I think a physician would also interpret this as dangerously low value. Also, it seems to me that this is a great example of how BMI can be very useful! Waist circumference, percent of body fat or other body composition indicators would actually be worse to indicate a underweight person in this case..

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I have been doing this for about a week. I don't actually have a standing desk though. I just put the 24 inch display and my small mechanical keyboard on top of my tower cabinet (Which is already on a table). This set up places the display at my eye level and the keyboard at just below chest level. So I don't actually have a place support my hands, and I just go 'hands down' after typing something. And typing on the keyboard at a little below chest level feels really great. Because you don't have to bend your wrists up, while typing, as you would need to, if the keyboard was a bit lower (as shown in the pictures in this post).

It actually feels great. (I have a chair on stand by though). The biggest advantage I can see is that, it is easy to take a break and move around, when you are already standing.

</comment><comment><USER12> I wonder how one compensates for the Hawthorne effect? [https://en.wikipedia.org/wiki/Hawthorne_effect](https://en.wikipedia.org/wiki/Hawthorne_effect)

</comment><comment> lloyd-christmas I'd be curious about studies on something like programming. Many of these talk about cognitive function and typing ability, but they don't mention the actual tasks being done (that I can find). With all due respect to everyone else, programming is a different beast altogether. I worked in finance at a computer all day, and my requisite attention level for that job was significantly different than when I switched to programming full-time.

<comment><USER13> I would bet that the studies focused on cognitive function and typing ability because they're objectively measurable, and much more repeatable than, say, measuring the significance or difficulty of the tasks.

</comment></comment><comment><USER14> look at the pictures of people using laptops with standup desks. Their head is pointed down, that is terrible for ergonomics.

Proper standup desks should have a different height for the keyboard and the monitor.

<comment><USER15> Hanging 3 kg weight with neck muscles all day kills the neck.

I made interesting observation in the work few months ago.

All tall people (> 1.8 m) tend to use monitors and keyboards every time they have opportunity. Smaller people are more comfortable using laptops in the office. Tall people have to bend their head downwards more and they have to give up terrible ergonomic position first.

<comment><USER4> Yes, I'm tall and I can confirm this.

I try to get the center of my displays at the height of my eyes.

But I have a convertible notebook, so I will probably buy a keyboard and use it in "tent-mode" in the future.

</comment></comment></comment><comment><USER16> > In one year-long intervention that included lean, overweight, and obese > workers, the 36 total participants lost an average of 3 to 7 pounds.

Now, that's a useless statement if I've ever seen one. The arithmetic mean is pretty much meaningless if the group varies that much.

</comment><comment><USER7> Cool, nice to see. I've been wanting to convert my current sit/stand desk [1] to a treadmill setup for a while, but I'd like to work out a way to maintain the ability to relatively easily switch back to seated mode. Still need to think on that a bit.

[1] [http://www.tempestblog.com/wp- content/uploads/2015/09/201508...](http://www.tempestblog.com/wp- content/uploads/2015/09/20150817_201303.jpg)</comment>


Ask HN: Wikipedia Unbiased Alternative? - <AUTHOR> <comment><USER2> It can't exist. Humans are biased. Either humans or human-trained machines are the only ways to produce a wiki or other knowledge base.

</comment><comment><USER3> Wikipedia is objective on many articles. What "bias" are you referencing?

</comment><comment><USER4> Yes. What bias do you perceive and how might it be avoided in the future?

</comment><comment><USER5> How is Wikipedia biased?

<comment><USER6> It's written by people. How could it not be?</comment></comment>


Referly (YC S12) Launches API: Now Any Site Can Have A Referral Program - <AUTHOR> http://techcrunch.com/2012/07/23/referly-gets-more-social-launches-api-now-any-site-can-have-a-referral-program/

<comment><USER2> Interesting. That API could be very useful, but they're going to have to watch out for BlackHatters - I bet they are already looking for ways to exploit their system.

<comment><USER3> You are definitely right, and while we've thought through several threat models blackhat marketers are endlessly creative. Might make for a good blog post depending on what we learn

<comment><USER2> The major one I can think of right now is using lifted financial information and Mechanical Turk to make new accounts and use it to juice SEO or FB fan pages.

There are some that have made amazing use of Mechanical Turk without actually getting caught - that is one vector I think the affiliate industry has greatly overlooked.

<comment><USER4> Can you give us some examples of who has done this and how they avoided getting caught on Mechanical Turk? I've had legitimate HITs removed for apparently violating policy recently, so in my experience AWS is fairly vigilant in looking out for HITs that attempt to juice SEO or promote.

I guess it could work if you abstracted it enough so that it's not apparent to the worker, but it wouldn't be trivial to execute. Using VAs on Odesk might work better.

</comment></comment></comment></comment><comment><USER5> I am also not sure how "customer acquisition as a service" is different from the dozens of affiliate networks out there. NeverBlue, Azoogle, Ads4Dough, Epic etc. "Businesses get to define how much they are willing to pay for a sign up"? This is old hat to experienced affiliate marketers.

<comment><USER6> And there are already platforms for companies to create programs on their own, like hasoffers.

</comment></comment><comment><USER7> when is referly planning on allowing referrers to claim rewards? re: <http://cl.ly/image/1E1H381q0p1N>

<comment><USER3> Very soon, stay tuned!

</comment></comment><comment><USER8> Instead of the button, is there a way I can just give each customer a unique referral link?

I'd much prefer to simply give them a link they can pass along instead of requiring them to click on a button off my website.

<comment><USER3> Absolutely, using the API you can generate a link and give it to them however you wish

<http://refer.ly/api/docs/links>

</comment></comment><comment><USER9> What percentage does Referly take per payout?

<comment><USER3> Referly does not currently take a percentage of any payouts

</comment></comment><comment><USER10> Is there a way to send users rewards that are not straight cash? We would like to reward users with coupon codes, or links to pages where they can select a free t-shirt and such. Is this ability on the roadmap?

<comment><USER3> Yes, we currently do not offer this in the API but have a few customers trying this with other forms of rewards. Email firstname.lastname@example.com and we can help you

</comment></comment><comment><USER11> This is awesome.

I was just about to write a basic referral system for my site but this looks like it fits the bill.

I'm going to give it a try.

<comment><USER12> There's also Zferral. FYI.

</comment></comment><comment><USER13> How far along is the ruby API? I'd throw this up on my business for a little just to test it out, see what happens

<comment><USER3> We are looking for open source contributors who would be interested in building the Ruby lib - I'll post a $500 bounty here. Please email me firstname.lastname@example.com

We posted a bounty for the Python library this morning and it is already done, so I'm hopeful this can go quickly as well.

<comment><USER13> Would love to do it, but things are heating up at my business and it's hard to keep up as it is :( I'll definitely check back when the ruby lib is out

</comment></comment></comment><comment><USER14> I don't understand the full concept. How does this compare with platforms that allow you to set up affiliates?

</comment><comment><USER15> I'd be overly cautious with this company. I've had over the minimum required to cash out for a month, and they will not let me cash out my account. The claim is that there are still in beta, so they won't pay you yet. Will they ever exit beta? Will I ever be able to cash out?

<comment><USER3> We are happy to pay you directly via Paypal, please email your information to firstname.lastname@example.com and we can process this for you immediately. We don't have a self-service process yet.</comment></comment>


Show HN: 1News – Latest News in Short - <AUTHOR> http://www.1news.me/ <comment><AUTHOR> Just the gist --> All the news in short bits Just the latest --> Updated in real time Just the relevant --> Artificially Intelligent News Engine picks only the important phrases

8 CATEGORIES

\- TOP - ENTERTAINMENT - SPORTS - TECHNOLOGY - \- BUSINESS - POLITICS - LIFESTYLE - SCIENCE -

World News / Choose your country. - Australia - India - USA - UK (For now. More to come.)</comment>


Ask HN: How To Train Yourself Not To Require "Daily Tasks" In Order To Work? - <AUTHOR>

Was just doing some thinking...
From day one, school trains a human being to be a great "worker". By consistently providing small work projects to be completed daily for almost 20 years, I feel like my brain has become accustomed to requiring them.
Making my own todo lists works well. However, there has to be more to it than that.
How do I stop myself from being just another brick in the wall? <comment><USER2> Learn how to do these things in your head. External lists mainly exist to help your supervisor track what you are doing (so they "know what's going on"), and to help you fight your own forgetfulness.

If you have a setpoint in your mind of where you are trying to go, then simply stay focused and don't stop moving until you get there. When the load becomes too much for your short-term memory, then make a few notes to remind yourself of what you are trying to do.

Set a vague target, then leave your mind and shear willpower to do the rest.

</comment><comment><USER3> Is that necessarily a bad thing? There could be worse alternatives, such as laying on the couch and watching TV rather than, well, making something.

Perhaps you can think of a long-term project that you always wanted to do -- write a book, build something, etc. -- and split it into smaller projects.</comment>


What is code? - <AUTHOR> http://www.economist.com/blogs/economist-explains/2015/09/economist-explains-3 <comment><USER2> If you haven't seen the Bloomberg version of 'What is code?', take a look.

[http://www.bloomberg.com/graphics/2015-paul-ford-what-is- cod...](http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/)

It's much longer, but also much more detailed and in-depth.

<comment><USER3> _Code: The Hidden Language of Computer Hardware and Software_ by _Charles Petzold_ is an excellent book I have recently begun to read. It's even longer that the Bloomberg post, and also such much more detailed and in-depth (-;

In fact, I found the book very enjoyable. It gives a nice pedagogic twist on how information can processed with hardware.

It has been discussed on HN here: [https://news.ycombinator.com/item?id=1936474](https://news.ycombinator.com/item?id=1936474)

<comment><USER4> I just picked this book up as well. I've been trying to find resources that go from first principles to real-world implementation of something and this is the best example I've found so far. Enjoy!

</comment></comment></comment><comment><USER5> > Worried that your job is in danger of being automated away by software? > Learning to code could be a useful insurance policy.

I often worry that we're setting ourselves up for major failure here. There is no fundamental principle that suggests most kinds of programming are any less susceptible to automation than any other kind of work. Especially the kinds of things that are taught in most "learn to code" programs – simple web applications – are increasingly commoditized or able to be built out of commodity pieces, and that trend will only increase. Another popular reason to learn to code is to do data analysis or procedural tasks for your line of business, but in the long run, those tasks are probably better served by more purpose-built tools that have more in common with spreadsheets than the types of things professional software developers do.

I guess my point is that there seems to be a meme that extolls the virtues of "learning to code" as an _end_ , rather than as a _means_ to be more effective at something _else_. I'd rather see articles about what those somethings-else are, and how knowing how to program can augment them, but those seem fewer and further between.

<comment><USER6> > There is no fundamental principle that suggests most kinds of programming > are any less susceptible to automation than any other kind of work

Well, as a fundamental principle, there's the Halting Problem.

The simplest programming tasks will be simplified to some extend or be commoditised. In much of the same way we can purchase website templates and website builders can get the trivial sites up and running with no knowledge. In the past, HTML was required knowledge to publish a blog, but not anymore.

But there's a reason most professional applications are not developed with such tools. Given that, I expect the careers of programmers that aren't IDE- pilots are safe for the foreseeable future.

Increasingly complex task will be, and already are, being automated. But so far, all that progress has only increased the programmer's leverage.

> I guess my point is that there seems to be a meme that extolls the virtues > of "learning to code" as an end, rather than as a means to be more effective > at something else.

I completely agree with that. Outside of IT, there are many areas that would benefit from some programming knowledge and are currently under-served.

<comment><USER5> Your appeal to the Halting Problem is basically why I included the "most kinds of" weasel words. As much as we don't like to admit it, the vast majority of professional programmers are doing things that are properly categorized as "the simplest programming tasks". You're right that _so far_ the automation trend has only increased programmers' leverage, but I don't think there's any more reason to think that will be an indefinite trend than there was to think automotive assembly would always be a high-skill job.

I think programming should be thought of as a useful skill (like math or writing) that for most people comes in handy in small but myriad ways, while a smaller segment of people gain more expertise and do it professionally (like mathematicians or writers). Maybe that's how most of this nascent movement is thinking of it, but it seems to me it's being sold more as a solution to the future job woes that many foresee.

<comment><USER7> >I don't think there's any more reason to think that will be an indefinite trend than there was to think automotive assembly would always be a high-skill job.

It isn't. One day even programmers will, in general, be replaced. The way I see it is that programmers will be one of the last ones to be replaced because once they are replaced, everything else that can be replaced that isn't will soon follow (as replacing programmers will send the process of replacing such jobs into overdrive).

Everyone learning programming does not solve the bigger problem for society, but it is probably one of the safest careers even if it isn't safe.

<comment><USER5> Ah, see, I disagree. There are things that are less fundamentally automatable, like interpersonal relationships, art, and research. We need to figure out how to make those sorts of things make more sense economically, rather than racing to the bottom on traditional types of labor.

<comment><USER7> Art is becoming automated. Even if it never makes it to the top tier of creativity that humans possess (and it may very well make it there), very few humans will make it to a tier high enough to compete with the automation, especially on the skill per effort chart.

For research, I haven't paid much attention to automation for stereotypical research (scientists doing science in labs), but there is a lot of automation happening in discovery process for legal research that is cutting down the number of individuals needed. I doubt it has maxed out the potential for automation anymore than other areas.

As for interpersonal relationships, they may also be possible to automate (robots, simulations, etc. that manage to cross the uncanny valley combined with increasing knowledge of how human interactions work lead me to think it is possible eventually). I expect that we will even see the world's oldest profession one day have competition from automation.

I think one key to remember with automation is that people are willing to skimp on quality to save money. So even if we cannot replicate the work of humans to the same level of quality, automation can still compete when comparing quality per cost such that the paths are not a viable career option for most people.

</comment></comment></comment></comment></comment></comment><comment><USER8> >"Writing a program and then running it is magic, in a way."

Even after 30 years in the industry it still feels this way (most days).

<comment><USER9> After 30 years of bringing things into existence via mere incantation, I still forgive them.

<comment><USER10> Once upon a time, would-be magicians believed that a mastery of obscure knowledge and arcane incantations could change reality.

We are their heirs. Unlike them, we don't have to dream or lie. We speak correctly, and earth and fire heed our call. Unliving metal stirs at our command. We summon daemons and bind them to obedience. We build constructs of pure thought-stuff, and conjure them into being through effort of will.

We are wizards and sourcerors, conjurers and magicians. We are what poets can only dream of.

<comment><USER11> We speak wrongly, and we become the sorcerer's apprentice :D

I love that little piece, I've got to save it somewhere!

<comment><USER10> "Sourceror's Apprentice" needs to be a job title for a junior engineer somewhere.

</comment></comment></comment></comment></comment><comment><USER12> Am I missing some sorta punchline? or are they shamelessly ripping off the bloomberg headline to grab more eyeballs?

I guess it's because both magazines are in the finance space and Bloomberg made waves only a few months ago with their piece that I'm having trouble not seeing this as trying to ride on coat-tails.

Edit: mediumdeviation makes a fair point, I didn't really think about the fact that economist explains is a regular column, I still think they coulda come up with a more creative title (How Programming Works, How Programmers Work, What is a Programmer, What Code Does, Java: More Than Just Coffee, Code: The Hitchhiker's Guide, etc)

re: the newspaper thing: I get a weekly, bound, glossy set of papers that can only be described as a magazine, if they wanna be called a newspaper maybe they should look more like Barron's (please don't I hate that set up).

<comment><USER13> How many other ways are there to title an article explaining, essentially, what is computer code?

"The Economist Explains" is a regular column where the newspaper (not magazine, mind you, the Economist is very particular about that) explains a wide variety of issue, mostly current but not always, as in this case, and makes them accessible concisely to those not in the field.

That Bloomberg published an in-depth report on the same issue a few _months_ ago, and this short column appearing now is merely a coincidence, and suggesting otherwise is completely ridiculous.

<comment><USER14> I'd be... surprised if it was "merely a coincidence". That's almost never how the publishing industry works.

(And I do have some info that suggests otherwise, but as I can't source it, it's anecdotal... but strong.)

</comment></comment></comment><comment><USER15>
        $ whatis code
        code: nothing appropriate.

<comment><USER16>
      $ md5 <<< code
      7844a93ad4b97169834dade975b5beff

</comment></comment><comment><USER17> Code is the highest level of specification, my RE teacher always told me.

<comment><USER18> Respectfully, that's incorrect. The requirements (ideally, in a document) are the specification, the code is an implementation of the specification. For example, you might want to software to take the FFT of something. Whether you choose to code it as decimation-in-time or frequency is up to you if the requirements do not specify.

<comment><USER19> ...And once implemented, the implementation is more specific than the "specification" (a document detailing the requirements).

That's why the OP said, correctly, that code is the highest level of specification, because nothing can be more specialized than code (as you said correctly, an implementation is less specialized than code).

Also cf. Operational Semantics (no, not denotational), which is literally the highest level of specification, and is runnable code.

<comment><USER18> it's more specific, yes, but those differences don't matter if they aren't requirements.

<comment><USER20> Those differences definitely matter if people come to depend on them.

This is really a debate between prescriptive and descriptive schools of specification ;)

</comment></comment></comment></comment></comment><comment><USER21> We just don't know.

[https://www.youtube.com/watch?v=Kh0Y2hVe_bw](https://www.youtube.com/watch?v=Kh0Y2hVe_bw)

</comment><comment><USER22> 1\. Code used in the article seems to be from [https://github.com/inueni/birdy](https://github.com/inueni/birdy).

2\. The howlong = (today-ltdate2).days line doesn't follow PEP8.

</comment><comment><USER23> It remind me a post from Bloomberg...

<comment><USER24> Yup. [http://www.bloomberg.com/graphics/2015-paul-ford-what-is- cod...](http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/)</comment></comment>


Show HN: Find the color of your IP address - <AUTHOR> https://sacert.github.io/IPAddressColor/ <comment><USER2> Boo! My ip is way too dull color :( I was at least expecting a new color of the spectrum with glitter and unicorns and cheese burgers

</comment><comment><USER3> All i see is black - is that intended? Not sure if that's my color, haha.

<comment><AUTHOR> I noticed that there were some issues with ad block enabled, I believe I fixed them. If you're still having issues, let me know.

</comment></comment><comment><USER4> Love the simplicity. Cool and nice.

</comment><comment><USER5> Pointless and amusing. Thumbs up.</comment>