Cobol Still Powers the Global Economy - <AUTHOR> https://www.tpr.org/post/how-cobol-still-powers-global-economy-60-years-old <comment><USER3> One of my last jobs as an intern in 2004 was to rewrite an old batch process COBOL app in C# and ASP.Net. App was basically input about 6 fields, and based up some rules. It really wasn't terribly complicated, but I had to read the source to understand exactly what it did. It was also my real exposure to COBOL. Took me a while to realize that around 60 printed pages of the 80ish page program was nothing but hard coded data tables and rules, when this, then that, etc. Once I realized that, it was a few simple regexs to pull that and transform to xml (was early 2000s...).

While decyphering the remaining logic, I discovered what I think is the most evil programming construct I've so far seen; think goto is bad? Meet MOVE NEXT SENTENCE. COBOL is traditionally written in all uppercase (and historically EBCIDIC). So what does "MOVE NEXT SENTENCE" do? It's an unconditional jump to the next period, that's right '.'. Thats right, in a language where everything looks like it's yelling at you, you have to find a little tiny period to find where execution resumes. No labels, just a tiny couple of pixel round period. Fun...

<comment><USER4> COBOL has a worse construct than this.

ALTER LABEL1 TO PROCEED TO LABEL2

This will cause any gotos to LABEL1 to be redirected to LABEL2.

This is worse than older Fortran's arithmetic IF[0].

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

<comment><USER5> You can do that (or worse) in C too.

#define LABEL1 LABEL2

Is there any language that can be worse than a macro and #ifdef-ridden C? I'm only half joking.

<comment><USER6> Your C #define is done at compile time. This Cobol's alter example [1] seem to do so at runtime. Thus labels can be considered modifiable points. Actually, it's kinda interesting... does it support chains? Alter A->B and B->C, does GoTo A call C? If i now alter X->A then A->D and GoTo X, where do you end up? C? D? Hope you can at least undo that with something like alter A->A. Actually, I probably don't even want to know. Hope using it gives a big warning in whatever tools Cobal devs use.

[1] [https://riptutorial.com/cobol/example/19820/a-contrived- exam...](https://riptutorial.com/cobol/example/19820/a-contrived-example- using-alter)

</comment></comment></comment></comment><comment><USER7> I worked on Y2K remediation fixing COBOL programs I'd never seen before at a large oil company. It's an easy-to-understand language by design. The complexity of dealing with the apps/jobs wasn't the code or the impact analysis, but just the volume of work -- the endless test cases. The nice thing about those systems was that because they were financial apps, success was pretty black or white. Either things balanced and agreed with production or didn't. But sooo many green bar reports. Killed many green bar trees in '98\. My theory is that if you like programming, preferences aside, you'll appreciate the beauty in any language, COBOL's no exception once you grok it. May not be sexy but I've seen sexier languages come and go in 20+ years.

</comment><comment><USER8> > "I think there is a misconception about [COBOL]. A misunderstanding about it > as far as it being old. Usually in technology we think because it is old it > is irrelevant," he said. "But it's still the fastest processing language out > there."

I thought this comment was born from naivety or bias, but after reading up on it a little further, it appears that it's true or close to true for many cases.

<comment><USER9> I think it mostly stems from IBM compiler optimizations for their mainframes (which is most of today's COBOL), and not the language itself.

I do COBOL mostly in OpenVMS and only tinker with IBM in the weekends but it would be cool to see how it performs under the same circumstances compared to other languages.

<comment><USER10> You surely know more about COBOL than I do, but what about decimal arithmetic? I mean if the problem domain requires arithmetic correctly rounded to thousandths, with the operands loaded from fixed text fields and the results stored in fixed text fields, COBOL gives you that directly in the language, and presumably on a relatively efficient form. I don't know if using instructions like 8086 DAA and AAA is a win on today's CPUs, but surely avoiding the sequence of long divisions to convert from binary to decimal is a win (if what you're doing between input and output is, like, an addition and a multiplication by 1.0575, or something). Are you thinking that maybe some C++ template Decimal class with some integer parameters is going to beat GnuCOBOL on an amd64?

<comment><USER9> I wish I could give you a good answer, but I really haven't dug deep into the pros of the language. If you see any review of this I'd love to read it as well.

</comment></comment></comment></comment><comment><USER11> My first gig out of college was maintaining Cobol at a bank for two years. Some of the programs were 20+ years old, and we made changes monthly - <USER2> always seemed like a fantastic rate of churn.

If something went wrong during a deployment, heaven help you. One time a pair of transposed digits got through testing and code reviews and into deployment. My colleague spotted it and called the management center to hold jobs... Thirty seconds too late.

It took four days to back everything out.

<comment><USER12> Standard procedure was to have a pre-batch and post-batch backup step. Any major problems you restore everything to the pre-batch state.

<comment><USER11> That's basically what we did. The problem here was that processing was split into eight or so steps across ~25 streams of work between the backup steps and was far enough along the output files were generated, revving their generation number. Those files fed something like thirty follow-on jobs, so all the file generations had to be backed out before processing could run.

It all seemed horribly complicated and brittle to me at the time. Not sorry I don't work with it any more.

</comment></comment></comment><comment><USER13> At my last job they had a custom variant of COBOL and hey I don't know why everyone is playing it down. It was beautiful. You could make a full GUI form with full validations in like only a few lines of code.

Like a whole tax form is how you'd do a Hello world.

And then we ported the runtime to render web pages over a web socket and that's when things got really interesting. 20+ MLOC of legacy apps rendering directly to the web.

It's such a flexible language and I absolutely enjoyed working on the run time and the other guys in the company really enjoyed writing in it.

</comment><comment><USER14> Cobol is mostly likely around because no one knows exactly what the code does. Missing design documents & decisions don't help either. Companies making money are risk adverse, they won't risk killing their golden goose over a rewrite, it's often companies that are not making money that go on massive rewrites believing that new tech will give them the Midas touch towards profit.

<comment><USER15> I had a contract about 10 years ago for a major city's water department. The contract was to convert an internal application for customer billing, written in COBOL running on the mainframe to a web application backed by Oracle.

When I started gathering requirements from the city's rep who was my point of contact I asked them for any documentation they had such as use cases, functional specs etc. All they could provide was the original COBOL source code bound up in those huge 17"x14" binders; the one's that have the holes along each side from the old dot matrix printers with every other line having that faint light green background.

Well I'd never seen COBOL in my entire live and I could only look at the code for about an hour before my eyes started to bleed. Fortunately I was able to get restricted access to the system and it ended up being pretty easy to just reverse engineer the thing by mapping each green screen of the app to a corresponding web page. In the end I didn't need any original code or documentation to do the job.

<comment><USER16> Is your code still running? Did it suffer significant downtime? Did anything else break because of the new code? Did anyone do without water?

<comment><USER15> Yes, no, no and no... AFAIK :)

</comment></comment></comment></comment><comment><USER17> I once had a boss who was an old Cobol Cowboy, he walked me through a financial system that's still in use.

I can't help but feel that even back in the days, they would have been better served by Pascal with fix point math. The only convenient features I could spot were related to working with records in files, and Pascal has that covered.

Their Cobol implementation sort of, kind of supported subroutines but they were such a pain in the ass that code was usually copy-pasted instead.

The only thing about Cobol that I just can't stand so far is the optional filler "keywords" that allows code to look sort of, kind of like natural language. That's just wrong.

<comment><USER10> When Pascal was published in 1970, COBOL was already 11 years old.

<comment><USER17> I am aware, Cobol wasn't standardized until 1970 though.

My point is that if you can implement Cobol, you can implement Pascal; and your users will be better off. Cobol has no inherent qualities from my experience that makes it a better choice.

</comment></comment></comment><comment><USER18> I had an assignment at the Dutch Tax Service and was surprised to learn that they were still actively developing new software in COBOL. The reason, I was told, was that they had many COBOL developers and not as many that were experienced in other languages. Most of these people, however will start their pensions in a couple of years, so they'll have nobody to maintain this stuff.

<comment><USER19> > The reason, I was told, was that they had many COBOL developers and not as > many that were experienced in other languages.

That doesn't sound like a very good reason when you pair it with the fact that:

> Most of these people, however will start their pensions in a couple of years

Incredible oversight that will either lead to some potentially very serious consequences, or some very high consultancy costs.

<comment><USER20> The Dutch government is unfortunately known for having IT projects fail constantly, they've already accumulated an enormous technical debt. They outsource a lot because the current staff is either close to retirement or just can't be motivated anymore to put in the effort. Hearing this is the least surprising to be honest.

<comment><USER18> I've done quite a bit of work in Dutch government IT and would like to add that the failure of these projects is often because of politics and constantly changing requirements. IT is often working really hard and doing the best they can, but scope creep, forced deadlines and constant changes in leadership make it nearly impossible to actually do things right.

Technical debt is also a huge issue indeed, since focus is always on delivering new features, because that allows leadership to move to new positions. Delivering stable maintainable code/infra isn't visible.

</comment></comment></comment></comment><comment><USER21> My understanding is that part of COBOL's longevity stems from its particular handling of fixed-point math being a specified requirement of various financial contracts. Odd to see this write-up not mention fixed-point math, actually.

<comment><USER22> It's been interesting to observe this impedance mismatch in practice. My first job was writing software for a startup that sold to quant hedge funds. I did a bunch of research on my own, and one of the best practices I ran across was _do not use floating point to represent money_. Represent everything in terms of integer units of the most basic currency unit (usually cents), to avoid round-off errors. Then I took this information to my CEO, who shot me down on the basis that all their customers used floating point for their internal models, and so I'd be needlessly introducing friction.

And now I'm doing cryptocurrency analytics. The basic unit of Bitcoin is the satoshi, and in the protocol, all transactions are denominated in satoshis. (Similarly, in ethereum, the base unit is the wei and all transactions are denominated as 256-bit words of wei.) And yet basically all exchanges are still using floats. Sometimes they quote them as strings to avoid round-off, sometimes it's double-precision, but internally, it's all just floating point math. So once again I find myself doing everything in terms of floats, even though the underlying financial instrument uses integer units of a very small denomination.

Now that there's a huge proliferation of cryptocurrencies, I wonder if we'll eventually see one that gives up on this point and defines money as IEEE 754 double-precision floating point numbers.

<comment><USER23> Seems like someone familiar with inflection points in floating point representation could pull an Office Space-style skimming scheme against a floating point based system by perfectly legal means simply by making a lot of transactions of carefully selected sizes.

<comment><USER22> Interesting idea. Most of the inflection points I've observed have actually been at transaction/analytics boundaries. Transactions are in integer units, analytics are in floating point. It's done this way because many algorithms (including most linear algebra, statistical, and machine-learning algorithms) operate on floats for efficiency, while transactions operate on ints for accuracy.

This isn't _directly_ attackable, but you could potentially trick a trading algorithm into performing stupid trades by feeding it subtly inaccurate data. If you know the particular algorithm used, though, there are probably easier ways to construct adversarial inputs and trade against them. This is why virtually all trading shops keep their algorithms secret, and also slice up & mix their outgoing orders randomly so you can't observe the output of the algorithm.

</comment></comment></comment></comment><comment><USER24> > Some banks have spent hundreds of millions of dollars and several years > migrating systems.

The commonwealth bank in Australia, one of the biggest four banks in the country, spent AUD$1B migrating away from COBOL.

[https://increment.com/programming-languages/cobol-all-the- wa...](https://increment.com/programming-languages/cobol-all-the-way-down/)

<comment><USER25> I hear a lot about the uptime of cobol/mainframe based applications, but the entire Commonwealth Bank ATM and eftpos systems used to go down for an hour or two at 3AM every Sunday, back in the day this was nightclub close and time for a kebab and caught me out quite a few times. It's been much better since they migrated.

<comment><USER26> Ergo you spent all your $ in the club!

</comment></comment></comment><comment><USER27> I'm a bit young to have had any contact with COBOL, but I've worked in financial institutions implementing mission-critical code handling customer transactions in other languages. The first thing that springs to mind to ask is, what kind of features does COBOL offer to make these processes safer and less bug-prone? At least 75% of the code and associated reams of unit testing I've seen written in these applications is to deal with weird input and edge- cases. Is there anything specific about COBOL that is especially suited for dealing with this kind of task? I've never seen anything written about static analysis or formal modelling either. Is the compiler especially attuned to catching potential errors? Is there implicit run-time bounds checking and analysis like in Ada et al?

<comment><USER28> No, nothing like that. It is simply the first language ever used for these tasks (first language to be designed to look anything like English too). The language is so old that one of its designers is also the person that introduced the notion of "compiler".

<comment><USER27> Thank you, that's very interesting to know. I had guessed that there wasn't much, based upon its vintage, but I'd have thought that it must be very robust at some level to have dominated a mission-critical financial niche for so long.

</comment></comment></comment><comment><USER29> I was curious if anyone has published a decent chunk of "modern" COBOL since articles and stories never really link to large working systems. It turns out Walmart has! Enjoy: [https://github.com/walmartlabs/zFAM/blob/master/Source/ZFAM0...](https://github.com/walmartlabs/zFAM/blob/master/Source/ZFAM007.cbl)

<comment><USER30> Interesting it has a "come from". So the execution will stop somewhere, but it's defined somewhere else. That's worse than GOTO I would say.

PERFORM 4200-COPY-ECR THRU 4200-EXIT.

</comment></comment><comment><USER31> My day job is writing German COBOL, i.e. ABAP. The language changed a lot and is quite usable, except they don't have namespaces. But the worst is all of the cruft that accumulated. Not just of legacy code, but also in the language itself. So many different paradigms, old frameworks, everything is still working. On the other hand it is very high level for the job to be done. SQL can be directly embedded and there is a syntax check. There are a lot of integrated tools that are heaven and hell in the same time. The database migrations are so easy, but source code management, deployment is hell.

</comment><comment><USER32> Looking at the absurdly long code required to make factorials work makes you wonder what conveniences we are all used to without really appreciating them. And which ones will future programmers take for granted but are too niche now - maybe async/await or the borrow checker concepts, or is programming mostly "done"?

[http://rosettacode.org/wiki/Factorial#COBOL](http://rosettacode.org/wiki/Factorial#COBOL)

or also [http://rosettacode.org/wiki/FizzBuzz#COBOL](http://rosettacode.org/wiki/FizzBuzz#COBOL)

Is there a code example where Cobol shines in comparison to, say, Python?

<comment><USER33> Oh no every time I visit Rosettacode I spend an hour looking up languages on Wikipedia.

Today's winner is dc

> dc is the oldest surviving Unix language.

[https://en.wikipedia.org/wiki/Dc_(computer_program)?oldforma...](https://en.wikipedia.org/wiki/Dc_\(computer_program\)?oldformat=true)

<comment><USER34> I'm amazed, it is even included in the latest MacOS release

<comment><USER33> It's like awk/sed, it has to be packaged with any unixy system.

</comment></comment></comment></comment><comment><USER35> 3 years ago I learned that large insurance companies in India still use COBOL. That fact blew my mind. This fact (Estimates as high as 80% of financial transactions use... COBOL) further blows my mind as I thought only Indian financial institutions are rigid. Clearly not.

<comment><USER36> A Danish news article on the death of mainframes (or their unwillingness to die) where they have some stats that says that 10 out 10 of the largest insurance companies still use mainframes for they core systems. So learning that large insurance companies run Cobol isn't that surprising.

They cite: [https://www.share.org/blog/mainframe-matters-how- mainframes-...](https://www.share.org/blog/mainframe-matters-how-mainframes- keep-the-financial-industry-up-and-running)

<comment><USER9> Looking at job listings over a few months this is easy to verify for the nordic countries.

</comment></comment></comment><comment><USER37> If your company is looking for training materials for COBOL or other mainframe technology, it might be worth taking a look at Interskill.

[https://interskill.com/](https://interskill.com/) or [https://interskill.co.uk/](https://interskill.co.uk/)

Disclosure: I work for them.

</comment><comment><USER38> I've heard this sentiment about Cobol often. As someone who has never seen Cobol or used it, how hard would it be for me to specialize in Cobol maintenance and porting? Is it really as impenetrable as it seems, requiring years of experience, or can someone like me work through a few books and get on it?

With this kind of thing you never know when organizations move away from the technology en masse and it would be great to be in it at the time.

<comment><USER39> I have used FORTRAN quite a bit and I assume that the situation with Cobol is similar. If you go into it with an open mind you will soon see common patterns that look crazy from a more modern language point of view but were widely used in that language. My FORTRAN code was full of GOTO which looks horrible today but that's how things got done and once you are used to it it makes sense.

Now the other question is whether it makes sense to get into Cobol from a career or business perspective and I am not so sure about that...

<comment><USER38> Is it a bad idea? I see articles like this all the time, and job postings with decent pay, $100k+ on Indeed. Maybe long term it's a bad idea to invest in a technology that's bound to disappear.

<comment><USER40> I think that it will only disappear in the sense that the heat death of the universe is inevitable

</comment></comment></comment></comment><comment><USER41> My first programming job (29 years ago!) was a COBOL gig. I worked for a company that wrote banking software, most of it COBOL and a little Assembler.

It all ran on IBM mainframes (the size of a small car) surrounded by disks and controllers the size of refridgerators. All the hardware was kept in a glassed-in room with white-tiled raised floor. Most of the coding was done on dumb terminals, but a few applications still had punch cards.

Ah, the memories. Long live COBOL.

</comment><comment><USER42> From what I understood when I worked at LiveNation, every time you buy a ticket from Ticketmaster the transaction flows through some ancient spaghetti COBOL, probably running in Phoenix.

</comment><comment><USER43> I _really_ want to get a job writing COBOL. However, nobody will give me a chance at it. I recently applied for a few jobs in my area but they wanted 10+ years of COBOL so I was turned down. I learned in college (however would need to re-learn) and I really enjoyed it. I also enjoy financials and data.

If anyone has any thoughts I'd appreciate it. I'm currently writing c++ software for making robots work, plus I have financial industry experience.

</comment><comment><USER44> I've had a limited exposure to COBOL and I consider it quite elegant for the problems it's trying to solve, particularly for column oriented transactional data processing, I found it interesting that on System Z, all of the IO, is done in the JCL that you use to start the program, not in the program itself.

<comment><USER12> In the JCL you just specify how to link the logical IO definitions in the program to the actual physical IO objects (real file names etc.) in the environment. The IO statements are still in the program.

</comment></comment><comment><USER45> I hate how the title says "powers the global economy" when it should be "powers banking systems". I spend a lot of money on many things, my smartphone, gsuite, slack, Netflix, Amazon, Dropbox, games, tools, hardware, and I would guess most of that stuff never touched Cobol. Meanwhile I pay 1usd monthly for my bank (which, btw already migrated). So saying it "powers the global economy" is definitely a bit of a stretch.

I am sure there's a lot of it running still, mission critical stuff, also that there are still a few teams creating new projects with it. So it is not dead by this definition. But if I'm honest, I can't name one single language that is.

<comment><USER46> When you spend the money on those things your bank or credit card merchant processes every one of those transactions. Cobol is almost always doing the day-end processing on those systems. Hence, while the products you use don't directly rely on COBOL, the fact remains that COBOL is powering the economic transactions that allow those businesses to exist currently.

<comment><USER45> My point is, COBOL is responsible for a really small % of said value per value transaction between me and said services. Linux, [Oracle/My]SQL, Java, JavaScript, C, anything from router firmware to Intel cpus powering the VMs is more relevant than said COBOL code.

So saying COBOL powers the global economy is indeed a stretch. Want to say Linux powers it? True, Intel powers it? True. COBOL... not so much. Imagine rewriting every COBOL system in the world, now change that into replacing all Intel cpus, ~~SQL~~ OracleSQL or MySQL databases or Linux kernels...

Edit: saying "SQL Databases" makes as much sense as saying "procedural programming languages", updating it to make more sense

<comment><USER46> Intel CPUs across the world can almost painlessly be swapped for AMD CPUs right now and only a small fraction of users would have to change anything.

SQL is a very high level of abstraction, to the point where the argument is a bit absurd when compared to a very concrete example of COBOL. Yes, if we had to rewrite everything that utilized SQL then it would take an incalculable amount of effort.

I feel like you're kind of hitting the nail on the head with the Linux kernel bit though -- yes we could replace all uses of the Linux kernel with one of the many alternatives available, but it would take a long time. More likely we'd see a major transition to one of the other available kernels. This is exactly the situation COBOL is in.

All this though -- and I think we're just talking about a semantic difference on the use of "%1 powers the %2". Arguably C, SQL, and Javascript provide the value to users which encourages them to spend their money which encourages further development. So okay, I think I follow where you're coming from. COBOL doesn't power the economy, it's just the most common form of infrastructure for us to extract value from the economy. That sound a bit more correct?

<comment><USER45> > Intel CPUs across the world can almost painlessly be swapped for AMD CPUs > right now and only a small fraction of users would have to change anything.

I beg to disagree here, swapping CPUs would definitelly prove to be extremelly costly in every possible way. Not only do the MoBo + CPUs themselves have a cost, but they also do not exist. That would mean a huge spike in AMD (or whatever vendor) demand, one that they don't even have the capacity to manufacture. On top of that, all the kernel optimizations over the years, which have a big impact in the overall costs of a cloud service, would be lost. All that ignoring the logistical side of swapping motherboards and CPUs, transport, risk and everything.

> SQL is a very high level of abstraction, to the point where the argument is > a bit absurd when compared to a very concrete example of COBOL. Yes, if we > had to rewrite everything that utilized SQL then it would take an > incalculable amount of effort.

You're right. Let me swap that with OracleSQL or MySQL, that'd make more sense.

> I feel like you're kind of hitting the nail on the head with the Linux > kernel bit though -- yes we could replace all uses of the Linux kernel with > one of the many alternatives available, but it would take a long time. More > likely we'd see a major transition to one of the other available kernels. > This is exactly the situation COBOL is in.

Imo the Linux kernel position is not the same as COBOL. COBOL is mainly being maintained, whereas Linux is the current standard for new projects and will remain so for the foreseeable future. If we create a new project running on COBOL, or a new project running on a Linux server, those are two completely different situations.

> All this though -- and I think we're just talking about a semantic > difference on the use of "%1 powers the %2". Arguably C, SQL, and Javascript > provide the value to users which encourages them to spend their money which > encourages further development. So okay, I think I follow where you're > coming from. COBOL doesn't power the economy, it's just the most common form > of infrastructure for us to extract value from the economy. That sound a bit > more correct?

Yes, exactly my point. The economy is not "powered" by banks, it is powered by those who create economic value, and they do not use COBOL all that much.

</comment></comment></comment></comment></comment><comment><USER47> I used COBOL when it was cool back in the 80s!

<comment><USER48> COBOL was never cool. A year after it was created (in 1959) people were already predicting its demise. Yet here we are.

<comment><USER49> It might not have been cool, but the car you could buy during the 90's working on COBOL projects was pretty spiffy.

</comment></comment></comment><comment><USER50> [https://wordsandbuttons.online/if_i_were_to_invent_a_program...](https://wordsandbuttons.online/if_i_were_to_invent_a_programming_language_for_the_21st_century.html)

</comment><comment><USER51> The term from economics that describes the situation well is "switching costs". They're very high in this case, as comments regarding banks migrating away indicate.

This book is a great overview of the economics of these kinds of situations:

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

</comment><comment><USER52> They still run it on actual mainframes? Wouldn't an emulator running on a modern machine be many times faster?

<comment><USER53> Modern mainframes are quite powerful machines: "The dual frame z14, launched in July 2017, and the single frame z14, launched in April 2018, are based on the z14 chip, a 10-core processor running at 5.2 GHz. A z14 system can have a maximum of 240 Processing Unit (PU) cores, 170 of which can be configured to the customer's specification to run applications and operating systems, and up to 32 TB usable redundant array of independent memory (RAIM), some of which can be configured as Virtual Flash Memory (VFM). Each PU can be characterized as a Central Processor (CP), Integrated Firmware Processor (IFP), Integrated Facility for Linux (IFL) processor, Integrated Information Processor (zIIP), Internal Coupling Facility (ICF) processor, additional System Assist Processor (SAP) or as a spare."

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

<comment><USER52> I assumed "mainframe" automatically meant "computer from no later than the early 90s", since these days we just call them servers. Similar to how I'd assume "microcomputer" automatically means "desktop from no later than the early 90s".

<comment><USER54> There's a number of big differences between a modern IBM mainframe and commodity servers. For one, the architecture: [https://en.wikipedia.org/wiki/Z/Architecture](https://en.wikipedia.org/wiki/Z/Architecture)

</comment></comment></comment></comment><comment><USER55> ...because people aren't willing to change it.

That doesn't make Cobol sounds less like a fossil in any way. It will be go away eventually.

</comment><comment><USER56> What an incredible website

The audio version has the quotes in the voice of the original speakers (probably because this is a radio).

There is an interactive timeline custom made for the content of the article.

Other audio logs can be accessed super easily via the drop down menu.

Incredible stuff.</comment>


Miro 4, the open source music and video player, is released - <AUTHOR> http://www.getmiro.com/

<comment><USER2> I wish media player developers would stop trying to imitate iTunes. I hate iTunes. It's confusing (it's caused me to delete my entire music collection on my PC on multiple occasions), it's huge and demanding (of my focus/attention, and also computing resources) where it shouldn't be, and its integration with iTunes store is pointless and annoying to me (I don't shop at iTunes).

It's great that seemingly high quality cross-platform tools like this are being developed, though I wonder what this does that Songbird (the last big "iTunes replacement" I can think of) does not?

<comment><USER3> "It's confusing (it's caused me to delete my entire music collection on my PC on multiple occasions)"

What? Ummmm....even my super non-techie wife hasn't done that.

<comment><USER2> I'm Appletarded, and get confused by a lot of Apple software. I don't know how I did it, but it's happened on three separate occasions. Twice on a Windows PC and once on a Mac. Somehow my misunderstanding of the sync feature led to the PC getting what was on the iPod, and the music collection on the PC being deleted. It was many years ago; I eventually learned my lesson and stopped trying to use the damned thing. Maybe it's better/safer now. But, I'll never find out, as I can't think of any reason I'd have to use iTunes.

<comment><USER4> Syncing your iPod will never delete music from your PC. It is and has always been a one-way sync, PC to iPod, as far as music content is concerned.

<comment><USER2> Seems like that would be the way things would work, wouldn't it? Again, it's been many years since it happened. The precise details of what happened are a bit fuzzy at this point, as is often the case with very painful events in life. It may have merely "forgotten" where to find all the music and emptied the library. And, it may be that the actual file deletions happened on the iPod rather than the PC (I'm still pretty sure it deleted files on the PC, though). I remember being furious and confused by the behavior of the software...and I remember having to re-rip several albums that I hadn't backed up lately, and I lost a few mixtapes that someone had made for me.

That reminds me of another thing I _hated_ about iTunes...it was always re- indexing its library. All the damned time. Every time I would start it, it would go galloping all over my PC (this was back in the days when I had three or four hard disks, plus a file server) for like 30 minutes.

Regardless of the specifics, iTunes made an enemy for life out of me by being so damned confusing, and so hostile to my existing workflow. I'd been using digital music for a decade before iTunes came along, and iTunes just did not fit into how I'd been using it.

</comment></comment></comment></comment></comment><comment><USER5> I know iTunes isn't very popular with HN readers, so I'll balance things out a bit and play devil's advocate for a while: I like iTunes quite a bit. There are certainly some minor gripes and irritations, particularly with the UI, but overall I'm satisfied with the performance of iTunes and wouldn't want to replace it without much careful thought.

I'm not a computer power user, more of a 'system dadmin'; we run iTunes in the house on about six (Mac) computers and half a dozen or so devices. iTunes runs happily on all the computers, ranging from an old original iMac from 2001 (which runs Tiger and iTunes 8 and acts as an internet radio and music 'terminal') to an eMac from 2005 running Leopard and iTunes 10) and various Snow Leopard machines and attached drives.

The different copies of iTunes copes with various libraries (the biggest one is 110GB) with apparent ease, and keeps track of the settings on various iPods, including a 60GB classic from 2005, two iPhones, three iPod Touches and a couple of Shuffles. It's easy to play music from other machines around the house - click on the computer's name and start listening to its music. It's also nice that when one of my children, say, buys an app for their iPhone on their iTunes Store account it appears automatically on mine too; similarly if I put music on mine it appears in their library, but of course you can be more selective in what you copy from family members' accounts and machines...

I love the power of iTunes playlists - those heavy duty database-query-like nested multiple smart playlists - and it's a great way to control what gets put onto your iPod while it charges and you sleep.

I also like: the automatic downloading of the latest podcasts and TV episodes; adding PDFs to my library puts them on my iPhone; broadcasting music around the house using iTunes DJ mode and Rogue Amoeba's Airfoil - controlling the music from any room using the Remote iPhone app (and sometimes letting people select music from their iOS devices); browsing the iTunes University and downloading lectures; tracking my App store spending with Wetfish Software's App Store Expense Monitor; writing new visualizers with Quartz Composer (which is cool if weird); ripping CDs with automatic track naming. I could go on.

OK, I'll accept that iTunes is a bizarre behemoth of an application, and has certainly outgrown its moniker. But, for day to day use, people like me find it a solid and reliable media and device 'engine' that doesn't require much thought or effort to use effectively.

But don't get me started on those stupid scrolling boxes within boxes...

Edit: when I started typing this, I was sure the title said 'Miro 4 ... iTunes replacement ...'. When I finished typing, it didn't. (I went off to work between those two times.) So I was thinking about whether Miro could replace more than 10% of iTunes' functionality. This comment seems less relevant now.

<comment><USER6> Yeah, I agree with you. iTunes has some stupid things and "wtf?" moments, but overall I do enjoy using it. It makes media consumption very easy.

</comment></comment><comment><USER7> Ok, so it's billed (here at least) as the "iTunes Replacement". And it advertises strongly "Converts and syncs to Android" (front and centre on the main page).

But I'm really unclear if it'll actually replace iTunes for my iPod Touch. It doesn't say anything about i devices that I can see (except for advertising an iPad app that doesn't seem to be available yet.)

So either; a) it doesn't sync my iOS devices in which case it may be a great media player, but it's not an iTunes replacement or b) They're hoping I'll take a huge amount for granted.

My guess is that the heading in Hacker News is the bit that's completely misleading and I do wish folk wouldn't editorialize the headline.

If it _is_ an iTunes replacement then a lot more info is needed - like will it sync my apps? Can I purchase new apps? and so on.

<comment><USER8> From their FAQ:

 _Can I sync my videos to an iPod or other video device?

Currently, Miro doesn't directly sync with any portable devices. However, we will be working on this in future versions. In the meantime, you may be able to sync the video files themselves with a separate program._

</comment></comment><comment><USER9> "Replacement" is a bit too tough a word.

It doesn't sync with (Apple) mobile devices, the primary reason I stick with iTunes.

It also seems more sluggish and bloated than iTunes on my MBP i7 running 10.6.

Seems like it was released way too prematurely. They could have spent more time building features & polish and utilized their launch hype much better.

Sorting through all the marketing fluff, what are the true advantages of Miro?

</comment><comment><USER10> Horribly annoying that on their website, when I click play on a video then close the popup, the video keeps playing! I tried to view a few clips and they were all playing in the background. Had to re-open the video again and manually press the pause button to stop them.

Otherwise, it looks very similar to DoubleTwist but with the addition of syncing iOS devices. Wish it could drop some of the bloat (for example the torrent client) to make it more compelling. It is very tough though to make things more simplified.

I know everyone has their gripes with iTunes, but it is very tough to have an interface that is complex enough to combine local management of music, management of apps, music, and videos on a device, a store and still allow the user the power to make decisions about individual songs, etc.

I think Apple should diverge them and have the device syncing component as a separate program entirely, but tightly integrated so it can nab playlists, podcasts, etc. from iTunes.

I hear iTunes is horrible on Windows, but on Mac it's not too bad and I can't think of many ways they could really optimize it without stripping features that would piss off a lot of users.

</comment><comment><USER11> It's not an iTunes replacement at all. I have an iPhone and buy apps through iTunes sometimes. This doesn't have that functionality (nor the syncing with the iPhone).

Also, it has a bittorrent client built in... Why?

<comment><USER12> Because Miro is the client for a video publishing platform that allows content providers to publish video streams to miro using rss and then have miro distribute it via bittorrent. Users are then able to search the Miro catalog and subscribe to those feeds if they are interested. For video-podcast addicts, thats really great.

Its not a tacked on feature, this is actually the core feature of Miro - its a distributed video player/content provider. Not an iTunes replacement at all.

<comment><USER13> This makes that BitTorrent client really make sense. Distributing video podcasts really has to be done via YouTube or not at all for a lot of people because it's such a pain to distribute the video due to bandwidth costs. BitTorrent helps, but many people aren't savvy with BitTorrent or are freaked out by piracy concerns.

I'm a huge proponent of more legitimate BitTorrent usage. It really is a good distribution protocol.

</comment></comment></comment><comment><USER14> Looks interesting, however I really dislike iTunes' "everything under then sun" motto. If you are looking for something much more lightweight for playing music, check out mpd <http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki> . There is a really nice Mac mpd client called Theremin: <http://theremin.sigterm.eu/>

<comment><USER15> Thanks for the link. I've been using qmpd on the mac with a lot of success for some time now, but I'll check out the native solution.

</comment></comment><comment><USER16> How does it handle large (+50,000 files) collections?

Also: Oh no, it does that homepage spammy feeling option in the installer thing. This instantly makes me not want to donate, tbh, as it just feels scummy.

</comment><comment><USER17> Miro is a great application, but i would not call it an "iTunes replacement". I use it as a "video feed reader".

</comment><comment><USER18> Miro's a very cool project - the Participatory Culture Foundation does a bang- up job of productizing what they do and making it pretty.

For someone who'd want to switch from iTunes for higher performance and simplicity, rather than just going for an equivalent, what would I do?

<comment><USER19> I've switched to using foobar2000 (<http://www.foobar2000.org/>) and I think it's the first music player that I actually like. It's extremely simple and I've found it quite fast and responsive, even on my netbook.

<comment><USER20> I'd also strongly recommend foobar2000. It's incredibly fast, automatically adds music pretty much as soon as it's in the directory, is extremely customizable, and can look really, really nice. It has customizable global hotkeys, addon support, but works well out of the box.

If any one is still trying to use iTunes on Windows, I strongly urge you to at least try foobar2000. Once I switched, there was just no way I was going back to iTunes. It alleviates so many of the stupid daily annoyances I had with iTunes.

</comment></comment></comment><comment><USER21> Oh I just read the heading 'iTunes replacement', installed it and plugged in my iPhone to see how it behaves; and ta-da nothing happens! My mistake that I did not read the features, but whatever, why do we want to call it an iTunes replacement when it can't even sync

</comment><comment><USER22> I'd have hoped that an 'iTunes replacement' would be one that's somewhat less bloaty. I don't see Miro filling that gap, given it includes such nonsense as a BitTorrent client.

<comment><USER12> Which is actually the greatest feature of Miro. There are a lot of interesting feeds flying around the Miro bittorrent network. For example all confreaks conference videos.

<comment><USER23> Isn't that how Miro started life? As a video player that used torrents for distribution, and RSS feeds for discovery?

In that light, the inclusion of a BitTorrent client is less surprising.

<comment><USER12> Yes, exactly. And it actually works and is used.

</comment></comment></comment></comment><comment><USER24> But can it play files over DAAP? That is the (my) holy grail for Mac music.

Songbird sort-of can, in a buggy crashy way. Nothing else I have tried (Banshee, Amarok, Rhythmbox, firefly player jar) compiles and loads and runs an plays on Mac.

<comment><USER25> Yeah, it has DAAP support.

</comment></comment><comment><USER26> an "open" media player that is trying to eat Apples crumbs and wants independents to join in should have some kind of decentralized market for producers and publishers.

</comment><comment><USER27> That website makes me _not_ want their software.

<comment><USER28> You obviously don't visit much open source software websites. I thought this one wasn't bad at all compared to what I'm used to.

</comment></comment><comment><USER28> I've been a long time user of VLC media player and unsure if it'd be worthwhile to make the switch. Did anyone transition from VLC to Miro?

</comment><comment><USER29> on mac (MBP laptop):

\- it doesn't react on previous/play/next buttons on keyboard

\- no last.fm integration

</comment><comment><USER30> The hackers solution. A media server running mpd or XMMS2, with the proper metadata organizing utility for your medialib. Plus running mplayer and possibly some ffmpeg tweaking for when you're out in the deep end. Plays anything, anywhere, and leaves the rest up to your imagination.

I guess Miro is great, but any complete solution will always be inferior to the proper tools for the right jobs.

</comment><comment><USER31> The first thing that struck me was how visually identical to iTunes it was. Considering how Apple sued Samsung over UI similarity, I wouldn't be surprised if Miro could run into similar problems.

</comment><comment><USER24> But can it play files over DAAP? That is the (my) holy grail for Mac music.

Songbird sort-of can, in a buggy crashy way. Nothing else U have</comment>


Why Does Developing on Kubernetes Suck? - <AUTHOR> https://blog.tilt.dev//2019/08/21/why-does-developing-on-kubernetes-suck.html <comment><USER2> Because Kubernetes is complicated as fuck, and it doesn't really have a built in simple way to view the state of the cluster.

Oh, and every vendor has implemented it differently. That's probably the worst thing.

</comment><comment><USER3> ... because you're developing ON kubernetes instead of FOR kubernetes. develop on your regular Linux machine, run on k8s. That's how it's suppose to be.

</comment><comment><USER4> Dupe: [https://news.ycombinator.com/item?id=20774712](https://news.ycombinator.com/item?id=20774712)

<comment><AUTHOR> Sure, but I submitted first. For some reason the engine accepted the latter one too.

</comment></comment><comment><USER5> Just develop in your PC with Docker. Then let devops deal with the running of the application in Kubernetes.

<comment><USER6> If your developers are not the people doing end-to-end lifecycle management of the application they own, you don't have "devops", you have ops.

</comment></comment><comment><USER7> It sucks because you don't understand what k8 is doing and why.

<comment><USER8> Agreed. There are tons of tools available to help with this. My favorite is KIND. Can literally mount directly into a host volume

<comment><USER9> KIND was discussed in the story, and its drawbacks.

</comment></comment></comment><comment><USER10> Still need some work but definitely make kubernetes development a lot simpler is [https://jenkins-x.io/](https://jenkins-x.io/)

Just drink their koolaid and (provided the Jenkins-x platform works as intended ) the majority of your kubernetes headaches go away.</comment>


How our app went from $20,000/day to $2/day in revenue - <AUTHOR> https://medium.com/swlh/how-our-app-went-from-20-000-day-to-2-day-in-revenue-d6892a2801bf#.m5f6hnz1x <comment><USER2> Next keyboard has a 2.5 rating on the app store right now for the current version of the app.

Here's a comment from the article:

\</comment><comment></comment><comment></comment><comment>--

I appreciate this case study, but I feel it doesn't cover everything.

I backed you on Kickstarter, and you didn't deliver the features you said you would, even ones that were mainstays of that campaign. Swipe to type, as an example. After beta it just slowly… faded away with little or no communication from you guys.

I believed you when you said you wanted to fix the keyboard, but yet-another- theme won't do that. More stickers won't do that. What excited me about Next, initially, was that it seemed like you were going to push the envelope on input methods and keyboard user experience.

Unfortunately, every time I've used Next it's been extremely unstable to the point of being unusable, so you didn't come close on the things you did deliver. I actually think I had a better experience with it in test flight.

We can blame this on Apple APIs, but I've used a number of other keyboard replacements and they haven't had crazy issues. That includes GBoard, which can be slow loading but then runs smoothly where it counts: when you're using it.

I know I'm being more than a little bitter, but I wanted you to win.

I'm very sorry to hear that you have to sunset this project, and I'm a big fan of your previous work. I'm also looking forward to what's next.

But I hope that you spend more time making it work than making it cute.

\</comment><comment></comment><comment>--

Meaning that the answer to the byline - "How our app went from $20,000/day to $2/day in revenue" \- is probably "the product wasn't very good".

The pertinent question for these articles is often why the founders thought they could pull of what they were doing with the budget they had in the first place.

</comment><comment><USER3> A well written, sober reflection on a business venture that didn't pan out. The author has deliberately made the title a bit baitey, though: $20,000/day in the app store for a handful of days (based on the graph they posted), maybe. It's not like they went from $20,000/day for months down to $2/day.

</comment><comment><USER4> I was expecting an explanation for why they sold a bunch and no more after a few days.

<comment><USER5> My guess: being on one of the top lists in an app store is a _ton_ of exposure. One of the biggest problems with selling apps is getting people to know it exists. Once it fell off the top paid apps list, it suddenly got far, far harder for people to find it, thus the dramatic drop in sales.

</comment></comment><comment><USER6> Wasn't really $20,000/day was it, more like $2/day with a $20,000 spike. These articles are such crap.</comment>


Show HN: Any dimensional Delaunay triangulation in JavaScript - <AUTHOR> https://github.com/mikolalysenko/delaunay-triangulate

<comment><USER2> The 2d demo works very nicely in my browser (Chrome 39), the 3d ( [http://mikolalysenko.github.io/delaunay- triangulate/3d.html](http://mikolalysenko.github.io/delaunay- triangulate/3d.html) ) doesn't seem to do anything?

Nicely done anyhow! Not an easy thing to implement. What complexity does it run at?

<comment><AUTHOR> Thanks! The algorithm is based on Clarkson's incremental convex hull algorithm and runs in O(n^ceil(d/2) + n log(n)). I am planning on eventually adding a special case for d=2 to use a sweep line method, which is faster in practice.

Also note that all internal computations are performed using exact arithmetic based on Shewchuk's filtered predicates.</comment></comment>


The Speeder: Jetpack Aviation opens pre-orders on jet powered flying motorcycle - <AUTHOR> https://newatlas.com/flying-motorcycle-jetpack-aviation-speeder/58752/ <comment><AUTHOR> If it's not electric why can't they get the run time a bit higher than 20 minutes?

<comment><USER2> The nav touch screen probably runs Android.</comment></comment>


Introduction to Support Vector Machines - <AUTHOR> http://rvlasveld.github.io/blog/2013/07/12/introduction-to-one-class-support-vector-machines/

<comment><USER2> My ML PhD friends say that SVM are popular in academic circles in part be cause you can prove things on them. They are in the NN camp when it comes to solving problems.

I like the basic idea. It feels like a nonlinear relative of PCA (Principal Component Analysis). I also haven't seen NN used for outlier detection.

<comment><USER3> SVM comes from a theory called Vapnik–Chervonenkis dimension which talks about ways to balance best learner performance against likelihood of actually achieving that theoretical optimum. It's very nice theory.

The nonlinear stuff is called the "kernel trick" and is essentially a recognition that an SVM's operation is depends on the data exclusively through measurements of how far apart the n^2 data points are from one another. Once you realize that you can twist the definitions around so as to insert whatever kind of non-linear notion of "distance" you like. Many ML algorithms can be augmented by the kernel trick.

Finally, SVM's geometry allows you to think of it as a relatively nice optimization problem. Compare this to many other ML algorithms which have only heuristic optimization methods. It makes the algorithm surprisingly fast.

</comment></comment><comment><USER4> this may end up as an empty thread as SVMs are pretty simple and very well known...i'd like to say that i enjoyed the post - one hobby of mine is reading the same mathematical/technical material through different writers/perspectives

<comment><USER5> How is SVM doing comparing to the Neural Network renaissance with deep learning?

<comment><USER6> It's always hard to get a birds'-eye view of these things, but from my vantage point, I think SVMs are much more widely used in applications, but have been surpassed by deep learning as the current hot research area in machine learning. There is still SVM research, but it's plateaued compared to the frenzy of the late 1990s and early 2000s, while deep learning has taken off in the past few years. SVM has instead entered the realm of "standard ML tool", as an off-the-shelf technique with robust and well-documented implementations that can be applied in a reasonably straightforward way.

</comment></comment></comment><comment><USER7> SVMs are great for text classification applications. They can handle a stupidly large number of columns, and tend to be quite accurate.

Thorsten Joachims has some good papers on them (GScholar).

</comment><comment><USER8> Thanks for writing this. I love the illustration of the concept with the video. I have little knowledge or background in the area so it is very useful.

I got confused where you introduced the objective function though. Is the reader supposed to understand where that comes from or are you just presenting it as a fact? It also doesn't make sense to me that the function is minimised over 'b' but 'b' does not appear in the function?

<comment><AUTHOR> The minimization function is indeed "as a fact"; in the sense that it is (somewhat) the formulation of Cortes and Vapnik ([http://link.springer.com/article/10.1007%2FBF00994018](http://link.springer.com/article/10.1007%2FBF00994018)), which is the main formulation for Support Vector Machines.

The value of 'b' is minimized and the value if found in the first constraint. The value "b\||w||" determines the offset of the hyperplane to the origin and 'w' is the normal vector of that plane.</comment></comment>


Is there a Tech Bubble? - <AUTHOR> http://www.iht.com/2014/04/03/is-there-a-tech-bubble-revisiting-irrational-exuberance/

<comment><USER2> IF <\-- bold) this is a bubble, you will find that companies that had solid earnings had no earnings at all. There is a lot of spit swapping going on where many companies with no way to make revenues are using cheap investment money to advertise thus making other companies seem much more profitable than they really are. You'd also find that companies were using accounting tricks to cook the books.

lastly, earnings may 'look' great, but when they have to spend ever increasing billions of dollars to buy out their competitors to remain a viable business, you'd have to back out those purchases (which people usually dont) from their bottom line.

example: facebook pretty much had to spend nearly 20 billion in capital to remain relevant. they did so by diluting their existing shareholder's value of the company by about 20%, which is not a sustainable thing to do.</comment>


Comparison of various new image formats - <AUTHOR> http://xooyoozoo.github.io/yolo-octo-bugfixes/

<comment><USER2> Hadn't heard of BPG before to be honest, but just messing around on there on my laptop I was pretty impressed by the punch-per-pound of that format against the other ones.</comment>


Advertises spend 110 times more on American than on an Indian - <AUTHOR> http://www.emarketer.com/Article/Global-Ad-Spending-Growth-Double-This-Year/1010997

<comment><USER2> Interesting article, shame about the link bait headline.

I'm actually surprised the growth rate in spend is not faster. Over the last 5 years the cost to acquire customers through digital advertising in my industries is going up much faster than the overall spend rate.</comment>


Ask HN: What is the single best addon for privacy? - <AUTHOR> I want to encourage the visitors of my sites to install an addon to protect their privacy. What is the single best one? <comment><USER2> It's difficult to pick a single one.

uBlock Origin[0] is probably the one with biggest impact. I assume most of the HN folks know it, but It's a general purpose blocker that can block network requests and DOM content with support for AdBlock plus rules and host files. FilterLists[1] is a nice resource to find lists you can subscribe to.

I also like Privacy Settings[2] a lot. It's a GUI for changing all the built in features Firefox already has, allowing you to quickly switch options on and off as you like.

0: [https://github.com/gorhill/uBlock/](https://github.com/gorhill/uBlock/)

1: [https://filterlists.com/](https://filterlists.com/)

2: [https://github.com/schomery/privacy- settings/](https://github.com/schomery/privacy-settings/)

<comment><AUTHOR> Yes, I was thinking about uBlock origin, but would an "average" user be comfortable with it? That's the problem.

</comment></comment><comment><USER3> You may find something you like here:

[https://www.privacytools.io/](https://www.privacytools.io/)

<comment><AUTHOR> Do you think it would better to link to that site? Instead of suggesting an addon my self?</comment></comment>


In praise of 'small astronomy' - <AUTHOR> http://blogs.nottingham.ac.uk/newsroom/2016/09/21/praise-small-astronomy/ <comment><USER2> Astronomy as a field has been relatively friendly to small collaborations, particularly when compared to its bigger sibling, physics. But the trend towards larger projects is real and can be seen in the authorship statistics [1].

But I feel that it is oversimplifying somewhat to compare big projects to little projects, as the two aren't necessarily in opposition. Oftentimes large projects are collecting data to answer a small number of important questions, but in the process of doing so produce data that is useful for individual astronomers. While those big, important questions may be useful for justifying the project to grant agencies, everyone knows that the real value is in the (unpredictable) science that the dataset inspires. SDSS is a good example of this. (In fact, my very first summer research project as an undergraduate took advantage of SDSS data.)

It's true that once those driving questions have been answered the big players look for the next big, shiny project. But the data is still there and is accessible to the community. That makes it possible for an astronomer to answer interesting questions without needing to expend the telescope time and money to collect data that are already there.

But not all large projects are like that. The risk is if the field moves away from large projects which are more or less glorified catalogs (e.g., SDSS, Gaia, LSST), towards large projects that don't offer much in the way of ancillary science to individual astronomers (LIGO and Planck come to mind here, but someone more knowledgable about those projects should correct me if I'm wrong).

[1]: [https://orbitingfrog.com/2012/08/04/authorship-in- astronomy/](https://orbitingfrog.com/2012/08/04/authorship-in-astronomy/)

</comment><comment><USER3> I don't know, high energy/particle physics has had this issue for a while, and it seems to be doing alright and attracting plenty of new minds into the fray. To be honest, "small astronomy" probably is likely to have a lot more value than the various small fusion experiments people build too (and those are still very cool).</comment>


Google getting slapped big for dodging French tax collector - saint-loup http://arstechnica.com/tech-policy/2014/04/google-getting-slapped-big-for-dodging-french-tax-collector/

<comment><AUTHOR> Aggressively taxing corporate revenue is a massively stupid idea for any country to pursue. Google doesn't HAVE to have offices in France, but they do. They employ thousands of people who all pay income tax, and a lot of it. Having a company like Google employing people and spending money in your country is a huge economic benefit. If Google decides that France (or any country) is too much of pain in their ass, they could just pull out and leave those thousands jobless or offer to help them relocate to Ireland or any place with more sensible tax laws. Now THAT would get some headlines. Keep taxes reasonable. Don't be dicks about it.

<comment><USER2> Income tax is paid by the employees.

Google is going to suffer considerable pain in the EU if they try to play the "we employ lots of people and they all pay their tax" card.

The obvious answer to that is "yes, they pay their taxes so why don't you?"

<comment><AUTHOR> I'm not saying they should pay no tax but my guidelines still apply. Keep taxes reasonable. Don't be dicks about it. France is being a dick. They made their own tax laws. If what companies do is legal under their tax law you can't whine about it and try to extort/sue them for more. Instead, change the law and deal with the fallout (more tax revenue or more unemployed French people). If there's no incentive for a company to have employees in a country there will be NO taxes paid and they can all eat cake.</comment></comment></comment>


The "one pair of glasses" theory - <AUTHOR> http://fakesteve.blogspot.com/2008/04/bob-metcalfe-and-one-pair-of-glasses.html <comment><USER2> I've noticed this phenomenon in two friends, one who went to law school and the other to business school. I've always bounced start up ideas off of these guys, since well before they started their programs. All too predictably, the law guy now tends to bring up legal issues first thing, and the biz guy pokes holes in the financial model (both of these guys used to simply attack the idea directly). It's their new pair of glasses at work.

<comment><USER3> Playing to your strengths is a tried and true strategy...

</comment></comment><comment><AUTHOR> Once every three months or so FSJ says something that makes people laugh and think (the rest of the time he settles for just making people laugh).

This one struck me as summing a well-known phenomenon up rather well, and with a catchy phrase to go along with it.

<comment><USER4> I think it already had a catchy phrase: "If your only tool is a hammer, all problems look like nails."

This phrase has the added benefit of explaining the point.

<comment><USER5> Agreed. The FSJ thing takes a lot of words to say the same. Maybe its a bit of a grab for credibility.

</comment></comment></comment><comment><USER6> Oftentimes judgment is clouded by prior experience as FSJ describes.

Unfortunately our dear fake Steve has setup a bit of a strawman. No core idea is disputed, just the qualifications of those trying to approach the problem.

EnerNet and other negawatt proposals attack the same kind of inefficiencies in power utilities as once plagued circuit switched telephone utilities. The two problems are _actually analogous_ , which FSJ hasn't analyzed at all.

</comment><comment><USER7> eh, i think that one pair of glasses likely leads to cross-pollinization across disciplines which does help us solve problems. in my world, negroponte can bring his laptops to africa, some education expert will bring their knowledge of teaching/classroom dynamics, etc, and all this will be brought to bear on the problem of poverty. competition of ideas will lead to the incorporation of good aspects of these theories and we'll be on our way. the fact is that existing orthodox strategies in these fields have failed which is why solutions from other disciplines are proposed.

</comment><comment><USER8> Sneering is not an argument, ad hominem circumstantial is not evidence. Fail.

</comment><comment><USER9> a statement my mentor said once

'People who have made money, think they are really smart in all areas...'

it applies here.

<comment><USER10> The fundamental fallacy of capitalism is that the monetization of an idea is the only accurate measure of its worth.

</comment></comment><comment><USER11> Having not thought about it much before, I found the "Metcalfe's Law is Wrong"[1] article more interesting.

[1] - <http://spectrum.ieee.org/print/4109>

</comment><comment><USER12> I thought this idea was generally known as "when all you have is a hammer, everything looks like a nail."

<comment><USER13> or (with credit to Steve yegge) "when all you've got is c++, everything looks like your thumb"

</comment></comment><comment><USER14> If your going to have one pair of glasses, it should be logic.

If you get two, make it logic and awareness of the immediacy of death.

Most of everything else will fall out of those two ways of looking at the world.

<comment><USER15> I'm not sure logic will work for your "one pair of glasses". Logic won't help you deal with people because people are rarely if ever logical. As far as awareness of the immediacy of death; well I believe that death is simply part of life - so that won't work for me. Although if you mean awareness of the immediacy of death - as in Carpe Diem - I'm all with ya!

</comment></comment><comment><USER16> And how many pairs of glasses does mr fakesteve own? OK, he had one brilliant idea: to pose as somebody else who is famous. Whoa, genius!!! It really dwarfs inventing ethernet.

<comment><USER17> Ad Hominem, dude.

<comment><USER5> True, but if you are going to go all AdHom on someone, Daniel Lyons/FSJ is probably entirely fair game.</comment></comment></comment>


Czech Government Backs 7% Digital Services Tax on Tech Giants - <AUTHOR> https://news.bloombergtax.com/daily-tax-report-international/czech-government-backs-7-digital-services-tax-on-tech-giants <comment><AUTHOR> This is a temporary tax till 2024. It is expected EU will introduce its own tax. It is also an informal pressure on EU leaders.</comment>


Some of the best Linux distributions of 2011 - <AUTHOR> http://www.dedoimedo.com/computers/best-distro-2011.html

<comment><USER2> Well.. The article saved me a some time by putting the bias and 'hate' right into the first couple of paragraphs. That allowed me to drop from reading mode to skimming right away.

\- I doubt these shootouts make any sense, whatsoever. Without a clearly defined target and some backed up metrics (see shin_lao's comment) this is a random 'I like x' page and could've compared Britney to Madonna for all I care

\- Gnome 3 was excluded from the start, because of the author's impression of it killing the desktop or something. While this is a matter of personal opinion, this disqualifies the entry as relevant for me (again, _my_ personal opinion).

\- Lots of remarks continued to reduce the quality. I remember a couple of stabs at Gnome again, arguable comments about Arch and a little snark against Fedora. Probably more.

</comment><comment><USER3> OK, we get it, we get it, you don't like Gnome 3. Every handful of years things change enough in an OS that it makes people uncomfortable, and a certain percentage then believe it's their duty to beat their chests for a year about just how bad the new stuff is. After about 18 months it's started to quiet down significantly, and before long the same crowd mostly can't live without it.

It's a bit boring, though, right?

Don't get me wrong, Gnome Shell in 3.0 / F15 was rather rough, but that is how it goes in open source. You don't get nearly enough usage testing until you announce it's gone gold.

While I did switch to ubuntu/unity for the time being as Fedora had some other issues, I absolutely saw enough of a spark in Gnome Shell to know I'll be back checking out 3.2 as soon as I have some time. While Unity is much more stable and polished I think gnome shell shows signs of having a much better usability once the rough edges get sanded down.

</comment><comment><USER4> _CentOS is a blast. It is super-light, super-fast, super-stable, with a million years of support, and running a mature and pleasing Gnome 2 desktop._

Benchmarks? Facts? Test procedure? At least some basic explanation?

<comment><USER5> I'm not going to defend the article and their test procedure, but I'll give a bit of insight anyway:

CentOS, as you may or may not know, is RHEL[1] recompiled from the source RPMs.

For RHEL [and I work at Red Hat], we:

* Sell support for 7-10 years from release date. For RHEL 6, that's support/updates/security fixes until Dec 2017 or Dec 2020 depending on how much you pay.

* Spend about a year before release intensively QA-ing all the packages. We have a huge team of people just doing this.

* QA each 6-monthly point release to the same standards.

* Have lots of developers working on optimizing RHEL specifically (as well as working upstream).

* Have a separate team that works on performance and tuning.

* Work with hardware suppliers to ensure best performance on specific hardware, and make sure we have support for hardware before it is released. [Typing this on a pre-release Intel SVP ...]

* Get world-beating benchmark results on things such as SPECvirt by working with manufacturers and other large companies, and going back to the original developers to work out bottlenecks on very high end hardware. [Last week my colleague was logged into a PC with 4 TB of RAM].

The above costs a bunch of money. I think we spend in the region of $100 million on R&D each year.

Note of course we only test the binaries we release. We don't test CentOS's binaries ...

[1] <https://www.redhat.com/rhel/>

<comment><USER6> * Still make HUGE kernel updates every few days on RHEL 6.x

which, while you're reading made me wonder. we bump into kernel issues from time to time due to update, and I always wondered why the policy was what it is.

basically it seems like backports while retaining the same kernel major/minor version numbers... because a lot of it aren't just bug fixes

Note that as I have been maintaining a Debian spinoff for years I highly value RH's packages quality, and have generally been picking from RH packages for patches and stuff "that just works" (incorporating that in the debs)

Still the kernel case puzzles me ;-)

<comment><USER5> We backport new features, bug fixes, hardware "enablement" etc into the same kernel. We keep the kernel structures and kernel symbols compatible (actually there's a big whitelist of approved symbols that your kernel module is allowed to call and we guarantee those will stay the same).

The basic reason for this is so software vendors can write kernel modules for RHEL 6.0 which will be binary compatible with all future RHEL 6.x releases. (The kernel modules will need to be recompiled when RHEL 7 comes out).

This involves lots of careful review of backports to make sure (eg) that all kernel structures like task_struct stay compatible. I'm not involved with this directly, but all I can say is it's a pretty amazing achievement over a ~4-5 year development cycle and ~7-10 year update cycle.

I assume that we keep the kernel major.minor version the same to reflect this. 'Course the release number changes each time ...

</comment></comment></comment></comment><comment><USER7> FTA:"...it is based on Arch Linux, which is probably the least friendly Linux around..."

With a remark like that, I was hoping that the author provide the raw scores. Even so, on what grounds is Arch Linux not friendly? Their wiki is very easy to follow and understand for a new user. Not to mention their forum.

<comment><USER8> It is not friendly in the sense that you as the user are expected to extensively configure your system before you are able to use it. It does not work out of the box (unless you have very basic needs). What makes Arch Linux great in my opinion (I use it myself) is that if you are the type of person who is willing to spend some time customising your desktop to achieve a perfect, tailored work environment, Arch gives you all the flexibility you need without imposing unnecessary complexity.

</comment></comment><comment><USER9> When you do a distro comparison, I suggest that all screenshots use the same light blue or dark blue background with no image, so that the desktop and any possibly unique features are highlighted.

This review uses typically cool screenshots, and their only result is possible conclusions like "ooh, that distro has unicorns!"

</comment><comment><USER10> I'm gently disappointed that TinyCore doesn't get a mention. I'd like to see more devs on that; DSL has been dead for several years and Puppy is "odd".

Other minimal distributions, like Slitaz, are also worth a look, especially if internationalization is important.

</comment><comment><USER11> Perhaps I might be in the minority here, but I thought elementary OS deserved a mention at least.

</comment><comment><USER12> Why Natty Kubuntu instead of Ocelot? It's not even LTS. And besides having a top 5 list of Linux distros and three items on it are basically Ubuntu seems silly. Revised list:

* Ubuntu

* RHEL

* Arch Linux

<comment><USER13> I don't know if RHEL should be included. Although the list is of Linux distros, I was thinking that it should be geared toward home users. RHEL is great, but I wouldn't pay for the license (which is actually pretty cheap) when there are many good, free distros out there.

I'm not knocking on RHEL, I'm just cheap

<comment><USER12> The list has CentOS and mentions Scientific Linux, I thought to generalize them both to RHEL. They are essentially the same anyways.

<comment><USER13> I was just clarifying. Some benchmarks would be nice for comparison purpose though...another time, another thread. Maybe I'll take the time to set up a dev machine and do some testing myself.

</comment></comment></comment></comment><comment><USER14> This post was created to generate controversy. Don't get sucked in.

</comment><comment><USER15> Very rough comparison, no metrics, inaccurate :(

I would love to see what not and whats for at least. Very little of that.

</comment><comment><USER16> Mac OS x is a pretty good Unix distro, way better than ones like Ubuntu

<comment><USER17> What does that have to do with anything? It's proprietary, and not even Linux.</comment></comment>


California, an island? Meet cartography's most persistent mistake - <AUTHOR> https://bigthink.com/strange-maps/california-an-island-meet-cartographys-most-persistent-mistake <comment><AUTHOR> AlternateHistoryHub did a video for this: "What if California Was An Island?" [https://www.youtube.com/watch?v=kWMXt_Sr0B0](https://www.youtube.com/watch?v=kWMXt_Sr0B0)</comment>


Turn websites into CSV data files - <AUTHOR> https://chrome.google.com/webstore/detail/instant-data-scraper/ofaokhiedipichpaobibbnahnkdoiiah <comment><AUTHOR> We are beta testing a simple but effective Chrome extension which guesses where is listing type data on a web page and allows user to save data into CSV file. Pagination included, infinite scroll - not yet. Feedback welcome!</comment>


Slipstream – Curate and discover the web like never before - <AUTHOR> http://getslipstream.com

<comment><USER2> An email signup is not a Show HN. Please read the rules: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html).</comment>


Show HN: Generate HTTP load and plot the results in real-time - <AUTHOR> https://github.com/nakabonne/ali <comment><USER2> I will definitely use it. I love vegeta and I usually hack my way around doing a watch plotting the results. Definitely this is the missing built in feature of vegeta!

<comment><AUTHOR> I'd be happy if you could try it, and give me any feedback!</comment></comment>


U.S. Companies Finding Stuxnet 'In Our Systems' - <AUTHOR> http://blogs.wsj.com/cio/2012/11/09/the-morning-download-u-s-companies-finding-stuxnet-in-our-systems/ <comment><USER2> Oh no! Chevron's secret centrifuges are doomed! Well, at least it won't play AC/DC.

</comment><comment><USER3> US should've thought about that before creating it and letting it loose in the world.</comment>


Show HN: Tab to Window - Chrome Extension to pop tabs with key command - <AUTHOR> https://chrome.google.com/webstore/detail/tab-to-window-keyboard-sh/adbkphmimfcaeonicpmamfddbbnphikh

<comment><AUTHOR> Check out the options page, spent quite a bit of time tweaking the UI there.

Source code available here: <https://github.com/acarabott/tabToWindow>

</comment><comment><USER2> So useful!</comment>


The master's thesis that led to the Karma Test Runner for JavaScript - <AUTHOR> Came across this as I was going through Karma's documentation. It's Vojta's thesis that led to the development of Karma.
https://github.com/karma-runner/karma/raw/master/thesis.pdf
It's an interesting way to learn more about testing and the ideas/technology behind a tool that many of us use everyday.
You can read more about Karma here:
https://karma-runner.github.io/0.13/index.html <comment><AUTHOR> Here are clickable links since I couldn't get them to work in the text post.

Download to the thesis as a PDF: [https://github.com/karma- runner/karma/raw/master/thesis.pdf](https://github.com/karma- runner/karma/raw/master/thesis.pdf)

The Karma site: [https://karma- runner.github.io/0.13/index.html](https://karma- runner.github.io/0.13/index.html)

</comment><comment><USER2> This looks awesome, look forward to reading through it!</comment>


Asymmetrica adds extra spaces to website text to improve reading comprehension - <AUTHOR> http://qz.com/452848/this-article-has-been-perfectly-formatted-for-maximum-reading-comprehension-2/?

<comment><USER2> If you intend to try the plugin: "Please create an Asym account to activate the extension. It's simple and we don't give your email address to third parties! We'll send you a confirmation email with a link to activate your account, so please make sure your email address is valid and correct."

I wonder if the addition of spaces is done client side or server side (and as such would send all your website texts to them)?

<comment><AUTHOR> The source code in the Firefox extension suggests it's all done server-side.

</comment></comment><comment><USER3> Do read their privacy policy before installing: [http://www.asym.co/privacy](http://www.asym.co/privacy)

Especially the paragraphs beginning "In order to provide" and "When you visit". There's a lot of data being collected.

</comment><comment><USER4> Might be a placebo-like effect for me, I'd have to have a really good setup to experiment with whether or not it helps or is really noticeable without knowing beforehand if it's been applied or not (or applied randomly instead).

This looks wrong. The extra gaps look like pauses and they're not in sensible places for pauses. That then made me think of someone doing a Christopher Walken impression.

</comment><comment><USER5> We've removed some irrelevant boilerplate from the Privacy Policy, and updated the FAQ. We collect as little as possible, though we completely respect anyone's privacy concerns and decisions. We welcome feedback since this is a critical part of building our users' trust.

Yes, the processing is performed by our server-side language models, and is never stored.

Ken email@example.com

</comment><comment><USER6> It's interesting, but I find peculiar the choice of the words which are overspaced. I would expect works like 'that', 'from', 'with' far more important for chunking than 'to' for instance.

</comment><comment><USER7> Those extra spaces feel like I'm walking upstairs and I suddenly miss a step. Completely throws me Knocks me out of the rhythm every time.

Although I spent some time as an editor, so that's probably it.</comment>


Asm.js: now in the release version of Firefox. - <AUTHOR> http://blog.mozilla.org/mbest/2013/06/25/asm-js-its-really-fast-backwards-compatible-and-now-in-the-release-version-of-firefox/

<comment><USER2> Numbers are impressive. The Lua VM benchmark[1] jumped from 110 points in Firefox 21 to 318 points in Firefox 22!

[1] [http://kripken.github.io/lua.vm.js/lua.vm.js.html](http://kripken.github.io/lua.vm.js/lua.vm.js.html)</comment>


Visual Studio Apache Cordova Tooling preview - chris-at http://blogs.msdn.com/b/somasegar/archive/2014/05/12/mobile-first-cloud-first-development-visual-studio-apache-cordova-tooling-and-cloud-optimized-net-futures.aspx <comment><AUTHOR> This is actually kinda awsome. I had a terrible experince some months back trying to get a Cordova app made for Android/iOS to work on Win8. As a result of the special javascript rules in Win8, not event the Angular source was possible to run without encapsulation all "insertBefore" in jQuery-lite in "MSApp.execUnsafeLocalFunction".

Together with the toolkit they are even providing example ToDo-apps for Angular, Backbone and WinJs which makes me hope all the issues I struggled with is now fixed.(Possible by running the app inside a webview instead as an native WinJS app).

<comment><AUTHOR> I officialy withdraws the comment above.. The Angular sample application runs run on my android device(which I already cood do with out VS support). But running my application as a Win8 app, which was my hope I could do, gives me the all to familiar : "appx://com.microsoft.mdha.samples.angularjstodo/www/scripts/frameworks/angular.min.js

0x800c001c - JavaScript runtime error: Unable to add dynamic content. A script attempted to inject dynamic content or elements previously modified dynamically that might be unsafe."

So I guees they didn`t even bother to test their sample applications again Win8...

<comment><USER2> If you want to really get that sample working, here's a pull request that has Angular working in Win8 apps. I'm not sure how Angular changes since the request was made would merge so I wouldn't recommend it for anything beyond an experiment. [https://github.com/angular/angular.js/pull/6217](https://github.com/angular/angular.js/pull/6217)

The error originates because certain coding patterns may be unsafe and are blocked to protect users. Here's a SO answer on the topic, there may be a better MSDN page with the details, but it's late: [http://stackoverflow.com/a/14471414](http://stackoverflow.com/a/14471414)

(Disclaimer: I work on the IE Dev Tools team and helped test the Hybrid Apps debugger. I was not involved with the pull request or StackOverflow post linked above.)

<comment><AUTHOR> As I mentioned in the orginal comment im aware of the blocked coding patterns, but as I said I hoped they had found a way around it, since they obviously had made a gread amount of effort to get the VS13-> Cordova intigration working.

The problem ain`t to patch the Angular source to pass the rules, but its all the other libraries used in a Cordova app which also voilates the rules. ( In my case I use Zurb Foundation, which used modernizr which again voilates the rules.)

Patching and maintaining one libary to support Win8 would be acceptable, but to maintain all liberys with special Win8 work-arounds would be a mess. In a typical web-app work flow where one used Bower for maintaining external libarys this would be even worse.

</comment></comment></comment></comment><comment><USER3> I use MS VS 2013 on a daily basis at work and on my own personal projects. This is indeed good news. MS is, without a doubt, moving in the right direction.

</comment><comment><USER4> This is awesome on multiple levels, but mainly it unchains the "cloud" from Cross Platform app development. Everything but vanilla Apache Cordova (Intel App Framework / AppMobi, PhoneGap, Xamrian) insist on compiling your code on their servers. The effect is they take away a lot of control from the programmer.

If you insist on plain old Cordova, you end up with a text editor (Notepad++), with a cmd.exe window (for cordova/ node.js) and Chrome (for ripple, the Debug env). It will be really nice to get all of this into an IDE.

<comment><USER5> You can also debug with Safari Remote Debug and Chrome Remote Debug. Ripple is nice, but you aren't _limited_ to it.

<comment><AUTHOR> Genymotion should also be mentioned, realy speeds up device testing.

<comment><USER6> Device testing, or VM testing? Genymotion is not a real device. For a start, IIRC it uses an x86 processor in the emulation.

<comment><AUTHOR> I rephrase myself. For testing the parts of the Corodva Api that access native device function.

</comment></comment></comment></comment></comment><comment><USER7> Very cool to see MS joining the Cordova bandwagon.</comment>


M60 – Open-Source USB&BLE, Hot-Swappable Mechanical Keyboard Powered by Python - <AUTHOR> https://makerdiary.com/pages/m60-mechanical-keyboard <comment><USER2> One of the things the Planck Rev 6 PCB made me realize is how important hotswap is for me personally. First, I have _dozens_ of interesting mechanical keyboard kits which are un-built because I simply don't have the convenient time & place to set up my soldering equipment. Second, some of the kits I've managed to build have bricked on me due to unexplained microcontroller problems, and while I have an expensive desoldering gun, it's still a PITA to use/maintain/clean, so hot-swap sockets solve that switch recoverey problem in a very convenient way. Lastly, of course, the ability to change switches on a whim is nice on it's own.

This M60 keyboard builds on all of that by providing a socketed microcontroller, so even if it isn't the layout I prefer, I'll still look into buying one for the sole sake of supporting this work. Open source design & easy-to-program QMK-ish firmware are also huge plusses.

I also love the fact that pictured are the new Kailh Silent Pink switches. I got a small amount a couple weeks ago and want to get more, but they've sold out at US distributors. If the M60 is ever offered as a "full kit" then I hope those switches are an option.

<comment><USER3> Maybe a dumb question but why don't more mech keyboards have hotswap? That seems like a great feature I don't remember ever coming across in the few times I've bought them.

<comment><USER4> I'm getting the feeling that hotswap in this context doesn't refer to being able to plug/unplug the keyboard from the computer while the computer is on[1], since I've never seen a keyboard that wasn't able to do that. So, this may be a dumber question, but what's being referred to as hotswap in this context?

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

<comment><USER5> > A keyboard being hot-swappable means the PCB (which, simply put, is the > circuit board inside the keyboard) has special sockets so that you can click > switches into place and pull them out without ever needing to touch a > soldering gun.

From a Google search :-)

<comment><USER6> This is acctually becoming a more common feature. I recently purchased a new mechanical keyboard and a lot of the newer designs are host swappable.

</comment></comment></comment></comment></comment><comment><USER7> I would love to see more enthusiast scissor-switch keyboards. I learned to type on a mechanical keyboard, and I've tried all sorts of modern mechanical keyboards over the years. But I feel like laptop-style scissor switch keyboards are more precise and comfortable. Personally, I make more typing errors on a mechanical keyboard. My current favorite keyboard is an HP Wireless Elite V2.

<comment><USER8> If what you're looking for is a shorter key throw, you might be interested in the Kailh Choc switches[1]. They are still somewhat in their infancy, but you can find them on a few DIY boards[2] as well as a few pre-builts[3].

[1] [https://novelkeys.xyz/products/kailh-low-profile- switches](https://novelkeys.xyz/products/kailh-low-profile-switches) [2] [https://keeb.io/collections/keyboard- pcbs/products/nyquist-k...](https://keeb.io/collections/keyboard- pcbs/products/nyquist-keyboard) [https://www.littlekeyboards.com/collections/new- products/pro...](https://www.littlekeyboards.com/collections/new- products/products/naked48led-keyboard-kit) [3] [https://drop.com/buy/massdrop- x-olkb-planck-light-mechanical...](https://drop.com/buy/massdrop-x-olkb- planck-light-mechanical-keyboard) [https://www.keychron.com/products/keychron-k1-wireless- mecha...](https://www.keychron.com/products/keychron-k1-wireless-mechanical- keyboard) [https://www.logitechg.com/en-us/products/gaming- keyboards/g9...](https://www.logitechg.com/en-us/products/gaming- keyboards/g915-low-profile-wireless-mechanical-gaming-keyboard.html)

</comment></comment><comment><USER9> This could be amazing. I worked 4 years at Massdrop (now Drop) and used probably close to 30 keyboards. I always wanted one that I could script instead of do a Windows -based rigmarole to flash the layers. If this comes in at or below a $300 price point I will definitely order one.

<comment><USER10> To my eye, the only thing that's unique here software wise is that it uses Python rather than a more typical embedded language like C. A lot of keyboards (including my Ergodox EZ) use QMK, which doesn't require a Windows-based rigamarole to flash; there are at least 2 open source apps that'll do it on OSX.

<comment><USER11> It is probably because the vast majority of my time is spent in python already, but its very appealing. I am typing this on a keyboard running QMK, and just don't enjoy dealing with the software side. I don't make changes often enough to remember all the steps I have to do to make things work. So I have to re-learn every time. I certainly should take better notes, but I would much prefer this keyboard ran python and I could just change the mapping on the fly without compiling and flashing and all that.

</comment></comment></comment><comment><USER12> I don't suppose there is a way for the SoC to run something besides Python? I appreciate the flexibility of a scripting language and would love to try one of these out, but I feel like a hardware device should have a RTOS (or no OS) and a language that doesn't have a GC. Can you imagine having jitter/latency randomly introduced from the Python layer?

<comment><USER13> I've seen many keyboard PCBs support configuration with firmware such as QMK. (The wiki for the MechanicalKeyboards subreddit mentions other examples of firmware [https://www.reddit.com/r/MechanicalKeyboards/wiki/firmware](https://www.reddit.com/r/MechanicalKeyboards/wiki/firmware)).

If you're comfortable with C (and setting up the toolchain in the right way), great.

Allowing customisation with Python is for greater accessibility.

<comment><USER14> Being able to change settings with regular files on an a virtual USB disk and not having to install a compiler to make these changes sounds great.

</comment></comment></comment><comment><USER15> Something I've wanted for a while is an option to have two different physical keyboards connected to the one machine, with different keymaps. In my particular case, most of the time I want to type in English, but I also sometimes wish to type in Hebrew. I find typing on my keyboard with English keycaps very clunky, especially when trying to add vowel pointing to letters.

There are solutions out there, but they all amount to hacks; what I think I really want is for the second keyboard to not have a keymap at all, but instead to transmit unicode code points, but there isn't a standard way to do that.

Anyway, this project looks cool: I'd really like to buy a hackable keyboard that lets me work on customisation without having to deal with everything else (especially building it from components.)

<comment><USER16> I don't know if this is hack by your standards but you can do this with pretty standard tools in linux (I think it was xinput and xkbmap)

</comment></comment><comment><USER17> I'm really not a fan of these minuscule keyboards but I'd definitely be interested in a TKL version.

</comment><comment><USER18> I've been looking for an "out of the box" MacOS-friendly mechanical keyboard for a while now. So far, the recent Keychron keyboards seems to be the only real contender, and unfortunately from all reports they are just to tall and cause wrist pain.

This seems like it would be a great alternative where you could have a Mac configuration - with media keys - mapped pretty easily with a custom keycap set (unless I'm misunderstanding?).

<comment><USER19> After my progress stalled on writing custom firmware for my custom keyboard [1], I went with a Matias quiet pro for Mac. I love this keyboard.

All of the Mac functionality works as expected. The only exception was when I tried to get an 18 year old eMac to boot from CD-ROM (by holding down the C key at boot time), this didn't work. I had to use an official Apple keyboard for that. Works fine once the machine is booted, so I'm guessing it is some sort of Mac openfirmware issue.

[1] [https://github.com/pepaslabs/hexon38](https://github.com/pepaslabs/hexon38)

</comment></comment><comment><USER20> I wonder how all these _maker_ sellers get along with Bluetooth SiG certification.

Edit: I mean, the product is presented very well. There was a clear investment in time and money. And because of that, this question was the first thing that came to my mind.

<comment><USER21> They likely use off-the-shelf bluetooth modules which are already certified, and just talk some kind of higher-level protocol over it which sits above the SiG certification.

<comment><USER20> Many think this is true (even I did) but it's not. You have to certify the product anyway, even if you use an off-the-shelf module.

The only difference is that you can "certify with test" and "certify without test" (and price changes, starting from 5K a pop). Even evaluation boards and for prototyping, so I guess a end-user keyboard has to be certified[1].

[1] [https://softwareengineering.stackexchange.com/questions/1352...](https://softwareengineering.stackexchange.com/questions/135285/when- does-it-become-mandatory-to-sign-up-with-the-bluetooth-special-interest-gro)

</comment></comment></comment><comment><USER22> A split space-bar version could make it a lot more versatile, without a lot of drawbacks, imho. You could use the 2 halves as layer keys when held or one as space, the other as backspace, or if one half is pressed, then the other half could mean backspace or enter.

There is also the SpaceFn layout, which works with just one space, I know: [https://geekhack.org/index.php?topic=51069.0](https://geekhack.org/index.php?topic=51069.0)

but it feels like it could be a lot better with split spaces.

<comment><USER23> In my opinion the best use for a second thumb key is Shift, to take load off of the pinky fingers.

</comment></comment><comment><USER24> I would be interested to know what are the real advantages of using Python, instead of the well-established QMK, and what is the purpose of having a M.2 bay (unless that's where the Bluetooth module plugs in).

The PCB looks cool though, and BLE 5.0 is relatively uncommon nowadays (most keyboards rely on older, thus cheaper, Bluetooth enabled SoCs), but apart from that, I see little appeal for someone already invested in building mechanical keyboards.

<comment><USER25> > what is the purpose of having a M.2 bay

To plug an NRF52840

[https://makerdiary.com/collections/frontpage/products/nrf528...](https://makerdiary.com/collections/frontpage/products/nrf52840-m2-module)

</comment></comment><comment><USER26> What's the point of hand-wiring?

"The Quality Goes In before the Name Goes On. From Zenith, the last TV manufacturer to adopt printed circuits.[1] Not a successful business strategy.

[1] [https://www.youtube.com/watch?v=OhZ1L8xA_nU&t=32](https://www.youtube.com/watch?v=OhZ1L8xA_nU&t=32)

</comment><comment><USER14> Is there an off the shelf MicroPython board that can be used to make something like this using wired switches in a Dactyl / Manuform style keyboard. I see a lot of bespoke keyboard boards using socket style microcontrollers as well.

<comment><USER27> At the bottom of the page there's a link to an article on hand wiring this keyboard: [https://makerdiary.com/blogs/mechanical-keyboards/a-hand- wir...](https://makerdiary.com/blogs/mechanical-keyboards/a-hand-wired-usb- bluetooth-keyboard-powered-by-python). That article in the list of materials lists 'Pitaya Go': [https://github.com/makerdiary/pitaya- go](https://github.com/makerdiary/pitaya-go). From that page I also found to [https://makerdiary.com/collections/frontpage](https://makerdiary.com/collections/frontpage) where you can buy one. And the code from the hand wiring post: [https://github.com/makerdiary/python- keyboard](https://github.com/makerdiary/python-keyboard).

It's a bit expensive at $30 but seems a lot better than the Pro Micros normally used with QMK, and the shop has other form factors which are cheaper. With WiFi on the chip too this could potentially push forward the frontier of cool keyboards.

I wonder how hard it would be to make a split keyboard with these. Probably you could do I2C over a TRRS cable.

</comment></comment><comment><USER28> Was the use of the M.2 slot compliant with usual M.2 pinouts? Seems like an interesting choice. I dug a little, but didn't find much.

<comment><AUTHOR> You can find more details about M.2 Module here: [https://makerdiary.com/collections/frontpage/products/nrf528...](https://makerdiary.com/collections/frontpage/products/nrf52840-m2-module)</comment></comment>