An API wrapper to Clarifai's image recognition demo - <AUTHOR> https://api.blockspring.com/users/orliesaurus/blocks/d54a2e2c28aebab4fe079ff547cea495

<comment><USER2> Adam from Clarifai here.

As tommoor pointed out, this is just a thin wrapper around our demo at [http://www.clarifai.com/](http://www.clarifai.com/)

(we're very flattered...)

A real API will be out soon. It won't be throttled as heavily as the demo, and will be more developer friendly.

you can sign up for early beta access at clarifai.com.

<comment><USER3> Wow. The classifier is really impressive. Will it be possible to train your own classifier on your service? I have a lot of clothing items that it would be useful to classify. I tried building my own with opencv, but I haven't had too much luck so far.

I signed up for the api access - would be very interested in playing a bit more with this.

<comment><USER2> Thanks!

Training custom classifiers isn't in the roadmap for v1, but there will be a mechanism for providing feedback (suggesting new tags and marking errors), and we'll continue to improve our models based on that.

If you have a very large (100k+ images) well-labeled repository to train from, send us a note at firstname.lastname@example.com, we'll tawk.

</comment></comment></comment><comment><USER4> I put in the link to my profile picture on twitter -> [https://pbs.twimg.com/profile_images/488579015507050497/QvG1...](https://pbs.twimg.com/profile_images/488579015507050497/QvG1ArTx_400x400.jpeg)

["black", "american", "woman", "man", "pitt", "brad", "senior", "worker", "group", "cuba"]

Brad Pitt! Great work guys!

</comment><comment><USER5> I don't know why this link doesn't go directly to the source: [http://www.clarifai.com/index.html](http://www.clarifai.com/index.html)

</comment><comment><USER6> Wow! This is really neat, I tried to find images that I didn't think it could process, the results are interesting.

[http://upload.wikimedia.org/wikipedia/commons/1/1e/Blown_up_...](http://upload.wikimedia.org/wikipedia/commons/1/1e/Blown_up_electrolytic_capacitor.jpg)

["piranha", "fish", "food", "water", "gold", "dish", "crab", "kitchen", "glass", "silver"]

[https://www.flippers.com/images/See-SHFA1_Caps&Mods- PCB.JPG](https://www.flippers.com/images/See-SHFA1_Caps&Mods-PCB.JPG)

["panel", "retro", "wine", "background", "design", "old", "tool", "letter", "art", "robot"]

[http://history.nasa.gov/alsj/a11/a11_lpi_trvrsmap.gif](http://history.nasa.gov/alsj/a11/a11_lpi_trvrsmap.gif)

["background", "metal", "water", "man", "wall", "old", "abstract", "paper", "hand", "paint"]

</comment><comment><USER7> Very impressive! Some cool ones it recognized:

milk jug [http://cdn- jpg.allyou.com/sites/default/files/image/2014/01/...](http://cdn- jpg.allyou.com/sites/default/files/image/2014/01/400xvariable/i/2009/08/craft- a-birdfeeder-out-l.jpg)

["milk", "gallon", "jug", "product", "detergent", "plastic", "water", "soap", "canteen", "white"]

mushroom cloud: [http://www.atomicarchive.com/Effects/Images/WE12.jpg](http://www.atomicarchive.com/Effects/Images/WE12.jpg)

["fire", "bomb", "mushroom", "flame", "letter", "font", "hell", "volcano", "smoke", "burn"]

</comment><comment><USER8> Very optimistic. Got a picture of a Hyundai. Reckons it's a BMW or Audi.

[http://www.airnorth.com.au/sites/default/files/Car%20hire%20...](http://www.airnorth.com.au/sites/default/files/Car%20hire%20-%20Budget%20Hyundai%20i30%20-%20LR.jpg)

["car", "bmw", "auto", "sport", "3d", "vector", "white", "blue", "front", "audi"]

</comment><comment><USER9> Tried a Pokémon card and got "semi relevant" results

[http://sixprizes.com/wp-content/uploads/pikachu-next- destini...](http://sixprizes.com/wp-content/uploads/pikachu-next-destinies- nde-39.jpg)

["background", "card", "kid", "vector", "design", "school", "book", "frame", "cartoon", "dog"]

</comment><comment><USER10> Facebook Logo: [https://www.facebook.com/images/fb_icon_325x325.png](https://www.facebook.com/images/fb_icon_325x325.png)

["cross", "sign", "plus", "pound", "medic", "first", "icon", "jesus", "christian", "aid"]

</comment><comment><USER11> Nice! Got some interesting results from a photos of iPhones and iPads.

Curious to know how this compares head-to-head with the CamFind API at [https://www.mashape.com/imagesearcher/camfind](https://www.mashape.com/imagesearcher/camfind) which I've been thinking of using for a project.

</comment><comment><USER12> Well this went better than I expected :) EDIT: context- I'm the one that made the wrapper for clarifai's API, loved the service since I heard of it, great to see people appreciate (from the number of API calls you guys have made so far) both the service and the small wrapper to the API!

</comment><comment><USER13> Only car was recognised here: [http://www.highsnobiety.com/files/2014/05/lamborghini- aventa...](http://www.highsnobiety.com/files/2014/05/lamborghini-aventador- galaxy-custom-dxsc-0.jpg)

</comment><comment><USER14> I tried a few images, for all of them "woman" was the first result (only one image had a woman in it).

</comment><comment><USER15> Combine this with a Markov Chain and you get a nice story teller.

</comment><comment><USER16> Try typing in

A python stacktrace about JSON

</comment><comment><USER17> what the hell, i tried a few images from unplash and it worked flawlessly. how does this magic work?

<comment><USER17> i've tried maybe 30 images now. All of them it nailed. i did find one that made me laugh. it doesnt know what a goat is.

[http://picjumbo.com/wp- content/uploads/IMG_9454-1300x866.jpg](http://picjumbo.com/wp- content/uploads/IMG_9454-1300x866.jpg)

["dog", "australia", "deer", "bear", "cow", "mouflon", "lemur", "wild", "safari", "zoo"]

<comment><USER18> or a horse apparently. Did figure the jockey though...

[http://plocp.com/user/Aram%20Comjean//The%20Belmont%202007/i...](http://plocp.com/user/Aram%20Comjean//The%20Belmont%202007/images/20070609-_MG_8284.jpg)

["race", "beach", "camel", "rodeo", "jockey", "polo", "toreador", "torero", "donkey", "dog"]

</comment></comment></comment><comment><USER19> wow this is really cool! how is this done?! what kind of sorcery is this?!

</comment><comment><USER20> pretty impressive!</comment>


G.E. Is Accused of $38B Fraud - <AUTHOR> https://www.nytimes.com/2019/08/16/business/dealbook/ge-fraud.html <comment><USER2> [https://news.ycombinator.com/item?id=20705449](https://news.ycombinator.com/item?id=20705449)

</comment><comment><USER3> One point that WSJ that NYTimes calls out too is that Markopolos is working with a hedge fund in releasing this report (that I believe is shorting GE stock). He's doing this so he can get paid up-front and not have to wait for potential whistle-blower payout (which takes years). While this doesn't mean his accusations are fake, but it's important to take these into account when evaluating the claims.

[https://seekingalpha.com/article/4286597-markopolos-short- re...](https://seekingalpha.com/article/4286597-markopolos-short-report-ge- full-inaccuracies)

<comment><USER4> Just because Markopolos will profit from his work doesn't mean his work is bogus. In fact, if his work proves to be bogus, he most likely won't profit, and his reputation will be damaged forever.

When GE people go on CNBC and make all kinds of carefully lawyered statements that sound like denials but aren't actually categorical denials, they're also getting paid.

The GE people get paid whether or not their statements hold up over time. Given that, I'd put more weight on Markopolos because he actually has skin in the game.

<comment><USER5> The hedge fund shorting GE will profit from the value of GE dropping due to the bad news, it will profit from the value of GE dropping if there's an investigation, and it will profit if the accusations turn out to be true.

There's no reason to think Markopolos won't profit if the accusations are bogus, because he profits from the market reaction, not from the actual merits of the accusations. In fact, his experience in the past tells him that even if his accusations are true, they're unlikely to result in successful investigations, and if his accusations are untrue, he's unlikely to face consequences for it.

Also, whilst the people who go on CNBC to defend GE are paid to go on, they're paid a fixed salary, they generally aren't particularly incentivized to boost the stock price.

<comment><USER6> >There's no reason to think Markopolos won't profit if the accusations are bogus, because he profits from the market reaction, not from the actual merits of the accusations.

The strength of the market reaction is contingent upon the strength of his claims.

<comment><USER7> I'd like to recommend the book:

 _The Myth of the Rational Market_ by Justin Fox

</comment></comment></comment></comment></comment><comment><USER8> > stems from understated liabilities in its insurance business, > misrepresentation of its cash situation, and improper accounting for its > acquisition of a stake in the oil field services provider Baker Hughes.

So it stems from a dispute between the opinions of "fraud hunter" Harry Markopolos and the professionals employed by GE.

This seems to be a "Everything Everywhere Is Securities Fraud" situation.

[https://www.bloomberg.com/opinion/articles/2019-06-26/everyt...](https://www.bloomberg.com/opinion/articles/2019-06-26/everything- everywhere-is-securities-fraud)

</comment><comment><USER9> During the last financial crisis GE nearly imploded because GE financial was a hotbed of fraud , poor accounting and risk management. It's not inconceivable that the same practices came back during the last boom years and and are only coming up now because someone looked. The thing is it might be a good buy because it probably won't blow up nearly as fast as people think

<comment><USER5> Anyone paying attention to GE will know that it has not had boom years since the recession.

<comment><USER9> The stock did triple from its bottom before crashing down in the last year or so. Fundamentally I'd agree with you though

</comment></comment></comment><comment><USER10> If you think G.E. is bad, I encourage you to take a deeper look at Ford and gasp in shock and awe. The 2008 financial crisis didn't treat either of these two companies well, but I'd much rather deal with G.E.'s finances than have to take on the mess that Ford is.

Ford really should have declared bankruptcy like General Motors did then in the preceding crisis, and it was only through a miracle of financial engineering that they somehow managed to avoid it. To this day, you can still see the incredible burden it carries on the company.

<comment><USER11> Not sure if you intentionally mentioned both, but it's worth noting that G.E. is General Electric, not General Motors.

<comment><USER10> Yes, that was intentional. General Motors, the counter part to Ford as a car company, declared bankruptcy in the wake of the 2008 financial crisis. The financial practices that led to General Motors having to declare bankruptcy were largely the same at Ford.

Ford didn't go bankrupt then, but they basically had to figuratively sell their soul in order to avoid doing so.

<comment><USER12> Ford got rid of Volvo, Aston Martin, Jaguar, and Land Rover. All of these brands have been doing poorly since Ford sold them.

Ford's relentless pursuit of cost cutting led them to keep many vehicles for far too long. Their former bread-and-butter model, the Ford Explorer, went 9 years in between platform changes. The ford Flex has been on the same platform for 11 years. The Ford Focus went 8 years without a change of platform.

Further, their cost-cutting initiatives have earned many of their vehicles poor reliability marks to such an extent that Ford Focus sales are less than half of what they were in just 4 short years.

I might add that Ford went upscale in price on a lot of its vehicles without an attendant increase in upscale features. The Ford Explorer sells about half of what it used to during its peak.

Selling off car companies was a good idea. However, poor products, poor product planning, poor reliability, and a spineless vision of the future has put them into a bad spot with no real light on the very distant horizon.

<comment><USER13> Those three companies did better every year post-Ford, with the exception of AML's latest year.

</comment></comment></comment></comment></comment><comment><USER14> Yea this is getting a lot of headlines.

The fact that they put up a gefraud.com and they call them "GEnron" is interesting.

</comment><comment><USER15> > The company's shares plummeted on the news, falling by 8 percent to a seven- > month low. Mr. Culp [CEO of GE] responded by buying $2 million of G.E. > stock.

</comment><comment><USER16> Title should be adjusted to end with "by activist short sellers"

<comment><USER17> Well that is the point of activist short sellers; not too different from security researchers having a monetary incentive with bug bounty programs.

</comment></comment><comment><USER18> Anyone have any insight into what he's doing as a business model? Basically having a fund, investigating companies (as you would have to do anyways to vet a potentially large investment) and then if you find malfeasance, corruption, etc. shorting the stock and exposing it publicly. You could probably pair it up with a management consultancy or something that could swoop in and charge a fee to clear out the corruption and get things running back on track if you wanted to go long on the stock too. I realize this may be somewhat like what activist investors do but I'm thinking more focused on corruption fully rather than just underperforming companies. Something like what Bill Browder did in Russia back in the day (and if you haven't read his book Red Notice, it's an incredible read, has helped lead to Magnitsky Acts around the world, but I won't spoil it)

<comment><USER19> The term for this is "activist short seller". It's pretty common. Citron Research, Bonitas, and Spruce Point are some of the firms I've heard of that follow this business model, but there are tonnes of them.

</comment></comment><comment><USER20> It'd be nice if unaccredited investors could invest in this undisclosed hedge fund :).. I for one believe Markopolos.

<comment><USER21> If you have a margin account, you can always short GE, but if GE's claim is right, the damage has been done.

Let's also start with which hedge fund it might be.

</comment></comment><comment><USER22> is this another pension scam a la toys r us and usps?

</comment><comment><USER23> Fuck. This is not good in either situation. If it's market manipulation, then shorters will be out in force. If not, then an org the size of GE will be a catalyst.

<comment><USER24> Can you explain why more shorters means share prices drop? Is it all perception or am I missing something? Sorry n00b here.

<comment><USER25> Share prices usually drop if there's a ton of short demand, because to short a stock -- you literally borrow a stock and then sell it. The idea is, you'll buy it back later (hopefully at a lower price) and return it to who you borrowed it from (hopefully for a profit).

<comment><USER26> You have the definition of shorting right, but it doesn't mean that shorts cause a stock to drop. Beyond meat has had a crazy amount of people shorting it, but that hasn't stopped it's 800% rise

<comment><USER27> Short selling does directly cause the stock price to move down due to increased selling pressure.

What you're seeing with BYND is not directly because of the act of short- selling, but the knock-on consequences and market dynamics. In part that has to do with the fact that BYND has very few of the total shares floated, all available shares were shorted (around 50% of float), and what little organic retail demand for their shares existed was enough to move the price materially. Eventually the market cap crossed the threshold for inclusion in the Russel 2000 index, forcing ETFs tracking the Russel to buy BYND shares too. This all caused the short-sellers to get liquidated, forcing them to buy at whatever price was available. This in turn liquidated more shorts. And so on. That was a textbook short squeeze.

IMO the reason it didn't go all the way up to the moon is that brokerages were charging 140% APR to short the shares, so we were seeing consistent turnover in the short positions.

The answer to "Who would buy BYND shares for $250" is "the trader and/or index fund who has no choice." It's worth more than 25% of the companies in the S&P 500, but only has $87M in revenues and 200 employees in a warehouse in LA with a handful of pea patties.</comment></comment></comment></comment></comment>


Why do we keep building rotten foundations? - <AUTHOR> https://davmac.wordpress.com/2016/07/05/why-do-we-keep-building-rotten-foundations/ <comment><USER2> As someone who follows Semantic Versioning like the bible when my API changes I find it incredibly interesting that there is an open source community willing to go about it in such a backwards way. Why wouldn't it be GTK 4.0-ALPHA, GTK 4.0-BETA, GTK 4.0-RTM in which case RTM is the final release that's stable? Why would you release an API as an X.0 that is _unstable_?

Maybe I'm not as "with it" as I thought with open source communities but I've just never seen this (and I'm sure there are edge cases but GTK is big; seems like something important you'd want to be more stable than not that adheres strictly to semver).

<comment><USER3> I think I understand it. The X.0 is basically the start of a new technology branch -- it's radically different than what came before which is why it's a new major release. And of course any new radically different piece of software will not be stable, so X.0 represents the most unstable version of this new technology and theoretically X.Y where Y is the latest point release is then likely the most bug free and stable.

Perhaps this makes more sense in a world where software never needs to be finished.

<comment><USER4> > _Perhaps this makes more sense in a world where software never needs to be > finished._

(warning, rant follows)

I think this hits the core of the matter. This kind of release cycle - and API design - reflects a way of thinking where the _complete ecosystem_ is expected to be constantly change. Why bother to keep a stable API if "everyone" has automated updates and all programs that could potentially use your API have a full-time development team behind them, ready to instantly react to every announcement you do.

Backwards compatibility? Not-for-profit one-man projects? Long-lived software? Naaah, were in the era of the cloud now.

Updates are important and at least security-critical software should obviously be maintained. However I think this shift currently goes a lot further than necessary, making constant flux the new normal and articles like this show why this is a bad idea.

<comment><USER5> Cloudcuckoolanders seems to be a fitting description of many of the people involved with Gnome/Freedesktop these days...

</comment></comment></comment></comment><comment><USER6> In this case: Because it's more fun and personally rewarding to do new stuff, than fight the hard compatibility fight.

In startup API cases: Because it takes 10x longer to build a solid foundation, and you don't yet know whether that's worth it -- time to proof is more important. And once you have proof, well, you can't change it easily...

<comment><USER7> > it's more fun and personally rewarding to do new stuff, than fight the hard > compatibility fight

Thirteen years ago: [https://href.li/?https://www.jwz.org/doc/cadt.html](https://href.li/?https://www.jwz.org/doc/cadt.html)

And we're _still_ complaining about the very same problems _in the very same project_.

 _Edit:_ God dammit, jwz. Sorry, everybody. Should be safe now, I hope. (I can't see the troll for myself, so I don't know for sure, but if this thing strips the header like it claims to do, that should solve it.)

<comment><USER8> NSFW: Picture of a testicle

<comment><USER7> What?

<comment><USER9> JWZ redirects all accesses with Referer: news.ycombinator.com to this image [NSFW] [http://imgur.com/32R3qLv](http://imgur.com/32R3qLv)

<comment><USER10> Haha, some might argue that he has a point.

</comment></comment></comment></comment></comment></comment><comment><USER11> The GTK project is hard to understand. They develop with a philosophy that is almost the antithesis of the kernel (which basically says "changes that break programs are bugs"). It would be fine for an application being used directly by end users, but for a library and gui system it is bonkers. I have tried to compile a gtk-based app from source, and had no end of difficulty just because my library release varied by a point-version.

It left a really crummy taste in my mouth.

I really like GTK, and once it's compiled it's great, but these aspects are really painful.

<comment><USER12> The GTK project basically got taken over by a bunch of Gnome developers who care less and less about non-Gnome users. Many major non-Gnome projects haven't even managed to make the jump to GTK 3 yet (which also seems to be roughly where the project jumped the shark); Firefox only switched a few months ago and GIMP is still thinking about it.

<comment><USER13> Every sentence here is inaccurate, so you might want to check your sources.

1) (It's GNOME in upper case)

2) gtk+ was not "taken over" by a bunch of GNOME developers. gtk+ always was largely shouldered by the GNOME project. Those that show up to play are at an advantage.

3) Switching to gtk+ 3.x was hard precisely due to the longevity of gtk+ 2.x. It managed to stick around for 10 years and exposed all private structures in public API. So people got used to doing bad things that following PIMPL helps avoid. So they did, making the transition harder.

4) Firefox's has very little incentive to change a working code-base. The ultimate incentive was HiDPI and Wayland support. Thing's that couldn't just be shoe-horned into gtk+ 2.x.

5) GIMP is not "still thinking about it". The sad state is that GIMP is being mostly worked on by one person (with some occasional help). It's a very large code-base which was very entrenched in gtk+ 2'isms that we moved away from (like public structure access). There is a nightly flatpak for 3.x if you'd like to test it and file bugs.

<comment><USER12> The main benefit of not exposing private structures in public API is that it lets you avoid breaking the ABI every version; if you're going to do that anyway, well. And no, I'm not exaggerating how long it's taking projects to move to gtk+ 3.x - Mozilla has been working on this since 2011, with lots of fun issues around widget styling and drawing (which is apparently poorly documented and keeps changing in ways that break applications). The removal of public structure access was the least of their problems. Even after all that effort, new gtk+ 3.x releases are still breaking stuff in Firefox and other apps. For example, scrollbars and check/radio buttons don't show up in Firefox with gtk+ 3.20 due to major changes in how widget drawing and styling works: [https://bugzilla.mozilla.org/show_bug.cgi?id=1234158](https://bugzilla.mozilla.org/show_bug.cgi?id=1234158)

</comment></comment></comment></comment><comment><USER14> I am so sick of this mentality that seems to raise aesthetic distractions, "new features!!!111", and pointless, frequent version changes over code quality and reusability.

It is a sign that this area of commercial software dev has been almost completely subsumed by marketeers and business hacks; while they may not control GTK (though I honestly don't know/care who does), it is clear that their influence (gotta have the latest new and shiny!) has crowded out other, more prosaic concerns (like stability and compatibility).

A lot can be said about Microsoft's code, but I have always admired just how much effort they go through to preserve API compatibility. (Going so far as to version specific functions and including older versions so as to not break stuff -- TwiddleBit1(), TwiddleBit2(), and so on.

But on another note it's a problem with we programmers as well. We're so distractable... you can see it everyday here on HN... "Show HN" is virtually a graveyard of half-baked, re-hashed ideas implemented in shiny new frameworks. Unicorns trying to take over the world write long-form blog-posts describing their tech (but leaving out enough details to let you try it yourself or duplicate it!) to keep us programmer-types distracted and submissive ('it's better they gawk at code than question our motives') with their pointless show-and-tells.

Also... I am god damn sick and tired of dealing with updates! Stop updating your damn code so much!!!!!!!!!

Or even better... get it right the first time! (It can be done!)

<comment><USER14> Or... "Make software boring again!"

<comment><USER15> This is t-shirt worthy.

</comment></comment></comment><comment><USER16> I am actually very excited about this direction for Gtk. If Qt is the stable and serious cross-platform UI library for corporate stuff, why not let GTK be the awesome experimental UI library that breaks everything every 6 months, and keeps pushing the limits on what a free software UI can be? I'm a very happy Gnome 3 user, and I hope they keep pushing to build a usable, simple and pretty user experience, despite the endless stream of this kind of grumpy know-it-all attacks.

Hey, if it was so easy to design an API that is "thought through properly", show us the spec already - there are plenty of hackers around to build it. If it actually worked like that.

<comment><USER4> Having a more "experimental" project seems like a good idea. But if the API breaks all 6 months, I think it's hard to use such a library unlike your project is a "show HN" style experiment as well that is expected to live only a few months.

</comment></comment><comment><USER5> Between this and GTK3 i really wish someone would take GTK2 and run far far away from the Gnome gang.

<comment><USER17> I can imagine some of the complaints with gnome, although I feel its gotten far better, what exactly are the problems with gtk3 vs 2+?

</comment></comment><comment><USER18> After reading the headline, I was actually expecting the article to go in a totally different direction. Most of the time, when I see software with rotten foundations, it's there to preserve backward compatibility. The maintainers all see the rot, they want to fix it, they want to clean it all up, they want to do things right. But they can't do anything that would change the API or break user space in any way, and so, they continue supporting the rot indefinitely.

The alternative of course, is to fix the rot and prioritize long term benefits over short-term pain. The downside is that this could break backwards compatibility. This is the path Python chose when they went from Python 2 -> Python 3, and the resulting schism was so great, that they have promised to never do this again. More often than not, this is the same experience that every software project goes through. Breaking backwards compatibility is so disruptive, that even living with a rotten foundation seems preferable.

Given the blog title, I would have expected that author to argue that fixing the rot is preferable over almost anything else. Instead, he seems to be making the exact opposite argument. He's making the argument that breaking backwards compatibility is so bad, that we should never do it, no matter how rotten the existing API might be.

Of course, he wouldn't actually frame it that way. If you asked the author, he would simply ask _" Why can't you just build the API right the first time?"_ One might as well ask the question: _" Why can't you just build a software without any bugs?"_ Let's see...

1) To err is human and people will make mistakes. Both in implementation (bugs), and in design (bad APIs).

2) Building safeguards against mistakes is expensive, in time and effort. Building 100% robust safeguards against mistakes, is extremely expensive.

3) There's only so much you can learn in a lab, or from a beta. If you don't have any regrets from 2 years of live data, then you haven't learned anything at all.

Every project strikes its own balance along the speed vs stability, and improvement vs backwards-compatibility axis. And there is no intrinsically wrong answer. Just because what your ideal balance differs from the balance that the project chose, is no reason to insult and condescend to them. And yelling at someone for being human and making mistakes, just sounds childish more than anything.

<comment><USER19> You can have backward compatibility while fixing the foundations. The trick is to add a "compatibility layer" that works well enough for existing clients, then slowly phase it out. Apple in particular is very good at this. They've gone from 68k to PPC, PPC to Intel, "Classic" Mac OS to Carbon to Cocoa, 32-bit to 64-bit, Obj-C to Swift, and so on by maintaining compatibility for old programs on top of new foundations. Unfortunately, these compatibility layers aren't very fun to write and can be difficult to test and maintain, so people (in open source projects especially) tend not to be very interested in the concept.

<comment><USER20> You do not have to phase out any kind of compatibility layer, if your implementation is forwards compatible. Implementing protocol negotiation and extensibility serves this purpose. Examples for forwards compatible systems are HTTP (upgrade header), XML (namespaces), X11 (extensions).

</comment></comment></comment><comment><USER21> I'm not a GTK user, so maybe I'm missing something here. And I certainly agree with the version number complaints. But these quotes trouble me: "what GTK really needs to do is sit down and flesh out a decent API" and "And if you're having to mess with your API on a continual basis, you're doing it wrong. Like, the whole software development thing, all wrong."

I think there's an conceptual error here. There are a lot of bad reasons to change software, but I think there are two really good reasons: 1) circumstances change, and 2) we have learned something. Or conversely, I think the only time software can have a static design is when circumstances are static and you never learn anything.

There's this common notion that if people just sit down and think really hard, they will design the perfect thing. That's a mirage. The iPod went through more than a hundred physical revisions before launch. And it has changed a great deal in the 15 years since. Is that because Apple didn't just sit down and think enough? Nope. Even the humble paperclip evolved over decades. If perfect software ever happens, that belongs to a future age.

<comment><USER22> Apple? They're the people that shipped transparent CPU emulation mechanism to keep their ABI working and avoid breaking customers.

Twice.

<comment><USER23> As someone who went through the the 68k -> PPC -> x86 transitions with shockingly minimal fuss (also even the MacOS -> OS X + Classic transitions) I wish I could upvote this comment a thousand times.

</comment></comment></comment><comment><USER24> I really like that. We are getting closer and closer to having Qt as being the dominating user interface toolkit anyway, and GTK self-destructing can only further this along.

<comment><USER25> Yes, my first thought at those blog posts was "From the Qt Marketing Department at GNOME".

</comment></comment><comment><USER26> Use QT if you want stable API. GTK3 breaks compatibility even at minor releases.

<comment><USER9> Sadly, both Firefox and Chromium still run on GTK3. Especially Firefox is annoying, as their recent update to Gtk 3.20 broke a lot of things for me.

If they could just use Qt instead... but nooo...

<comment><USER5> I jumped to the extended support channel, knowing it would come. Ironically this means that Firefox on Windows have better backwards compatibility (XP) than Firefox on Linux.

If push comes to shove i am pondering moving to Seamonkey.

<comment> qu4z-2 Why is that ironic? Windows makes backwards compatibility a priority, Linux... doesn't. Well, Linux does, but the userspace not so much.

<comment><USER9> Well, the userspace actually isn't that bad either – if you stay away from Gnome and Gtk. The KDE and Qt side of userland tends to be a lot more stable – I've got a version of Skype here using a Qt version from several years ago – which still runs nicely, and without issues, and with the old version even automatically using the theme I've set in Qt5.6.

</comment></comment></comment></comment></comment><comment><USER27> I like GTK+, but this release schedule horrifies and disgusts me.

If you're going to break the ABI, just increment the number. I get that they want to break the ABI incrementally so that they don't end up with what has become of GTK+ 2.x; where half the applications people use are still on 2.x and so don't have smooth scrolling or new windowing system support.... but I just don't think this is the way to fix that.

</comment><comment><USER28> Much as I disliked the proposal in the original post (which was later clarified by the GTK+ developers), it is telling that the respondent did not bother to research the reasons behind GTK+'s two API/ABI breaks in its 18 year history.

</comment><comment><USER29> Interesting thread: thanks.

I have a gtk2 app I built over many years (gtkmm2.4 to be precise) that I have not ported to gtk3. It is a sophisticated app that uses pulgins (webkit, mplayer, custom, etc). I was thinking maybe I shouldn't spend effort in porting to gtk3. I'm considering going UI free like mpv dose with their video player. Does anyone here have experience in this area and develops plgins for browsers. What are the interesting technologies in this area?

</comment><comment><USER30> I would laugh about it if I wouldn't have done the same stuff the first time I built something for other people. Do they have a completely new team at gtk dev?

</comment><comment><USER31> There is a partial solution to this problem- API _schemas_. Define a schema for your API and make it public, then have API methods auto-generated directly from that. For example, for web APIs, there's jsonschema- [http://json- schema.org/](http://json-schema.org/) from which you can auto-gen functions in a given language. That way, the parameters around the API such as the URI of an endpoint can be changed from version to version without completely destroying the logic on top of it. It doesn't always solve the problem completely, but it can make it much more tractable.

<comment><USER32> Include headers /are/ API schemas. The big problem being discussed here is ABI compatibility. Needing to recompile one's software every six months, or have .so.hell is not fun at all.

</comment></comment><comment><USER33> I was very annoyed by GTK 3.20 wreaking havoc. Firefox scrollbars went missing, until fixed much later (in 48 beta)... I wish they'd just switch to Qt already.

</comment><comment><USER34> If GTK had the same status in Linux distributions as the Win16/Win32/etc API does in Windows then Linux distributions would carry every API-incompatible version of the library necessary (and maintain old ones).

As it stands, GTK more closely resembles the "Microsoft C++ Redistributable" situation in Windows -- an awkward hybrid of library and API.

</comment><comment><USER35> > _Since when does "X.0" not designate a stable release?_

Oh, approximately since Microsoft gained a lead in personal computing in late 1980-something, and decreed that henceforth, systems shall be expected to be a broken mess until version 3.x.

</comment><comment><USER36> Now I understand the new attraction for KDE with its new plasma release. They script in javascript. I already quit GNOME with its GNOME 3 iteration desaster. So the fish doesn't only stink at the head, also at its tail. Didn't know that, thanks.

Liked this comment: Well, in the words of my two favorite software dev related quotes:

> 'How could the wise man build his house on the sand? How could the wise man > build his house, where there is no foundation?' — Eek a Mouse, Noah's Ark

> 'The only way a wise man would build his house on the sand is if it was just > a hut and he was really high and really enjoyed building new huts.' — random > youtube comment on the above song (sadly I forget who the sage was that > wrote that)

</comment><comment><USER37> This is why: [1]

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

</comment><comment><USER38> That's what semantic versioning is all about

</comment><comment><USER10> Ironically written on/in Wordpress.

<comment><USER39> For all of wordpress's problems, backwards compatibility and API stability definitely isn't one of them! Their dedication to backwards compatibility is very impressive (and probably the biggest factor as to why the technical underpinnings are still such a mess after all these years).

</comment></comment><comment><USER40> I'd like to take a moment to mention that the GNOME developers (who run the Gtk project) are literally insane. They're pushing this new batshit crazy Gtk versioning scheme, for one, but there's more. They're pushing around the Wayland scene with crazy design choices for Wayland compositors that affects the entire Wayland ecosystem and disrupts other projects hoping for cross compatability. _The GNOME developers honestly and sincerely do not see a point to having any non-Gtk3 software work on the GNOME desktop_. I'm not kidding, ask one of them and they will concur. They also broke everything with GNOME 3, and though they've managed to produce a pretty nice DE by 2014 or so they've spent the last couple of years removing features that people actually use once they deem them "obsolete". They also don't see any point in having any Gtk3 software work on systems without systemd or dbus, which I think is nuts even though I use systemd. GNOME is legitimately insane.

<comment><USER23> I think you literally mean figuratively.

<comment><USER40> No, I mean literally at this point. I've talked with them a lot and they are honestly convinced that awful choices are good choices and don't understand how anyone would feel otherwise. I don't know anyone who doesn't work on the GNOME project that thinks any of their ideas are good ones.

</comment></comment></comment><comment><USER41> For all the complaints, this sounds like a great deal for the Gtk developers. They don't have to plan ahead of time which version is going to be the stable one. If one ends up working well and they want to start on new ideas, they can just leave it unchanged, declare it to be the stable one and move on. Developers are people too and they would want a system that makes it easy for them.

Is it really a problem for application developers either? When you start your project, just pick the latest stable version and stay with that throughout. You can ignore all the subsequent updates and be sure that your stable version's API won't change.

The unstable versions are surely just for people who want to play with the new features early, not people who are worried about compatibility.

<comment><USER42> _Developers are people too and they would want a system that makes it easy for them._

I don't want the world to be composed of people that are only there to make the world easy for themselves.</comment></comment>


Show HN: My first Android app - Hacker News reader - <AUTHOR> https://play.google.com/store/apps/details?id=com.evans.hackernews

<comment><USER2> Good start, though the feature I've found essential in this type of application is being able to share an article via a long press on the main page. I send dozens of articles to Pocket every day that way.

<comment><USER3> >I send dozens of articles to Pocket every day that way.

Exactly.

A HN app with a "share to pocket" (configurable for other share targets of course) one-tap link on articles would be my new main app over night.

</comment></comment><comment><USER4> Two problems with rotation:

1) The article list scrolling position is reset.

2) On my Nexus 7, going from landscape to portrait while viewing comments closes the comments.

<comment><USER5> Rotation issues are usually to do with the activity being recreated (i.e. onCreate is called again) as the screen size has changed. There is a config to disable this however: [http://developer.android.com/guide/topics/resources/runtime-...](http://developer.android.com/guide/topics/resources/runtime- changes.html)

<comment><USER4> If you mean configChanges, I would strongly recommend against it because it is a bad practice and it probably wouldn't work in this case anyway (no activity recreation = no multi-panel layout on a 7-inch landscape screen).

<comment><USER5> Ah, sorry I haven't done Android dev in a while; would a better way be yock's onSaveInstanceState/onRestoreInstanceState then?

<comment><USER4> Yes, something like that in combination with carrying over the existing list data with an retained fragment.

</comment></comment></comment></comment></comment><comment><USER6> Why does it need permission to read my identify? Sorry, uninstalled.

<comment><AUTHOR> Do you mean Read phone state or Access network state? Those are for the Ads and Analytics.

<comment><USER6> It requires two permissions:

-Phone calls Read phone status and identity

-Network communication Full network access

I can understand the latter, in particular if in android you can't specify exactly what hosts you need to access but the former I can't understand, or better, I can't stand. I do not want to give every app my identity, not for ads, not for money.

</comment></comment></comment><comment><USER7> The app looks excellent; the best design for an Android HN app I have seen to date. Unlike others, I haven't experienced any crashing issues.

I only have one small piece of input: A night-mode (white on black) for the main menu and comments would be an excellent addition.

<comment><USER8> +1 to the "night mode", which is very relevant to users with AMOLED screens.

</comment></comment><comment><USER9> Quick impressions:

Smoother scrolling of comments than in most of the Hacker News readers for Android that I've tried. I actually wonder why scrolling is so bad in most of the Android applications? Is it because of the misuse of the ListView or what?

Could perhaps show some indication when changing between front page, ask, etc. Currently selecting another view does nothing until the results are loaded and then the page changes instantly underneath.

Crashed after a few minutes of use when pressing the key for registration (I submitted the crash report).

Seems like a good start, the ads are quite irritating though :).

<comment><AUTHOR> I'm not sure why scrolling tends to be bad in some applications. Perhaps they aren't recycling views properly or something.

I'm working on adding that indicator, as well as logging in/replying.

I wasn't sure if I should even use ads, but I could take them out. And thanks for the crash report!

</comment></comment><comment><USER10> Very nice ! The app crash when i want to login or "remove the ads" (android 4.2.1 / Galaxy Nexus GSM)

I am currently using this one : [https://play.google.com/store/apps/details?id=com.glebpopov....](https://play.google.com/store/apps/details?id=com.glebpopov.hackernews) but yours is good enough to consider a switch :)

</comment><comment><USER11> Nice app! If you are going to keep the ads (I'd rather pay something like $1), please show them on the frontpage compared to when I'm reading the article. Also it would be nice if it would not reload the frontpage every time I come back from reading an article.

<comment><AUTHOR> You can remove the ads with an in-app purchase (although it looks like that part is crashing for some people) because I didn't want to have a Free/Pro app. Thanks for the feedback though!

</comment></comment><comment><USER12> Awesome, works really nicely on my Nexus 4. I'll definitely be using it from now on. The comment view looks a lot like my 'Reddit Now' app so that's probably why I like it so much! The transition between comments and the article is a nice touch too. 5* from me.

</comment><comment><USER13> Is the source code available on github by chance? I've recently started delving into android and would love to study/contribute to this app if possible.

Regardless, really an excellent job overall with it.

<comment><AUTHOR> No, at least not yet. Thanks though, it's good to finally get something out there!

</comment></comment><comment><USER14> Looks very nice; way better than most of the other HN apps I've tried (and I've probably tried all of them by now).

Unless something stops working, you'll have a purchase from me pretty soon! Good job!

</comment><comment><USER15> There is a box in the page which says: "This app is not compatible with your Samsung GT-S5830C." I wonder why it isn't. I didn't know there were version specific Android apps.

<comment><AUTHOR> It's not specifically targeting your device, it's Android 4.0+ only right now. Android 2.X support is coming soon.

</comment></comment><comment><USER16> Great App!! However, I still like my iOS application Hacker Pulse... BTW, this is really the best hacker news application I have ever used on my XT535.

</comment><comment><USER17> This looks awesome, but I'm sad that it requires android 4.x. I blame the phone manufacturer/carrier for never updating my phone (still stuck on 2.3)

<comment><AUTHOR> Part of the next release should be backporting it for 2.X, I just wanted to get something out and gather feedback. I didn't forget you!

</comment></comment><comment><USER18> Great app!

Managed to make it crash though sent a report through to help you debug it.

Good work though, well done :)

</comment><comment><USER19> Great app! An indicator when refreshing would be nice, but overall this is definitely the best HN reader out there.

<comment><AUTHOR> Thanks! A loading indicator is definitely on my to-do list.

</comment></comment><comment><USER20> If I pay to remove adds from my phone, will they be removed from my tablet and all future installs?

<comment><AUTHOR> Yep. The purchase is tied to your Google account.

<comment><USER20> Awesome thanks

</comment></comment></comment><comment><USER21> I like the app, but shouldn't the default view of an article be the article, not the comments?

</comment><comment><USER22> That's awesome, Mike. Well done!

</comment><comment><USER23> Great App! How much time did you spend on writing the app?

<comment><AUTHOR> Thanks! I spent a few weeks on it. It's my goal in 2013 to actually finish projects that I start :)

</comment></comment><comment><USER24> Good App. Are you planning to make the app open source ?

</comment><comment><USER25> Great work.

Sadly I am still on 2.2 :(

</comment><comment><USER26> seems nice, too bad I don't have 4.0+ to check it.

One question : How web scraping is done ?</comment>


Docker and StriderCD: Brilliant Continuous Integration In A Box - <AUTHOR> http://blog.frozenridge.co/docker-and-stridercd-brilliant-continuous-integration-in-a-box/

<comment><USER2> For those of you looking for a hosted CI system, I highly, highly recommend CircleCI...we've been using it for continuous deployment, and it's been just about perfect. It's one of those tools that Just Works, and makes your life a little bit easier.

<comment><USER3> How does it compare to the other hosted CI solutions for private repos out there?

<comment><USER4> Hi, founder of Circle here.

Our focus is on developer productivity. That means we try to make things fast, reliable and low overhead.

As far as differentiators, we're pretty fast. We can automatically parallelize your test suite across N VMs. We automatically inspect your source tree, and figure out how to run the tests, without configuration. It's not perfect, but a substantial percentage of customers get a working build on their first try.

We have some pretty cool features in the pipeline that haven't been in generally available products, we hope to blow peoples' minds with them when they're released :-)

Let me know if there's anything else I can answer.

<comment><USER2> _" As far as differentiators, we're pretty fast. We can automatically parallelize your test suite across N VMs. We automatically inspect your source tree, and figure out how to run the tests, without configuration. It's not perfect, but a substantial percentage of customers get a working build on their first try."_

Yes, yes and YES.

I love that there's a comment in this thread that claims that CI systems have to be like Jenkins to be marketable. CircleCI was great precisely _because_ it worked basically out of the box, and then the configuration to get it to do more complicated stuff (like, say, running migrations) was as easy as specifying a unix command.

I set up our CI system on CircleCI in an afternoon, and we haven't had to touch it since. That's pretty remarkable.

</comment></comment></comment></comment><comment><USER5> Docker sounds brilliant, but I haven't had much luck with deploying my (moderately complex) Django apps on it. For example, I want the postgres db data to live outside the container, but volumes can't currently do that with Dockerfiles: they're initialized at "docker build" and then the files are just overwritten when trying to mount an external volume.

Another use case is trying to spin up a development container (where the code resides on the host), but, again, shared volumes overwrite the directory. You can ADD your code initially and then mount the volume when you run it, but it's added hassle.

<comment><USER6> Hey StavrosK,

This is by design, " _I want the postgres db data to live outside the container_ " is a deployment-specific decision, and should not be hardcoded into the container itself. You (or someone you distribute this container to) might _not_ want the db data to live outside the container, or might want it to live at a specific path on his machine. That's why a Dockerfile lets you specify that /var/lib/postgres is persistent, but doesn't let you specify _how_ to persist it.

Now, if I remember our IRC discussion correctly, in your case you're hitting a limitation of docker's implementation of volumes, which is that the container cannot specify an initial state for its volume - it can only start empty. That is a limitation that we're going to fix. But we need to make sure we fix it without breaking portability of containers.

I hope this helps.

<comment><USER7> Hey shykes,

This is something I'm still not quite clear on. According to the issues in mention here: [https://github.com/dotcloud/docker/issues/1185](https://github.com/dotcloud/docker/issues/1185) it is possible to do what StavrosK is asking. What am I missing? Why would a volume need an initial state when when the goal can be accomplished with a bind mount?

I also +1'd the documentation issue because I can't seem to wrap my head around what the current state of volumes and mounting is. Appreciate any direction you could point me in.

<comment><USER6> > _Why would a volume need an initial state when when the goal can be > accomplished with a bind mount?_

This is in the special case where you want the application itself to determine the initial state of the volume. For example, the _developer_ might want the database pre-loaded with a certain schema, default data and so on. External volumes/bind mounts are a way for the _sysadmin_ to override how and where the contents of a volume are stored.

Re: documentation, you can take a look at this example: [http://docs.docker.io/en/latest/examples/couchdb_data_volume...](http://docs.docker.io/en/latest/examples/couchdb_data_volumes/)

I hope this helps! Feel free to join the IRC channel (#docker on freenode), it's unusually active and helpful, I'm very proud of how nice the people are on there :)

</comment></comment></comment></comment><comment><USER8> I just set this up accessible over the internet, building my blog. I've since removed the service/webhooks, but feel free to login at [http://stinemat.es:3000](http://stinemat.es:3000) to play around. It's extremely cool.

<comment><USER9> Do you have a demo account or an invite code we can use to register?

<comment><USER8> The demo account is available on the blog post :)

</comment></comment></comment><comment><USER10> I had major problems with Strider's web interface (running from a Docker instance) just dying on me. I think it's got a long way to go before it's a viable replacement/equivalent for Travis-CI.

<comment><AUTHOR> We haven't seen that bug. [https://hosted.stridercd.com](https://hosted.stridercd.com) runs on Docker. We'd love to fix this for you.

Can you file a bug at [http://github.com/Strider- CD/strider](http://github.com/Strider-CD/strider)?

Many thanks and sorry you are having issues.

</comment></comment><comment><USER11> Did it take anyone else ages to download all the files from `docker pull strider/strider'? Was taking over 30 mins for me, so I gave up and installed everything by hand without docker in about 5 mins!

<comment><USER6> Hi, docker maintainer here.

The docker registry is getting hit really hard because of the explosive growth of the project - we're in the process of upgrading the infrastructure, should get much better very soon.

<comment><USER11> It's a good problem to have I guess :)

</comment></comment></comment><comment><USER12> Ah, this is deploying StriderCD with Docker, and not the other way the around. Was really hoping to see a build server that could spit out Docker images :)

<comment><AUTHOR> That is also in the pipeline :)

</comment></comment><comment><USER13> this is awesome. well done.</comment>


Quran CLI – Holy Quran from Command Line - <AUTHOR> https://github.com/sarfraznawaz2005/quran-cli <comment></comment>


Designr-Your Personal Celebrity Fashion Designer - <AUTHOR> We are a fashion tech startup from India in the process of developing a marketplace for indie designers. We have enrolled in the current YC Startupschool course that is being provided online and learning the nuances as we go through.
Our MVP(Designr) is on play store and app store where users can upload a pic, see which celebrity they match with and follow their fashion. They can also any celebrity trends for those that are on the platform. Currently, they will not be able to buy on the platform. We are targeting to enable the purchase by the end of August.
In addition, we also have a blog (http://blog.designr.me) covering the latest fashion trends
Looking forward to your review and feedback. <comment><USER2> You should rename the title into Show HN: ..., and should add a link to [https://designr.me](https://designr.me)</comment>


Russia launches it's own government owned search engine Sputnik - <AUTHOR> http://www.sputnik.ru/

<comment><USER2> Seems they didn't expect success :-)</comment>


Cool but obscure X11 tools - <AUTHOR> https://cyber.dabamos.de/unix/x11/ <comment><USER2> Boy does that bring back memories of the 1990s!

Some of these are not obscure at all, but absolutely standard. Xterm was _the_ shell, I'm not sure there were even alternatives in early X. Xbiff+Xload+Xclock used to be on _everybody's_ desktop. XV was the main image viewer on X for a long time.

Anybody remember xvacuum? I guess it's truly obscure since it didn't make the list. One of my favorite tricks to play on other people in the lab, before X security was a thing, was to run xvacuum on other people's displays ... it slowly sucks everything on the screen into the mouse cursor.

If the page maintainer is reading, Xsnow has a calculator in the screenshot covering the snow. This one is a bit obscure, but I loved xsnow, so I think it deserves a calculator-less view! :)

<comment><USER3> What about _AzPainter_?[0]

It's really cool image editor based on X11, that still is obscure competitor to GIMP and Krita ;-)

[0] [https://github.com/Symbian9/azpainter](https://github.com/Symbian9/azpainter)

<comment><USER4> This is a great program, essentially PaintTool SAI recreated for Linux

<comment><USER3> > _recreated for Linux_

Not only for Linux, but for FreeBSD/OpenBSD and Mac OS too![0]

[0] [https://github.com/Symbian9/azpainter/wiki/Packaging- status](https://github.com/Symbian9/azpainter/wiki/Packaging-status)

</comment></comment></comment></comment><comment><USER5> >XLennart is a modification of the arcade game XBill.

>An evil and unpopular computer hacker named "Lennart"[1] tries to install his malicious init system on various BSD and Linux systems.

>Like in XBill, the player has to hit him and restore infected systems.

[1] [https://cyber.dabamos.de/unix/x11/poettering.gif](https://cyber.dabamos.de/unix/x11/poettering.gif)

<comment><USER6> For clarity, Lennart Poettering is an extremely prolific guy that people somehow love to hate. At the end of the day, his critics either use his software begrudgingly, or use somebody else's to their own detriment, just to spite him.

I take some time every year to thank Lennart for systemd and PulseAudio; I remember when the grass was parched brown on my side, green has been a welcome change!

<comment><USER7> After his foolish use of alloca() in systemd was revealed, it's clear that the derision is well deserved. One would think that after cutting his teeth on PulseAudio he'd have learned how to write safe, system level C.

<comment><USER8> Please, it's not like any single other component in Linux desktop is somehow more secure. If anything, most stuff on Linux desktops are majorly more buggier and unsafe, they're just less popular in most cases.

<comment><USER7> Desktop code can be expected to fail sometimes. Core system components that orchestrate _everything_ , should not. Ever. This requires disciplined programming that doesn't assume the stack is a limitless resource free to abuse and fill with tainted data.

<comment><USER8> Even Linux kernel has had tons and tons of vulnerabilities and bugs. Not to mention non-systemd core system components and services have been found exploitable times and times again. You can't set higher standards for systemd than other core pieces of software, it's simply not fair.

<comment><USER7> The Linux kernel _has_ high standards. Most of the bugs come from the drivers. If systemd wants to be the end all be all init replacement it should have known from the start that it needed to meet a high bar of code quality.

<comment><USER8> It has high standards but the track record shows that standards isn't all it takes. We can always blame some subcomponent under someone else's control but the end result matters more.

If you want to systemd to adhere to really high standards then you're a hypocrite if you don't apply the same standards to every subcomponent of a non-systemd system, be it upstart, logrotated, cron, chrony or whatever else.

But it seems to me that you actually don't apply the same standards to the alternatives, they've all been hit with some vunerabilities, they all have bugs, they all have at least some terrible code, some lack maintenance or are just outdated. I wouldn't start throwing rocks from a glass house.

Oh and let's not forget that based on a pure empirical observation of the Linux ecosystem we can see that it is a better choice. And no, noone has been forced to use it(, neither was anyone forced to use Pulseaudio).

<comment><USER9> > standards isn't all it takes

Obviously, since djb's daemon tools isn't used by default, which is exactly the sort of software that would be used by people who would rely on such functionality.

> It has high standards

One of SystemD's core contributers was banned from contributing to Linus' tree because his code was sub-standard.

> based on a pure empirical observation

...we should then also be able to see the Microsoft Windows operating system is a better choice.

<comment><USER8> > One of SystemD's core contributers was banned from contributing to Linus' > tree because his code was sub-standard.

And how many contributors of other projects have even tried to contribute to the kernel. 1 isn't a sample size you can make assumptions based on.

> ...we should then also be able to see the Microsoft Windows operating system > is a better choice.

In certain cases it'd be delusional not to admit that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> For those looking for obscure-but-useful, checkout xdotool. `sleep 2; xdotool type "foo"` is super handy for typing passwords into virtual machines which don't support guest additions. I'd rather not elaborate on the filthy things I've made it do, but rest assured you can use it to do some quick and dirty automation tasks if you really need to :)

<comment><USER11> Autokey (Python) gives you similar power as AutoHotKey on Windows and Karabiner Elements/Hammerspoon on macOS.

Problem is, that you might want Wayland support, as X is on the way out.

[1] [https://github.com/autokey/autokey](https://github.com/autokey/autokey)

<comment><USER12> Last time I tried Karabiner Elements, it was quite buggy and brought down the kernel. Not a happy camper. Then Apple blessed us with allowing Escape-Caps remapping out of the box (guess that Touch Bar resulted in something useful...)

Did it improve? What do you remap?

<comment><USER13> I've started using it a few months ago, and it seems pretty stable.

I've got a fancier mapping for the caps lock key: when you hold it, it works like ctrl, and when you tap it it works like escape.

I've also got something similar for space: when I tap space, it works like space. When I hold space, I can tap additional characters. (So space works like a modifier, similar to ctrl or shift.) For example, space-x = delete, space-p = page up, space-j = cursor down.

<comment><USER11> I'm using the same keybind as you do.

The space one however, did not work well for me. It resulted too frequently in space not working at all. Supposedly it got matched as a combination with another key instead of a tap.

I recommend to apply a new rule, then test it out, then make another change. This way, you figure out which rule poses an issue.

There is one ruleset in Hammerspoon in the Github repo which I mentioned which -for me- makes it impossible to type cd. It always becomes c d

</comment></comment></comment></comment></comment><comment><USER14> One BIG thing missing: xteddy! It was xteddy shown in parallel on multiple HP 9000 screens in the early 90ies, which sparked my love for UNIX.

[http://weber.itn.liu.se/~stegu/xteddy/](http://weber.itn.liu.se/~stegu/xteddy/)

see also

[https://xteddy.org/](https://xteddy.org/)

Also xon (very handy for non-ssh users), jwz's xdaliclock and xkeycaps.

<comment><USER15> Oh man. This made my Friday - just an adorable bitmap bear on my Debian 10 desktop... get this - when you move him, the dragging cursor is a little heart <3

Only problem is now I feel slightly guilty sending a teddy bear a SIGINT.

</comment></comment><comment><USER16> As well DDD the X11 front-end for GDB [1]. Helped me quite a lot around 2003.

[1] [https://www.gnu.org/software/ddd/](https://www.gnu.org/software/ddd/)

<comment><USER17> I still miss a good debugging GUI with useful data visualizations. Sometimes staring at pointers and (multidimensional) arrays of numbers just isn't enough.

<comment><USER18> For data visualizations I use gdb's Python API. For simple things that can be just adding pretty printers, for hairy things it can be a custom command that prints extra information or dumps it to a graphviz script.

[https://sourceware.org/gdb/onlinedocs/gdb/Python- API.html](https://sourceware.org/gdb/onlinedocs/gdb/Python-API.html)

</comment></comment></comment><comment><USER19> My two favorites were xev, for finding out which key/event codes I needed to put in config files, and xnest, for trying out new window managers or containing window-happy applications in a single top-level window before workspaces became a common thing.

<comment><USER20> Also xmag, for those "what is going on at the pixel level" questions that screenshots are poor at answering. Alas, this doesn't work on wayland for obvious (yet... deeply regrettable) security reasons.

<comment><USER21> For Wayland there is now "wev"

[https://lists.freedesktop.org/archives/wayland- devel/2019-Au...](https://lists.freedesktop.org/archives/wayland- devel/2019-August/040796.html)

</comment></comment></comment><comment><USER22> Fun point of trivia about XBill: you might not guess from XBill's (ahem) slick, beautiful user interface, but one of the two people who wrote XBill is Matias Duarte.

Yes, that Matias Duarte, the guy in charge of UI for Android and who came up with Material Design.

<comment><USER23> There is not much of a GUI in XBill- just a bloody program with a menu and a window. The same can be said about Android - Windows 1.0 rereleased. From an engineering point of view XBill is a better achievement than the GUI of Android.

</comment></comment><comment><USER24> Oh my, that reminds me of my first year with Linux, discovering all those little utilities hidden on my Slackware install or available on Sunsite…

<comment><USER25> Same. Also the games listed here were pretty much the fanciest games we had, apart from Doom (svgadoom and xdoom) and Abuse.

<comment><USER26> What?? How could you forget xevil?

</comment></comment></comment><comment><USER27> Tgif is one of my all-time favorite X11 programs. It's used to create vector drawings, and I could whip out nice infrastructure diagrams etc. so fast using it.

See [http://bourbon.usc.edu/tgif/index.html](http://bourbon.usc.edu/tgif/index.html)

</comment><comment><USER28> xeyes isn't obscure , how else do you test that ssh x forwarding works otherwise :)

<comment><USER12> Glad to know I'm not the only one! That and glxgears.

<comment><USER29> Exactly. Glxgears was (at least traditionally) how you tested whether your video driver was using any of the 3D acceleration!

</comment></comment></comment><comment><USER30> I was expecting X11 tools such as xev, xdotool, wmctrl, etc. Not a list a more or less obscure graphical programs (some stuff are even using GTK in the list). Fun nonetheless.

</comment><comment><USER31> Many of those types of programs like XRoach, XSnow, XNeko as well as every program rendering to the root window will never be possible with wayland (unless you built them into the display server).

<comment><USER32> XRoach doesn't work even on a modern X desktop. The background window on, say, gnome, isn't really the root window. I compiled XRoach a few years ago and didn't understand at first why it wasn't working. I don't know if any of the modern desktops have an actual root window that's visible.

<comment><USER33> Perhaps if you do not use a desktop environment, then the root window will be visible and usable. (I do not use a desktop environment myself.)

</comment></comment></comment><comment> bump-ladel The 1994 xv codebase still compiles and runs on modern Macs with XQuartz! [https://twitter.com/jmcd/status/1143629189817470977?s=20](https://twitter.com/jmcd/status/1143629189817470977?s=20)

<comment><USER34> Yep. I still use it. I have a headless Amazon EC2 GPU instance that generates images -- I tunnel X11 thru ssh and xv works like a charm!

</comment></comment><comment><USER11> TIL there is a successor to xbill, called xlennart.

</comment><comment><USER35> xclip : [https://github.com/astrand/xclip](https://github.com/astrand/xclip)

        (long pipeline that generates lots of output) | xclip

Or even just

        xclip < /some/file

Now paste where necessary.

</comment><comment><USER36> No x2x?

Control two separate networked computers with one keyboard and mouse. Cursor slides out of right on one side and enters in on the left of the other.

Wayland folks is there a similar thing? I don't keep up with Linux desktop tech anymore.

</comment><comment><USER37> XMosaic - I remember reading about that in '93 and thinking that it looked like a cool hypertext browser but why would anyone want to load documents over a network!

</comment><comment><USER38> Shameless plug - you can add also my tiny transset rewrite and enrichment - set_opacity[1]. It allows making X windows translucent, without any interaction required. Wrote it more than a decade ago, but still should be usable. This is how you can use it:

set_opacity -o 0.5 -i `pgrep gkrellm`

There is also a patched[2] xcompmgr with the colored shadows support:

xcompmgr -fF -I-.002 -O-.003 -D6 -cC -t-5 -l-6 -r5 -R 1 -G 0.5333 -B 0

[1] [https://github.com/XVilka/set_opacity/](https://github.com/XVilka/set_opacity/)

[2] [http://xvilka.narod.ru/files/xcompmgr-1.1.2.tar.bz2](http://xvilka.narod.ru/files/xcompmgr-1.1.2.tar.bz2)

</comment><comment><USER39> Oh xfig is missing. I still use this awesome program for drawings. It's primitive but in many ways faster to use than inkscape.

<comment><USER40> xfig also has one of the few implementations of x-splines (x means "cross" here, like "pedestrian xing", unrelated to the X window system). I find x-splines very nice and intuitive.

Here's a little x-spline implementation I made:

[https://jordi.platinum.edu.pl/xsplines/splines.html](https://jordi.platinum.edu.pl/xsplines/splines.html)

</comment></comment><comment><USER41> Ah Motif, XBill and Afterstep! My nostalgia bit just got set.

My first experiences of GUI programming on Unix (HPUX on a Motorola 68040 machine) was with Motif, which was a pretty good toolkit after you got used to the very long function names.

<comment><USER42> I'm typing this on a desktop running mwm and emacs linked against motif.

</comment></comment><comment><USER43> Xsnow for christmas time and coding fun projects with christmas music :).

</comment><comment><USER44> Free42 is also available for iOS and Android. It's very handy, especially when I can keep my real 42S safe in a drawer at home.

[https://apps.apple.com/us/app/free42/id337692629](https://apps.apple.com/us/app/free42/id337692629)

[https://play.google.com/store/apps/details?id=com.thomasokke...](https://play.google.com/store/apps/details?id=com.thomasokken.free42&hl=en_US)

<comment><USER45> The rendering on that 42s is close enough that I can almost feel the buttons. Never thought I'd describe a calculator as sensual, but HP's of that era had such a distinct look and feel.

<comment><USER46> This is a great find. I used a 42S heavily through high school and college. I was surprised at how some of the muscle memory of how I did certain things came back. Seeing the dot matrix answer after doing some calculations brought back the feeling of being bored in math class, when I would just play with all the functions and write little programs. I didn't have a phone or even a laptop to turn to in those days.

Even now though, it will be useful to do calculations in RPN. Even the ability to swap X and Y, and store intermediate results in order to avoid parentheses or M buttons is nice.

<comment><USER44> I felt the same way. And once you're comfortable with RPN, it's really hard to go back. Painful, even.

</comment></comment></comment></comment><comment><USER18> Not sure if it counts as obscure, but to add to the note on xclipboard: xclip, which lets you change and inspect the primary selection/clipboard from the command line.

</comment><comment><USER47> This reminded me of xjump, a very addictive falling tower game where you must continue to jump to the next highest platform as the lower platforms collapse beneath you.

[https://linuxx.info/xjump/](https://linuxx.info/xjump/)

[https://github.com/hugomg/xjump](https://github.com/hugomg/xjump)

<comment><USER48> I wish I could find game xjumpxjump, it was a small number puzzle I played a lot in FreeBSD. It was removed from ports years ago and I have yet to find the src :(

<comment><USER47> [http://ftp6.us.freebsd.org/pub/FreeBSD- Archive/ports/distfil...](http://ftp6.us.freebsd.org/pub/FreeBSD- Archive/ports/distfiles/xjumpjump.tgz)

<comment><USER48> Awesome, after a couple of easy mods it compiled on my syste.

Thanks!

</comment></comment></comment></comment><comment><USER33> Sometimes xterm is still used; I use xterm. It is still being maintained, too. I also sometimes use xfontsel. I do not think these are so obscure, isn't it?

Some of them, although I do not use them, I would not think they are so obscure, such as xbiff, xload, xclock (I have the functions of all three programs in another program I wrote, to display on a status line).

</comment><comment><USER49> The GTK screenshots all use then ThinIce theme[1] – still my favorite, but sadly not available for GTK 3 or 4. And I guess it wouldn't fit with GNOME's current design direction anyway.

[1] [http://thinice.sourceforge.net/](http://thinice.sourceforge.net/)

<comment><USER50> I don't think so. Those look like the original CDE Motif Window Manager[0].

[0] [https://en.wikipedia.org/wiki/Motif_(software)](https://en.wikipedia.org/wiki/Motif_\(software\))

<comment><USER49> Sure, the window manager could be the Motif window manager, or perhaps FVWM.

I meant the widgets inside the window. The blue-tinted ones are GTK+ with ThinIce; some of the darker grey ones are Motif.

</comment></comment></comment><comment><USER51> xcostena. It was an X application written at SGI which took an order and faxed it to La Costena, a taqueria on Rengstorff (at the time). It might have been the first case of e-commerce on the internet and this was pre-web.

<comment><USER52> La Costena is still around, it just moved further down Middlefield towards Sunnyvale, right before Ellis.

Sun had a similar app that would fax orders to Tony and Alba's pizza, though that closed a few years ago.

<comment><USER51> Yeah, _tatool_.

[https://medium.com/@donhopkins/the-story-of-sun- microsystems...](https://medium.com/@donhopkins/the-story-of-sun-microsystems- pizzatool-2a7992b4c797)

</comment></comment></comment><comment><USER53> Let me add my own cool but obscure project KDocker. You can use kdocker to move any app to the system tray :) These days it's maintained by john at [https://github.com/user-none/KDocker](https://github.com/user-none/KDocker)

Edit: oh wow, I actually tried it again now and it actually works! Crazy, this was a tool I wrote like 12-13 years ago. I also found the initial sourceforge page - [http://kdocker.sourceforge.net/](http://kdocker.sourceforge.net/)

</comment><comment><USER54> I still use xv to open images from the command line. Its like muscle memory.

<comment><USER55> I switched to the "display" command from the various image/graphics magic packages years ago, and now am frustratingly finding it has become unstable.

But, recently seeing some PBS specials on NASA and the planetary probes made me reminisce about "xv". I remember having downloaded images of the Shoemaker- Levy comet impact on Jupiter and browsing them with xv...

</comment></comment><comment><USER56> It mentions Neko, which has its own Wikipedia page:

[https://en.wikipedia.org/wiki/Neko_(software)](https://en.wikipedia.org/wiki/Neko_\(software\))

</comment><comment><USER57> That grey-and-pink color scheme from the screenshots gives me such a wave of nostalgia. It is fascinating how this color scheme is both terribly, terribly ugly and gorgeous at the same time. ;-)

</comment><comment><USER58> Nice nostalgia. Unfortunately most of the ones that deal with text are from before the 8bit to utf-8 move, which makes them unusable nowadays (unless you restrict yourself to ASCII).

</comment><comment><USER59> Takes me back so many years to grad school. I still find myself using a few of the tools though, even after all these years. xload for one is a favourite.

<comment><USER14> my fvwm "desktop" consists for years only of FvwmPager, rclock, and multiple xload running on different machines.

</comment></comment><comment><USER60> What? no xdaliclock??

[https://www.jwz.org/xdaliclock/](https://www.jwz.org/xdaliclock/)

<comment><USER61> Warning, clicking this link from here redirects to an NSFWish image on imgur. This guy has a problem with HN.

<comment><USER62> `Open link in new tab/window` avoids the referer header and JWZ's bile.

<comment><USER63> It doesn't, at least in Firefox.

</comment></comment></comment></comment><comment><USER64> Strange coincidence this appears on the front page, as I have been having system instability with freezes, and my hunch is that it's something with the QT library. So lately I've been running only X programs instead of KDE apps, and it hasn't frozen in a while. This list will give me some additional apps to play with.

</comment><comment><USER65> How come gvim is obscure?

<comment><USER66> Guess 1: this page was originally going to be "Cool X11 Tools from the 1990's."

Guess 2: perhaps the X11 version of vim is obscure. I usually visualize vim users working in a terminal, with those interested in a GUI text editor using something else.

<comment><USER67> I used some of these in the 1980's!

</comment></comment></comment><comment><USER68> Cloud computing is becoming a thing ... eg. apps that runs "in the cloud" or in your browser. But with Xserver you can just ssh -X into any machine, run an app, and the front-end GUI will be visible on your machine! You can even play games that way. Technology keeps going in circles ...

<comment><USER69> I find xforwarding extremely slow and sluggish. Can/Do you use it efficiently?

<comment><USER68> It works fine for me, but I can not really see any use cases, as I can just run the app locally. Use case's might be thin devices, like mobile phones and Chromebooks. Instead of running containers on Chromebooks, students could ssh into a computer that has all the apps they need; GUI apps like Photoshop, CAD, etc.

<comment><USER70> Just a couple days ago, I used remote X to show some coworkers some things:

a) a (bad) NES emulator i wrote that was on my home machine, I didn't want to compile it on the work laptop

b) chrome running on the home machine hitting a webcam pointed at a pressure gauge --- I didn't want to bother with proxying and prozy settings, and I don't let the webcam accept connections from public internet.

I've also found it super useful for running java based KVM clients for IPMI --- run a VM with the properly old version of java so the webstart file works, and display it with remote X.

xv or eog is nice for looking at images without the hassle of transferring them first (although, transferring them would probably use less bandwidth)

</comment></comment></comment></comment><comment><USER71> I miss xev.

<comment><USER6> It's still there, and now there's wev, for Wayland.

<comment><USER71> I miss on the list.

</comment></comment></comment><comment><USER72> I used XFontSel two days ago to find a font for my StumpWM mode line. Still works like a charm.

Also, I miss XFig on the list. Still growing strong! The last release is from May 2018. I use it occasionally to create diagrams for presentations.

</comment><comment><USER73> Some more obscure games were there, for example Sun Microsystems once released a book about games available on Solaris, which included a flight simulator amongst many others. Though I am unable to recollect the name.

</comment><comment><USER74> Obscure today, but many of these were merely how things were done back then.

</comment><comment><USER75> I didn't realize XArchiver was obscure. I use that pretty regularly.

</comment><comment><USER76> I used xearth as my desktop for ages -- it doesn't have to be run in a window.

Xeyes and xclock were my go-to tests to make sure x11 forwarding was working properly.

</comment><comment><USER77> I didn't know there was an Xgalaga. Linux Emulators aren't the best, inevitably. Hope it's fluid on limited hardware

<comment><USER29> It was pretty good if I recall (from twenty years ago), but not exactly like like arcade game. I sort of miss games like that -- Xchomp (a Pac-Man game) is another. Before the advent of emulators, programmers used to make versions of arcade games that they hadn't seen in years, making them (intentionally or not) different from their inspirations.

</comment></comment><comment><USER78> To read that "editors/vim" is an obscure tool is nothing short of astonishing.

<comment><USER79> To be fair, it's Gvim that's listed, which presumably is bundled with the main vim package.

I had some vague awareness there was a GUI version of Vim, but only just checked it out after spotting it in the list. The menus serve as a handy reference for common commands. Quite good really.

</comment></comment><comment> irq-1 oclock shows a shaped window. `oclock -transparent` shows only the clocks hands and border.

</comment><comment><USER80> xantfarm is another one I like, ant farm in your root window [https://acme.com/software/xantfarm/](https://acme.com/software/xantfarm/)

</comment><comment><USER81> Where is Xrisk?

Networked version of the board game we used to play continuously at work.

</comment><comment><USER82> With the exception of local editors (gvim) and administration software (xload), the need for these applications is easier to satisfy with online HTML5 apps.

These are historically exciting, but nowadays the web browser is your X11.

<comment><USER83> The browser can't implement xeyes (the cursor position outside a window is surely not visible?), so it will never be a serious replacement for X11.

</comment></comment><comment><USER84> I would add xkill

<comment><USER85> It's already in there...

</comment></comment><comment><USER86> Does anyone know what happened to xpool?

</comment><comment><USER39> xphoon is missing

Also I seem to remember a multiuser 3d tank game, maybe xtank? I don't really remember.

<comment><USER87> bzflag?

<comment><USER39> Maybe, it worked on Decstation 2100s and 3100s (black and white) around 1992. Everybody in the computer lab was playing it.

</comment></comment></comment><comment><USER88> I have the catclock in my xinitrc.

</comment><comment><USER89> Vim is VERY obscure.

</comment><comment><USER90> how about xbattle?

</comment><comment><USER91> xeyes!</comment>


Hypercasual: when the web gets a little too friendly - <AUTHOR> http://gigaom.com/2011/09/12/hypercasual-when-the-web-gets-a-little-too-friendly/

<comment><USER2> Too casual puts me off (HP has a person who makes me never want to buy from them again), but if I don't get a sense of "real person" from you, I think you are lying to me.

Social media is about people interacting, even when those people work for huge companies. Talking with the same stilted, jargony crap that shows up on the web site is _worse_ than not communicating at all. And that's what corporate standards tend to breed.

</comment><comment><USER3> I think one of the companies that uses social media well and without that 'oh too cool' casual style is mediatemple. I find their tweets and video posts to be professional and personable. Even when other twitterers are screaming at them when one of their shared servers goes down.

There is an immediate drop in creditability when a business is too friendly or too casual. I don't think you need to be cold and formal to portray a sense of responsibility and professionalism. It's about striking a balance between the extremes and reflecting the type of business you are.

</comment><comment><USER4> It's all about building report with users: make them feel like your web app is an actual person, and they tend to trust you and want to use you more.

What's better: a cold, formal tone that is very professional, or one that is casual and makes you feel like an actual person is behind the monitor?

It's all a matter of opinion, and definitely depends on what you are selling. Banks? Definitely shouldn't be doing that.

</comment><comment><USER5> Presumably the point of the betfair twitter stream mentioned <http://twitter.com/betfair> is to get an audience, any audience. It is pretty bizarre. Cant imagine most companies agreeing to it. More interesting than the cutesy style that gets annoying very fast.

</comment><comment><USER6> I blame Pret A Manger. They have been doing this for years, I think the goal has been to make you think it is not a store, but a collection of foodstuffs curated a manic pixie dream girl, and oh yeah, you can totes buy the bananna bread! It is sooooooo good!

</comment><comment><USER7> Apart from D. Foster Wallace, another pioneer in the usage of ironic prose in journalism would be Wired Magazine. (They started publication in 1993.)

</comment><comment><USER8> It's a small point to make but there are no cat videos on my small corner of facebook :)</comment>


PressFlop: Our First FAIL - <AUTHOR> http://www.startupfail.com/fail/pressflop-our-first-fail/

<comment><USER2> one thing's for sure... everyone wants to be a fuckedcompany and everyone wants to be an uncov. do yourselves a favor, write up a spec script, send it to SNL instead of wasting it on the intertubes.</comment>