CIDLib: C++ Development Environment - <AUTHOR> https://github.com/DeanRoddey/CIDLib#cidlib---a-c-development-environment <comment><USER2> I've been developing C/C++ for over 20 years on everything from large scale high-performance clusters to 8 bit embedded devices. Most of my career I have been consulting and I've had the opportunity to work in almost every domain, and I've had to work with a lot of other developers.

My thoughts are this guy is type of the developer I hate to work with most. The style and naming Windows and Borland C++ specific, so this probably grew organically from Win3.1/NT. This probably pre-dates STL, but holy cow. Given how he misuses some terminology, he is probably a self-taught programmer from days of old.

Generally, when I see that a developer has decided to use their own typdefs to represent intrinsic data types, it's a bad sign. However, what I see that this guy created his OWN class as a replacement for bool, I know I'm going to be rewriting a lot of code.

There is no way I would use this library, regardless of the terms.

<comment><USER3> It's designed to be portable. There needs to be well defined types that each per-platform driver can define such that they always are the same.

It would have been ugly and asymmetric to have some done that way and some not. So all fundamental types are defined as part of the library.

<comment><USER4> There is a huge difference in actually being portable and "designed to be portable". I think library's usefulness would increase many fold if former was the case.

<comment><USER5> Well, that's one of the reasons for open sourcing it. I'm no a Linux guy. But I know the issues very well, having worked on a lot of portable code before. And there's an existing platform driver for Linux already there, it's just very old and needs to be caught up.

</comment></comment></comment></comment><comment><USER6> I think it's cool to see projects like this! It's sort of like an "alternate history" for a C++ programming model. I agree that it doesn't seem immediately useful for most projects, but that's okay :)

I hope the author publishes more explaining some of the architecture and design choices and how they diverge from what the rest of the community has come up with. At the very least it will be an interesting comparison.

</comment><comment><USER7> Part from license:

> Do not host in any public way your own versions of this code, in whole or in > part. This repository should be the single source for the code base.

Author basically killed option to send PRs via github. I'd suggest author to use more thoughtful/professional licenses for this (LGPL) if he wants some protection. Otherwise, I'd stay away from this.

</comment><comment><USER8> It's interesting to see code bases like this. It does sort of have it all, custom build system, IDL, implementations of things like XML and JPEG. Very symptomatic of the need slowly being filled in the C++ community for a popular build system and package manager.

I hope the author reconsiders their custom license that prevents any public forks of the code base. It's already very hard to get anything out of non- standard monoliths like this, with a custom license that chance drops close to zero.

<comment><USER9> I have a feeling that the author doesn't really want people to get anything out of the library in the first place but instead people build on it as a monolith.

</comment></comment><comment><USER10> Not Invented Here Syndrome, level: over 9000

Since he mentioned wanting some 3D/gaming stuff, I randomly checked out his vector3 class. It's not usable, due to the usage of float8. Games use float4. And since it's not templated...

As for matrix4 multiplication, a core operation, it's beyond bad: [https://github.com/DeanRoddey/CIDLib/blob/master/Source/AllP...](https://github.com/DeanRoddey/CIDLib/blob/master/Source/AllProjects/CIDMath/CIDMath_4By4Matrix.cpp#L40)

<comment><USER3> That vector/matrix code is ancient and hasn't been used for a long time. There are obviously going to be some bits like that. I used to really be into fractals and ray tracing and those were just done to support that.

Since there is currently no 3D graphics in the system, there hasn't been any justification to really go back and make them better relative to a lot of other things that are more immediately needed.

Hopefully, if someone wanted to get involved and develop a graphics library they would start with those classes. Or just remove those altogether and make them part of such a new subsystem.

</comment></comment><comment><USER11> This was posted to the cpp sub-reddit. The wacky non-standard license and the denouncing of modern C++ are large red flags, as well as vague terms like 'Object Request Broker' and custom implementations of standards.

To be fair though, the custom implementations of standards could be very useful if they can be made free of dependencies.

<comment><USER12> _"vague terms like 'Object Request Broker'"_

That's more _dated_ than _vague_ , IMO. See [https://en.wikipedia.org/wiki/Object_request_broker](https://en.wikipedia.org/wiki/Object_request_broker).

<comment><USER3> The ORB is incredibly powerful. There's good video on it on my Youtube channel that demonstrates what it can do.

And the related IDL compiler also allows for very powerful enumerations, far beyond what C++ itself offers.

One reason ORBs have never caught on in C++ is exactly because there's no comprehensive, monolithic framework. It only works really in those scenarios. When you have such a thing, then any class that supports the binary streaming mixing can be passed back and forth to remote ORB calls.

It's at the foundation of the CQC layer which has MANY complicated client/server interfaces. Without the ORB they would be a massive PITA. With it, they are quite manageable.

</comment></comment></comment><comment><USER13> This doesn't do a terribly good job at the moment of explaining why I might want to investigate it further or consider using it. What are the advantages it offers?

<comment><USER14> Agreed. A huge amount of text goes into explaining how much work it was to make and tons about what it's _not_. But, I'm having a hard time finding explanation of what it _is_.

<comment><USER11> He has done the same thing on the cpp subreddit with regards to his 'object request broker'. Lots and lots of text talking about how many lines it is and what it isn't, while never giving an example of a problem that it solves that couldn't be done easier with other simpler and more established libraries.

<comment><USER14> It's a pretty common problem when explaining tech. _You_ (non-specific "you") have spent so much time thinking about a topic that all knowledge about it is assumed. _You_ feel the need to defend your position from misunderstanding and misrepresentation. Contrasting it against other tech is of great interest to _you_. Meanwhile, _I_ have no idea what you are talking about because you haven't actually explained what it is. But, explaining this big, complicated thing you've been working on forever is hard and could potentially expose you to criticism. Much more fun to continue bragging about how it's different/better than other people's stuff.

<comment><USER3> This is the kind of positive response that makes me glad I did this.

There's LOTS of descriptions out there of what ORBs are. I have a good video about how it works and what it does. I can't put ten books worth of explanation in a read me.

<comment><USER14> I don't need a book. I just need _something_. The word "ORB" is not even present in the GitHub readme. You don't link your blog or your videos. You know that the explanations are sitting there waiting for me. I don't and you didn't tell me.

Here's a positive suggestion: In the GitHub readme, lead with the second paragraph. The first paragraph is not important to anyone but you. Having it as the project's intro makes you come off as a self-important wank.

Cut the first paragraph and the first sentence of the second out completely. Cut the third and forth paragraphs as well. Keep the fifth "Because it doesn't use the STL" paragraph, then skip straight to the Goals section. Rewrite it to explain itself in concrete, positive assertions instead of what it's not and what it's anti.

Portability should come next. Then Gotchas. But, Modern vs. Classical is mostly a rant that doesn't help me understand your project. You've already heard more than enough about the license :p

You've made something really cool. You have every right to be proud of it. But, other people don't know how cool it is and they never will if you don't improve how you communicate with them. It's not just a matter of stating the facts. It's understanding their point of view and tailoring your communication around that.

You are a busy person. You know that there's more stuff being published every day than you could possibly even glance over. And, you know that most of that stuff is useless crap created by self-important wanks. So, what would it take to get you to invest the time to understand some random wank's project?

If you are like most people, you aren't going to sit down with a cup of tea and read the backstory of some random project like it's a New Yorker article. You are going to read the first paragraph, then briefly skip around the rest of the doc before deciding to move on or not. It's the only efficient way to filter through the fire hose of crap.

When writing your description, you need to respect the reader's time and ignorance. They don't know the huge amount that you know. They especially don't know why this project is worth their attention. Your job is to sell them on your project by being as clear, concrete, brief and genuine as possible.

<comment><USER5> I'll take another shot at it.

But on the ORB thing, wires got crossed there. There's no way I'd mention the ORB in the read me. That's very important but small piece of the overall thing. He was referring to some of the videos on my personal Youtube channel where I talk about some of the technologies I've created as part of this project. Some of them are related to the ORB.

Obviously, if you have never heard of an ORB before it might take a bit of effort to understand. But I can't really explain in-depth the foundations of technology concepts in a video. I can only give the basics and demonstrate how I've implemented that technology.

Beyond that, it would require a bit of study on the reader's part, as it does for pretty much all libraries of this type. Qt's 3D graphics docs probably don't include a fundamental tutorial on modern graphics architectures, right?

<comment><USER14> Again, it doesn't need a book. Apparently the ORB feature is important enough that it has been mentioned many times in the discussion of this project. But, it's not given a single mention(note1) in the 1946 word description of the project.

I'm trying to get across is that you need to figure out what makes this project valuable from the point of view of the user and broadcast that loud and clear.

"It is a complete environment with build tools, project definition language, loadable text system, a virtual kernel to isolate it from the underlying OS, up through a full set of 'standard libraries', wrappers around lots of common functionality, UI framework, Object Request Broker and IDL compiler, VM based OO macro language with IDE, custom implementations of many standards (XML, PNG, ZLib, JSON, SMTP, HTTP, etc...), and lots of other functionality."

That tells me what this project is. [note1]Hey! Object Request Broker was even in there and I didn't see it in all the noise. Make that paragraph into a bullet list. It's really the most important part of the whole doc. If you have videos, other docs, link them right there. That way a visitor should be able to get a high-level impression of the project a glance. Not after interpreting the entire doc as a holistic concept.

All of the backstory, theory, goals, etc... are only interesting at all after they know that what they're dealing with and that it is actually worth investigating. Then, after they're invested in the project, they might have motivation to go elsewhere to read up on concepts like the ORB.

<comment><USER5> OK, it's been updated.

<comment><USER14> Tremendous improvement!

Thank you for sharing your hard work with the world.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I honestly think that having alternate implementations let people go back to when they were written; They are important.

The common understanding would be "Hey, this is how it was implemented in the standard, and it totally caught on because it made sense and everything else did not."

But I do not believe in those arguments. I often look at alternate libraries/implementations for readability or for lost-in-time features.

There's a reason I read EASTL and BSD code. It makes me refreshed, understand nuances better and more importantly, know what I've been missing out on.

</comment><comment><USER16> This is a textbook example of why Lean Startup exists.

</comment><comment><USER17> To those surprised, this is exactly what million LOC pre-modern C++ programs looked like. Including the implementation of "basic" things. I thank god we're not in that world anymore, but it wasn't all that long ago either.

</comment><comment><USER18> This is a little programming time capsule. Before open source, you had little choice but to build essentially everything yourself.

<comment><USER5> Well, to be fair, I didn't do it because I had to, I did it because I wanted to. General purpose object frameworks are what I enjoy doing.

The (very complex and large) automation system built on top of it was really just because I needed something practical to do with all of the general purpose code I'd developed. Though that then drove the development of a lot more general purpose code.

</comment></comment><comment><USER19> I am pleased to see that, among many other things, it comes with its own regex implementation.

<comment><USER20> Regex is included in C++11, not sure why you'd need a library for that.

<comment><USER21> "decades of work by the author"

presumably C++11 didn't exist back then.

<comment><USER20> So? It does now. Only as a museum piece is this project interesting, if that even.

</comment></comment></comment></comment><comment><USER20> >CIDLib is the product of decades of work by the author

Shame to see it spent on this instead of virtually anything else. After skimming this a bit, I feel that realistically no company, organization, or individual should rely on this codebase due to its license and contribution by only one individual. I'd rather use Boost or well-established and popular third-party libraries to solve the problems this repo attempts to solve.

What if you're delivering software to a client and they find an issue with the JSON parser? HA! Time to switch libraries, because you legally can't fix the issue for them. What a horrible idea.

<comment><USER22> While that is a quite negative comment, it was also my first though. Even worse, I've seen another codebase veeery similar to this one, implementing all kind of stuff which is part of the standard library in "sane", I e. more higher level programming languages (thinking of "batteries included" Python).

It looks like a trap where decades long C++ programmers go into: Programming basic libraries which where done by other people so many times.

My assumption is that this happens because C++ libraries in general have a steep learning curve (thinking of some templated boost libs) and the obvious missing standard dependency management in CPP.

<comment><USER23> In no small part it's because C++ has lacked a package manager. The barrier for a library to become common and canonical is much larger as a result.

<comment><USER24> We also see remarkably shallow dependency graphs in the C++ world. Many projects are only a few layers on top of Boost!

I made a few dot graphs if people are interested.

<comment><USER25> How many layers atop boost would satisfy you? Boost seems pretty high level to me, and not like it needs a lot of abstraction atop its ... abstractions.

This is where I see this weird disconnect between communities. A C person doesn't want layers.

<comment><USER22> > A C person doesn't want layers.

Really? So why are C persons then using formatted output libraries (printf, part of the standard library), libraries for regular expressions (PCRE), GUI toolkits (Gtk+, sitting ontop of Glib)?

I absolutely second that in the C/C++ world, we see shallow layers of abstraction, but nevertheless they are there. In my experience, the seperation happens frequently because people seperate basics from their code, such as in the given Glib/Gtk+ example.

<comment><USER25> The sense I mean this in is "layers for no reason".

In GTK+ everything has a clear purpose:

* glib: Portable OO and data structures for C

* gdk: Interaction with the windowing system

* cairo: Drawing

* gtk+: widgets

An application touches each of these directly according to its needs.

Nobody in their right mind would say "we need a wrapper to abstract glib". Which is a suggestion here for boost. Pretty senseless.

But I think the subtext of this discussion is that all the javascript kids expect 20 layers deep and the top ones get rewritten every year or they're considered obsolete, meanwhile the bottom 18 or so are "too close to the metal" for a reasonable person to work with. A C and C++ person of a particular mindset will seek to avoid such a thing. You want to be able to have the whole picture in your head.

From this angle it's a very weird complaint to say "I counted how many layers there were and it was too small!"

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> I don't do C++ anymore but for folks interested in C++ and what the project is describing, I'd urge dropping the knee-jerk prejudice against the license terms and actually try to see what it is all about.

Unless they are crazy, someone doesn't spend a decade or more working on something that isn't worth it. I think people also grossly under-estimate the creative power of a singular vision (ie not done by committee with a million employees involved.)

It is clear this is not vaporware, give it a chance.

<comment><USER20> Okay, here's my feedback ignoring license terms:

It reminds me of [https://templeos.org/](https://templeos.org/), which is also decades of a single man's work. CIDLib doesn't really do anything that isn't already done elsewhere, and its organization is very strange with odd, antiquated names. Definitely reminds me of C++ you'd find in Windows 3.1 programs.

For example: what is "CIDMacroDbg.hpp"? Ah,

        This is the main public header for the facility. It is the single point
        of contact for the outside world. By including it, they get what we
        have to offer.

Uhh..

<comment><USER26> I had read Terry's story and was sadden by it.

I see no conflict between the two approaches....As far as I am concerned, progress is progress.

I have been watching the CIDLib videos (ie CQC) and it appears to be a comprehensive IoT type platform covering almost every aspect of deploying an IoT type solution, including a drag-n-drop IDE to create control applications (think old DirectX filter programming but on steroid). I am sure there is room for improvement.

[https://www.youtube.com/playlist?list=PLJojk5z5q10SRUTLqEGfJ...](https://www.youtube.com/playlist?list=PLJojk5z5q10SRUTLqEGfJwfm8gOuJR84l)

I think it is worth looking at, regardless of license term.

<comment><USER13> > it appears to be a comprehensive IoT type platform covering almost every > aspect of deploying an IoT type solution, including a drag-n-drop IDE to > create control applications (think old DirectX filter programming but on > steroid).

This is more informative on what the project offers than the entire readme. I think this is the point people are making. Great that you took the time to watch some videos and summarize here but this sort of information would be much more useful in the first paragraph of the readme.

<comment><USER5> Sorry for the changed name, I closed the tab before before entering an e-mail and had forgotten the password...

Anyway, that'a not what CIDLib is. That's what CQC is. CQC is something that's BUILT on top of CIDLib.

If you need some sort of reference point for CIDLib, think Qt without the STL plus build tools or something like that.</comment></comment></comment></comment></comment>


Show HN: Email Obfuscator with ROT13 cipher JS powered & pure CSS fallback - <AUTHOR> http://rot13.florianbersier.com/#showhn

<comment><USER2> AFAIK spammer's bots are already sophisticated enough to run JS, decode ROT13 or reverse text. That's piece of cake compared to decoding image captchas.</comment>


Burger King to Buy Popeyes for $1.8bn--BK Version of KFC's Double Down Coming? - <AUTHOR> http://www.bbc.com/news/business-39043749 <comment><USER2> Popeyes is clearly circling the drain, then. Burger King's corporate standards and culture lead to sloppy, unclean restaurants with inattentive staff, and greasy, inedible food. BK will ruin whatever Popeyes has going for it.</comment>


MOTOACTV - Like an iPod Nano Watch with GPS - <AUTHOR> http://mediacenter.motorola.com/Press-Releases/Motorola-Mobility-Unveils-MOTOACTV-The-Ultimate-Fusion-of-Music-and-Fitness-3871.aspx <comment><USER2> It's a touchscreen watch with GPS fitness tracker software, MP3 player that analyzes which songs you work out hardest to, and bluetooth headphones that monitor your heart rate through your ear (no more chest straps). Very cool.

</comment><comment><USER3> It's funny how fanboys like John Gruber can't see past the similarities with the iPod Nano and notice this product is much more than that. Every single company takes something that already exists and makes it better. Apple and Moto are no different.

<comment><USER4> I agree. I find it very frustrating to see Gruber and others say, "Oh, it looks like a nano -- ripoff" with no examination of the actual product beyond its appearance.

Given its price point and features, I don't even think it should even be compared to the nano. It combines an MP3 player with the capabilities of fitness watches such as Nike+ Sportwatch and Garmin Forerunner, and I would say it is more of a direct competitor to the latter category.

While the market for dedicated MP3 players is dwindling, they still make a lot of sense for fitness. Yet, Nike+ is too anemic for serious fitness buffs (simplistic web site, captures relatively little data, no GPS). I've seen many fellow runners abandon Nike+ sensors for Garmin Forerunner or similar GPS- enabled products.

I don't think its a nano-killer, but I think it may serve a certain audience much better than the nano does today, and its features demonstrate a much greater sense of purpose than the nano does with its complete stagnation in 2011.

</comment></comment><comment><USER5> Is that the first product of Motorola under Google's ownership? Seems a very convenient product for running. I don't think it will come cheap, though.

<comment><USER5> I answer my own question. Towards the final of the press release:

The MSRP for MOTOACTV 8G is $249 and $299 for 16G. Motorola SF700 and Motorola SF500 sports headphones are sold separately and will be $149 and $99 MSRP respectively.</comment></comment>


Ask HN: Why isnt there a public spec for Bitcoin core? - <AUTHOR> Easy rebuttals:
+There is no public spec for linux -https://refspecs.linuxfoundation.org/lsb.shtml +If you want one go build one Better reason - there isnt demand for this I would like to understand what other reasons there could be <comment><USER2> I'm thinking what would be the purpose or added value of a separate "public spec" document (which would require a significant maintenance effort) when you already have [1] a healthy Github (or Gitlab) project governance going on, [2] Bitcoin feature proposal process.

      [1] https://github.com/bitcoin/bitcoin/projects
      [2] https://github.com/bitcoin/bips

When you upgrade your Bitcoin node software, the act of the upgrading is you casting your Yes vote for the changes introduced in that version. The BIPs etc. can help you understand these, but if you want to be 100% diligent, the only fully authoritative source is the state of (the code sources in) the git repo as referenced by the commit hash in the Bitcoin software you are upgrading to.

<comment><AUTHOR> I agree with your comment. What I think is a public spec will help develop client diversity and keep the commits aligned with an explicit spec.

</comment></comment><comment><USER3> Not sure if it's still the case but if I recall correctly, the majority of the bitcoin maintainers are employed by one company... so not sure there's an incentive for them.

<comment><AUTHOR> Its probably more than one company. but even then, lets say that it was one company, shouldnt decentralized,open protocols have open specs to help create more clients?

<comment><USER3> Yes of course they should, but if core development is isolated to one or two companies, then they're not incentivized to produce these open specs so that they can maintain control, because they are also building businesses around these protocols. Another question: Is a protocol truly decentralized if its development is centralized?

</comment></comment></comment><comment><USER4> What is a public spec?

[https://en.bitcoin.it/wiki/Protocol_documentation](https://en.bitcoin.it/wiki/Protocol_documentation)

<comment><AUTHOR> "In particular, while this page is quite complete in describing the network protocol, it does not attempt to list all of the rules for block or transaction validity." Cmon man..

</comment></comment><comment><USER5> Writing documentation is boring, and requires the kind of rigor and focus that I haven't found to be common in the Bitcoin community.

</comment><comment><USER6> Ponzi schemes generally don't have open specs. Defeats the purpose.

<comment><USER7> Bitcoin does not fall under the definition of a ponzi scheme. And in general, there's no reason why a ponzi scheme couldn't have an open spec. If the incentive structure sounds appealing then people will participate even when they understand something is a ponzi.</comment></comment>


Bitcoin guide - pablo-massa https://stripe.com/docs/guides/bitcoin-beta

<comment><AUTHOR> "your customer pays in bitcoin and you receive dollars in your bank account", will Stripe allow us to receive in bitcoins too? I personally would love to use that option. BitPagos does that already but their service is currently limited to Argentinian Hotels. Payza allows it as well, but Payza requires users to create an account and go through a painful process.

<comment><USER2> I would also like that. Right now it's too transparent, I always get USD and have no idea whether someone paid with Bitcoin. I'd like to just keep the Bitcoin.

<comment><USER3> (Christian from Stripe here.)

Our users tend to want unified behavior across payments of all different types. Of course, it's possible to filter by payment type in the API, dashboard, and data exports.

To the original question: drop us a line at email@example.com if you want to talk more about not converting the payments. It's definitely something we'll support if there's user interest, but it's not something we do today.

<comment><USER4> That would be handy as it seems like it would get around some of the pretty big list of businesses stripe can't get involved in due to restrictions from their banking partners.

</comment></comment></comment></comment><comment><USER5> I'm glad to see them rolling out alternative payment options! Hopefully there will be an ACH beta soon!

<comment><USER6> We do have ACH charges in beta! Email me: email@example.com and I can get you on board.

</comment></comment><comment><USER7> I'm assuming this doesn't work for recurring payments?

<comment><USER8> I tend to think that would be the case. Would be nice to get official word on that.

</comment></comment><comment><USER9> It seems like refunds would be hackable. If they're made in bitcoin, I could get back more than I paid if bitcoin value goes up. If they're made in dollars, I could get back more than I paid if it goes down.

<comment><USER10> If you look at credit cards and foreign currency is that not something 'hackable' too? If say the Ruble appreciated and then depreciated wildly you could get a refund and redo the payment if it was against you.

<comment><USER11> In practice the refund will just post for whatever converted value you've paid in the first place and processors will take the difference in either direction

<comment><USER10> Yes I believe this is so.

What I understood is as a 'hack' is the system could be taken advantage of (by doing the transaction in BTC) (for your own Stripe account by your own BTC wallet) and refund it if the price moves against you or allow it to convert (BTC->USD) if the price has moved in your favour. Since you get the USD from BTC yourself you have a sort of 'hedge'/call option to reverse it (premium being the initial conversion fees).

If the volatility is such that its more than the fees (in this case BTC is 'free' during the Beta) it can be taken advantage of - The refund & near zero fees being a mechanism of a one way bet.

I suppose this can be done already with credit cards and foreign currency purchases (if you have your own stripe account). Though the fees of 2.9%+ are significantly more than the volatility involved.

<comment><USER3> (Christian from Stripe here.)

Thanks for the clear description. In Stripe's case, this arbitrage won't work. When we refund a bitcoin payment, we refund the USD value of the payment (converted to bitcoin at the time of the refund). The customer does not necessarily receive the same bitcoin amount that they sent.

For example: (1) At the initial time, each bitcoin is worth 100 USD. A Stripe user accepts a 10 USD payment (0.1 bitcoin). (2) Bitcoin then increase in value to 1,000 USD each. The Stripe user fully refunds the payment. Their customer receives 0.01 bitcoin (10 USD).

The Stripe user and their customer both have a net of zero USD in this scenario.

We could have implemented refunds in the opposite way: a net of zero BTC and non-zero USD. However, that would have introduced the issue that you describe.

<comment><USER12> Regardless of the currency paid in, guaranteed refunds pegged to an exchange rate at the time the refund is issued will be a potential vector for manipulation. Consider these two cases using relevant historical data.

Case 1, Bitcoin refunds are pegged to the USD price at the time of sale and refund (your current strategy): It is currently 12/7/2014\. The price per Bitcoin is approximately $380. I purchase a Christmas gift for someone,which just so happens to be exactly $380. I pay one Bitcoin, and my package is shipped. I receive the package on the 18th, at which point the exchange rate is approximately $310 per Bitcoin (about a 20% drop). At a 3% fee, I decide it would be prudent to ask for a refund, so I initiate the process and send back my gift. I am refunded $380 in Bitcoin at $310 each, and therefore receive 1.225 Bitcoin in return. I have effectively short-sold my Bitcoins while simultaneously locking the USD value in at the higher exchange rate (the value of the gift). This is a no-risk hedge, and is effective at any point the exchange rate fluctuates downwards more than 3% over the maximum refund interval. If the price goes up, I don't get a refund, and keep the gift, effectively locking in its value.

Case 2, Bitcoin refunds are pegged to the amount of Bitcoin initially spent: It is currently 11/4/2014\. The price per Bitcoin is approximately $320. I buy a really nice bottle of Scotch from someone, that happens to cost exactly $320. I pay with one Bitcoin. On 11/13/2014, the price has risen to $420 per Bitcoin. I decide to get a refund, and as the amount of Bitcoin I spent is refunded, I receive 1 Bitcoin in return. This is again a no-risk hedge, as if the price drops, I keep the Scotch (or sell it, and increase my net Bitcoin holdings).

The only way that I can see you guys not having a financial risk as a counterparty, is if you do refunds in a way pegged to both USD and Bitcoin. You could achieve this by refunding an amount of Bitcoin equal to the product value in USD pegged to the exchange rate at the time of refund if the exchange rate rises, and refund an amount of Bitcoin equal to the amount initially paid if the exchange rate falls. This (rightly, in my opinion) puts all risk of exchange rate fluctuations solely on the person requesting the refund.

I understand that in charging a 3% fee on each transaction, all users of Stripe are in effect insuring your company against anyone attempting to game the system in this way, so my point may be moot (you can eat the losses from the malicious <1% of users), but I am of the strong belief that any system that can be gamed for a profit, most likely will be gamed, by some unscrupulous individual. Your company is effectively able to be used (currently) as a hedge against falling prices (scenario 1) in what is, at the moment, a year-long bear market for the exchange rate. This doesn't really feel to me like the smartest road to go down. What are your thoughts on this?

<comment><USER3> (As an aside, Stripe prices bitcoin payments at 0.5% rather than 3%.)

I don't follow your description of Case 1. On Dec 18, to use the timing from your example, you have two options: (a) keep the $380 object (b) exchange it (via a refund) for $380 worth of bitcoin. These are the same options that you would have if Stripe was not in the picture: keep your funds outside of bitcoin or buy bitcoin at the market price. I don't see what benefit you derive from the refund API (beyond using it as a fairly priced bitcoin/USD exchange). Sorry if I am misreading the example!

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Does anyone know if the 2.9% + 30c stripe fees still apply for bitcoin payments?

<comment><USER14> The pricing for bitcoin payments is simple: free during the beta and 0.50 percent per payment when the API is out of beta in January 2015.

<comment><USER15> this is very heigh fee. the whole purpose of bitcoin is to get rid of the middle-man who try to take a cut out of simple transaction. i see the added value of easy-api but the fee is way too much for a free alternative. and yes, i know that bitpay and others take 1% but i'm sure they will adapt once cheaper alternatives will be available. as for me - i develop my own free solution.

<comment><USER16> Is it really a high fee? Bitcoin cuts out the middleman if you're willing to keep the bitcoin, sure. For the users elsewhere in the thread who were asking if they could just keep the bitcoin, perhaps the price should be negligible.

However, if what you want is fiat currency, like the US dollar, then a middleman needs to sell the bitcoin for currency and give you the currency. The middleman has a risky and complicated job, which I assume includes holding enough currency in reserve so as not to delay transactions; and they probably need to decouple the currency transfers from the bitcoin sales, which means they take on some risk from fluctuations in price in the bitcoin market. The market on which the middleman sells bitcoins might also take a cut. The middleman is taking on responsibilities and risk, and needs to be compensated for it.

I don't work in payments, so the above is my own layman's understanding. How will you exchange bitcoin for dollars in a way that's free, and doesn't incur a transaction %?

<comment><USER5> This. Stripe is a business. They need to make money to stay alive. 0.5% is a whole lot better than 2.9% + $0.30. They are providing all of the infrastructure, auto conversion, and risk mitigation so it's not that high of a price.

</comment></comment></comment></comment></comment><comment> saiko-chriskun Kind of confused as to what exactly happens and how to deal with a user sending bitcon to an expired receiver.

All the docs seem to say is "we will do our best to convert them to the requested amount of USD, but the effects are not predictable."

Obviously the amount of USD converted won't be predictable, but it's a situation that needs to be handled.

</comment><comment><USER17> Was a fast setup; already in place. I'm seeing live mode transactions with a "Test" banner in upper right corner, but some tests with an online hosted wallet show these transactions to be real and live, not test-mode. Is this a bug in the Stripe console?

<comment><USER6> The 'test' banner is indicative of which Stripe publishable keys you're using—test mode keys will result in the 'test' banner you see.

<comment><USER17> This was using my live mode keys. I was able to perform transactions in and then refund, using my Circle account, so they're live transactions. Those transactions are showing up in my live mode in the console, next to live CC transactions, which of course don't have the "test" banner.

<comment><USER3> If you were using your testmode keys, then we would not generate a valid bitcoin address (to avoid all kinds of confusion). It must be the case that these were your livemode keys. If you're able to reproduce an inaccurate "test mode" banner, can you send a bug report to firstname.lastname@example.com? You can cc me, email@example.com. I'm happy to take a look, but I haven't been able to reproduce on my side.

</comment></comment></comment></comment><comment><USER18> When will this statement "your customer pays in bitcoin and you will receive dollars in your bank account" become "you the customer pay in bitcoin and you will accept a charge in dollars through your bank account"

Eta innovation on the consumer side?

</comment><comment><USER19> I suggest Stripe change the title. It's actually not a Bitcoin guide, and anyone looking to learn more about Bitcoin or for a definitive guide would be disappointed.

</comment><comment><USER20> Will application_fee and Stripe Connect be supported?</comment>


Ask HN: Who's hiring Software Developement Interns? (Summer 2014) - <AUTHOR>

<comment><USER2> "hiring [...] interns" I think you are confusing some terms there.</comment>


7 minute workout app – maximum weight loss with shortest time - <AUTHOR> https://play.google.com/store/apps/details?id=supersimpleapps.com.a7minutesworkout <comment><AUTHOR> Brand new workout app for 7 minute HIIT workout. Great for busy ppl to have workout with greatest result with shortest time. (7 minute or 21 minute)</comment>


Bitcoin blockchain forked between v0.7 and v0.8 nodes due to BDB bug - <AUTHOR> https://bitcointalk.org/index.php?topic=152030

<comment><USER2> Beat me to it :P</comment>


How to Wake Up and Instantly Achieve Something Everyday - <AUTHOR> http://www.lifehack.org/articles/productivity/how-to-wake-up-and-instantly-achieve-something-everyday.html#comments

<comment><USER2> While I agree this is article is pretty fluffy, don't just discount the idea. Don't knock it until you try it...

Most people waste a lot time in the morning building up enough courage (or guilt) to start their real work. They check email, read blogs, chat around the water cooler...whatever. All that stuff can wait until you actually need a break. Personally, when I jump right in and start writing code, it has a huge impact on my productivity for the day.

</comment><comment><USER3> Cliffsnotes: The secret to doing something instantly when you wake up is doing it...instantly...when you wake up. Hardly groundbreaking.

<comment><USER4> I have a morning ritual that involves an hour of preparation before doing anything else on a given day. I'd never even considered the proposal in this article, and I suspect others haven't either. As I can think of several situations in which I might try it out, I'm glad he wrote the article.

<comment><USER5> Morning ritual? You mean like shower, brush teeth, all that? Seems like an hour would be a bit long for that sort of thing.

</comment></comment></comment><comment><USER6> My goal is to wake up, rather than smashing my poor little alarm clock into pieces when it goes off. I achieve that goal most of the time, a fact my employer is quite grateful for.

Agreed about the lack of substance here. This is a fluff piece.

<comment><USER7> My goal is to wake up, rather than set my alarm clock in snooze mode. I fail that goal most of the time, a fact that my roommate (ie my mother) is not grateful for.

</comment></comment><comment><USER8> Written by a morning person. However, research shows that night owls get more things done.

[http://www.telegraph.co.uk/health/healthnews/5208608/Night-o...](http://www.telegraph.co.uk/health/healthnews/5208608/Night- owls-can-work-longer-than-early-birds-scientists-find.html)

</comment><comment><USER9> Almost 100% fluff, though I feel like it could be a decent idea in practice. I can see the value in the self-esteem boost and the feeling of accomplishment early, since the rest of the day may have no such feelings.

Instead of achieving the most important goal of every day before putting on some clothes, perhaps a small, bite-sized task before anything else would be more practical. I can't see myself achieving my important goals for every day before eating anything, as most of those goals take hours, and I like breakfast.

Personally, I'd like to try this with a goal I've been consistently failing on: reading a bit and writing out my thoughts on what I have read. Small, fulfilling, and something I will wake up, excited to do.

</comment><comment><USER10> My big task for the last 3 weeks has been to rewrite and merge the credit card charging engine in three separate codebases at work.

This is a pretty huge task - multiple migrations, special one-time pushes of data from database 1 to 2, scores of test suites, rewriting and merging models, etc.

My secret:

* wake up

* cook three eggs for breakfast

* walk the dogs 1 mile around the reservoir

* drive 1.9 miles to work

* work for 10 hours

I think that steps 1-4 don't really hamper my ability to do step 5.

</comment><comment><USER11> My 5 year old daughter wakes up instantly at about 6:15AM. And her first achievement every morning is to get her dad out of bed with a smile. :)

</comment><comment><USER12> This sounds like a good way to ruin your sleep thinking about the goal you want to do in the morning. Anyone else feel that way?

<comment><USER13> I feel exactly the opposite. I _want_ to think about it while I'm sleeping. The more I review the closer to bedtime, the easier it is to work on the next day.

</comment></comment><comment><USER13> Buried in the middle of the copy is the dirty little secret:

"This needs to be done the night before."

I've been doing this part for years and it has really made a difference. It only takes 15 to 30 minutes, but I review hard copy every night just before lights out. I always know the first thing I'll be working on the next day.

I don't go to OP's extreme by doing the first thing before anything else. But maybe I should. I could easily get this first hour of work in before anything else. I may give this a try next week to see how much difference it makes overall. Stay tuned...</comment>


Show HN: H2 Forth CPU - <AUTHOR> https://github.com/howerj/forth-cpu <comment><AUTHOR> Hi! Author here, this has been a fun side project for me, It's pretty much finished but I keep coming back to it to do one more thing.

This project is a CPU written in VHDL that executes Forth. It's based on the J1 processor, but with a few new instructions and interrupt handling.

Also included in the project is a VT-100 terminal emulator (emulator is not quite the right word here) written in VHDL, which some of you may find useful. It supports a fairly large subset of the ANSI escape sequence commands.

I originally wrote a smaller compiler for a Forth like language in C, but I've since rewritten the tool chain so the eForth image running on the target is built with a more traditional meta-compiler.

Here's a video [https://howerj.github.io/h2/107.mp4](https://howerj.github.io/h2/107.mp4) of the project running (I've since added color support to the VT-100).

If you type 'make gui-run' it should build and run the graphical emulator for the device. (or just 'make run' for the command line simulator).

You can play a little game by typing:

       1B 20 thru
       you-are-dead

:)

<comment><USER2> I always wonder why so many projects use the MDA/VGA font. Is it that it's readily available in a HDL-friendly format?

If that's so, I'd love to translate a couple popular open source fonts. Terminus is my usual default console favorite (mostly because the bitmap x3270 font is not in a friendly format).

Yes. I really do hate the VGA font that much. ;-)

<comment><AUTHOR> Hi! Sorry, I've been at work all day...

The VGA module on which the VT-100 is built around used that font (I am not sure of its name - I guess "MDA/VGA font" would do). That VGA module came from here: [http://www.javiervalcarce.eu/html/vhdl- vga80x40-en.html](http://www.javiervalcarce.eu/html/vhdl-vga80x40-en.html).

The project actually uses Terminus by default now. That video of the system up and running is quite old, I should make a new one. You can switch between Terminus (8x12, KOI8-R) and VGA Font (Latin-0). There's space for two more fonts in the Block RAM - if you wanted to make a new you're welcome to!

The fonts are in '[https://github.com/howerj/forth- cpu/tree/master/fonts'](https://github.com/howerj/forth- cpu/tree/master/fonts').

<comment><USER2> I'm far less urged to translate the 3270 font (I'm a huge fan of it) if you are relying on Terminus. It'd probably be better to support other fonts DEC terminals supported. I'll dig a bit into that. :-)

<comment><AUTHOR> That's great, raise or ticket or send me an email if you find anything useful. It's not too much work for me to convert things into a usable format if I have a BDF file (8x12 only - anything else would require hardware changes!) for the font.

<comment><USER2> I'm very fond of double width and height, but the DEC terminals implemented double width by halving the pixel clock rather than a proper font. Minitel did it right.

</comment></comment></comment></comment></comment></comment><comment><USER3> This is cool! Is it anything like the Novix NC4016 Forth CPU, or a totally different approach?

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

Any plans on making a radiation hardened version like the RTX2010? (Some of those are orbiting Mercury and Saturn and landed on Eros!) ;)

[http://www.cpushack.com/2013/02/21/charles-moore-forth- stack...](http://www.cpushack.com/2013/02/21/charles-moore-forth-stack- processors/)

I love the idea of a VHDL VT100 "emulator"!

How hard would it be to make a luxurious Ann Arbor Ambassador?

[https://www.jwz.org/blog/2016/10/export- termaaa-60/](https://www.jwz.org/blog/2016/10/export-termaaa-60/)

<comment><AUTHOR> I actually don't know too much about the NC4016, at a quick glance it has some similarities, especially in how the instructions are encoded. The H2 runs faster - but that's more a function of the FPGA than anything I have done. I would image it doesn't cope as well with radiation than the Novix. :)

That link redirects you to an interesting image if you access it from Hacker News! From the manual for that terminal, it seems to support some of the standard ANSI escape sequences, but there would be a lot more work to make it 100% compatible.

<comment><USER3> Oops! Jamie's such a joker. Yeah, best to cut and paste that url.

<comment><AUTHOR> I was actually interested in turning the graphics driver into something that could support CGA (like) graphics. At the moment there are no graphics modes available to the system, it's all just text. The biggest limitation is the block RAM, which only gives me 18KiB of video memory to work with. You might be able to use it to run DOS like games on it, but little more.

</comment></comment></comment></comment><comment><USER4> How hard do you think it would be for a software engineer who does a lot of low-level (kernel) programming to get into this? I really want to get into hardware but am unsure how to start. Do you have any tips/ideas? How long did this take you in total (number of hours) and was it something you had to learn a lot for or was it mostly within your skillset?

<comment><AUTHOR> I have a background in electronic engineering, and did a fair bit of digital design related courses so large bits of it were in my skill-set, but mainly work with C in an embedded context. This project has been going on for years, but I only spend time on it now and again, a lot of that is rewriting sections of the code base I do not like or trying out different things.

I think the main piece of advice is persistence. Doing anything on an FPGA is much harder than doing it on CPU, but as a consequence of that the designs tend to be a lot less complex. It is not only a new language to learn, but it's a new paradigm. VHDL and Verilog might look like programming languages at first glance, but they are not. They are hardware description languages.

Also the vendor supplied tooling sucks.

For the more practical side of things, you can get a cheap development board for less than $50 that will run an open source tool-chain (see [http://www.clifford.at/icestorm/](http://www.clifford.at/icestorm/)), although I do not use them myself. You will want to do your research first.

One final piece of advice.

Do not ignore any warnings about latches.

<comment><USER4> Thank you for your response! I found it very useful.

</comment></comment></comment><comment><USER5> Why would you rewrite from Verilog to VHDL? I've always heard that the latter is significantly less expressive than the former.

<comment><USER6> I'm a huge Verilog fan, but VHDL has a bunch of higher level features that Verilog doesn't have. E.g. records, limited range integers, enum types etc.

SystemVerilog added these kind of features much later.

That said: there are a bunch of constructs where Verilog really shines, especially when it comes to bit twiddling.

When you care about open source tool flows, it's no contest: Verilog is far ahead on that front. That's currently the deciding factor for me.

<comment><USER7> It would rock if someone wrote a VHDL frontend for Yosys. You could then use Yosys to convert to Verilog for use with all the other open source tools.

<comment><USER8> There is a link in [https://github.com/YosysHQ/yosys/wiki/VHDL-frontend- efforts](https://github.com/YosysHQ/yosys/wiki/VHDL-frontend-efforts)

</comment></comment></comment></comment><comment><USER9> Can anyone translate this to laymen developer terms?

</comment><comment><USER10> What's the performance of this CPU?

<comment><AUTHOR> The Nexys-3 board on which it runs is clocked at 100MHz, the 16-bit CPU executes a single instruction per clock cycle. I have not tried it on any new FPGAs, just on the board I have, it might run faster on a newer FPGA. It can also respond to an interrupt within 50ns (but more like 90ns with the overheads of setup in the interrupt handler).

It's not meant for high performance - but it is tiny! The program is limited to 16KiB in size, of which 6708 bytes are used by the eForth interpreter that is running on it. It's a very niche thing.

<comment><USER11> That is blazing fast for all sorts of embedded use.</comment></comment></comment>


Wii is no longer supported - <AUTHOR> https://devices.netflix.com/en/game-consoles/wii <comment><AUTHOR> Sad to see this, it's the end of an era.

Long after I stopped playing my Wii it worked really well for this on an old non-HD TV. It was my first Netflix experience and what I used for quite a while.

It's astounding that Netflix went to the lengths they did to build their platform, on such a wide range of even obsolete devices. This willingness to go to seemingly absurd extremes is probably part of the key to their success. Sad to see this go.

Good night, sweet Wii prince.

<comment><USER2> My fat PS3 died on me a few months ago. That was the greatest sign so far I had hit middle age.

Talk about depressing!</comment></comment>


Pregnancy reduces grey matter in female brains - <AUTHOR> http://www.latimes.com/science/sciencenow/la-sci-sn-pregnancy-brain-changes-20161220-story.html <comment><USER2> Hassle wall.</comment>


The 1979 Delft Cycle Plan - <AUTHOR> https://bicycledutch.wordpress.com/2019/02/27/the-1979-delft-cycle-plan/ <comment><USER2> Looking back, growing up in/near Delft was probably one of the best experiences in my life. Being able to get anywhere in our smallish (100k population) city within 10 minutes (and usually less) by bicycle had some great advantages when I was in my teens. Without the infrastructure, I arguably wouldn't have had the same level of independence that lead to some of the best experiences in my early life. Like biking to school independently, frequent games of DnD with friends across town and other social activities, going to library daily to play with computers, drinking alcohol for the first time and being able to (safely) get home, etc.

In contrast bringing up my own kids in car-centric California seems quite more limiting. I like to brag to my American friends how I would bike to school by myself at age 9 and how it would be completely impossible here. Now, I don't think we should necessarily try to compare or convert every place to one like Delft but experiencing this increased/free mobility early on in life definitely changes ones perspective and arguably stimulates greater independence.

<comment><USER3> > Now, I don't think we should necessarily try to compare or convert every > place to one like Delft

Why not? I think we absolutely should.

</comment></comment><comment><USER4> """People were visited at home and they weren't just asked how they travelled where, they were specifically asked for their constraints, the reasons why they didn't cycle to supermarket X for instance. The answers were very concrete: "because intersection Y doesn't feel safe", or "because canal Z forces me to make a detour of that many metres"."""

Just teach this as at civil engineering courses the world over - read this paragraph once a day for three months and you get a semesters credit.

The world would change

<comment><USER3> I am not an expert in surveying but my gut feeling tells me that visiting people at home and having a personal conversation delivers high quality data, albeit being expensive. I fear we might loose that quality in the age of social media and big data.

<comment><USER4> We only lose the expensive stuff when we no longer are willing to pay for the expensive stuff.

And compared tonbuilding roads in places no one wants its cheap.

What is needed is better accountability to the "public" for such civil engineering decisions - which means generally better more engaged local politics (this being a virtuous circle since more local people will get engaged when they realise they have influence over such decisions

If part of the decision making process was a documentary on youtube of whommakes the local decisions, what the impact of crossing X would be then I could see more people getting involved

one called call it the nightly news

</comment></comment></comment><comment><USER5> Some cities are having success lately with implementing large networks of cycle tracks, all at once, rather than one or two at a time.

Calgary: [http://www.calgary.ca/Transportation/TP/Pages/Cycling/Cyclin...](http://www.calgary.ca/Transportation/TP/Pages/Cycling/Cycling- Route-Improvements/Downtown-cycle-track-pilot- project.aspx?redirect=/cycletracks)

Seville: [https://www.theguardian.com/cities/2015/jan/28/seville- cycli...](https://www.theguardian.com/cities/2015/jan/28/seville-cycling- capital-southern-europe-bike-lanes)

These cycle tracks need to be part of a network to work.

</comment><comment><USER6> Small story: I worked at a large in-city University Campus with a lot of green field spaces surrounding, leading to the carparks and bus stops. People continually walked on the grass the way they wanted. The university did not like the grass being mud, so laid paths. They laid the paths in regular shapes, to achieve formalisms they liked. People did not _want_ to walk on these directing lines, continued to walk and drove the grass into mud again the paths which led to the axes they wanted to get to, and radiate from.

Lesson: leave the paths to be set by the feet, sometimes. All they had to do was photograph the dominant trails and then make paths of them.

<comment><USER7> That's known as a desire path or desire line: [https://en.m.wikipedia.org/wiki/Desire_path](https://en.m.wikipedia.org/wiki/Desire_path)

<comment><USER6> TIL. This should be taught to all transport designers, landscape and other architects.

Not that these desire-paths are always optimal or appropriate, but it feels like an awful lot of times in open public spaces, they could be respected or at least understood.

<comment><USER8> IIRC, these _are_ taught. But it's a bit like a CS ethics course; you can bring a horse to water but you can't make it drink. And even if you believe in it, that goes out the window if your clients want that context-ignoring modern architecture. Developers and local power brokers are often more interested in showing off their ability to afford Zaha Hadid or Calatrava than they are in providing useful assets to the community.

</comment></comment></comment></comment><comment><USER8> This is an often under-appreciated part of planning: ask people what frustrates them, and they will tell you.

So many things are dropped in from a birds' eye view without actually asking people what their problems are, and then people are shocked when it doesn't solve anything.

</comment><comment><USER9> The BicycleDutch YouTube channel is great: [https://www.youtube.com/user/markenlei](https://www.youtube.com/user/markenlei)

He covers lots of bicycle-oriented infrastructure projects and history throughout the Netherlands.

<comment><USER10> The YouTube channel is an offspring from the blog ([https://bicycledutch.wordpress.com](https://bicycledutch.wordpress.com)), which adds text, thematic groups ([https://bicycledutch.wordpress.com/index- by-theme/](https://bicycledutch.wordpress.com/index-by-theme/)), etc.

<comment><USER9> They were made in conjunction with each other, but the blog posts contain a bit more information. I find the videos to be a bit easier to consume, though, and if I want to know more I follow the blog link in the video description.</comment></comment></comment>


Study finds young men are playing video games instead of getting jobs - <AUTHOR> http://www.chicagotribune.com/business/ct-video-games-jobs-emploment-20160923-story.html <comment><USER3> What jobs? All the ones I know of are for people with "experience" with XYZ. Pardon if out of the bazillion candidates in this world, biz's can't find that oxymoron of a candidate: the perfect, outgoing socialite whose as good at brown-nosing as he is on the PC. You could roll the dice to go to school and end up stuck in debt over your head (btw, loan defaults are ever on the rise).

There's more to this story than just the problems of getting a job. Society has become very digitized, and more and more, I'm seeing children play LESS because of busy schedules, so it gets replaced by the next most convenient addicting thing: video games. Result? - Loss of imagination. When I hear of schools "bringing in technology", I can only cringe at how _insert explicative_ the administration must be to not realize that technology is not a solution, it's only a tool. Kids aren't getting smarter (in fact, I only hear it's getting worse), they are becoming less inspired. Some guys I know got their degrees and only looked for work because they knew they needed it, but they had effectively no passion, no dream at doing much in life, and the fun they had was primarily from gaming. As someone who dreamed of doing big things, I found myself rather lonely in my objectives. (Needless to say, I don't play video games.) Anyone else felt this way?

<comment><USER4> There's jobs for people who work hard. The vast majority of people don't want to do the hard work required to get a job.

A sense of entitlement for a job won't lead to anything except sitting at home playing video games wondering why no one has recognised the game players genius.

It's easy to overcome lack of experience - at least in the field of software development - by using your time not playing computer games but by programming and writing code for a well-known open source project. People don't want to hear this advice though - they want to know if there is an easier way.

<comment><USER5> I think people want to know why there's no longer an easier way. It seems people 50 years ago didn't have to dedicate their waking hours from 6 to 18 years old constructing an impressive enough resume to give them the _luxury_ of then dumping a hundred thousand dollars on an employable education.

Software has an obscenely low bar for getting experience, you're right. Software comprises enough job vacancies to employ the country?

The simple fact is that the system is obviously broken, and it should be just as obvious that it wasn't broke by the people who weren't yet born when it fell apart.

I'll tell you, I'm a pretty hard worker. I work nowhere near as hard as the laborers down the street who go day in day out being told this incoherent narrative of "just work harder and it'll pay off!" There's no reason to believe that it will. Why wouldn't they just do bare minimum and go home and play video games?

<comment><USER6> "It seems people 50 years ago didn't have to dedicate their waking hours from 6 to 18 years old constructing an impressive enough resume"

People 50 years ago didn't go to University - and they took a menial job at the factory, or did 'what their parents' did, took over the family shop/farm etc..

They earned very little, travelled little, had little in the way of material or aspirational opportunities.

They also had strong gender, family, social roles they were expected to adhere to, including going to Church every Sunday.

They also lived in mostly ethnocentric communities, knew their neighbours.

'We chose' what we have now, and at least in material terms, it's a whole lot better. There's a lot of opportunity out there.

Yes, it means most people will have to 'work' \- and do things like accounting, IT, customer support etc. etc. - but frankly, that's not so bad.

Most people have little to complain about.

<comment><USER7> > They earned very little, travelled little, had little in the way of material > or aspirational opportunities.

That is some extraordinary revisionism you've come up with there.

It is the 1960s, not the 1600s.

> We chose' what we have now, and at least in material terms, it's a whole lot > better. There's a lot of opportunity out there.

Real wage growth stalls half way through the 70s, just five years later.

<comment><USER6> In the 1960's people did not travel. Commercial air was for the rich. People might have had a family outing, by car, to Disneyland or something. Now people travel worldwide.

"Real wage growth stalls half way through the 70s, just five years later."

This is completely false - and is a function of how we calculate inflation. In fact, it's laughably false. A 'medium wage earner' today has a significantly improved material situation than in the 1960's. _Everything_ is significantly better for the common person on a common wage.

The average person today has multiple TV's, cable, internet, smartphone, 'apps', 500 channels, amazing healthcare, amazing cars (have you ever driven a car from the 1960's), travel possibilities, educational possibilities.

The notion that real wages have been stagnant is one of the most laughable economic fallacies of the modern era. Anyone alive in that time knows exactly the truth. Financial concerns aside (aka debt), a good measure of wealth is 'what you can buy with it'. The average person is significantly wealthier than the average person in the 1960s.

<comment><USER5> So how about sources then?

<comment><USER7> I can tell you the answer they typically give.

They, and this is not a joke, put a 'hedonic adjustment' for quality of life into inflation. The criteria is not measurable, it's about feeling, not seeing.

It is the same answer the Fed gives to the government. They definitely do not believe it, but we're talking about people effectively employed to be the Wizard of Oz here.

We didn't do that for the transition from gas lamps to electric or for horse drawn buggy to car. It is bullshit.

When real wages go up people can actually tell. I don't believe in democracy and thereby take polling with sacks of salt, but I do believe in the wisdom of crowds when they have knowledge or experience, and boy are Westerners pessimistic about both the economy and the government since around 2008. Every Gallup poll and Pew survey shows it.

<comment><USER6> XBox One is _better_ than Nintendo 64 and it's not just a 'feel good thing'.

Tomatoes that you can buy - any time of year - instead of just when they are 'in season' is a _material_ thing, not a fantasy improvement.

Cars that drive better, get 3x better mileage, are significantly more safe, and have tons more features - are _better_ \- it's not some crap fantasy.

<comment><USER7> I don't deny that quality of life improvements exist.

The proposition I make is that wage growth halted for the average (median average) American in the 70s. The same phenomenon spreads to other Westernized countries too later on, most dramatically evident in the island of Japan which has spent 30 years keeping up maintenance.

Alongside this I proposed (here or elsewhere on HN) that we were and are yet presently living in a stagnant period. The thesis is well laid out here:

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

Stagnation is not a plateau or a halt to growth, but a slowdown in the rate of change. So there is some _change_ , just not much relative to former periods. The economist Robert Gordon has written a life's work on the subject. He may be wrong, but it is not a stupid idea.

The items you mention are examples of incremental improvements in existing technology. This is not unimportant, it is at least half the battle since what is the point of high technology if nobody can access its utility.

However my worry, and that of Levchin, Page, Gordon, Musk and Thiel is that we are not seeing breakthrough technologies able to scale up and this is a very troubling sign for the future.

Energy production and storage, space travel (Musks's entire rationale is reasoned on the Stagnation Hypothesis), biotechnology, nanotechnology, materials technology, central coordination, many important areas in our society are in some form of decay, diminishing returns are evident. Lots of PR and press releases but no impacts. Investors have gone bust in many of these areas, esp. in biotech, nanotech and cleantech. If everything is improving that shouldn't be happening.

Again, the benchmark is not _no change_. The benchmark is the past history of those areas. You can pick bright spots in each industry and high achievements but we do not see things like technologies to make heart attacks impossible or cheap aerogel insulation, the kinds of leaps we made in the past that really lifted all boats.

This can be difficult to believe if you live in a modern western city, but if you go to the peripheral of our world you can visibly see it rotting away. This is because it is not the center of the system that fails first, it is the peripheral.

In a period of rapid true growth you see whole new fields of development opening up from what used to be small niche fields (like computation used to be).

It is not about having faith in the future or technology, it is that we have to come up with business plans and ideas that make things happen or it is entirely plausible they never will happen. Believe me, I want a better future as well, I'm not trying to drag you down because I have a cynical personality or something like that.

<comment><USER6> Musk, Thiel etc. are the last people you should be listening to on the subject - moreover - their statements have nothing to do with 'standard of living'.

Musk and Thiel are just old enough to remember and era when technology was making seemingly huge advances: 'men on the moon', 'breaking the sound barrier' etc.. They want to see 'that level' of innovation. I think it's narrow minded and arrogant: Airplanes don't 'seem' like they have changed a lot, but there has been an enormous degree of incremental innovation - <USER2> not in the direction they want, i.e. 'faster, higher' etc.. The 'innovation' has been in safety, reliability, fuel efficiency, price, sophistication etc. - all of which has benefited 'the people' far more than someone making a new Concorde that can do Mach 5 but costs $20K/hour per seat.

Over the 'long haul' \- the standard of living has improved as much since the 1970's as it has been on average for the last 200 years - roughly. The 1940s-1970s was a little bit of a bubble due to the war and the resulting economic effects.

This idea of 'wage stagnation' is an unfair economic characterization of what is going on, and it's used by the populist left to fight their ideological battle.

Though it's true that a disproportionate amount of returns is going to the 1% - it's not really at the cost of the 99%. The 99% are living a very high standard of living - so long as they have jobs. Employment issues I think are more important than the false canary of 'stagnant wages'

<comment><USER7> > Musk and Thiel are just old enough to remember and era when technology was > making seemingly huge advances: 'men on the moon', 'breaking the sound > barrier' etc.. They want to see 'that level' of innovation. I think it's > narrow minded and arrogant:

I think there is something semantic in our way.

Are you familiar with Thiel's concept of representing progress using a Cartesian plane? Technology goes on the Y axis, Globalization on the X axis.

Then it becomes possible to represent 4 possible states of play.

This is a model of course. There could be different aspects in different states.

However it illuminates an important possibility, which is that you could have broad progress in globalization without necessarily having much in technology.

Globalization is of course, the _spreading_ of Technology, so it is a kind of derivative.

I hope it is clear then what I mean by 'Technological Stagnation'. I am deselecting Globalization and looking at what is left.

> Over the 'long haul' \- the standard of living has improved as much since > the 1970's as it has been on average for the last 200 years - roughly. The > 1940s-1970s was a little bit of a bubble due to the war and the resulting > economic effects.

Sure but we agree with all of that. With the caveat _some_ of that growth was not real (in the finance sector). That is of course true of other eras too, I just mention it because it plays an outsize role when the bubbles come up.

We are talking about different things. The standard of living improving is globalization. The improvements in airplanes you mentioned, are improvements, but again, they are a form of globalization.

We see that, it is good. But it is _not enough_ if we are to keep going.

> This idea of 'wage stagnation' is an unfair economic characterization of > what is going on, and it's used by the populist left to fight their > ideological battle.

I am on the right. The furthest to the right imaginable. The same is true of many if not most people who talk about technological stagnation.

The populist left is not wrong about _something_ being not right, just the solutions they tend to throw up.

> Though it's true that a disproportionate amount of returns is going to the > 1% - it's not really at the cost of the 99%. The 99% are living a very high > standard of living - so long as they have jobs. Employment issues I think > are more important than the false canary of 'stagnant wages'

I would say to you that those 'returns' are almost all fake.

The top 1% of 1% is not making real money because their stock portfolios and property valuations are increasing, it is the mother of all bubbles caused by monetary manipulation.

I live myself in a house that is worth at most 1/8 of the valuation the market gives it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> The left out the porn.

"When I watch porn, I know if I have a few minutes I will be rewarded," he said. "With a girl, it's always been up in the air with the amount of work I put in and the reward."

</comment><comment><USER9> This is the demographic that's traditionally fueling crime/war. You can give a positive twist to the story by rephrasing the title "study finds young men are playing video games instead of shooting people."

<comment><USER10> Yeah, the more I think about it, the more I think men are obsolete. Men are responsible for forcing all the natives out, setting up the government, constructing nearly every piece of infrastructure and creating nearly all technology. Not to minimize the potential of women (patriarchy really, really held them down), just highlighting that these male flavored contributions to society are really not needed anymore.

<comment><USER11> The most needlessly sexist thing I'll read today.

</comment></comment></comment><comment><USER12> I had two thoughts as I read this:

\- Lots of talk about how the happiness of this group of people was higher, but no numbers on the happiness of their parents. I have three kids. I love them immensely. I don't want them living with me in their 20's. Especially spending all day playing video games while I work to pay the bills.

\- I wonder what proponents of Universal Basic Income would say about this. Turns out that when there's less incentive to do things, less gets done. Which seems to run contrary to the narrative of "if only I didn't have to worry about bills, I could do something meaningful." At least for me, I find providing for my wife and children quite meaningful. What job I choose to do that is almost secondary.

</comment><comment><USER13> Often, getting a job is a stepping stone to impress a woman, get married, and have children.

That takes a long time, and women these days usually work, making your job a lot less attractive to them.

Why not play video games at home? At least then you'd know you'd have some fun.

<comment><USER14> Marrying an overweight/tatooed/feminist older woman is not much fun!

</comment></comment><comment><USER15> This article is a pile of just-so bullshit designed to appeal to baby boomers so they can convince themselves that voting against unemployment benefits isn't going to directly screw over a whole bunch parents and children from all over the social strata.

<comment><USER6> Facts are not BS.

<comment><USER15> Data is also not the plural of anecdote.

Stitching together a bunch of statistics with anecdotes is not research, which is what the article does whereas the actual source is as yet still unpublished.

Of course the article is somewhat worse then that: the anecdotes pretty clearly paint a picture of a poor job market with few low-skill opportunities for advancement. But speculates wildly that it _must_ just be video games.

</comment></comment></comment><comment><USER16> "That's a big chunk of labor that could be used for something, and we're not using it," said Greg Kaplan, an economist at the University of Chicago who was not involved with the new research.

I'm also an economist and this guy is not smart. Others will rush in the fill the void. Marginally there will be almost no difference. This guy is forgetting that directly below this group of men who now play video games is a nearly equal capable group who now has better job opportunities. This logic continues to ratchet all the way down....

This isn't rocket science. Only if there was never a poorer group could this be true

<comment><USER17> I don't see how your statement contradicts his. The fact that other people will rush in to fill the void doesn't change the fact that tons of people will still be sitting at home playing video games. Hence his statement about a big chunk of labor remaining unused is still true.

Also, there's absolutely no guarantee that job opportunities will become more attractive at a rate that matches the attractiveness of video games. It's not hard to imagine a world 20 years from now in which millions of people spend 12+ hours a day in what essentially amounts to the Matrix, slaying dragons, shooting bad guys, and saving princesses. You might say to them, "Go out and get a job! There's no competition! You could make great money!" To which they could very logically reply, "Why would I need lots of money for? I'm perfectly happy right now."

<comment><USER18> But are they really a chunk of labour?

Like if people that chose to not work and play video games are a chunk of unused labour than so are unemployed alcoholics.

It's kind of a self-selecting thing, do you really want the people that don't want to work?

<comment><USER17> If the economists in the article are to be believed, these aren't simply "people that don't want to work." They're people who ordinary have _always_ worked, but are now being actively persuaded not to by this new force known as video games. So it's not analogous to alcoholics being alcoholics. It's better compared to the introduction of a wholly new drug into society, which has subsequently altered the behavior of a heretofore normal, hard-working, non- addicted segment.

Secondly, while it may seem appropriate to deride these people as useless and lazy ne'er-do-wells, that characterization isn't apt. It's not as if they're living lives of misery, unable to overcome some base desire to pull themselves out of it. Quite the contrary: they're happier than the rest of us. They're looking at the options that society has presented them with, and making a perfectly logical choice to spend their days engaged in meaningful, rewarding, social, challenging, and fulfilling activity -- in a fantasy world. Why would they go to work at dead end jobs if they have the option not to?

</comment></comment></comment></comment><comment><USER19> I took a long drive on Saturday, and on the way home I travelled past my old place. I got hit by a wave of nostalgia as I went past.

When home I found a Reddit post by a guy who overlays the Guild Wars maps on the Guild Wars 2 map[1]. Wave of nostalgia... followed by a realization, I can still play Guild Wars.

I cannot go back to my old house and relive my memories, but I'm a quick download from remembering similar memories made in that same house while playing Guild Wars.

That's powerful. It's the same reason my parent and grandparents made photo albums and home movies.

I can literally play a game to help me relive my memories and it's not just me grasping for moments in my head, but it's literally the same experience.

When I'm old and dying I'll have the chance to start up a video game and get my nostalgia fix with far more satisfaction than if I was telling a story of my childhood to any of my future grand children.

[1] [http://guide.thatshaman.com/](http://guide.thatshaman.com/)

</comment><comment><USER20> For a potential solution, see "15 Million Merits", the second episode of Black Mirror. :)

<comment><USER21> Such a depressing series

</comment></comment><comment><USER22> IRL, rewards come slowly, if ever. Setbacks can cost years of loss of 'progression'. We are mostly, by definition, average, without much agency, without much optimism, without much opportunity. Video games provide the shortest path to a rich, rewarding experience for our minds. Platitudes about hard work aside (for they are for the exceptional), we are helpless in our pleasure seeking, pain avoiding minds. The disappointing mundanity of the 'real world' cannot compete.

</comment><comment><USER23> How do they support themselves? Parents basement?

<comment><USER24> yes that was the point of the article(that you obviously didn't read), young men aren't going out and doing the low level jobs that would lead to career advancement. they're doing them but at later ages, leading them to miss the cutoff for advancement and being stuck in lower level roles

</comment></comment><comment><USER25> Where is the link to the actual study? I could not find it in the article. Anyone have the actual journal article?

</comment><comment><USER26> There are many companies (should be familiar to anyone in tech) and well funded organizations working hard to give more opportunities to women.

Well, they succeeded and this is what success looks like.

Their work hasn't stopped either, so expect even more success in the future.

</comment><comment><USER7> Two words. Real wages. They are at historic lows.

> Turns out that when there's less incentive to do things, less gets done.

<comment><USER12> Real wages didn't get higher when they got kicked out of the basement. The difference is they had to do something in order to feed themselves.

I think a 20 y/o who lives with their parents so they can play video games is a sloth. I fully intend to teach my kids the same. I expect them to leave and take care of themselves even if the only opportunities available to them are blue collar / manual labor that pay very little.

The decrease in real wages lowers the incentive to work. But so does a society that views playing video games in your parents' basement in lieue of entering the workforce as acceptable.

That probably sounds harsh, but (at least from the article) it seems like these people haven't had difficulties getting jobs when they're in their 30s with equally poor experience. They're just ten years behind the earnings curve.

<comment><USER7> I don't really disagree. Some of it is attitude. That and what the book the Millionaire Next Door referred to as Economic Outpatient Care.

It is just that in the past the standard of living also was raised, and the market had to bear higher costs to motivate people to work.

If you examine the pay of our grandparents and parents you see they experienced very considerable wage growth in their lifetimes while the standard of living was rising, like by a factor of 10. Roofing contractors were paid a dollar a day in 1900!

That impetus is missing from the labour market today. It is partly that some of the people mentioned in the study feel like they have better things to do, but a lot of it has to do with the trajectory and speed of wage growth.

When you feel like your prospects are 'capped', you're bound to be less motivated.

I've heard employers whining they can't find the right people in the WSJ and NYT for some time now (subtext: at subpar rates of pay) and I think this should be treated with the same reverence given to lazy bones on the coach there. None.

</comment></comment></comment><comment><USER27> Stimulant of the masses</comment>


Amazon RDS Update – MariaDB Is Now Available - <AUTHOR> https://aws.amazon.com/blogs/aws/amazon-rds-update-mariadb-is-now-available/ <comment><USER2> I've used MariaDB in production a few years back and didn't notice any differences in operation except for an esoteric bug with some version of Ubuntu that required making a minor change to the config file...otherwise, it worked as a drop-in replacement as advertised, though this app didn't do anything particularly exotic outside of the standard Rails/ActiveRecord conventions...

Has much changed? Is MariaDB still pretty much a drop-in replacement? And has anyone moved a non-trivial app from MySQL to MariaDB...or would be confident in making that move on RDS, on the heels of this announcement? I mean, if there aren't any production problems, the change in licensing [1] alone seems like it could be enough of a reason (although I may be misunderstanding MySQL's licensing, it's always been a little confusing to me).

[1] [http://stackoverflow.com/a/227242](http://stackoverflow.com/a/227242)

<comment><USER3> yes, MariaDB is still a drop-in replacement for MySQL with a number of enhancements. There are a few minor incompatibilities to be aware of.

[https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql- features/](https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-features/) [https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql- compatibi...](https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql- compatibility/)

</comment></comment><comment><USER4> Apparently this doesn't include the version that comes with data at rest encryption (10.1.3):

[https://mariadb.com/kb/en/mariadb/data-at-rest- encryption/](https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/)

<comment><USER3> RDS MariaDB already supports encryption at rest, so you don't need to wait for 10.1: [http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overvi...](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html)</comment></comment>


Brooklyn Bitcoin Mine Causes Static for T-Mobile Users - <AUTHOR> https://www.bloomberg.com/news/articles/2018-02-15/bitcoin-mine-causes-harmful-interference-for-t-mobile-users <comment><USER3> People have been speculating about how someone can turn a profit with power rates in NYC. It's highly likely that this guy rents an apartment that comes with power, or he rigged a connection to an outlet in the common area.

I had friends who used to run hydroponics rigs in their apartments (for veggies!), it made sense because their landlord footed the bill.

The only electricity cheaper than hydro, is electricity where someone else pays the bill.

<comment><USER4> How much of the power used by something like this ends up as heat? The FCC notice says it was an "Antminer s5". A bit of Googling suggests it uses a little under 600 watts.

If most of that ends up as heat in his apartment, that could reduce his need for other heating which could offset some of the electricity cost, especially if that other heating is electric heating.

<comment><USER5> As there is no other energy output, all of it.

</comment></comment></comment><comment><USER6> I wonder if it wasn't the miner at all. Maybe the guy had an (illegal) cellphone jammer as well, and somehow managed to convince the feds that it was his antminer causing the trouble.

<comment><USER7> From the Article (the actual notice): [https://apps.fcc.gov/edocs_public/attachmatch/DOC-349258A1.p...](https://apps.fcc.gov/edocs_public/attachmatch/DOC-349258A1.pdf) They identified the device, and the service impairment stopped when he shut it off..

"On November 30, 2017, in response to the complaint agents from the Enforcement Bureau's New York Office confirmed by direction finding techniques that radio emissions in the 700 MHz band were emanating from your residence in Brooklyn, New York. When the interfering device was turned off the interference ceased. You identified the device as an Antminer s5 Bitcoin Miner. The device was generating spurious emissions on frequencies assigned to T-Mobile's broadband network and causing harmful interference."

<comment><USER8> It says the person shut it off and claimed it was an Antminer s5, not that the FCC verified what was causing the interference. Was there some additional 3rd party confirmation of what it actually was?

</comment></comment></comment><comment><USER9> As a ham radio operator, this sort of thing is _extremely_ common. Most cheap Chinese power supplies tend to broadcast a lot of noise.

Nowadays, it's mostly impossible to operate the short wave bands in a city due to all the static on the air. The regulation agencies have pretty much given up, save for the most egregious cases, due to how prolific the problem is.

It's pretty sad.

<comment><USER10> One might imagine with better technology, something like noise-detecting spread-sprectrum or automatic link establishment, along with advanced DSP filtering would be able to dodge these sorts of noise generators.

But no. The noise is omnipresent, and there's no way to escape it. [https://apps.fcc.gov/edocs_public/attachmatch/DA-16-676A1_Rc...](https://apps.fcc.gov/edocs_public/attachmatch/DA-16-676A1_Rcd.pdf)

</comment></comment><comment><USER11> Instead of shutting it down couldn't he put the miner in a faraday cage?

<comment><USER12> Cages only block external em, they don't block internal em from getting out.

<comment><USER13> Yes they do. A Faraday cage is equally good at blocking radio waves going out as coming in. They don't protect against conducted emissions though - along a power cable for example - so they're not a complete solution.

<comment><USER14> Perhaps the radiation wasn't mostly coming from the Antminer box itself - <USER2> 700Mhz clock the rig draws current, the transformer propagates it back to the wall, and the power lines in the flat become a big antenna.

Powerline Ethernet has this problem, but it uses only a 25MHz carrier wave, so it only bothers hams.

</comment></comment></comment></comment><comment><USER15> I presume this was only messin' with the folks next door or something? Could a device like this impact t-mobile in a meaningful way? If it was just one or two customers, t-mobile managed to get the FCC to actually go find this thing??

<comment><USER16> I've heard they take ANY interference very seriously. That's why HAM radio operators are licensed, and if you operate outside of your allowed bands, yes they'll probably show up.

<comment><USER17> Unfortunately not... Most ham interference is ignored by the FCC unless it's especially egregious and extended (14.313 MHz being one example)

</comment></comment></comment><comment><USER18> Somehow it doesn't surprise me that Bitcoin mining hardware is generating harmful RF interference.

If I was a miner, I'd be quite worried that someone with direction finding equipment could easily discover a hidden mining location. The FCC or another government entity finding you is kind of the best case scenario if you think about it... :)

<comment><USER19> I have also thought about this. If you have a serious mining operation ($$$$$), you have armed security.

</comment></comment><comment><USER20> It bugs me people think you need proof of work to run blockchains.

<comment><USER21> I've seen coins using proof of stake, but I haven't read up enough on it yet to understand how it works. Are there more methods?

</comment></comment><comment><USER22> A single S5 caused the interference? Something doesn't add up with this story.

A fleet of Antminers, perhaps, but even that would be unlikely.

Edit (addendum):

Details about the stock unit's noise output; Antminer S5 runs at 61 to 65 dB at 4 feet. Modified S5 with a higher-quality fan dropped the measured sound intensity to 48 dB[0].

Follow-up Edit:

I just noticed that I'd clipped a section of my response...which would have made it clear that my doubt was that the S5 put out emissions that interfered with T-Mobile. I referenced sound later, but only intended that to be a point of reference.

Whoops!

——-

[0] [https://www.ccn.com/review-bitcoin-asic-miner-bitmain- antmin...](https://www.ccn.com/review-bitcoin-asic-miner-bitmain-antminer-s5/)

<comment><USER23> For some reason I don't think they were concerned with 700MHz sound waves</comment></comment>


ProtoBuff, Serialization, JSON, etc. - <AUTHOR> I have been programming for more than 40 years and I have seen many evolutionary and some disruptive changes in technology. While working on a large project for NASA in 1990 we determined and all agreed that data files (containing complex combinations of objects and primitive types) should be both human and machine readable. If they were entirely binary or cleverly condensed to some obscure form, we would have great difficulty detecting and tracing data errors when then occured. To implemenent human and machine readable data files we created a utility that would perform all of the necessary reading and writing including procedures that would read and write all conventional data types, objects with names for each field, delimited lists,
 fixed length arrays, necessary but uncommon data formats (such as UTC), and we would add new data types and associated readers and writers when then became necessary. I find it comical that JSON provides the means to read a few delimiters, a few basic data types, identifiers, numbers, strings, etc. I also find it alarming when major players go to great lengths to create intermediate binary representations that are (generally) unreadable by humans that may need to debug their data transfer applications. I categorize this as lazy: we will make it possible to read text enclosed within quotes, but leave it to the user to parse the text within the string. Likewise, java scanner can read an entire line of text as a string, but leave it to the programmer to parse the string to extract structured information. I agree with one readers comments that smart people can make great tools, but also make tools that are unusable by others. C'est la vie. Those that control the machines of technical governance (microsoft, google, oracle, etc.) are not accountable for the quality and usability of their tools. The rest of us are left with the challenge of using the tools. <comment><USER2> This is one of the biggest problems in software today.

The range of requirements for serialization is extreme.

Some people are moving a vector of 10 billion floats from one place to another, and that is a job for binary. It is shocking how many floating point ops you can do (sometimes your whole calculation) in the time it takes to convert ascii to float and back -- on top of that it is brain-damaged to have a binary representation (power of 2 denominator) where you can't exactly express ascii values such as 0.2 which have factors of something other than 2 in the denominator)

Finance systems need to handle large numbers of credit card transactions, bank deposits, trades, and the cost of serialization and deserialization at the central points of networks is stupendous.

Other applications don't care about speed so much. Early academic research in remote procedure calls was highly concerned about performance -- they wanted RPC to compete with local procedure calls.

RPC didn't take off in a big way until it was implemented over the web with 'performance doesn't matter' serialization such as XML and JSON. Once it took off, we saw an explosion in binary serializations.</comment>


Zuckerberg's 2012 personal income tax bill: $1.5 billion - <AUTHOR> http://www.ft.com/intl/cms/s/2/6dbffbce-4e8b-11e1-ada2-00144feabdc0.html#axzz1l2yniWmn?ftcamp=crm/email/201223/nbe/ExclusiveComment/product

<comment><USER2> * Politicians in Sacramento,California's state capital, are arguing over how to spend the tax windfall expected from Facebook's IPO*

I hope they treat it like it's the last windfall they'll see for a long time

<comment><USER3> Why so?

</comment></comment><comment><USER4> Duplicate of earlier submission of the ft.com article

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

following an earlier submission of Wall Street Journal reporting on same issue.

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

For either story, the underlying primary source is the registration statement for Facebook's initial public offering of stock.</comment>