Startup: eliminate junk mail - <AUTHOR>

I've been getting especially pissed off at junk (snail) mail lately. Here's a business idea for how to eliminate junk mail: one mailbox for life. Set up one central mail facility which your customers use as their mailing address. When their mail comes in throw out the obvious junk mail and email scanned copies of the rest. Incinerate every piece of junk mail which comes into your facility. <comment><USER2> From an email from a friend of mine from a while back:

I use PaperlessPOBox for my mail scanning, and they don't require you to choose if mail should be scanned or not--they scan it all. I noticed that the service you mentioned [remote control mail#] only scans the outside of the mail (probably the envelope) and then when you receive a notification, you have to tell them to open it and scan it. That's kind of lame, but they're probably still buying mail scanning equipment and can't handle all of the volume yet.

I also use MyEZBills for the scanning of all my bills. They receive the bills, scan them, notify you when they arrive, use OCR to determine the amounts and dates due. You can also set up automatic payments to pay fixed amounts or the minimum balance due.

# [http://www.techcrunch.com/2006/11/22/remote-control-mail- che...](http://www.techcrunch.com/2006/11/22/remote-control-mail-check-your- postal-mail-on-the-web/)</comment>


Show HN: Rabbit – Synchronized video playback - <AUTHOR> https://github.com/marvelm/rabbit-ex <comment><AUTHOR> I've been working on this during the holidays to watch Christmas movies with a friend. I mainly use it to stream h264/mp3 encoded videos. Inspired by Netflix Party, I decided to submit it to Show HN. It's largely unpolished, but the core feature (the ability for a partner to sync playback) works well.

Yesterday, I added a video chat feature. I'm not sure if it works exactly as intended because I don't have anyone to test it with this late at night.

Thank you for looking at my project.

</comment><comment><USER2> Interesting, the video will be streamed from the server for all participants? I wish I could try it, but the setup seems too complicated for non-Elixir users.

I'll probably try it in the near future, when I have more time to learn all this mix, ecto and Erlang things.

<comment><AUTHOR> Yes, one user takes control and the other participants have their video synchronized whenever the user in control pauses and plays.

The setup is prohibitively complex. I'll invest some time into having hands- free fetch/setup (possibly using OTP releases) and resubmit HN.

Thanks for your feedback</comment></comment>


Using Standard HTML (1997) - <AUTHOR> https://www.w3.org/Provider/Style/Standards.html <comment><USER2> Whenever I write HTML documents, I find it helpful to use the XHTML syntax. The strict XML parser catches syntax errors, incorrect nesting, unescaped characters, unquoted attributes, and more. And it supports all the tags and attributes of the HTML5 living standard, so I don't miss any modern functionality.

The standard "tag soup" HTML parser has numerous surprising behaviors on invalid or questionable HTML code. Examples:

The
 element cannot nest, so starting a new one will end the previous one:

Hello

World

      gets transformed to

Hello

World

Furthermore, trailing junk triggers weirdness:

Hello

World

      becomes

Hello

World

Some elements are defined in the HTML DTD to have implicit start tags:

abc

      yields the DOM tree of

abc

Whereas in XHTML mode, either your code is a parse error, or what you see is what you get. You _can_ nest
 elements in XHTML, and you _can_ make a
 contain  directly (without the
 and
 containers).

<comment><USER3> Unfortunately, the XML-style syntax with all tags closed isn't allowed in HTML for certain tags. For instance, you can't close <input> or
 or
 tags.

<comment><USER4> Yes you can.

        <input />,
, and

And it is valid XML. They are referred to as self closing tags.

<comment><USER5> It is valid XML. It means totally different thing in HTML.

<comment><USER6> The _self-closing_ form is fine in HTML5 for those examples, since they are void elements. The "/" gets ignored, which is what you want in that case.

It fails if you try this with non-void elements: E.g. XHTML
 might turn into
 in HTML5, which opens a div element, which is not the same. (I'm not sure if this behaviour is specified or not)

[https://html.spec.whatwg.org/multipage/syntax.html#start- tag...](https://html.spec.whatwg.org/multipage/syntax.html#start-tags)

> _6\. Then, if the element is one of the void elements [...] then there may > be a single U+002F SOLIDUS character ( /). This character has no effect on > void elements [...]_

[https://html.spec.whatwg.org/multipage/syntax.html#void- elem...](https://html.spec.whatwg.org/multipage/syntax.html#void-elements)

> _area, base, br, col, embed, hr, img, input, link, meta, param, source, > track, wbr_

</comment></comment></comment></comment></comment><comment><USER7> > The second reason is you may want the data you are creating to be still > accessible in the future

I wish developers in the front-end ecosystem would hold longevity in higher regard when innovating. When identifying a shortcoming in the web platform, help improve it rather than inventing another framework silo - while throwing out so much hard work that has gone into things like accessibility, separation of logic from content, and more.

<comment><USER8> Improving HTML just isn't a possibility as a developer.

When you develop an app, it's for now and not for 10 years into the future when it has finally been standardized, reviewed, accepted and implemented in all browsers as well as having all the older, non-compatible versions disappear.

We're 25 years into HTML and applying form validation only after an initial input (so as to not display a form filled with red input fields) still isn't a thing.

Hell, even regular form validation still is only applied on form submission and lots of browser versions still aren't compatible.

That's after 25 years of <form> tag existence.

So no, every time somebody talks about the complexity of frontend development and how everybody should stop using JavaScript and use pure CSS and HTML, they forget that the technologies are hot garbage that evolves at the pace of snail.

<comment><USER9> [https://stackoverflow.com/questions/7920742/delay- html5-inva...](https://stackoverflow.com/questions/7920742/delay- html5-invalid-pseudo-class-until-the-first-event/48144022#48144022) doesn't show the red until you enter text.

<comment><USER8> This solution sadly doesn't work for form elements without placeholders like <select>, checkboxes, radio buttons, date & number pickers, etc.

And checkboxes can still not be styled. But that's another one of the multiple problems in HTML and forms in particular ...

</comment></comment></comment></comment><comment> awinter-py this was written before chrome, firefox, ajax, safari, node, most banner ads and a boatload of breaking changes to css

as far as we know, nothing on the web is future-proof -- I suspect if the goal is to serve archeaologists, we don't know what will really be usable in the long term.

I think video game emulators are an interesting success story in this space. Short of that, acid-free paper or stone also last quite well when stored correctly.

<comment><USER10> Node is just a backend language. The HTML you write in node in 2020 can be targeted for 1997, and if you have a server from 1997 running ASP 2.0 it can target browsers working in 2020. You get to craft the output.

Chrome/Firefox/Safari all do a pretty good job of rendering HTML consistently - we've come a lot further than where we were in 1997, when websites commonly had "Made for Netscape" or "Made for IE" graphics on them.

Fun fact: AJAX came from an extension to the browser from Microsoft (first written for Outlook web client). For all the talk about standards and open source, I find it ironic that what is possibly the most defining feature of today's web came from what at time was the greatest force against standards and open source.

<comment><USER11> Microsoft was also first to the table with DHTML, or what we now call DOM manipulation.

The combination of DOM manipulation and asynchronous HTTP was like crack for developers, and resulted in an explosion of IE only business apps, which caused IT departments to become IE-only, which led to a feedback effect.

All the crappy IE-only back-end systems that still fester in enterprises today hark back to those days.

</comment></comment></comment><comment><USER12> one of the difficult things is extracting and reusing data inside of html documents. So after you've written the html file it's done, you can't reuse it in a different page, no api nothing. let's day you want to reorder / filter a list it's impossible

<comment><USER13> What?

OK. You have a mere CSV file with data. What you're stating about HTML is true for the CSV file - _on it's own_.

HTML is nothing more, than a data structure, and fairly good one.

<comment><USER14> Not only that, but their assertion isn't even true. It's as if there's an HTML renderer that doesn't support iframes, template tags, or JavaScript...

Some might say the latter is cheating, but HTML isn't a programming language.

</comment></comment></comment><comment><USER15> > PNG (an improvement on GIF) is becoming acceptable.

And two decades later it is still a second class citizen :-/

<comment><USER16> Compared to what? It is supported in every major browser as far as I know.

<comment><USER17> For still images PNG replaced GIF, but both MNG and APNG suffered from missing browser support for most of their life (particularly from Chrome), leaving GIF as the only viable format for silent moving pictures (until the rise of webp).

<comment><USER18> Maybe it's the ffmpeg apng muxer but it almost seems like gif does a better job a compression compared to apng, making apng only solve one problem (AFAIK): the color limitations. See this example: [https://gist.github.com/judge2020/a78adb07ae60244a5660fb631f...](https://gist.github.com/judge2020/a78adb07ae60244a5660fb631f389c02)

<comment><USER17> PNG has two (commonly used modes): 256 colors or true color. A 256 color PNG beats a GIF in compression, but for many images a 2^32 color PNG takes more space than a 256 color GIF. This holds true both for still images and animations.

This leads to a curious situation where PNG beats GIF at anything GIF can do, yet still disappoints people.</comment></comment></comment></comment></comment>


Basecamp 3 for iOS: Hybrid Architecture - <AUTHOR> https://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture-afc071589c25 <comment><USER2> I really admire Basecamp's culture of being thoughtful and forward-thinking, without crossing the line into fad-chasing and reinventing the wheel for no reason.

I'm a native iOS developer who is horrified by 95% of the "hybrid" or cross- platform approaches to mobile development out there today. They all seem to primarily be driven by a desire to use Javascript, or some manager naively thinking they can cut their mobile dev budget in half, rather than any concern for what's best for the user. I thought React Native might finally be a sensible approach, but there's a long list of things I really dislike about it.

However, Basecamp's mix of native and webview here is thoughtful and appropriate. Rendering those web-based views with 100% native views would be a huge pain for very little gain, and this approach allows them to retain much of the advantages of an overall native architecture.

<comment><USER3> Your experience differs from mine. Having deployed around 15 production apps for various clients and my own companies, there's just one thing you're leaving out: Apple is not the only maker of smartphones that exists. The choices for Hybrid were made for this reason, and very few ill side effects have been encountered.

<comment><USER2> I'm aware. You can build two native apps, you know. And it's very wrong to say that there are very few ill side effects to hybrid. Both have their pros and cons. I just think that native wins for all but the simplest or lowest budget apps.

<comment><USER4> I think hybrid wins for all but the most widespread or highest budget apps.

Most apps have only few users. Most apps don't have a million dollar budget. Most users don't care or notice whether an app is native or not. They use it to get a job done and don't care if that button is slightly less responsive than another.

<comment><USER2> Maybe most apps being a steaming pile of shit is part of why they only have a few users.

Million dollar budget is a strawman. I've built dozens of complex apps for five figure budgets. Very few ran into six figures, and they'd have been a train wreck on hybrid.

Most things don't need to be an app at all. Those that do need an app should at least consider making a reasonable investment.

Besides, it's not like hybrid is some magical unicorn technology that enables creating a great app at a tiny fraction of the budget of a native one. You save like 30-50% in the best case, and get what you pay for.

<comment><USER4> You're right with everything you say – from a developer perspective. I agree, most apps are indeed shit and that's why they have few users. I agree, you certainly can build beautiful apps with a smaller budget. I agree, most things don't need an app.

But, and this is a big BUT and the reason why hybrid is a good solution: Users _demand_ apps. Your average user rather downloads an app for the local bus service or a museum than going to a mobile website, because experience taught them that mobile websites are shitty and some apps work offline, at least. Yes, both of us rather use a good mobile website, but average Joe doesn't.

The app experience might not be better, it might even be worse, but users are looking in the Stores for apps like that. The reality of the App Store is that there are a handful of "good" apps everybody uses, and then there are the 95% that are garbage anyways, but are still preferred over mobile websites.

I'm not saying that you can build the perfect app with hybrid, but solutions that are _good enough_ for most people, because they want to catch the next bus and give zero fucks about a _native_ experience. And then, saving 30-50% or maintaining an app for Android AND iOS as a solo developer suddenly becomes quite a strong point in favor of hybrid.

<comment><USER2> _from a developer perspective_

I think you have it backwards. I think you're still hung up on the developer experience, not the user experience. My observation is that users clearly prefer native apps to hybrid apps. And yes, you can throw together a hybrid app a bit faster, but you're just going to lose out to someone who did a better job (probably with native). So you might have saved a few bucks, but it's all going to be wasted.

Just my observation, YMMV, etc, etc.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Good article.

I definitely think that for a cross platform app, going all out with something like Cordova or React Native isn't particularly smart.

Sooner or later, you are going to reach a point where you need to use a feature of the underlying OS which your abstraction layer doesn't support well (or at all) and will end up having to make a horrible compromise.

Also, apps build with these frameworks usually don't look or feel native, I can generally tell that I'm using something built with Javascript (not always, sometimes the developers nail it, but a lot of the time).

However I feel that developing completely separate native versions of the same app with zero overlap in code isn't smart either.

It's definitely good to find a middle ground.

I personally like Xamarin. Xamarin.Android and Xamarin.iOS get you as close to native as you can get, while still allowing you to share a fair amount of code between the platforms.

I'm using this approach on a project at the moment and it's working well.

I would love to try Basecamps approach here on a project, it seems very smart.

<comment><USER6> "However I feel that developing completely separate native versions of the same app with zero overlap in code isn't smart either."

I don't see why. They're different platforms; you're going to want people who are experts on the platform working on it, not someone who is only doing the other platform because the boss said they need it.

I would take native teams for both platforms over one team doing a hybrid thing any day.

<comment><USER7> Well, sharing business logic can reduce # of bugs and keep behavior consistent between platforms.

That being said, actually shipping the same code on both platforms has its own costs and considerations.

<comment><USER6> Most of that logic is usually on a web server somewhere, so it's already being shared.

</comment></comment></comment></comment><comment><USER8> We already have a native and universal computing platform, the web, and yet we're stuck in 2007 writing code for Apple and Google!

Is there any real movement on iPhone or Android moving to replace native apps with offline web apps? Any competitor on the horizon?

Apple and Google are being very Microsoftesque in dragging their feet towards the inevitable.

<comment><USER9> Except that the web was never designed to be a universal computing platform. It's a hypertext document navigation system with a hacky, horrible, opaque and insecure scripting language bolted on to the side. An actual distributed cross platform application development and distribution system wouldn't look anything like the web we have today. At least I seriously hope it wouldn't.

<comment><USER8> There aren't many grand designs in computing systems in general. Most evolve from humble beginnings. The web has been evolving since the 90s, and it can keep going.

<comment><USER9> Yes, absolutely, but it's still nowhere near being the one true answer to all the world's software development and deployment woes.

This article on who they developed the Basecamp app is excellent. I'm toying with a similar approach in a little interactive adventure app I'm writing in Pythonista. Except of course that Pythonista isn't really native at all, but still I'm using a webview to display location descriptions and various choices as links, but native controls for things like inventory management and displaying various stats.

<comment><USER10> > Yes, absolutely, but it's still nowhere near being the one true answer to > all the world's software development and deployment woes.

One could argue that besides its original flaws, the web platform has been hobbled and maybe downright sabotaged by the platform owners (Microsoft, Apple, to an extent even Google). Javascript could have been cleaned up 10 years ago, same for many other web concepts still in use.

</comment></comment></comment></comment></comment><comment><USER11> For most apps (and especially for apps which have a lot of text like Slack), Native is overkill and suboptimal though some people claim otherwise. You lose standard functionality like Copy, Partial Text Selection, Web Search (Selection), Share (text selection) with Whatsapp, Messenger, Copy Link etc. All of which come free with a Browser view.

Even in a shopping app (where Native isn't so disadvantaged), a Browser View lets you do a quick google search on the product or company. Once browsers become faster, I'm hoping native will get relegated to games. If OS vendors are listening, a way to install web apps beyond (a) "Click the three dots and Add to Homescreen" or (b) the PWA thing.

Maybe just let web apps into the app store. It's not like the Appstore has a high bar on quality these days, anyway.

<comment><USER12> >For most apps (and especially for apps which have a lot of text like Slack), Native is overkill and suboptimal though some people claim otherwise. You lose standard functionality like Copy, Partial Text Selection, Web Search (Selection), Share (text selection) with Whatsapp, Messenger, Copy Link etc. All of which come free with a Browser view.

I can't speak for Android, but under iOS you get all of that for free if you're using UITextViews that have selection enabled (as opposed to UILabels). It'll also give you Wikipedia/Dictionary/Thesaurus lookup popover, data detectors (auto-linking dates, etc) and more.

There is functionality somewhat unique to browsers, sure, but it's a smaller set than you may think and in many cases, dropping in a resource intensive WebView for a couple of little perks is what's overkill.

Personally, my feelings are that if your app is mostly a webview, just stick with a web page. There's little benefit adding a wrapper, and it strips control away from me as a user (no blockers, etc).

<comment><USER13> >>Personally, my feelings are that if your app is mostly a webview, just stick with a web page.

I agree, but it is clear that those who grew up with phones do not. Apps dominate the marketplace and use space for millenials.

</comment></comment></comment><comment><USER14> This is a nice write-up.

The summary here would be: we have a native app that provides the most used screens, while the smaller text-heavy pages are rendered as a webview.

The webview hide elements that would normally display on desktop, that don't make sense for mobile, via javascript.

Turbolinks is used to route links.

Overall, I think Basecamp makes very smart hires, with people who care about technology and have a good head on their shoulders - making these types of apps and write-ups possible.

Your average mobile dev(sweat)-shop would never be able to pull this off because this involves good decision making and a stable team that communicates well and is up to date on the latest tech.

</comment><comment><USER15> It seems like a sensible architecture, and the app looks really good. I appreciated the paragraph on hybrid apps, as many people think hybrid == cordova, which is not always the case.

</comment><comment><USER16> I've done a ton of apps for iOS and I'm really sure I'm never going to do another implementation of vanilla segue unwind UIViewController routing ever again, unless it's something totally stupid like an on boarding sequence.

For more complex applications that also need to open from push notifications or respond to events and have several ways to end up in some sort of screen (like going to a chat view controller discussing a certain document from a push notification) it's just not doable to do all these tight couplings between screens.

I create a router that has an enum per screen which can accept another parameter if there can be a certain mode or certain data is required. The router figures everything out and the enums force you to provide the right associated data. Just call something like this from any place in the code you want to segue and it's done:

        Router.segue(to: .profile(of: .followedUser(selectedUser)))

</comment><comment><USER17> I would be interested in hearing about what made them to abandon RubyMotion.

<comment><USER18> I used to use RubyMotion, then i encountered crashes in my app that weren't there previously (no code changes). It tried debugging for long time in vain, then converted to Swift. With Swift, the language is fine but the way needed to design the app really turned me down (Xcode, UIBuilder, Autolayout, etc.).

Then I discovered React Native, not only it is cross-platform (Android, Windows) but it is also a joy to work with (the last time i felt this was with Rails). My apps are now completely on 1 single code base, very maintainable, as native as I want, and hardly crash. Besides, the binaries are so small (4MB iOS & 8MB Android).

(PS: My android app [https://play.google.com/store/apps/details?id=plus.land](https://play.google.com/store/apps/details?id=plus.land))

</comment></comment><comment><USER6> I would have liked to hear more from them on how the hybrid approach helped them with sharing stuff with Android.

</comment><comment><USER19> Does anyone know of any other apps/companies going with this hybrid approach using turbolinks?</comment>


Bitcoin Under Political Attack – Contentious Fork Segwit2x on 16th November - <AUTHOR> https://blockchaind.net/bitcoin-political-attack-contentious-fork-16th-november/ <comment><USER2> Here's a quote from the conclusion of the whitepaper in which Nakamoto laid out Bitcoin:

They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.

This is Bitcoin's consensus mechanism and it's called Nakamoto consensus.

In turn, this means that 'Bitcoin' is whatever chain has the most cumulative work done to secure it.

Nothing is 'contentious' about this. It either has the most cumulative PoW, or it doesn't.

If the minority chain has some value it might survive. If it does, that's fine. You'll have coins on both chains and you can choose to care or not.

<comment><USER3> Longest PoW being the main chain was not described in the context of contentious changes to consensus code. By that definition, a 51% attack that censors transactions would be the longest PoW and be defined as 'Bitcoin'. The great thing about Bitcoin is that the users are able to each make their own decision on what Bitcoin is. Bitcoin needs to be anti fragile and will constantly be under these attacks, because if it fails, we need something better.

This is all new territory and the appeal to authority by citing the white paper is less helpful than most people believe.

<comment><USER2> You're absolutely correct. The 51% example that you bring up would be an undesirable outcome (from our PoV), but the incentives are in place to ensure that it is extremely unlikely to ever happen.

Distributed consensus is a non-trivial problem, and for sure certain tradeoffs were made by Satoshi to make it both distributed and permission-less.

Unless you want a benevolent dictator of some sort all you can do is set up a system that's robust from a game theory perspective.

</comment></comment></comment><comment><USER4> Its like watching a religion unfold in accelerated time. Heretics separating themselves into sects with different practices and beliefs from the orthodox groups.

Is Bitcoin turning into a social experiment instead of an economical one? :)

<comment><USER5> It always was a social experiment.

<comment><USER4> Yes, I suppose. If I had only known back in the days, when I started mining back in 2009 with my shiny dual Xeon workstation.

Are you Satoshi? ;)

</comment></comment></comment><comment><USER6> I have so many questions here:

a. I was under the impression it was Satoshi who had put in the 1 MB size limit. This is the first attempt to increase the size. But then the article says:

"Until now, Bitcoin has been operating by simply increasing the block size whenever bitcoin needs to scale. This allows more transactions to process in a single block."

These size increases were under which BIPs?

b. "....to firing current bitcoin developers and taking over bitcoin development"

My understanding is the decentralized nature of bitcoin and the consensus mechanism meant no one can actually be fired. The worst case scenario is that I am stopped from accessing the bitcoin-core code repo but I can still rally people to take up my changes and vote (consensus) on it.

d. "Inspite of this, Segwit2x people kept pushing the hard fork on the community just to fulfill their agreement as they have the mining power support."

Wasn't that the whole point of bitcoin? Miners are needed to do most of the heavy lifting which means they have a say in what direction bitcoin goes.

Additionally, what is the mechanism to show the non-mining support for any of the changes?

c. Any links which show there is support for the current chain?

<comment><AUTHOR> a. The limit has been changed quite a few times in the past. It has both been decreased and increased when required. I think they were soft limits which didnt require a hard fork. I dont have links right now. Will post them as soon as i find any.

b. You are right but their is still a maintainer of the repo that merges the code in the repository and do releases. Core developers don't believe in capability of segwit2x developer i.e. just Jeff Garzik to handle this task.

c. There are two pools slushpool and f2pool that are currently supporting the original chain. Other than this several twitter polls have been done and several meetup groups have posted articles on medium denouncing their support for segwit2x. I am not good with saving links but I am sure you will find several polls with a simple google search.

d. Miners are not a part of bitcoin consensus mechanism. They are a way of safely executing the chosen decision. All issues must be raised before merging code in the bitcoin repo. By blocking the activation of segwit for over an year, miners lost the confidence from the community. Also around 40% of mining power is currently controlled by Bitmain and the rest is also dependent on them as they are the only mining hardware manufacturer.

<comment><USER7> > Miners are not a part of bitcoin consensus mechanism.

Miners ARE the bitcoin consensus mechanism. Saying anything different is ridiculous. The miners are signaling 2MB blocks in an overwhelming majority. [https://coin.dance/blocks](https://coin.dance/blocks)

Blockstream and 'core' are scared that the miners will finally stop using their software and take control back of bitcoin, allowing them to expand it's throughput to what other chains already have. This will alleviate the ridiculous $3-$5 fees to make the smallest transaction. Before 'core' and blockstream decided to suffocate the throughput of bitcoin so that their company could profit off of side channels, fees were a few cents.

> just Jeff Garzik to handle this task.

This is not true at all. First, Jeff Garzik was one of the very early developers of bitcoin before the current crop ousted the original group who wouldn't go a long with their plan. They are the ones that took it from something no one knew about to a working system with millions of users. It isn't only Jeff Garzik working on this task and the 'task' is mostly raising a number from 1 MB to 2 MB. There isn't anything technically difficult about it.

> I think they were soft limits which didnt require a hard fork.

The 1 MB limit was put in place as temporary spam protection and satoshi was very clear about this. Bitcoin HAS hard forked before (and many other coins have hard forked multiple times as planned upgrades that have gone perfectly smoothly).

If you are getting your information from /r/bitcoin you should know that it is HEAVILY censored. They ban anyone who has an opinion they don't like, they grey list comments they don't like, they change the sort order of threads that don't go their way, they keep their moderation logs closed and they have a long list of rules that are arbitrarily enforced as justifications for all their nonsense. Check out /r/btc or any other source of information, but not /r/bitcoin, that place is 100% toxic.

Edit: Every post speaking out about /r/bitcoin usually gets rapid downvotes with no explanation while also getting slowly upvoted over time. This seems to be no exception.

<comment><AUTHOR> Thanks for the presenting the other side of the argument. I have been a part of the bitcoin community since 2013 so I am pretty aware of both sides of the debate. I am actually a supporter of bigger blocks. But i know that we cannot keep increasing the block size everytime we need. It is not about Jeff garzik not being competent enough, it is about the amount of work he will have to do. Current bitcoin developer group is huge and many developers review the same code, work on new stuff and much more. Segwit2x havent shown anyone else other than Jeff garzik who is going to work on Segwit2x codebase.

Both r/bitcoin and r/btc are terrible. You wont ever get a proper discussion for bigger blocks on r/bitcoin and r/btc has basically turned into a place for bitcoin cash and is not anyway related to bitcoin now. They even celebrate everytime bitcoin price dumps.

<comment><USER8> > Both r/bitcoin and r/btc are terrible

Are there good communities online for decent bitcoin discussion?

<comment><AUTHOR> You can join us IndiaBits at [http://t.me/indiabits](http://t.me/indiabits) I am an admin of the group and we try to keep the discussions as clean as possible.

</comment></comment></comment></comment></comment></comment><comment><USER9> In light of the hard fork in Bitcoin world. This graphic [https://imgur.com/y4D0XEC](https://imgur.com/y4D0XEC) should get you up to speed with all you need to know about the state of Bitcoin forks.

<comment><USER3> This graphic is useful but misses the context of past failed hardforks/attacks such as BitcoinXT and BitcoinUnlimited.

<comment><USER9> Good to hear that. Yeah, I think we can revisit a new version of infographic covering those forks too someday.

</comment></comment></comment><comment><USER10> I don't think any of these bitcoin forks are particularly helpful to the entire cryptocurrency ecosystem.

Additionally, the cult of bitcoin and the various sub-cults make it hard to actually be interested in bitcoin as a technology without being forced to invest ideologically by thousands of fanboys claiming all other sub-cults to be evil.

Personally, I've moved my assets into other cryptocoins and I hope I can weather the storm of bitcoin's inevitable and eventual collapse there. Hopefully.

<comment><USER3> What do you see as the core value bitcoin provides? Outside of wild speculation?

<comment><USER10> It's main value lies in a mostly irreversible ledger of transactions, which in my opinion, has the potential to disrupt atleast some parts of global economics (online shops maybe). For international transfers, bitcoin is ahead of the current banking system (though banks are catching up in terms of fees and speed... or is bitcoin getting worse?)

On the other hand, bitcoin is also an interesting exercise in distributed consensus (though blockchain/PoW consensus is largely overhyped)

Other cryptocoins have improved on all these concepts or plan to develop them. Bitcoin might be remembered in the same way modern computer scientists remember the Turing Machine or the Zuse Z1.

</comment></comment></comment><comment><USER11> >Several polls were done and it was made clear that segwit2x had no support from the community.

That has to be the most laughable part of the article. "Hey guys, I posted this poll on a pro-core forum and what do you know, not a single person supported S2X...". It's like the polls posted in /r/btc about Bitcoin Cash - everyone in the bitcoin world lives in their own bubble and use those around them to validate their opinions.

<comment><AUTHOR> Here is a poll by Ryan X charles who is core opposer and a signee of the NY agreement [https://twitter.com/ryanxcharles/status/927568458849533952](https://twitter.com/ryanxcharles/status/927568458849533952)

<comment><USER11> That poll has nothing to do with support for S2X though (or more generally, doubling the block size irrespective of the particular implementation)... rather just which chain would get the name 'bitcoin'

</comment></comment></comment><comment><USER12> This is getting very messy. Already a mess trying to deal with just Bitcoin and BitcoinCash.

<comment><USER13> The good thing about these Bitcoin forks is that you don't really have to do anything if you don't want to. You can just forget about it and hold. You will own the same amount of Bitcoin for every fork out there.

<comment><AUTHOR> Not in this particular hard fork. If you spend coins on the other fork, it can get replayed on the original bitcoin chain and you may lose your coins. Read my article about replay protection linked in the article.

<comment><USER14> You still own coins on both forks, but add a step to split them to another address you control on the second fork.

</comment></comment></comment></comment><comment><AUTHOR> Segwit2x has been cancelled.</comment>


Show HN: Aim and Shoot – A game where your opponents are neural networks - <AUTHOR> https://github.com/victorqribeiro/aimAndShoot <comment><USER2> Played three times, made it to gen 23 on the third time. Fun game.

Without knowing much about game mechanics, a "domestication" strategy seems to work well.

1\. Pick a corner. Bottom-right was what I chose.

2\. Move there without getting shot.

3\. Shoot first at the robots shooting at your direction, then those with guns pointed in your direction. Then shoot the robots that are shooting. Save the robots that are pointed the other way, not shooting for last.

4\. After a few generations, all the robots will be pointing the other way, not shooting. Kill the ones that twitch first.

5\. There seem to be randomization events, and some of your domestication will be lost. Try to survive those and re-domesticate.

6\. Eventually you run out of non-replenishable HP and die.

<comment><USER3> Reminds me of the creepypasta about the guy who left a quake server running for years and his bots learned not to shoot each other [0].

That was only in 2011. At the time it was solidly in "this feels like it could happen, but definitely didn't" territory. Now we're in "Let's see if I can induce this in this guy's browser game" land. Feels strange.

0: [https://i.imgur.com/dx7sVXj.jpg](https://i.imgur.com/dx7sVXj.jpg)

<comment><USER4> I remember that! I loved the story (albeit it was just a story). Kind of cool to see that this is a possibility soon.

</comment></comment></comment><comment><AUTHOR> On this project each enemy have a "brain", which is a never trained neural network. The training process comes from the genetic algorithm: at the end of each round the GA calculate the fitness score for each individual, the higher the fitness The more likely to reproduce. The fitness score is based on a lot of things: total of shots fired, number of times it hits the player, number of times it hurt itself... I also punish the one who doesn't do nothing and the ones who shoots it's allies, so they have less chance to reproduce next round.

As a request, I'm giving the player 15% of their health back at the end of each round.

<comment><USER5> > I'm giving the player 15% of their health back at the end of each round.

Don't be stingy with health. The fun of this game is watching the opponents evolve. Keeping your health to stay alive is more of a chore, and isn't that fun IMO.

Giving players 100% of their health back will allow them to give more attention to the interesting aspect of the game, and less attention to the annoying chore of staying alive.

And personally, it was my assumption that I would recover my health every round, just like the AIs do. It took me a few rounds to realize that was not the case.

<comment><AUTHOR> I'm inclined to give the player all it's health back, since you're the second one to suggest that

<comment><USER6> I'll third it. Health should recover fully with every round.

</comment></comment></comment></comment><comment><USER7> This is what excites me the most about machine learning: the ability for software to adapt and learn at runtime. I've been disappointed that ML is almost exclusively talked about as something that is trained by the developer and then deployed as a static artifact to users.

</comment><comment><USER8> Wish there were some kind of scoreboard at the end after you died that showed what level you got to; I made it to somewhere between 25-30 and was waiting to take a screenshot until afterwards.

I did well by only ever firing upward +/\- 45 degrees (except the occasional horizontal shot for enemies stuck on the bottom), and then staying near the bottom of the screen and moving myself into position before accurately firing (rather than spraying and praying everywhere).

</comment><comment><AUTHOR> I took some liberties with the genetic algorithm so it fit the game. The game itself it's pretty basic: simple physics with circle to circle collision. The enemy could spawn on top of you and drag you around, my suggestion is to move the opposite direction so you can break free.

different from my other experiments, I tried to give this one a proper game look, with an artwork when you start and sound when you shoot (which becomes hell once the neural network figure out that shooting a lot is a very good thing)

<comment><USER9> personally I believe it would be more interesting if the player was overpowered compared to the enemies.

In a few runs I just played the game quickly ended as there were too many bots shooting randomly.

A couple of variations in increasing level of expected difficulty to implement would be:

\- Heal the player after each turn (you propose 15%, I would say 100%)

\- Do not increase the number of bots until much later rounds. We want to see smart bots, not monkeys and typewriters.

\- Give the player more health/bullet resistance

\- Give the player 3-4 seconds at the beginning to move away from the random starting location

\- Give the player an immunity cooldown after each hit so that each round lasts at least a few seconds

<comment><AUTHOR> some times it took a while to the bot to start doing something interesting. if I put just two bots against the player and they don't attack or move it would be very frustrating to some players. in the short time I tested the settings, this one worked the best. since out of 7 enemies the probability of one being a shooting maniac would be higher. but I as I said, I encourage agressiveness but I took away points if they hit a fellow bot, so just shoot isn't enough

<comment><USER9> A midway solution that could work nicely would be to have obstacles to hide behind. Even something as simple as a ]-[ would do wonders.

(It could mess up the training though as that would require the concept of obstruction...)

These are just my feedback for possible improvements, I need to say this looks quite impressive and definitely more complex than anything I have done to date.

<comment><AUTHOR> It crossed my mind to implement hiding spots, can't remember why I didn't.

<comment><USER10> I just moved my player to a corner, and sat there for several rounds, like 20+. Minimizes the vectors where new spawns can occur.

<comment><USER11> the three times I played, the bots were all focusing on the upper left corner, so staying in the lower right was safe for about 20 rounds.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> A fork with infinite health: [https://kinrany.github.io/aimAndShoot/](https://kinrany.github.io/aimAndShoot/)

</comment><comment><USER13> Really cool! But I had to play with the sound off, the sound for the bullets firing is quite jarring :(

</comment><comment><USER14> Very fun game, played it just once and only managed to make it to gen 14!

</comment><comment><USER15> Hey! I helped run and have the source code to a MMO Browser game, Arras.io. Hit me up if you want to use my engine or add AI bots to my game.

<comment><AUTHOR> I have a project (that's in slow development) where I plan to use AI bots so they act like the player is in a MMO.

[https://github.com/victorqribeiro/gaia](https://github.com/victorqribeiro/gaia)

I just need to finish my final thesys first. When I get home I'll take a look at your game.

</comment></comment><comment><AUTHOR> sorry, there was a big rain where I live, the light and communication went out since yesterday. I'll read the comments and the pull requests as soon as I can.

</comment><comment><USER16> such a great idea !</comment>


Ask HN: What's the best April fools joke you have seen today? - <AUTHOR> <comment><USER2> Only saw this one so far: Google Gnome [https://m.youtube.com/watch?v=vNOllWX-2aE](https://m.youtube.com/watch?v=vNOllWX-2aE)

</comment><comment><AUTHOR> Google wind: [https://m.youtube.com/watch?v=QAwL0O5nXe0](https://m.youtube.com/watch?v=QAwL0O5nXe0)</comment>


The 10 Day Metric Week - <AUTHOR> http://zapatopi.net/metrictime/week.html <comment><USER2> How is this different from [https://en.wikipedia.org/wiki/French_Republican_Calendar](https://en.wikipedia.org/wiki/French_Republican_Calendar) ? Note that the Republican Calendar hasn't seen mass adoption even though its use was mandated by law; discuss the ease of migrating eeeeeverything vs. institutional momentum ;)

In other words, if people were purely rational, we'd all drive on the same side of the road and use the same units worldwide. Do we?</comment>


Ask HN: Thinking of using Zettelkasten , recommend software/platform - <AUTHOR> Hey there, I just discovered Zettelkasten , and I was hoping to give it a try, digitally. Please suggest any digital tools that would be helpful. I currently use Notion for note-taking. <comment><USER2> Roam is the web-based app that is the coolest-looking way to do Zettelkasten. I considered it, but decided against it for two reasons: 1) Although it is free now, they could decide to make me pay; and 2) I prefer to run apps on my own machine.

I ended up going with The Archive, free Mac-only software associated with zettelkasten.de, the organization which probably more than anyone else is promoting zettelkasten using a digital approach (as opposed to 3x5 cards).

I'm happy with The Archive, but not so much with the documentation on their website. They spend lots of time promulgating their approach to organizing (or not organizing!) notes, but very little describing the nuts-and-bolts basics. I would have never figured out a workable system had I not been home from work due to the corona virus.

<comment><AUTHOR> talking about Roam, that's the problem with any subscription based service/software. It's difficult to trust, and in this case, with something so important. Also thank you, will check out The Archive.

<comment><USER2> Perhaps I can save you a _little_ pain by explaining one or two things about The Archive. Once you download it and get it up and running, you'll want to create your first note. The zettlekasten.de folks will repeatedly say to you, "Don't think to hard about how to organize your material -- that will come." I tend to differ and recommend you think a bit about what you wish to achieve.

You create a note by coming up with a title for your note, and because The Archive is all about search, you want it to have a unique title. What better way to have a unique string as part of your title than to use a high-precision timetag! And so the canonical card title in The Archive contains at least the timetag. Indeed, if you enter Cmd-N you will create a new note whose title is just the timetag; e.g., 202004251548. Now that's great for searching, but it isn't very helpful to you as a human. So suppose this note is about some thoughts you've had about the difference between solitude and loneliness. A good title would be:

202004251548-solitude-vs-loneliness

Now when you see your list of notes on the left side of the GUI you'll be able to know what the note is about. So DON'T create a new note using Cmd-N. Instead, click in the "Search or Create" field at the top (known in The Archive as the Omnibar), type Cmd-u to generate a timetag, then type in the rest of the title, then type RETURN.

Why did I put hyphens in the title? Because each note in The Archive is stored on your computer as {title}.txt. You can change the name of a note by changing the file name -- and having spaces in the file name will make things more difficult.

A few words about the Omnibar. The half-grayed text in the Omnibar is correct: Search or Create. The key thing to remember is that if you're just searching DO NOT hit return. As you type into the Omnibar, The Archive will whittle down the list of notes shown at the left to just those notes that match the search. When you see the note you want, click on its title and it will be opened. If you hit return when you're just trying to search you will create a new card with that search target as its name!

Tags and links are almost the same as far as how they are implemented in The Archive. Suppose (like me) you're a cyclist. You might want to type #Cycling in all of your notes that have to do with cycling. Then if you either type #Cycling into the Omnibar or click on #Cycling in any note so tagged you will see just those notes tagged #Cycling and you can click on one to open it.

Links behave exactly the same way, really, but they're intended to be used differently. Suppose you have a note called 202004251610-Mountain-Retreats and you want to include a link to the note 202004251548-solitude-vs-loneliness. To create a link you just copy the name of the solitude note into the Mountain Retreats note AND enclose the title in double square brackets like this: [[202004251548-solitude-vs-loneliness]]. Those double square brackets tell The Archive: Search for this string in all the notes; if there is only one match, open the note that matches. I'm not sure but I think #unique would do the same thing if there were only one note that contained it.

As you create new notes using the standard naming convention (i.e., using timetags at the beginning) the most recent notes will be at the top, which is nice I think. A trick I came up with is to give custom "timetags" to notes that I want to stay at the top. In my archive, for example, this note is always at the top:

900000000990-HASHTAGS-LIST

It contains a list of all my hashtags so I can easily filter my notes.</comment></comment></comment>


Ask HN: Rate my tool http://r3gy.com - <AUTHOR>

I am very much attempting the release early release often approach. This is phase 1 of my goal to create a domain registrar. Let me know what you think. Thank you very much for checking it out. <comment><USER2> You probably want to do a _hair_ more input validation. It told me that peanutbutterbomb wasn't available, but that peanutbutterbomb.com was. The first is obviously not even a domain name, and the error should reflect that. Users might get confused that the .com, .org, .net, .whatever domains are all already taken.

The interface is slick.

<comment><AUTHOR> Thanks for the feedback. I'm thinking I will push a change pretty soon so that when someone doesn't enter a tld, it will go ahead and check .com, .net, and .org.

While watching people use the site, this seems to be my biggest UI bug.

</comment></comment><comment><USER3> I know I have an immature brain, but my brain translated r3gy to orgy. Perhaps it's the 3 out of 4 letters and almost in the same order. Why is it called r3gy?

I like the initial concept, but instantdomainsearch.com does the same thing but better, with auto searching and shows all the three main TLDs. Perhaps have those features as well?

<comment><USER2> This is pretty obscure, but in Hungarian, the 'gy' letter makes a sound very similar to the 'dge' sound at the end of the word 'edge.' I read the domain as 'redge,' as in the beginning of the word register. Obviously, that will work for almost no one else (statistically).

</comment></comment><comment><USER4> Why are you motivated to create a domain registrar? What pain will you remove or what value will you provide that makes you different then the million other registrar/hosting businesses out there?

<comment><AUTHOR> The pain is the large amount of upsells. GoDaddy particularly makes me click through many offers to buy extra things I don't need. I won't have that. Also I think there is value in a service that _only_ does domains. I don't need hosting, and I don't want to navigate the UI to find my domains in a sea of other services.

</comment></comment><comment><AUTHOR> Clickable: <http://r3gy.com></comment>


IBM to Microsoft to Apple - <AUTHOR> https://i.imgur.com/kvNSE06.png

<comment><USER2> What is that company that seems to appear at around '05 and grow to close 10% size?

<comment><USER3> Since it appears that this graph is companies that are publicly traded, my bet is Google, which IPO-ed in August 2004.</comment></comment>


Dolphin Emulator and OpenGL drivers - Hall of Fame/Shame - <AUTHOR> https://dolphin-emu.org/blog/2013/09/26/dolphin-emulator-and-opengl-drivers-hall-fameshame/ <comment><USER2> > One person, working mostly alone, produced better quality drivers than a > whole team working at Qualcomm

Does anyone have any insight into how this ends up happening? Are Qualcomm just understaffing that team, hiring incompetent people, deprioritizing it (let the intern do it)?

<comment><USER3> Part of the answer is in the next sentence:

 _> And because nobody seems to care about these issues_

The word "quality" is very subjective in this case. Perhaps the driver already did everything Qualcomm needed it to do. Maybe the code isn't perfect, but if it's working and money is being made... "if it ain't broke, don't fix it". I'm sure a non-trival amount of people on HN have worked in less-than-good codebases, but finite resources & politics kinda prevents you from cleaning it all up with weeks of re-factoring and testing. I know I've seen this.

<comment><USER4> One reason I've seen these projects (take an existing system and make it work well) fail to gain traction is an unstated lack of faith in the people pushing for refactoring. In my experience this often comes from others having been burned by their prior proposed projects, where they've wasted 6 months doing self-indulgent refactoring that went nowhere or _introduced_ bugs or made it hard for the rest of the team to contribute because of a bunch of new abstractions "to make the system flexible and generalized". The same people who care about code quality enough to argue for a cleanup project sometimes go overboard and burn their credibility. Unfortunately the right mix of judgment is hard to evaluate in any sense that isn't super-context-dependent.

</comment></comment></comment><comment><USER5> If I was GabeN and wanted to sell the SteamMachines and distribute SteamOS I'd offer to help these companies debug their OpenGL drivers so that Linux/SteamOS driver support is top notch by the time SteamOS and SteamMachines launch in 2014.

By helping out the FOSS community to have better OpenGL driver support it will get Valve Software a lot of goodwill. Projects like Dolphin will benefit from it, and of course those Steam Linux games will as well.

I really want to see the Linux Gaming Platform take off, many game developers avoid Linux ports because of buggy OpenGL drivers and bad support of it. I think Microsoft did this with DirectX standards because I remember early on DirectX drivers were buggy and game companies wanted to stay with DOS based games and not port to Windows, because DOS had better video support drivers. Once Microsoft worked with video card OEMs to improve their drivers and DirectX support, the video game companies ported their games to Windows 32 bit format (Windows 9X and then later NT/2000/XP) because of DirectX based libraries and better drivers and fewer bugs. It will take a company like Valve to coordinate the OpenGL stability between OEMs to get it stable enough to port games to Linux.

<comment><USER6> I've been gaming in Linux with both native and Wine/CrossOver games(free year thanks to Bush) for over 8 years now. Drivers are the biggest issue. There are 2 main issues here. First is quality. The video card manufactures need to dedicate additional resources to bring the drivers up to the quality of Windows.

The second issue is with the driver subsystem. The kernel developers need either a) stop breaking the existing driver interface ever other release or b) create new modern interface that's stable like MS did with Vista.

Imagine if every windows update, you had to worry about you games not working because MS might break the drivers. This is how Linux is now. This situation is especially bad for users with old and very new cards. For example, my X1900 can't run the catalyst drivers with any modern kernel, making it useless in Linux as my spare gaming rig. Of course it works perfectly in Win7, running about 2-5x faster than the worthless, buggy, open source drivers.

Fixing the video driver subsystem is exactly the kind dedication that would prove to me that Value is serious about making Linux a competitive gaming platform and likely convince me to purchase a SteamMachine.

<comment><USER7> The kernel developers will never stop breaking internal interfaces. Them being able to break internally is how they are able to move so fast and improve as fast as the kernel does. Programs written against Linux's external interfaces many moons ago will continue to work indefinitely, the issue is Video drivers need to work internally with the kernel are arguably even violate the GPL.

</comment></comment></comment><comment><USER8> Qualcomm being at the bottom is counter to my experience in writing GL ES 2.0 apps on Android (since the Motorola Droid!). Adreno generally performs very well, and doesn't have weird performance characteristics like Mali and SGX. I also like Tegra because it has solid predictable performance. A big part of why Qualcomm have been cleaning house in the Android world is because they have a more solid BSP, so compared to the other ARM guys they have a pretty good software group.

I don't use most of the extensions that the Dolphin guys are using, though, and I wouldn't expect anything but the most basic ES 3.0 stuff to work. But maybe spending so many years on mobile has taught me to have low expectations! :).

<comment><USER9> > But maybe spending so many years on mobile has taught me to have low > expectations! :).

This, and the post is not solely about performances. In fact, it's only a minor component, most of the notes and complaints are about outright bugs and broken implementations.

And of course, you "wouldn't expect anything but the most basic ES 3.0 stuff to work" while the Dolphin guys are porting down from desktop-class graphics backends.

</comment></comment><comment><USER10> This fits with what I've seen in other OSS projects - nVidia provides the most complete and robust implementation of OpenGL, Intel does pretty good but it's too slow and restricted to be useful anyways, and ATI/AMD basically needs you to code specifically against their device.

</comment><comment><USER11> Isn't there something approaching the Acid2/3 test for graphics drivers? It seems like the popularity of the Acid tests was beneficial for the browser ecosystem...it was an easy and standard thing to point to.

<comment><USER12> The Khronos group has OpenGL and OpenGL ES conformance tests. Unfortunately, they are not public and you have to be a member to access them.[1] The only public OpenGl test that I know of is the piglit suite.[2]

[1] [http://www.opengl.org/discussion_boards/showthread.php/16354...](http://www.opengl.org/discussion_boards/showthread.php/163549-Conformance- Test)

[2] [http://people.freedesktop.org/~nh/piglit/](http://people.freedesktop.org/~nh/piglit/)

</comment></comment><comment><USER13> How do you release a driver that messes up glClear? How could you possibly not notice that?

<comment><USER8> Mali has a different architecture than desktop GPUs, so glClear generally isn't implemented as a clear op (or drawing two triangles that cover the viewport, etc). It clears out all of the commands that were previously scheduled for that target.

But yeah, the Mali driver has various performance quirks and oddities (there used to be a lot of weird stuff around how you updated index buffers too).

</comment></comment><comment><USER14> Wondering how google's angle (GLES through D3D) fares in this respect? [https://code.google.com/p/angleproject/](https://code.google.com/p/angleproject/)

<comment><USER12> Firefox allows you to use switch your WebGL Renderer from default ANGLE to native OpenGL drivers with the webgl.prefer-native-gl about:config parameter.

You can then run the WebGl Conformance Tests[1]. I found that my integrated Intel did better in ANGLE and Nvidia card did better with native drivers. Epic Citadel WebGL also slightly faster with native Nvidia.

[1] [https://www.khronos.org/registry/webgl/sdk/tests/webgl- confo...](https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance- tests.html)

</comment></comment><comment> guard-of-terra I wonder why this happens. I mean, making chip is thousand times harder than writing driver. Why screw that last stage up?

</comment><comment><USER15> I was really hoping that this was about an actual dolphin emulator.

<comment><USER16> Just like the Dolphin Browser let's you browse through different types of Dolphins ;)

</comment></comment><comment><USER17> This really puts a damper on my excitement for the Nexus 5 (or whatever it will be called). I hear that it will be running an Adreno GPU. On the other hand, I guess it is going to be rough no matter what option you pick in the mobile world.

<comment><USER18> Tegras are actually pretty good - their fillrate isn't as high as some of the competition, but their overall global performance is impressive.

(just to be clear, I'm just saying that the mobile space doesn't have to be horrible, so the adreno doesn't really have that as an excuse).

</comment></comment><comment><USER19> There should probably be a wiki somewhere, where bugs like those are documented, so various developers don't have to rediscover them all the time.

</comment><comment><USER20> I assumed this was about whole brain simulation / emulation. Needless to say, I was disappointed.</comment>


What Is the Perfect Color Worth? - <AUTHOR> https://www.nytimes.com/2018/02/28/magazine/what-is-the-perfect-color-worth.html <comment><USER2> Despite how ridiculous this sounds it is actually very strategic. The industry has appointed Pantone as a sort of random number generator that will pick a color for next year. The only requirement for this color is that it is different from this year's color. Pantone is the coordinating mechanism by which all of the manufacturers start making products in this color to manufacture a trend, and messaging through various media that last year's color is "over" and you should be ashamed to be seen in it.

<comment><USER3> Somewhat surprisingly this has only been going on for about 20 years. Given that fashion has done its very best to make people turn over their wardrobe 4 times a year for a very long time, I'm surprised there wasn't more coordination in this area.

<comment><USER4> Screw this monumental waste that is "fashion clothing".

I'm still using a polo shirt from 20 years ago - a very nice quality, navy blue Allaire one. I replace my clothing as it breaks.

<comment><USER5> I'm going to hypothesize you're not a young lady engaged in elaborate status games.

<comment><USER6> It's certainly a status game ("of course, I don't have a Facebook account"...), just a weird one.

<comment><USER4> Probably should have said I (obviously) have newer clothing as well, and that the polo shirt was my oldest piece (it's really good quality). Point is I don't throw stuff out just because it's old, if it's still in decent nick.

When I do buy clothes, or anything, I try to get stuff that will last. My Rotel hifi is 20 years old and still ticking.

There's tonnes of resources to be found on the wasteful impact of the clothing industry - the whole head game of making people think they can't use clothes just because it's "slightly old" is a direct contributor to that. And that's not even touching on issues such as sweatshops.

</comment></comment></comment></comment></comment></comment><comment><USER7> > Last spring, a dozen people filtered into a sunny, whitewashed conference > room on the seventh floor of the Royal College of Art, overlooking London's > Hyde Park.

Is there a writing version of tvtropes? I feel like I've read this intro a dozen times before.

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

"soft lead"

<comment><USER9> See also "delayed drop"

</comment></comment></comment><comment><USER10> > "It's almost like a counterculture type of a feeling — you deliberately use > colors that would not ordinarily work together."

> "Accidental colors," Shah said, coining a phrase.

Those quotes near the start of the story sound about as nonsensical and contentless as I can imagine. It's like the next level of abstract art, where the goal is to prove yourself smart by "getting it".

<comment><USER11> How else would you put it, if that's what's happening on the streets?</comment></comment>


"Rant – Java 8 streams are too little, too late" - <AUTHOR> https://wrschneider.github.io/2016/06/26/java-8-too-little-too-late.html <comment><AUTHOR> Found on reddit.com/r/programming, comments are worth checking out:

[https://www.reddit.com/r/programming/comments/4rfz30/rant_ja...](https://www.reddit.com/r/programming/comments/4rfz30/rant_java_8_streams_are_too_little_too_late/)</comment>


Cisco Not Done With Social Spending - <AUTHOR> http://www.internetnews.com/xSP/article.php/3663926 <comment><USER2> My god, is that site cluttered with ads. Looks like a site from 1997. There was no "print friendly" (i.e. human friendly) link either. I just gave up.

<comment><USER3> lol! Here is a nice dissection of ads I did for another site cluttered with them:

http://shuzak.com/img/Temporary/SpammingUsers.jpg (The ads are highlighted in green)

An excerpt from an article I wrote on user experience that seems relevant here:

"One thing I particularly dislike about Web 2.0 startups is their Web 1.0 approach towards displaying advertisements. It shouldn't take an Einstein to realize where Google ads are appropriate and where they are not...Note that there is nothing wrong with displaying ads as long as it makes sense to do so. If you have no ads on your site, you will not make money off of it. If you have too many ads on your site, nobody is going to click on them.

It is unfortunate that nearly every social network spam's their own users with unwanted ads. The users are less likely to notice advertisements as the frequency of ads increases within a site. Even worse, because the users are so used to seeing ads popup, they might ignore them even when they do make sense [6]. Usability should always be prioritized over revenues. When a user chooses to spend 20 minutes of their life on your website, they could be spending that time anywhere else, but they chose your site. Don't reward their loyalty with spam [7]."</comment></comment>


The whimsical but surprisingly dark world of Rube Goldberg machines - <AUTHOR> http://www.theverge.com/2015/4/22/8381963/rube-goldberg-machine-contest-history-ideas

<comment><USER2> With no mention of Heath Robinson?

[http://en.wikipedia.org/wiki/W._Heath_Robinson](http://en.wikipedia.org/wiki/W._Heath_Robinson)

I had to look up Rube Goldberg when I started getting exposed to more US culture. But it has a direct translation into UK culture, W. Heath Robinson had a similar reputation for drawing absurd, complicated machinery.

</comment><comment><USER3> Interesting.

"It was also the era of increasing automation, and increasing concern about automation, exemplified in Charlie Chaplin's 1936 masterpiece Modern Times. One of the film's dystopian curiosities, the Billows Feeding Machine, invented by Mr. J. Widdecombe Billows, has a distinctly Rube Goldbergian quality to it — this is likely no coincidence, as Goldberg and Chaplin were friends. "The Billows Feeding Machine will eliminate the lunch hour, increase your production, and decrease your overhead," the film's narrator announces. "Don't stop for lunch: be ahead of your competitor." A factory worker is strapped into the feeding machine by his neck; the device malfunctions spectacularly."

<comment><USER4> Funniest clip ever! [https://youtu.be/n_1apYo6-Ow](https://youtu.be/n_1apYo6-Ow)

</comment></comment><comment><USER5> Requisite Pitagora Switch Rube Goldberg compilation video: [https://www.youtube.com/watch?v=NzAQ- jYfEqA](https://www.youtube.com/watch?v=NzAQ-jYfEqA)

<comment><USER6> I love these videos, but I have to watch them on mute because the jingle makes me furious. Probably just misophonia.

</comment></comment><comment><USER7> One of the most impressive recent rube goldbergs was a commercial Honda did to advertise their Accord. It was made with parts from the car and shows off several technologies such as automatic windshield wipers:

[http://youtu.be/bl2U1p3fVRk](http://youtu.be/bl2U1p3fVRk)

<comment> w-ll I question the authenticity of this now. I remember this coming out, but from what i've recently learned about the automotive ad industry is that this is all cg. And basically all car commercials in the last decade have actually been some of the most advanced "realistic" rendering.

It's still a cool vid tho.

Edit: Watched it again, it is clearly cg.

<comment><USER8> You are wrong. [http://en.m.wikipedia.org/wiki/Cog_%28advertisement%29](http://en.m.wikipedia.org/wiki/Cog_%28advertisement%29)

<comment> w-ll Well, Its not sans-cg. There are parts thats scream cg to me, and while I believe it's possible over all, there is still a lot of post going on. The wiki doesn't give any definite answers other than it's clearly both.

Edit: the part that tells me the most is near the end when they show the full console, and then the speakers on dowel rods.

<comment><USER9> > "The final cut of "Cog" consists of two continuous sixty-second dolly shots > taken from a technocrane, stitched together later in post-production [...] > needed only limited post-production work, as the decision had been made > early on to eschew computer-generated imagery wherever possible. [...] > Several sections also required minor video editing, such as re-centering the > frame to stay closer to the action, removal of wires, highlighting a spray > of water, and adjusting the pace for dramatic purposes"

I have also seen the 'making of...' short film about 'Cog' and that, too, confirms that CG was not used to create the machine. All the interactions between the car parts are genuine physical interactions.

I believe you're correct about post-production, though. It seems from the references in the Wiki article that the usual editing and manipulation took place, but none of that added any fake car parts or fake interactions.</comment></comment></comment></comment></comment>


Lock-Free Data Structures: Exploring Queues - <AUTHOR> http://kukuruku.co/hub/cpp/lock-free-data-structures-exploring-queues

<comment><USER2> One thing I've learned about lock-free structures: DWCAS[1] is your friend. Using DWCAS, the Michael and Scott Queue algorithm is trivial to implement. Not really sure why the author insists on using plain CAS, especially when implementing a DWCAS-based algorithm.

[1] [http://en.wikipedia.org/wiki/Double_compare-and- swap](http://en.wikipedia.org/wiki/Double_compare-and-swap)

<comment><USER3> DWCAS is not the same as DCAS which is specifically mentioned in your link, so I'm not sure which you're referring to. Second, the link is clear that no common architecture actually _supports_ a DCAS instruction currently, so the reason the author insisted on CAS is because it's a real life instruction and not a theoretical hardware instruction.

<comment><USER2> DWCAS is mentioned in the DCAS article.

</comment></comment></comment><comment><USER4> This seems very (very) strange to me. Did a simplified mockup in Java using a ConcurrentLinkedDeque. Got an absolute speed-up of ~8 going from 1 thread to 2 (or 4)...and that's on a laptop. Did you perhaps measure CPU time rather than wall clock or push entries scaled by the number of threads? Didn't find your test source on GitHub..</comment>


Eric Ries Lean Startup talk at MIT -- videos - <AUTHOR> http://dev.hubspot.com/bid/32028/Eric-Ries-Lean-Startup-talk-at-MIT-videos <comment><USER2> Interesting talk, even if the video quality is just OK.</comment>


The Great Crime: How an American Diplomat Resisted the Armenian Genocide - <AUTHOR> https://www.theparisreview.org/blog/2017/02/03/the-great-crime/ <comment><USER2> Thanks for sharing this.

Leslie Davis was truly a great diplomat and an incredible human being.

Until Genocides are not widely recognized and stopped. Those who commit them are not punished, they are going to happen again, as they did during 20th century. Hitler used Armenian Genocide to convince others that atrocities committed by Nazis are going to be forgotten. Hitler's quote: "Who, after all, speaks today of the annihilation of the Armenians?"

It is a shame that US did not officially recognize Armenian Genocide yet, even though most of the civilized world did and most of the US State legislatures did.

Germany was one of the main allies of Ottoman Empire when Armenian Genocide occurred and they only recognized Armenian Genocide of 1915 in 2016. 101 years after it happened.

Edit: Typos.

<comment><USER3> > It is a shame that US did not officially recognize Armenian Genocide yet, > even though most of the civilized world did and most of the US State > legislatures did.

The real shame, in my opinion, is that Israel hasn't recognized the genocide yet. And I say this as a survivor of Azeri Pogroms of the 1990 and a descendant of the Armenian Genocide survivor whose entire family was murdered by Young Turks. It's actually disgusting not shameful and I don't care how much they try to blame Geopolitics for this.

<comment><USER4> [http://www.jpost.com/Israel-News/Politics-And- Diplomacy/Knes...](http://www.jpost.com/Israel-News/Politics-And- Diplomacy/Knesset-committee-recognizes-Armenian-genocide-463081)

It's not like Israel ignores it. But yes, geopolitics plays a role and it is embarrassing as many in Israel agree.

compare to this in the US

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

</comment></comment></comment><comment><USER5> On this topic, I highly recommend Samantha Power's book "A Problem From Hell: America and the Age of Genocide" which details the United States inability to respond promptly to the many cases of genocide over the past century.

<comment><USER6> I love how that book blames America for failing to respond to many genocides committed far away from its borders - what other great power has ever done so, unless it was for their benefit?

As a non-American, we are fucking lucky that America not only doesn't extord us for loot (as any other empire would) but actually spends so much energy, lives and money keeping protecting us. I am personally really happy that Putin knows there will be consequences if he rolls west.

<comment><USER7> Have you read the book? If not I recommend against flippant responses.

It's a careful detailed history of several genocides, one per chapter.

It's a harrowing book, and reading each chapter would leave me depressed for a couple days. I couldn't read more than about one chapter per month.

<comment><USER8> The comment is ambiguous, it's not really clear if it's actually meant to be flippant or not. If you read it literally, the meaning is directly the opposite and still makes sense.

</comment></comment></comment></comment><comment><USER9> The Azerbaijan president often tweets about 'The fake Armenian genocde' (and before I get a ton of downvotes again, I use the quotation marks because I don't agree with his view')

[https://twitter.com/presidentaz/status/507430784710361088](https://twitter.com/presidentaz/status/507430784710361088)

<comment><USER2> Report tweets like that. I hope if enough people do that it can make some difference.

<comment><USER9> I don't think reporting him helps. Denying the Armenian genocide is one of his main past times, on twitter and off twitter. He is also the world's expert (and only expert) on the fabled Azerbaijan genocide. I'm not Azerbaijanian or Armenian, I can't imagine devoting so much of my life to hating another ethnic group.

</comment></comment></comment><comment><USER10> I think we are obliged to speak more about this genocide [http://www.armenian- genocide.org/hitler.html](http://www.armenian-genocide.org/hitler.html)

</comment><comment><USER11> It wouldn't surprise me if this was posted and eagerly upvoted as a historical example of how we supposedly should behave in defiance of unjust authority in the age of President Trump.

But the article in question is principally about a genocide of Armenian Christians perpetrated by Turkish Muslims. Doesn't this episode from not-too- distant history demonstrate, for example, the danger of mass, unchecked Muslim immigration to this and every other Western nation, or that diversity, contrary to what is so often asserted, is not a strength but rather is a weakness, one that contributed to the downfall of the Ottoman, Hapsburg, and Russian empires?

<comment><USER12> the existence of ethnic cleansing is an argument for ethnic cleansing? past atrocities are reason to turn away refugees of current atrocities? sir or madam, i do believe you've got your brain in backward.

<comment><USER11> The existence of ethnic cleansing is a compelling argument against diversity being a strength, and past atrocities, especially those afflicting Christians of European descent, serve to demonstrate why Christians of European descent should not allow themselves to be displaced and dispossessed through mass immigration, lest they suffer a fate similar to that of the Armenians.

<comment><USER12> "The existence of ethnic cleansing is a compelling argument against diversity being a strength"

no, it's a compelling reminder to fight racism, xenophobia, religious intolerance, and the rest, like the deadly diseases they are. the atrocities of the past are their result.</comment></comment></comment></comment>


Why tech has failed to innovate in education? - <AUTHOR> Tech has been a success in e-commerce, social networks, transactional apps like uber or ebay. It has however not made a significant dent in education. Why ? What do you think is the reason ?
I have a hunch why thats the case. The reason is that past success in transactional business has biased tech industry towards solutions that are transactional. Education is anything but transactional, unless you count selling books as education.
The success of past has put a filter which prevents good eductech companies.
Education is a workflow that spans easily months or years to be effective. A good startup in this area would avoid being transactional, instead it would learn from success of another tech process that is long drawn. That is making good software. The kinds of process that helps to make software development more effective are the kinds of process that would make long drawn learning process effective.
This begins with github for learning lessons which allow people to collaboratively create learning lessons. The best ones created by community would float to top based on approaches similar  to guthub stars or npm downloads.
So much about learning effectively is about creating and and managing content flow and collaboration.
Today creating and sharing text, photos, videos, audio is extremely simple thanks to advances in tech and mobile.
Today collaboration in real time over internet is increasingly easier to add to any app. And this is not restricted to chat.
Today algorithms can do great job of helping you discover learning content as thousands and millions are created by people.
All this and more would in my view would create an education platform for tomorrow.
Let me know what you think ? <comment><USER2> I think people are forgetting what it is like to be a child and learn as a child. Putting words on-screen doesn't matter if children cannot read. And children like to move around and interact with both people and objects in the real world.

I found that my kids hated all online learning products until they were at least 10. And then once their reading and writing ability was advanced enough to consume online content, it felt like overnight they loved the ability to research a problem online and learn independently, but they still want someone in the room to answer questions when the online content doesn't make sense. And they still hate most products because now they are too slow, or too inflexible, or something just isn't right for them.

In short, the systems that are being designed by adults don't have product/market fit because they aren't doing usability testing with students. They aren't respecting how children develop, how they communicate, how they learn, etc.

<comment><AUTHOR> Makes sense

Unless one can understand and appreciate how kids feel about the product, product would not work.

An education product must have offline, online and human touch for it to succeed, apart from ability to research.

</comment></comment><comment><USER3> The first wave of "online universities" failed, but that's preobably because instead of trying to copy Education , they should unbundle it first. This is happening now. Things like MOOCs , youtube courses and Lambda school are unbundling the education/learning part. Entities like Ycombinator or tech interviewing is unbundling the competitive admissions/vetting process, Github is unbundling the networking/reinforcement/certification part. There aren't many processes left that are being monopolized by universities. CS shows the way here, and it's nice to see that , for competitive students with a track record to show, a PhD is seen as an accessory, a luxury that they either delay for later or completely forgo.

<comment><USER4> I don't understand what unbundling means?

<comment><USER5> Maybe democratizing or liberating. Traditionally those things mentioned required more red tape and buying into a system (usually literally) just to get to the fruit.

It's awesome because often it really is just information that while isn't necessarily free to create, once created could be considered to be. And either way, it benefits from more eyes on it/being open source rather than being unavailable to those outside the system.

</comment></comment></comment><comment><USER6> You can't make money in education because public education takes the entire budget via taxes. And after that, _you_ have no access to the customer [i.e., the parent(s) and their child(ren)]. All of that economic power and control is bottled up into school districts, and selling to them is even _worse_ than selling to large businesses.

No matter what else you do, if you can't make substantial revenue, you can't pay engineers, and you don't have reliable profit/loss signals to guide your product development efforts. So this is the _fundamental_ problem: anything you do with ed tech is really just a hobby, and this won't change without a massive philosophical and political shift.

Why do I think this? Well, I worked doing ed tech stuff for two years and thought, "wow, living on $55k/yr in Orange County really sucks!" That was 2014. Soon thereafter I got a real tech job (that paid roughly double what I was making before, had more serious engineers) and I've never looked back.

I'd also like to add that merely creating some new program of one sort or another won't help. The problem is that _control_ over what happens is a political process, full of rules that you have to follow, endless meetings. The result is that you're not free to try new things, not free to iterate quickly.

<comment><AUTHOR> Maybe the answer is to create for professionals and adults first.

Once its a success there, schools would follow.

</comment></comment><comment><USER7> @shishircc wish you good luck on this, but your conception as to what's stopping innovation in tech is not correct. I'd advise you to hang out with teachers, administrators, and parents to get a better feel for it.

The successes with education tend to sidestep the whole thing and offer an alternative, instead of working with the system, for a reason.

<comment><AUTHOR> For me, schools and universities are not right place to start.

Start with working professionals and adults. If a solution there is enormously successful, it would work its way backwards into universities and schools.

</comment></comment><comment><USER8> It's all about money. If the money isn't there, or it's hard to get, the innovation will likely not be there.

<comment><USER9> Education has _lots_ of money. If there's anything that's overfunded, it's probably education.

</comment></comment><comment><USER4> so does this match what you describe?

[https://epiphany.pub/@shi-yan/introduction](https://epiphany.pub/@shi- yan/introduction)

(A github for learning materials that allows people to collaboratively create content. )

<comment><AUTHOR> Awesome, thats a step in right direction i believe

<comment><USER4> Why do you think user generated content is important? Why shouldn't the content be made by a platform, like Coursera?

<comment><AUTHOR> I think answer is scale.

Why should open source software not be created by one company in a closed way ?

Both software and learning material are extremely elastic.

Once created, they can be used by one person, one million people or hundred million people.

This means allowing collaborative creation of it brings best minds together and creates something that no company can afford to create in-house alone.</comment></comment></comment></comment>


All Underhanded Crypto Entries - <AUTHOR> https://underhandedcrypto.com/2015/03/21/all-underhanded-crypto-entries/ <comment><USER2> JohnMeacham's entry is some diabolical shit. I've been burned by that same bug, along the lines of:

      bool foo = rx&0x0800; // set foo if 11th bit of rx is true

which works in C++ or if you have stdbool, but not if you have 'typedef char bool' which occurs in header files of projects that should know better.

<comment><USER3> This is one of those examples where I can see how it's confusing, but I just don't think you should have been doing it that way in the first place.

       bool foo = (rx & 0x0800) == 0x0800;

Not only does this not have the bug, it communicates your intent better, and modern compilers are quite capable of optimizing this.

</comment></comment><comment><USER4> My entry is pretty lame in comparison to the rest of them. I think the judges did a phenomenal job picking the finalists.

<comment><USER4> Er, okay, anyone care to explain _why_ they downvoted this?

I participated in this contest and was blown away by a lot of the ingenuity the other contestants demonstrated. The judges clearly did not have an easy time picking the winners, but I think they did a very good job at being fair about it.

</comment></comment><comment><USER5> It's a shame there's no commentary, and they're not easily readable - they're offering tar.gz files. Maybe post them to Github?

<comment><USER6> Try using this command on the files:

tar xf foo.tar.gz

<comment><USER5> It may have made more sense if I mentioned I'm on mobile. Maybe I'll make the repo when I finish doing laundry.

<comment><USER7> I went and made a repo for them all

[https://github.com/simcop2387/underhanded- crypto](https://github.com/simcop2387/underhanded-crypto)

<comment><USER5> I cleaned it up and added links, and sent a pull request.

<comment><USER7> Merged!

</comment></comment></comment></comment></comment></comment><comment><USER8> The second winner (Leurent) looks like a very weak entry to me.

<comment> ryan-c I'm curious why you say that. I found it very impressive from a technical standpoint.</comment></comment>


Supreme Court Won't Hear Key Surveillance Case - <AUTHOR> https://www.eff.org/deeplinks/2018/01/supreme-court-wont-hear-key-surveillance-case <comment><USER2> For once I think the EFF is being too pessimistic here. For various reasons this was a really bad case for exploring the interplay between incidental collection and the 4th Amendment.

For one thing, it seems unlikely that whatever evidence was used from the incidental collection was key to his conviction, directly or indirectly.[1] That may or may not matter. Lack of prejudice doesn't always excuse a 4th Amendment violation. But it can and often does. It depends on the particular branch of 4th Amendment caselaw. The court may not have wanted to be forced into answering thornier questions before they've had a chance to outline the broader contours, preferably in the context of facts better suited to that task.

Also, the defense motion seemed to argue that incidental collection was illegal, period, regardless of context and regardless of how it effected the evolution of the investigation. Presumably they did so to steer the court to a place where lack of prejudice would be considered inconsequential. That's almost certainly wrong. If the court took the case and affirmed, merely wanting to cabin the effect of the appellate decision, this case doesn't provide any hooks for attaching clear qualifications. Why invite trouble?

Basically, the guy was screwed one way or another, so the court had no responsibility to redress individual injustice. And the facts sucked for developing the law more generally. So why bother?

[1] I didn't read the entire appellate court opinion. Where it does speak of lack of prejudice it's clearly referring to the the effect of the timeliness of the government's disclosure, not the effect of the incidentally collected evidence per se. But at least from a cursory reading I get the sense that the incidentally collected evidence wasn't a central pillar of the government's case, neither factually nor legally, regardless of whether it was prejudicial in the technical sense. Even if SCOTUS wanted to push back (e.g. by saying that the court unnecessarily opined on the constitutionality of incidental collection), the risk-weighted cost of flubbing the correction is much greater than the benefit.</comment>


Open source games: It's a team effort - <AUTHOR> http://opensource.com/life/11/2/open-source-games-it%E2%80%99s-team-effort

<comment><USER2> There seem to be a lot of good resources highlighted for folks who want to get into open source game development.</comment>


Facebook: Announcing New Election Partnership with the Atlantic Council - <AUTHOR> https://newsroom.fb.com/news/2018/05/announcing-new-election-partnership-with-the-atlantic-council/ <comment><USER2> A response:

[https://caitlinjohnstone.com/2018/05/19/the-friendly-mask- of...](https://caitlinjohnstone.com/2018/05/19/the-friendly-mask-of-the- orwellian-oligarchy-has-fallen-off/)

 _Facebook involving itself with this malignant warmongering psyop factory constitutes an open admission that the social media site considers it its duty to manipulate people into supporting the agendas of the western empire._</comment>


3D printing liquid metal could offer a new range of flexible electronics - <AUTHOR> http://www.newscientist.com/article/dn23838-terminator-2style-liquid-metal-can-now-be-3d-printed.html#.Udx5ylOWlGk

<comment><USER2> Full paper with annotations: [http://www.readcube.com/articles/10.1002/adma.201301400](http://www.readcube.com/articles/10.1002/adma.201301400)?

Meanwhile, [http://news.cnet.com/8301-17938_105-57592867-1/3d-printing-w...](http://news.cnet.com/8301-17938_105-57592867-1/3d-printing- with-liquid-metal-at-room-temperature/) has a video which I really recommend you watch. I don't often use the phrase 'mindblowing' but it applies here.

</comment><comment><USER3> It's not exactly clear in the video, but the structures remain _liquid_ at all times - unlike solder which solidifies on cooling.

A thin layer of semi-rigid oxide holds the liquid in place - like a conductive water balloon.

Very cool stuff, although it seems too delicate to me for any immediate real world uses.

Perhaps a layer of Parylene or some other type of vapor-deposited polymer could make the structures more durable, while retaining its flexibility?

<comment><USER4> The video link from anigbrowl noted these structures could be used in headphone wires and other such applications where flexibility and self-healing capability is critical.

I do also imagine an outer protective layer could increase durability and thus expand the range of applications. That layer could, in theory, be either more rigid or equally flexible.

</comment></comment><comment><USER5> slightly unnecessary use of an insect's face to support the "printed" structure.

<comment><USER2> I though the same thing, but apparently it had been killed earlier by a spider which was not an employee of the lab.

</comment></comment><comment><USER6> The way it behaves looks a lot like hot solder. I wonder if anyone has tried using a syringe based printer (with heated tip) to print 3d metal shapes.

<comment><USER2> Exactly my thought; my understanding is that conventional solder doesn't flow very well and that this has been a problem for printing circuits, but perhaps a little doping with this compound would alleviate that. Even if it's not up to commercial standards, it could be a great benefit for rapid protoyping.

<comment><USER7> Also, it means we're one step closer to Rep Rap!</comment></comment></comment>


Show HN: Gifify – Convert any video file to an optimized animated GIF - <AUTHOR> https://github.com/vvo/gifify

<comment><USER3> Next, take the Gifify output, upload to gfycat to get a optimised video file. Repeat until convergence.

<comment><AUTHOR> I immediately thought of it too, it might be fun to do the movify to transform a gif to a movie, command line.

</comment></comment><comment><USER4> Here's my own video -> gif bash script: [https://github.com/montanaflynn/vidtogif](https://github.com/montanaflynn/vidtogif)

And here's a one-liner using ffmpeg and ImageMagick:

      ffmpeg -i input.mp4 -vf scale=600:-1 -r 5 -f image2pipe -vcodec ppm - | convert - gif:- | convert -layers Optimize - output.gif

<comment><AUTHOR> Careful, your script and one liner generates a whopping 1.5mb file for a 3s movie.

While gifify generates a 1mb file for a 800 px wide, 20s screencast.

[https://github.com/pornel/giflossy](https://github.com/pornel/giflossy) helps a lot, and works with unix pipes too, you can try it.

Optimized! :)

Also, gifify has lots of options like compression, resizing, speed, colors..

Of course, in the end, it's only a wrapper to ffmpeg - convert - <USER2> (giflossy).

But it helps a lot in achieving MOVIE -> GIF. In a command line way or programmatic way (i.e., you can write a server that uses it and stream gifs to the client).

<comment><USER4> Yes I was just looking at your implementation and must say it's better in numerous ways :)

</comment></comment></comment><comment><USER5> If you want to create a gif that represents the complete video in a short gif loop have a look at [https://github.com/marlev/gifserver](https://github.com/marlev/gifserver)

"I spent hours googling for a service that creates an animated gif from a video, that represents the complete video. I only found solutions that animated the first 10 frames, the first 30 seconds etc. So i decided to create gifserverthat will represent the complete video with 9 looping frames,no matter how long the original file is."

</comment><comment><USER6> Why are you using that fork of gifsicle? I went to that repo to read the homepage but it was the unchanged gifsicle README.

<comment><USER7> It does implement support for lossy LZW compression which I assume he's using for this.

<comment><AUTHOR> Yes giflossy does a very good job at compressing GIFs. Giflossy compression wlil be implemented in gifsicle in the end.

</comment></comment></comment><comment><AUTHOR> gifify now supports subtitles and can extract 5 seconds from a 2 hours movies in less than 20 seconds.

HF with GIFS

</comment><comment><USER8> The people at Buzzfeed will love it :)</comment>