Tell HN: Lois - Golang like channels for Java - <AUTHOR> http://flipkart-incubator.github.io/Lois/ <comment><USER2> This (and pretty much all the other libraries) misses the point of Go/CSP channels completely. The select/alt statement. Channels are just queues. Queues are useful in any language. The power and ease of use of Go concurrency primitives don't come from channels and goroutines, it comes from the select statement.

<comment><USER3> Go is not really CSP anymore. The scheduler pre-empts.

You're right regarding this (pointless?) wrapper around Doug Lea's queues. If the OP really wants the kudos for doing CSP on Java, s/he'll need to tame the NIO selectors and no doubt sprinkle a little ASM magic dust on it as well.

Closest thing we have is Kilim (which is just simply awesome.)

<comment><USER4> Actually, the closest we've got is Quasar[1] (I'm the main author). It's got _true_ lightweight threads (goroutines), as well as selectable channels. On top, it's got actors, complete with selective receives and hot code-swapping.

It is much more actively maintained than Kilim, more general, and has better performance to boot. Also, Quasar fibers interoperate very nicely with plain threads. Blocking operations (such as channel receive) block the thread if you're running in a plain thread, and the fiber if you're running in a fiber.

In fact, we've even had time-sliced preemptive scheduling, which we've taken out because it didn't give performance benefits to fibers that block a lot, and for computations that don't, there's full blown threads (which Go doesn't have).

[1]: [https://github.com/puniverse/quasar](https://github.com/puniverse/quasar)

<comment><AUTHOR> Thanks, I remember reading the pulsar blog post a while ago. Couldn't recall the name.

</comment></comment></comment></comment><comment><USER5> The send/receive paradigm is similar to Actors (Erlang, Akka). What is the main difference between channels and actors?

<comment><USER6> Channels live at a lower level. Usually when you create a channel you share it between multiple goroutines: It acts exactly like a pipe, and are transparent to what's inside. Moreover, goroutines sending to and receiving from a channel don't know (and don't need to know) what's on the other end.

Actors are more like a combination of a channel and a goroutine: when you send something to the actor, you know what the other end is and you know what it does with messages.

Actors induce a certain paradigm for your application, and I believe Go just wants to give you the tool to build whatever you want. Having channels allows using the Actor paradigm, the other way is not as easy/lightweight.

<comment><USER7> > _Actors are more like a combination of a channel and a goroutine: when you > send something to the actor, you know what the other end is and you know > what it does with messages._

I don't think this is the case at all. When sending a message to an address you don't know how many actors are behind that address, and even further you don't know how many addresses an actor has. Actors and addresses have a many- to-many relationship.

I think the power of the Actor model is essentially putting your faith in the system and not caring about when messages get handled, or what order they get handled in - it's just knowing that the message will get handled.

</comment></comment></comment><comment><USER8> What's the difference to java.util.concurrent.BlockingQueue?

<comment><AUTHOR> It's not pass by reference, it's pass by value. And also I like this abstraction better.

<comment><USER9> What is a case in which you'd want pass by value in a queue? I mean sometimes you're forced to pass by value, but if you have the option of pass by reference, why would you choose by value?

Maybe I've been doing this stuff too long, but it's not all that hard to make an object safe for concurrency. But, I am probably missing some context.

<comment><AUTHOR> While I agree it's not hard to make an object safe for concurrency, knowing how to do it effectively is another matter. In an organization or team where there are engineers at all levels of familiarity with java, getting concurrency right is a PITA.

Additionally in this context, the very basis of the channel mechanism is "share state by communicating, don't communicate by sharing state". Also pass by value lends itself well to remoting if I choose to go in that direction.

<comment><USER3> There is /no/ silver bullet for the complexity of concurrency. If in a large team of uneven experience every developer is expected to address concurrency issues, then the problem is architectural.

> "share state by communicating, don't communicate by sharing state"

The elegance of this approach is very clear. But note that even in Go, when performance is critical, traditional mechanisms of locks and shared memory objects are used. (The fact that such constructs are even provided in the language should be informative to you.)

> [transparent] remoting

I recommend you read this: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.7...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.7628)

</comment></comment></comment></comment></comment><comment><USER10> I was also inspired by Go channels and am working on a library in C that marries fibers, mostly blocking channels and a way to select on the channels.

You can find it in [http://Github.com/Baruch/libwire](http://Github.com/Baruch/libwire)

</comment><comment><USER11> Spring integration project has similar concept of channels and you can use declarative model to connect channels and components & of course can do much more. What are any differences if you have context of Spring Integration?

<comment><AUTHOR> I had no idea such a thing existed, will check it out ,thanks. Can't comment on the differences, sorry.

</comment></comment><comment><USER12> What's flipkart incubator (the url is "flipkart-incubator.github.io"). I know flipkart is the Amazon of India.

<comment><AUTHOR> It's flipkart's OpenSource software org on github to incubate projects that developers drive and graduate them to fully sponsered, flipkart opensource projects.</comment></comment>


What I've Been Thinking About - <AUTHOR> http://www.schneier.com/blog/archives/2013/04/what_ive_been_t.html

<comment> B-Con As most of you know, this guy's career is very interesting. Every few years he's stepped up to another level of thinking, a higher, more abstract viewpoint of the world. It's natural for people to learn and abstract, but he does so much of it.

Just look at his books:

* Applied Cryptography - The principles of cryptography and their applications, from a non-theory POV. Basically, "here are some tools".

* Practical Cryptography - Let's look a bit bigger picture. The issue is about how to do what you want and how to not screw it up. Let's look at how to do that.

* Secrets and Lies - Security isn't about crypto, we need to think about the whole of networking and infrastructure. Here's how to think about security more generally.

* Beyond Fear - Security is an innate part of how we think, but we need to understand how to actually think about it in the first place.

* Liars and Outliers - What _is_ security? What does it do, why do we need it, and how does it work at the basic human level?

* Power.com (subject to change) - On the principles of security on the largest human network ever.

It just keeps getting bigger.

<comment><USER2> Schneier's career has an interesting arc that is not too dissimilar from that of Eric Raymond, involving early modest-but-significant contributions to the field (cryptologic literature for Schneier, open source software for Raymond), then a marked phase of popularization and evangelism, followed by a full- throttle transition into punditry.

I'd definitely push back on the way you characterized _Applied_ and _Practical_ (now called _Cryptography Engineering_). The two books are very different and are the product of different authors; Schneier wrote _Applied_ but co-authored _Practical_.

_Applied_ is a broad survey of cryptographic techniques that was good for its time but has aged terribly and probably done more harm than good for the industry†.

_Practical_ is an engineering book; unlike _Applied_, which is a sightseeing tour of the field, _Practical_ is a book about actually building system with cryptography. Also unlike _Applied_, _Practical_ is diligent about recognizing the limitations of mass-market technical books; it explains things just as often to convince you _not_ to implement things as it does to motivate you to implement them. _Practical_ does not have a lot of "rah-rah" in it. It's not an evangelistic book. The tone of its prose, a mix of casual, clear, and precise, is all Schneier, but the content is wildly different from _Applied_. It's a narrower book, not a "bigger" one.

You might be right about the progression of Schneier's other books. I'm not sold on the idea of a career in information security as a springboard to public policy research on security. Real-world security is not very much like information security at all.

On the specific issue of the book he's promoting right now, I think it's worth pointing out that Schneier has been wrong as often as he's been right about macro- Internet security. Example: Schneier was an early opponent of vulnerability research, for instance; he used his Crypto-Gram newsletter to single out eEye for irresponsibly disclosing Windows vulnerabilities. eEye was a pioneer of what we'd now call "Responsible Disclosure" (an Orwellian term whose basic function is to marginalize Metasploit) and employed people Riley Hassell, Derek Soeder, and Barnaby Jack, all of whom are now vulnerability research authorities.

† _(though you can't necessarily say that for the field of cryptography, which he did more to popularize than anyone; perhaps there are lot of great postdoc crypto people today who got into the field because of _Applied_)_

<comment> B-Con > _Applied_ is a broad survey of cryptographic techniques that was good for > its time

> _Practical_ is a book about actually building system with cryptography.

Yep. That's pretty much what I said. Applied is about the tools, Practical is about using the tools properly. It's a higher level in the thinking chain, although my original choice of "bigger" isn't necessarily the best word to use there.

> probably done more harm than good for the industry†

Yes, yes. It gave too many weapons to too poorly educated software developers. We know that.

<comment><USER2> I think the opposite is true: _Applied_ considers cryptography at a higher level, covers more concepts, has the broader charter.

</comment></comment></comment></comment><comment><USER3> > The four tools of Internet oppression -- surveillance, censorship, > propaganda, and use control -- have both government and corporate uses.

It's funny (for a very broad definition of the word funny) to have seen this happening as an almost direct witness on websites such as reddit, for example. I remember how during the August, 2006 Lebanon War (<https://en.wikipedia.org/wiki/2006_Lebanon_War>) there was an entire down- vote brigade for anything that was against Israel and consequent upvotes for positive references. One or two years later there was an article that was quickly buried which mentioned how the Israeli government had a special department to handle this exact use-case (Internet propaganda) during "sensitive" times.

Fast forward to November 24th of last year and I find this quote in Financial Times, made during the latest confrontations between Israel and Hamas :

> This is a classic example of asymmetric warfare (...) This is the type of > warfare that takes place not on the ground but on TV and _computer screens_ > all over the world. One side is trying to show the world how miserable and > how much of an underdog they are, while not being afraid and not losing" > (the emphasis is mine)

The quote was made by Yiftah Shapir, head of the military balance project at the Institute for National Security Studies based in Tel Aviv.

So it seems like Internet propaganda and "asymmetrical warfare" has indeed become mainstream and a thing that's no longer hidden under the rug as crazy conspiracy.

</comment><comment><USER4> This is a very well written synopsis and I am interested in reading the book when it comes out. Hopefully we can help him find a better title, though.

"Power and the Internet" is a much better title than "Power.com," IMO.

<comment><USER5> Not as good of a title as "What I've Been Thinking About", apparently.

</comment></comment><comment><USER6> This is a technocrat description of national socialism based on technology and corporatism. Been there, done that. Eben has already warned about the totalitarianism not of the future, but of the present:

[http://benjamin.sonntag.fr/Moglen-at-Re-Publica-Freedom- of-t...](http://benjamin.sonntag.fr/Moglen-at-Re-Publica-Freedom-of-thought- requires-free-media)

<comment><USER7> How does Schneier's abstract not complement Professor Eben Moglen's argument?

<comment><USER6> I would be surprised if it would turn out, that Schneier wasn't active in building this stuff at DoD and AT&T etc.

</comment></comment></comment><comment><USER8> i looked very closely for the april fools joke here.

<comment><USER9> I couldn't tell if he was serious either -- this is an incredibly boring manifesto. He definitely was ahead of the game on a bunch of things, so I hope he takes some more time to think deeply about what he wants to accomplish.

</comment></comment><comment><USER10> I don't buy the comparison of our internet practices to feudalism. There is no Lord with control over all the land and thus control over the people, who need to work the land to survive.

Google, Facebook, and the like provide a service. A completely optional service. Anyone can choose among them freely. Don't like that X won't let you take your data when you want to move? Choose Y. Don't like any of the above? Set up a mail server on EC2. Don't like Amazon? Pay for your own host somewhere. Can't afford a host? Pool your money with like-minded people.

Unlike the land of Lords, the internet is not all bought up and unavailable to us peasants.

<comment><USER11> _Unlike the land of Lords, the internet is not all bought up and unavailable to us peasants._

Yet.

What happens when all your family and friends are on X (where X is (or is like)) Facebook or Google+, and the only way to keep in touch with them is by giving in and joining?

<comment><USER12> Explain to them about the risks and business plans of companies like Facebook and Google. Give them your email address, telephone number and website/blog and ask for theirs.

If they are only prepared to keep in touch with you through something like Facebook and Google+, then they're not really interested in keeping in touch. Rather go find people with which you are actually both mutually interested and stop chasing after 'obligations'. Life is too short.

<comment><USER13> > then they're not really interested in keeping in touch

Yes, or they are simply not interested in stories about the risks and plans of Google and Facebook. Or do not understand when you try to explain it.

A significant part of my family and friends is already on that path: only reachable through sites like facebook or gmail. Taking some "political stance" in not joining (how they see it) will very readily be translated in "you are not joining. you are not really interested in keeping in touch with me."

So no. It will work out precisely the other way around.

<comment><USER14> I am compelled to point out that gmail is just an interface to email. Perhaps you meant G+?

Either way, I think email is a pretty open method of communication. As hard as they've tried, FB/G+/Twitter have managed to augment rather than supplant email.

They're also pretty new. I suspect in 30 years, nobody will be using them, but email will still be around. (Probably still using SMTP and battling spam, TBH...)</comment></comment></comment></comment></comment>


Show HN: "HN Search Suggestions", browse HN submissions inside of your Omnibox - <AUTHOR> https://chrome.google.com/webstore/detail/hddjmonmafdmmphmhkenjjmhdpmdjjgb

<comment><AUTHOR> Just a little something I made to try out the new HN Search API. I already have a better idea for the contest, but it's going to take a bit longer to make.

Feel free to go through the code. I was also thinking of making an HN app for Chrome that just links to the site from the new tab page and have this as a feature. Please let me know what you think.</comment>


Review my app - clipng.com - <AUTHOR>

Hello all,
A while back I got frustrated with the folders full of disorganized bookmarks I'd accumulated. After some thought about how to solve it I built an app that's working well for me. I'm soliciting feedback to see what I can do to make it work well for other people.
clipng is based on the following ideas:
- I'm usually only interested in part of a page (a particular insightful piece, code snippet, recipe, etc)
 - If I could collect the good parts all in one place then I could tag them and make them searchable.
To implement this I made the following:
- A bookmarklet that, when clicked, collects the current selection and some information about the current page (I call it a "clipping")
 - A site that handles tagging and indexing for your clippings (I used App Engine)
I'm still in semi-private testing but the following link will get you in (Google sign in, no need to create an account):
http://www.clipng.com/hackernews
Any feedback would be much appreciated.
Enjoy,
 -Choong
(apologies if you saw the other post Friday, I neglected to read the fine print and so omitted this note) <comment><USER2> Hey just checked it out and it does seem like a cool idea but when I logged in and then tried to use the bookmarklet (I just dragged it up to my book mark bar in ff3) I am getting errors-a-go-go. I just went to <http://en.wikipedia.org/wiki/Lambda_calculus> and hit "clip!"

uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsISelection.getRangeAt]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: <http://www.clipng.com/static/scrape.js> :: <TOP_LEVEL> :: line 20" data: no] [Break on this error] undefined e.target.indexOf is not a function [Break on this error] if(goToURL && e.target.indexOf('http')>=0) {

Seem to be the main culprits.

Also I just realized it may have not been intended to work that way so I went back and just selected a paragraph of text and hit clip and it worked as expected. anyway hope that helps.

<comment><AUTHOR> Thanks, I'll look in to it.

</comment></comment><comment><USER3> I think asking to link into my google account before offering anything at all is a really bad plan to get users interested.

At least a homepage explaining what you are doing, giving me an idea if I can trust you etc. is necessary.

I didn't go any further than the google login screen.

<comment><AUTHOR> Fair enough, I definitely plan to add a public face to the site in the near future.

Regarding account "linkage", you might not be aware that App Engine apps can authenticate users using Google credentials but never see the credentials themselves and don't get any access to the rest of your data. Google was pretty careful about that one. From the developer's perspective I get an object that tells me your Google account ID (usually GMail address), display name, and (implicitly) that you have been successfully authenticated. Good question though.

</comment></comment><comment><USER4> Amazing. I was literally going to code something up just like this.

</comment><comment><USER5> I use Google Notebook for this sort of thing (or used to)-- how does this compare to that? Is there a key difference I should check out first?

<comment><AUTHOR> My memory from using Notebook is that you copied and pasted text and images into what was basically an online word processor.

You might think of clipng as half-way between Notebook and Delicious -- the stuff you pick out of a page is kept as a discrete unit inside clipng's database along with a link to the original. Injecting things is done via a bookmarklet so it's pretty quick and you don't need to visit clipng to do it.

So I think the key difference is that clipng is faster and less intrusive to use.

<comment><USER5> I'm talking more about the Firefox extension they have. Where you basically select text on the page (including images, etc) and then click Google's notebook button-- it will index that, store the snippet, etc.

<http://www.google.com/googlenotebook/tour1.html>

<comment><AUTHOR> Interesting, I hadn't noticed that feature. Pretty similar then, although I used a bookmarklet rather than a browser extension. Personally I prefer the bookmarklet because it works in most browsers and I generally don't use FireFox.

</comment></comment></comment></comment><comment><USER6> This makes all of my random cutting/pasting into .txt files obsolete. Bravo!

<comment><AUTHOR> Glad you like it!</comment></comment>


Awesome-ld-preload: List of resources related to LD_PRELOAD - <AUTHOR> https://github.com/gaul/awesome-ld-preload <comment><USER2> I have another that I sometimes use: overriding getenv(3). (I typically just printf() the variable name and return NULL).

Most of the time you can spot environment variable usage in binaries using strings(1) (folks still like to use upper case env vars in non-system applications even though this goes against POSIX).

But by using LD_PRELOAD you can easily see if the program is actually hitting the codepath reads that variable without debuggers or grovelling about in the assembly.

</comment><comment> f- Disappointed that my LD_PRELOAD exploit - still unpatched after 20 years! - did not make the list:

[http://lcamtuf.coredump.cx/soft/ld-expl](http://lcamtuf.coredump.cx/soft/ld- expl)

<comment><USER3> But you are not really root, after that, you only think that you are.

<comment> f- Does objective reality exist, my friend?

<comment><USER4> I mean, in this case other calls will fail with EACCESS, so here, yes.

And I've done a similar thing for an integration test framework for low level daemons, so I know very well how much of a pain it is to get close to emulating "oh yeah, you're totally root" to processes via LD_PRELOAD.

</comment></comment></comment></comment><comment><USER5> Nice list of fun hacks. My personal favorite preload is [stderr in red]([https://github.com/sickill/stderred](https://github.com/sickill/stderred)). (Not my github, but I've used this for a long time on my macbook)

<comment><USER6> I linked this the last time LD_PRELOAD/stderred came up on HN, but be careful with your shell configuration/user changes when using it:

[https://github.com/sickill/stderred/issues/63](https://github.com/sickill/stderred/issues/63)

</comment></comment><comment><USER7> I actually recently worked on an LD_PRELOAD wrapper to enable TLS for existing plain sockets.

[https://github.com/zliuva/ktlswrapper](https://github.com/zliuva/ktlswrapper)

Did it for fun to get my Transmission daemon behind TLS without socat or nginx.

</comment><comment><USER8> > _drop files content from page cache after closing, useful for backups_

It took me a minute to understand why this is useful for backups. It prevents your backup tool from leaving a bunch of stuff in cache that isn't needed. It's a performance thing. (And it's not a data integrity thing, which came to mind because one reason for flushing a cache is to be sure writes to the underlying layer been done.)

This leads to an interesting question: do most backup tools not already have this optimization built in? From a quick perusal of the GNU tar manual page and source and running it under strace, it doesn't seem like it supports it. (Though tar is really more of an archive tool than a backup tool, which isn't precisely the same thing.)

</comment><comment><USER9> It reminds me my experiments to get a debian rootfs running on a plain Android terminal emulator without something like termux.

I remember I used LD_PRELOAD along with fakechroot and fakeroot packages to get most things working. Those days' android allowed running statically linked binaries among other things.

(except DNS resolution and argv[0] was always ${some_large_path}/ld-linux- armhf.so, as I invoked glibc dynamic loader)..

Those days I didn't have a laptop and learned some C programming and unix stuff through termux. I sometimes think, as a CSE student, I lack the enthusiasm I had in those 12th grade days..

</comment><comment><USER10> the most crazy LD_PRELOAD was using 4.X kernel on a centos6 machine with LKL

[https://github.com/lkl/linux](https://github.com/lkl/linux)

There are tons of extremely OpenVZ hostings on the interweb but with an ancient 2.6 kernel like centos5.

With LKL you can enjoy the benefits of modern kernel with minimal performance penalty.

Submitted an issue here: [https://github.com/gaul/awesome-ld- preload/issues/1](https://github.com/gaul/awesome-ld-preload/issues/1)

</comment><comment><USER11> Neat! I can see myself using several of these.

Erratum: the link meant for "openssl-hook" actually takes you to "otherport".

<comment><AUTHOR> Fixed; thanks for the feedback.

</comment></comment><comment><USER12> As far as I know LD_PRELOAD does not allows overriding syscalls, for example mmap. I believe also open call can not be overriden to (because it is a syscall too), so I wonder how ld-preload-open works?

[https://stackoverflow.com/a/31439038](https://stackoverflow.com/a/31439038)

<comment><USER6> > As far as I know LD_PRELOAD does not allows overriding syscalls, for example > mmap. I believe also open call can not be overriden to (because it is a > syscall too), so I wonder how ld-preload-open works?

LD_PRELOAD does not override syscalls themselves. It can be used to override the _wrapper_ of a syscall.

Depending on your libc implementation, kernel version, and architecture, your `mmap` might not be implemented in terms of the `mmap` syscalls. It might be `mmap64` or `mmap2`. Similarly for `open` -- it's currently implemented with `openat` in glibc.

<comment><USER13> I don't see mmap(3) or open(3) on FreeBSD, macOS and Linux. Section 2 man pages describe the libc wrappers themselves. See intro(2).

<comment><USER6> Yeah, it looks like I've misremembered. I'll remove the misleading manual sections.

</comment></comment></comment></comment><comment><USER14> [https://github.com/libhugetlbfs/libhugetlbfs](https://github.com/libhugetlbfs/libhugetlbfs) can use LD_PRELOAD to remap segments onto huge pages for a performance boost (via fewer TLB misses).

</comment><comment><USER15> Here's another that I've found useful:

[https://github.com/mariusae/trickle](https://github.com/mariusae/trickle)

"Trickle is a userland bandwidth shaper for Unix-like systems."

</comment><comment><USER16> LD_PRELOAD is powerful. For example run pacman4console, but hide that with a LD_PRELOAD calling prctl() and overwriting the argv array. So even if your boss knows ps he will not know you're playing.

</comment><comment><USER17> > Copyright Google LLC?

There's no such thing...

Edit: I stand corrected. I thought it was a C-Corp.

<comment><USER18> [https://en.wikipedia.org/wiki/Google](https://en.wikipedia.org/wiki/Google)

</comment></comment><comment><USER19> Is the existence of LD_PRELOAD a _strong_ argument in favor of static linking?

I hadn't heard of LD_PRELOAD before now, but my first reaction was "oh wow, better static link _all the things_!". Is that wrong?

<comment><USER20> > "oh wow, better static link all the things!". Is that wrong?

Depends. Sadly, current trend is to keep everything static in big binary or bundle own set of dependencies. Let's assume your program is using libpng. Now, every program is keeping own libpng in RAM. That is not even the worst case; imagine particular libpng has security issue. The only way to update all those static programs is to recompile everything or download everything; which is trend, again.

I image we will have shared library approach "rediscovered" and commercialized with some cool buzzword.

<comment><USER21> How much RAM does libpng use? It surely can't more than a couple of megabytes at most (much less I'd imagine, given typical binary sizes). This is rapidly becoming a non-issue.

Regarding security issues. I imagine that we will gradually rewrite everything in memory-safe languages such as Rust. It'll take a while - there's a lot of value in the code that's already been written. But once a library for a given task has been rewritten into a safe language, it's going to be hard to justify using the equivalent C library.

Of course this won't completely eliminate security issues. But I'd guess that along with a bit of fuzzing, it could easily reduce the frequency to <10% of what we have today. That, along with the fact that modern languages have package managers, and updating a library to the latest patch version is a one- line change, will make keeping on top of security issues well within the reach of the average app developer.

Shared libraries were a necessary tool in a world with limited computing resources, but I suspect the current trend will continue until they're used only in niche circumstances (plugins? libc?)

<comment><USER22> _> How much RAM does libpng use?_

The assumption here is likely that read-only mapped pages of libpng could be shared across different running programs that link with it. But it ignores all the extra read-write pages as a consequence of dynamic linking and that there is basically just libc that is shared across different running programs. So it's mostly wrong, you can probably even reduce memory usage by switching to static linking.

<comment><USER23> Libpng is not a good example. Often in real-world applications there are dozens of libraries that are dynamically linked, and they can get quite large. The other argument is that having them dynamically linked increases cache coherency. For example if all applications share the same GUI library, the core rendering loop of that library will be likely to get kept in the cache. However, I have not tested this theory and it seems like the library would have to be designed for it to get any real benefit.</comment></comment></comment></comment></comment>


How Particles Can Travel Upstream - <AUTHOR> http://nautil.us/blog/reading-the-tea-leaves-how-particles-can-travel-upstream <comment><USER2> See also: granular convection and the Inverse Brazil Nut Effect: [https://sites.google.com/site/bioinspiredrob/brazil-nut- effe...](https://sites.google.com/site/bioinspiredrob/brazil-nut-effect)</comment>


Low level stuff in ARM - <AUTHOR> http://www.coranac.com/documents/bittrick/

<comment><USER2> The author seems to be freaking out a wee bit much over branching, which the last time I checked is quite fast on the shallow-pipeline ARM cores in the market. Branches get more expensive the deeper the pipeline gets, which means they're hugely important for desktop CPUs (although a little less now than in the days of the "netburst" cores from Intel). But for ARM? Meh.

What's a much bigger deal on ARM are cache issues. The L1 caches are very small, and there is no L2. Keeping working set sizes down for instructions and data is hugely important, which means that tricks like these aren't always a win if you're using them instead of (e.g.) calling a "min()" function.

And (someone correct me if I'm misremembering) ARM doesn't have a physically tagged cache, which means the caches can't survive a change in memory domain like a system call. I know for a fact that syscalls on my Motorola A780 (XScale CPU, Linux 2.4 kernel) are 20k cycles or more.

The bottom line is that I think the author is missing the point. These are elegant assembly hacks, but aren't really where performance-conscious programmers need to be focusing their efforts.

<comment><USER3> ARMv6 (and higher) does have a physically tagged cache.

Another thing that helps with avoiding cache flushes on context switches is the presence of a pid bit in the page table.

</comment></comment><comment><USER4> this is pretty neat stuff.</comment>


Portraits of Imaginary People - <AUTHOR> http://mtyka.github.io/machine/learning/2017/06/06/highres-gan-faces.html <comment><USER2> My wife is a portrait artist, and when she usually does a commissioned portrait for someone, I am astounded by the amount of time that she spends purely working on the eyes. (ex. [1],[2])

Looking at these in comparison to her work, it is definitely true that the eyes are the windows into the soul, and define a LOT about a person's face. (Or even an animal - she does pet portraits too).

Even in looking at her very early work in art school - I can forgive the odd crooked nose or askew mouth as long as the eyes tell the story.

Looking at these AI generated portraits, I find the facial features really interesting, but it is the artificial, dead quality of the eyes that make me somewhat uncomfortable with them, and induce a slight feeling of horror, as exceptional as the artwork is.

[1] - [https://www.instagram.com/p/BRhU7fKjdhS/](https://www.instagram.com/p/BRhU7fKjdhS/)

[2] - [https://www.instagram.com/p/BRZormMDyB3/](https://www.instagram.com/p/BRZormMDyB3/)

<comment><USER3> The most interesting thing about the procedurally-generated portraits (and earlier work on other generated art [1]) is that the the results completely squick out some people while other people don't seem to notice what the problem is and think we'll be drowning in 4k procedurally-generated Ghibli movies on Netflix in a few decades from now (see [2]). Clearly the two groups are looking at the pictures in two completely different ways.

(Personally, I tend to fall into the 'squicked out' category. I don't like the way objects in [1] melt into each other, like the artist is a lobotomy patient who can no longer separate objects, or like the picture is depicting a hideous Lovecraftian fractal dimension.

The faces are actually better because the author iteratively upscales something that looks like a face at every stage, instead of just running one step to generate an alien blob of too many eyes and noses that happens to pass the neural network. Besides dead eyes, they tend to suffer from the problem of the two halves of the face trying to make completely different expressions.)

[1] - [https://research.googleblog.com/2015/06/inceptionism- going-d...](https://research.googleblog.com/2015/06/inceptionism-going-deeper- into-neural.html)

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

</comment></comment><comment><USER4> This is super creepy to me, like faces from another dimension making contact. Also reminds me of artist self portraits while on drugs.

</comment><comment><USER5> I love the dream-like quality these faces have, even the "ugly" ones. They look like something out of Baldur's Gate and somehow make my imagination spin. Do you know how the effect is called ? I've experienced the same thing when looking at screenshots from Elemental: War of Magic (but it was hit and miss) and world map in Shroud of Avatar (the new project of Richard Garriott, the designer of Ultima serries... I think it's finished now).

Note I don't intend to promote any of the above games except BG. I just have a soft spot for this style of graphics.

<comment><USER6> Heh, my first idea too was "these portraits would look awesome in RPG". Furthermore, automatically generated art could help indie game creators, as such games often suffer from generic looks and hiring real artists is usually over the budget.

</comment></comment><comment><USER7> Sometimes I wonder at the uniqueness of each individual's face. It just amazes me how everybody, no matter how numerous we have, has a different face. With the exception of twins and non-familial coincidental twins.

<comment><USER8> Practically speaking, every face has to communicate, what, 20 bits of information, to avoid common doppelgängers via the birthday paradox? Probably even more. Very interesting.

People have proposed leveraging this to generate unique avatars, since you can just pick some random parameters for the arrangement of a stick figure face and it will probably look unique.

<comment> Capt-RogerOver Openface (probably state-of-the-art currently? If I haven't missed anything) uses a 128-dimensional unit hypersphere to represent a face identity. They have likely optimized this, so it's the dimensionality that works well in practice, not too large, not too small. It's perhaps a bit bigger than it has to be, but it cannot be too big either because that would very likely lead to overfitting. So that's 128*sizeof(float) = 512bytes = 4096 bits of information. Kinda like an RSA private key :).

</comment></comment></comment><comment><USER9> I find these images fascinating, specially the parts were the textures blend with the faces. It feels like we are watching the world through another mind, so to speak.

</comment><comment><USER10> Horror show

</comment><comment><USER11> Lacks bilateral symmetry, otherwise quite realistic.

</comment><comment><USER12> Looks like concept portrait art for a Bioware game.</comment>


Ask HN: Solo developer on a side project, where to focus? - <AUTHOR> As a solo developer on a side project you hope to turn into a profitable business, where do you focus?<p>Start tackling the core IP that provides the value without worrying about the UI/design or experience, or start from the landing onwards as the user would experience? <comment><USER2> Start with defining your market and seeing if they need/want/can use your product. As an example, I am doing some work on my house and occasionally I need day laborers to help out. I thought it would be nice to have an Uber for Home Depot guys with profiles and reviews. It turns out most of them don't have smartphones and data plans so it wouldn't work. Better to know that upfront than to find out after shipping an app.

<comment><AUTHOR> I understand that-- I've done quite a bit of research and feel I know enough to get started. There are competitors in this space but it's not very crowded. It's not completely unknown territory.

With that being said, I do think you make a good point and I should make sure I understand what differentiates my product from the others is something people would be willing to pay for.

</comment></comment><comment><USER3> Scenario One: the value is in the product.

      Talk to users.
      If there are no users,
      Get some users,
      Then talk to them.

Scenario Two: the value is in intellectual property.

      Develop the intellectual property.
      Protect it with patent/copyright/trademark.
      Pitch the intellectual property to organizations
      with a history of purchasing intellectual property.

Good luck.

</comment><comment><USER4> I focus on can I get traffic, then can I get a lead, can I sell the lead. Then, focus on the automation part.</comment>


Material UI - <AUTHOR> http://material-ui.com/ <comment><USER2> I had a talk with myself at the weekend about making a concerted effort to cut out the snark when I comment on the web.... And I'm about to fall at the first hurdle.

Being "on trend" isn't good UI design. But I can see how we got here. Through OS X and iOS, Apple's UI ethos became the gold standard in UI design. It was so well designed that it was easy to imitate and by simply adopting the core elements of Apples UI language, stuff became intuitive and usable without the designer needing to understand "why" something looked the way it looked.

And then came a new trend, the current trend, that appears to me to be rooted in nothing more substantial than a desire to replace the old with something new at all costs. And when the likes of Apple and Google fall for the same trap, it's nigh on impossible for fundamental UI design knowledge to make itself heard above the noise of a million designers advocating the new and pointing to Apple for credibility.

You can see that I don't like Material. I also don't like iOs's new UI language. It doesn't work. Ive seen no evidence that it's any more useable and I struggle everyday to make sense of software and tools that have adopted these new trends so anecdotally, I have to say to myself that we're going the wrong way.

<comment><USER3> The current trend is rooted in the fact that computer displays approach the visual fidelity of paper prints by now (> 300dpi). Consequently a more print like design language is adopted, which often features a small selection of colours and simple geometric shapes.

The large variety in print design demonstrates that this is not an unreasonable restriction. In my eyes the translucency of windows in Yosemite is a much nicer choice than "brushed aluminium" or "black with fake highlights", it does not pretend to be something it is not. Eventually I would prefer if the "Desktop" metaphor, including "Folders", was given up and replaced with something different. The faster the design language becomes more abstract to facilitate that change, the better. We are stuck with an overall UI design initially conceived in the 70s, alternative versions of personal computing like the Lisp Machine died unfortunately.

<comment><USER4> Unlike print, computer user interfaces are interactive. When you adopt a print-like design language you remove cues that indicate how to interact with the interface.

For examples of how Apple's new UI is less usable than their old UI see: [http://uxcritique.tumblr.com](http://uxcritique.tumblr.com)

<comment><USER5> I wish I could up-vote this a thousand times.

I often tap things that are just rectangles and fail to realize that other rectangles are buttons.

I can't wait for "everything is flat, two-tone, and rectangular" to be replaced by whatever the next trend is. Hopefully something more useful.

Ironic note: the flat trend was really made mainstream by Microsoft when it released Windows Phone 7.

<comment><USER6> With flat design, sometimes it's really hard to know what you are suppose to click on. I enjoy its simplicity, but it does have some usability problems that come with it.

I think we went way overboard with it and the pendulum swung to far to the side of flat design. Hopefully we start moving away from super trendy flat design, much like we moved away from those crazy web 2.0 design styles.

<comment><USER7> flat design is trending because we have so many "designers" who can't design.

<comment><USER6> What do you think separates a "designer" from a designer?

<comment><USER2> I would say Consideration. I am a designer, and I work with lots of designers. Design is harder than it looks and even brilliant designers don't get it right 100% of the time, but I can see a clear difference between the types of designers whose work "looks right" and designers who have approached a brief with the aim of figuring out what "works right".

It's easier to be the former than the latter both in terms of skill and the politics of the client relationship, and that's why there are so many "designers" and so few designers.

<comment><USER8> Yes. A real designer isn't just a UI artist. Art is one skill among others. A real designer should also understand: UX, human behaviour and interaction, logic, visual language (architecture, shape, color, animation) and other skills...

Most designers don't get it right because they don't have these skills, they are only artists. And because of that they don't understand why a particular design is better than another or even what their own design expresses.

To do a real design, it asks you to do a ton of research and going back and forth between art and UX. Doing brain storming to implement old and new logic elements in a fashion way.

It's like the iOS 6 it was a big step forward because it was a design: simple, expressive, and functional. The guys who created it understood all of that. Then again, Apple followed the fashion trend more than the logic and did the iOS 7 design criticized even before it was out. The problem, among its specific fashion, was that the design was so flat it was destroying UI information. Plus visual problems: sometimes the color seems to mean something but you find one red button that isn't one, sometimes the shape, sometimes the animation...

Here is an example of what a designer should do to design a UI. [http://blogs.msdn.com/b/visualstudio/archive/2013/06/27/desi...](http://blogs.msdn.com/b/visualstudio/archive/2013/06/27/designing- the-visual-studio-2013-user-experience.aspx)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> [http://material-ui.com/#/components/dropdown-menu](http://material- ui.com/#/components/dropdown-menu) really? how can this be good usability. it's text and an arrow far, far away. this could be anything and does not in any way imply any kind of select action. if this is really implemented after the material design spec of google, than oh man, google really has an issue.

<comment><USER10> Here's the Google spec for this:

[http://www.google.co.uk/design/spec/components/menus.html#me...](http://www.google.co.uk/design/spec/components/menus.html#menus- usage)

If you look at the menu with "All", "Family", "Friends", "Coworkers", initially it shows "All" and the arrow is immediately to the right of the text. I expect that if you select "Coworkers" then the arrow moves.

<comment><USER11> Yeah, I think standalone it should have the arrow right at the end.

When the dropdown is used in a form, it should have an underline, like so from the Material spec: [http://material- design.storage.googleapis.com/publish/v_1/qu...](http://material- design.storage.googleapis.com/publish/v_1/quantumexternal/0Bx4BSt6jniD7MHBnQlFGeFRtYTQ/components_menus_usage5.png)

<comment><USER12> Yeah, let's not consider every copycat that comes along a valid and complete implementation of good UI guidelines... This one surely is not.

<comment><USER13> The problem is that many people will use those copycats as the basis for their own app designs. Not everyone is willing to really understand the reasoning behind the design spec down to such minute details as an arrow placement if he can be hip and trendy with something that superficially looks like the same design.

If a design is so easily misunderstood with such (comparably) large consequences for the user, that's a flaw in the original spec IMO.

<comment><USER12> I don't believe it's easily misunderstood; I think people just don't know how or why to create a quality implementation based on an original. The spec is actually remarkable in the level of depth it goes to teach you not only about the design guidelines themselves, but also the reasoning and psychology behind it. Really, it's probably the best full on UX specification ever produced (and I'm not saying that lightly).

It just shows that it's very difficult to get this stuff right. There's still going to be a bell curve, with most implementations and copies ending up in the mediocre middle, but overall, the guidelines might bring the quality of the overall market up. That's all we can hope.

</comment></comment></comment></comment></comment></comment><comment><USER10> The comments thus far are disappointing. People go to the trouble of making a pithy comment on hackernews, but surely since many of us here are developers we understand the frustration of bad bug reports. Is it so hard to bottle up your negative comments and spend another two minutes doing something constructive - like heading over to github and adding an issue with your system specs?

<comment><USER14> It's not "negative comments" to point out to other people what works and what doesn't.

Complain as much as you want about how I don't push fixes, but as long as I'm not paid those complaints are better kept to yourself.

(I realize you are not one of the developers for this project. I only want to illustrate how negativity goes both ways. I'm a bit tired of "contribute or shut up". There's a big gray area inbetween.)

<comment><USER15> It's kind of strange how there's a whole generation of young developers who are supposedly «hurt» by perfectly valid criticism of objectively flawed or bad work.

This wasn't always the case. Before the whole «social justice» movement infected the software development industry and hobby, it was expected that bad work would get publicly criticized. This was a good thing, because it fostered improvement, and high quality work. But now that apparently all takes a back seat to making sure nobody has «hurt feelings».

<comment><USER14> It needn't be bad, even. Pointing out a bug in the comment field is somehow "negativity", while working through the bug tracker of github is "constructive".

In this case one could say thank you for the input and register the issue oneself, if the project was dear to ones heart.

I wonder if it is a product of young developers being told to build a public github profile, that they are increasingly careful about?

</comment></comment></comment></comment><comment><USER16> Similar efforts:

1) Angular Material Design

[https://material.angularjs.org](https://material.angularjs.org) \- _Good, light framework, but intended for Angular apps_

2) Materialize

[http://dogfalo.github.io/materialize](http://dogfalo.github.io/materialize) \- _Beta stage, follows Material guidelines closely, incomplete though_

3) Leaf Framework

[http://getleaf.com](http://getleaf.com) \- _Not as good, front-end framework, strays from Google direction_

Use this for maximum Material design feel:

4) Polymer Paper Elements

[https://www.polymer-project.org/docs/elements/paper- elements...](https://www.polymer-project.org/docs/elements/paper- elements.html) \- _Super awesome, disjoint components, not a framework_

5) Google Material Web Starter Kit

[http://google.github.io/web-starter- kit/material](http://google.github.io/web-starter-kit/material) \- _Good enough, light framework_

6) Google Web Starter Kit

[https://developers.google.com/web/starter- kit](https://developers.google.com/web/starter-kit) \- _Full fledged framework, doesn 't fully capture Material though_

</comment><comment><USER17> Bug report: If I follow the "Demo" link from the homepage, the first demo ("Buttons") works but clicking on any of the others (via the left hand menu) e.g. "Dialog" doesn't do anything. No obvious errors in the console.

I'm using FF 33.0.3 on Win7.

Edit: looks promising though - just get them bugs ironed out! :)

<comment><USER18> Same here, iceweasel 33.0 on Debian Wheezy.

<comment><USER19> Works for me, Safari 8.0 ons OS X 10.10

</comment></comment></comment><comment><USER20> [http://material-ui.com/#/components/buttons](http://material- ui.com/#/components/buttons)

Aaaand the first three buttons are hidden until you hover over them. How visual designers keep making mistakes like this _in the age of mobile browsing_ is beyond me.

EDIT: As has been pointed out to me below, they have their use-cases. I still wouldn't put them as the first shown option though - they're not exactly the sensible default fall-back.

Also, the menu doesn't work on my Firefox Aurora browser.

<comment><USER21> Google's design guidelines advise using flat buttons "for contexts such as toolbars and dialogs to avoid gratuitous layering". Seems to me there may be cases where they are useful.

[http://www.google.co.uk/design/spec/components/buttons.html#...](http://www.google.co.uk/design/spec/components/buttons.html#buttons- flat-raised-buttons)

<comment><USER20> Fair enough. I still think putting them first is sending the wrong signal though: using a flat UI should be a deliberate, carefully evaluated choice (like the example you gave). Not the default.

</comment></comment></comment><comment><USER22> Doesn't seem to embody the principles of Material Design other than the flat design and use of colors. For example for the dialog[0] when you click it it just appears out of nowhere instead of sliding in or expanding out from the button. Material Design isn't only about everything being flat but there being good animations to make transitions clear.

I wonder what Google's design team thinks of all these creations masquerading as "Material Design."

[0] [http://material-ui.com/#/components/dialog](http://material- ui.com/#/components/dialog)

<comment><USER12> It highlights the fact that it actually takes a lot of work to do all of these details and get the UI right, and if you miss one or two, it really doesn't hold up. Something we should all take to heart. Not many design frameworks have such complete and irreducible properties. The Material design guidelines and (good) implementations so far are really very impressive.

</comment></comment><comment><USER23> I have been using the angular team's material design project[0] with great success.

"This project is still in early preview."[1] Worth keeping an eye on if you are working on any angular projects.

Not to take away anything from OP's, I feel their implementation of material is a little closer to the mark.

[0][https://material.angularjs.org](https://material.angularjs.org) [1][https://github.com/angular/material](https://github.com/angular/material)

<comment><USER24> From what I understand, the Angular version is being developed by someone who works for Drifty, the company behind Ionic.

</comment></comment><comment><USER25> I like the animations, inputs are really what I need today for my UI designs. Checkboxes have different styles in Chrome and Safari. Safari checkboxes look a bit weird as in unchecked mode a rotated green tick is displayed inside a checkbox, and in checked mode one of the tick's lines extends horisontally. In Chrome the checkbox looks really nice though.

<comment><USER26> OK, I'm glad they didn't actually intend to have the checkboxes look like that :)

</comment></comment><comment><USER27> This is my first introduction to Material Design. I am confused about an aspect of it.

Here[0], we see two separate cards next to each other, with the same dimension, but at a different elevation. As a result, one casts a larger shadow.

Here[1], they specify that "Shadows are never approximated using material". Wouldn't that require that one of those two cards with the same dimension appear to be larger, since it is closer to the eye?

What do they mean by that rule?

[0]: [https://www.google.com/design/spec/what-is- material/objects-...](https://www.google.com/design/spec/what-is- material/objects-in-3d-space.html#)

[1]: [https://www.google.com/design/spec/what-is- material/material...](https://www.google.com/design/spec/what-is- material/material-properties.html#material-properties-physical-properties)

</comment><comment><USER28> Can't even click the links down the RHS in the demo. (FF 33.0.2)

<comment><USER29> Me too on FF 33.0.3 (MAC OS).

<comment><USER30> Nor on FF 33.0.3 Windows.

</comment></comment></comment><comment><USER31> Nicely done. Material design looks great on Android. I'm not sure if I'm sold on material design for desktop use. I started building a material design look and feel for a new web app we're building and besides the fact that it lacked all the subtle animations no one really was digging the vibrant colors, flat buttons, and drop shadows. We ditched it for a more conservative theme and so far we've had no complaints.

Any Inbox users here? What do you think of the full desktop web app for Inbox? Personally while I love the mobile material design version, there's just something off about the desktop version.

<comment><USER32> Inbox user chiming in: I actually like the desktop interface, and it's nice to not have to change mental context when using Inbox on mobile vs the desktop (probably the best, if more subtle, benefit to the Material overhaul of Google's services). My biggest gripe is the more restrictive keyboard shortcuts compared to Gmail, which basically necessitates using a mouse for some operations. But I imagine that will be remedied over time.

<comment><USER33> I tried Inbox in Chrome on OS X Yosemite on rMBP 13'' last year's model and it stutters and freezes when scrolling, and takes a minute to load all dependencies. I tried in Safari too, but it does not work with Safari yet, and in Chrome it's a disaster.

</comment></comment></comment><comment><USER34> Sorry but this looks like a huge mess on iOS

<comment><USER35> It looks like a huge mess on Firefox/android too

</comment></comment><comment><USER36> This is the best implementation of Material in html/css i've seen. It's a little buggy, but nothing a few tickets won't fix. I'm constantly impressed with how fast you guys work.

</comment><comment><USER37> this is a nice start of a cool and handy tool. As someone who recently got into React, browserify and uses less by default, I really apreciate people making libraries like this and will probably try using this at some point. Yes, as others seem to note aswell, it needs some work finetuning and improving (are buttons in the dialog supposed to have no borders?). But I think it's a very nice initiative, thank you.

</comment><comment><USER38> Looks pretty good, I'm a big fan of the placeholder without input -> label + description when active -> label with input style.

</comment><comment><USER39> I was recently looking into libraries to use Material Design with React.js.

I found the material-ui project to be implemented less well than this one: [http://sanderspies.github.io/react- material/](http://sanderspies.github.io/react-material/) (though I have my reservations about the approach taken here, too -- and it's less complete).

<comment><USER40> react-material is mostly an experiment to use react-style (CSS written in JS). Unfortunately I do not have enough free time to give react-material the right attention, so I wouldn't recommend using it for now.

</comment></comment><comment><USER41> Is there a way that I can use this as a drop-in replacement to Bootstrap or on top of Bootstrap? If not, what would be the easiest way to re-skin a project that currently Bootstrap to use this?

Then I could have Facebook/Google/Twitter design and coding chops baked in :)

</comment><comment><USER42> Thanks to everyone for checking out our little project. It is very much a work in progress. We released it because we are excited about it and knew that the open source community will only help to make it better. Let's make something awesome together!

</comment><comment><USER43> Does React have something like web component's <content/> ? It's really unfortunately that the LeftNav component takes an array of objects to turn into links instead of allowing you to define arbitrary html as <content/>

<comment><USER44> Yes, React components have a special `this.props.children` property [0]. Which works similarly to web components's <content/>.

The current implementation of `LeftNav` doesn't allow for this, but it would be easy to add.

0: [http://facebook.github.io/react/docs/multiple- components.htm...](http://facebook.github.io/react/docs/multiple- components.html#children)

</comment></comment><comment><USER45> While I like the project and effort put into this, I think, if you considering using this project, you should also look at google's own polymer project. Its based on the industry standard web-components. [https://www.polymer- project.org/](https://www.polymer-project.org/)

React is using "virtual dom" which is kind of a hack to support web-components kind-of technology. Since the technology is currently here, i would recommend using it, and not using React.

However a consideration is also browser support. I'm not sure if polymer is production ready.

<comment><USER10> Is this correct? React doesn't use the virtual DOM to create HTML-like elements, it uses JSX for that, and JSX is optional. As far as I know the virtual DOM is used to avoid updating the "real" DOM in the browser when you don't have to.

<comment><USER46> React does use a virtual DOM, namely so that it can efficiently track changes to the DOM. That's different than the shadow DOM that web components use, though, where they have their own sandboxed DOM that's completely isolated from the parent DOM.

<comment><USER45> Indeed. That's what i try to say. I think the knowledge regarding the shadow- dom and true standards-based web-components is not widely spread yet among devvers.

</comment></comment></comment></comment><comment><USER47> I hope they do away with the flare effect on button clicks. Just weird...

<comment><USER48> It's not just weird. Every click on any item now takes approximately 1 second longer.

</comment></comment><comment><USER49> Is anyone working on pure CSS theme/framework with Material UI?

</comment><comment><USER50> A few things looked slick but not particularly usable, but I found the flare animation on-click got old (and a bit slow) after a while. Might be worth toning that down a bit?

</comment><comment><USER51> I like these small frameworks. Bootstrap is almost a little too big for my taste. You end up having custom builds which are hard to maintain and update. New frameworks like semantic-ui make the mistake and are even bigger and more interwoven with js code. Fluff that! I really don't need 5 variations of every component!

And drop your icon library into a seperate project! So i can choose between font-awesome, boostrap-gylphs or this MUI-Icon set. FA-like is the way to do it.

</comment><comment><USER52> Very good job indeed. I think it's a good implementation of Material Design. (PS: works just fine on Chrome.. I like all the smooth animations!)

</comment><comment><USER53> I worked through the demo and actually kind-of liked it, until I got to the checkbox page.

How is that checkbox design better than the commonly used empty square for unchecked, and square containing an X or a V for checked? I can't even tell if the boxes are checked or not!

I would seriously advise taking a look at the usability of these checkboxes.

<comment><USER53> [can't edit the comment anymore and this merits a correction]

It turns out that it was a bug and checkboxes were rendered on my screen in a way that was not intended by designers. So the comment above is invalid.

</comment></comment><comment><USER54> I think it's just lazy when a page like this that doesn't have media queries. Seriously.

</comment><comment><USER55> I have to say I REALLY like what you did with the inputs. That action is really cool. I thought the spec said that buttons with just text and no background or borders were discouraged as they looked too unactionable?

</comment><comment><USER56> Tangential, but not really: [https://medium.com/@timrpeterson/cynicism-21258dc48246](https://medium.com/@timrpeterson/cynicism-21258dc48246)

</comment><comment><USER57> I love how it works all wrong.

It's like a recursive "This is Bad Idea".

</comment><comment><USER58> Why can't I use esc to dismiss the dialog? Why do arrows in menus also scroll the page? Is this because this is not pure CSS? Would this be a problem for accessibility?

</comment><comment><USER59> Can anyone explain to me why having the dropdowns and other items in JavaScript is better than the DOM? Seems like we fixed this approach on the web 10 years ago.

</comment><comment><USER60> Nice, but is useless to me, it doesn't work on IE11.

</comment><comment><USER61> Nice, really like the `input` demo, looks really slick!

</comment><comment><USER62> Looks good, but the transition delays are long.

</comment><comment><USER63> Needs a huge amount of work before it's usable, but it's nice to see this being implemented.

</comment><comment><USER64> Great work. Thanks so much. I'll definitely consider using this.

</comment><comment><USER65> Left nav menu and dropdowns don't work in FF Dev version.

</comment><comment><USER66> Those radio buttons and checkboxes are painful to use.

</comment><comment><USER7> animation is bit choppy and jumpy. This goes completely against the animation principal that google's Material UI talks about.

</comment><comment><USER67> No keyboard support. Fail.

</comment><comment><USER68> Layout is broken on my android phone.

<comment><USER69> And completely unusable on iPhone.

</comment></comment><comment><USER70> I really like it. It's very different from what we have. I guess it makes sense (it is google after all). One complain I have is that it's so cosmetic, feminine almost, but I guess that's the color scheme.

</comment><comment><USER71> Nice play on Microsoft's Metro/Modern UI!

I couldn't find the tiles however and they seem to be abandoned in the original documentation (called "cards" for some reason :S):

[http://www.google.com/design/spec/components/cards.html#](http://www.google.com/design/spec/components/cards.html#)

<comment><USER72> > couldn't find the tiles however

So you mean, not Metro at all right?

<comment><USER71> There used to be in the original copy, here is a saved image at the top:

[http://www.eyeonwindows.com/2014/06/25/googles-material- desi...](http://www.eyeonwindows.com/2014/06/25/googles-material-design- language-is-strangely-similar-to-metro)

Maybe they couldn't reconcile them with other alterations or are simply trying to respond to criticism.

<comment><USER73> That image has nothing to do with material design and cards have nothing to do with tiles. It's very far-fetched to even suggest that Material design and Metro UI are even remotely similar.

<comment><USER74> There are not similar, but there are similarities. The way the controls are designed, the flat style, the whole content-first approach, and giving the content space to breath.

</comment></comment></comment></comment></comment><comment><USER75> I've never been a fan of material design and surely hope it doesn't become a standard. Design guidelines from a company that is widely known not to care about design? No thanks. Even Google Inbox shows how engineering-driven everything is at Google - the navigation is completely unorthodox (going back = drag _down_ ), like someone above decided "this is the way we do everything from now on" and nobody had the balls to question 'em. I'd never accept Microsoft's design guidelines or Google's. If you truly care about design, you'd stick to Apple's or develop your own, which frankly isn't too hard in CSS anyway, and it means you aren't tied to a particular OS feel or a big-corp policy.</comment>


I Hate Open Offices - <AUTHOR> http://fortune.com/2017/01/18/i-hate-open-offices/ <comment><USER2> I was hoping the author would explain why she _really_ hated open office plans, but the article is mostly about productivity costs vs. furniture costs.

When I worked in cubicles at Apple in the 1980s and 1990s, the custom was for everyone to personalize their cube with photos, art, toys, books, etc. My cube was only semi-private, but it was MINE and to some extent it reflected my personality.

I never worked in an open office, but my impression is that it strips away any semblance of personality and personal space. Every employee is a replaceable part. It's like a concentration camp for engineers.</comment>


Adobe Illustrator and touch computing - <AUTHOR> http://blogs.adobe.com/adobeillustrator/2014/09/adobe-illustrator-and-touch-computing.html

<comment><USER2> Touch and Béziers curves ? It would be cool if Illustrator could use Flash/Freehand drawing tools, this would be a great start even for a non-touch environments.</comment>


The Cloud and Open Source Powder Keg - <AUTHOR> https://redmonk.com/sogrady/2019/03/15/cloud-open-source-powder-keg/ <comment><USER2> > One hundred years ago, leadership of dozens of countries decided to march > into a conflict that it knew would be costly, horrifically damaging and from > which there was unlikely to be a real winner. They did so because they > didn't see any other choice.

Where will this end? On the one side, the cloud providers have all the money and can support the forks. On the other hand, if cloud providers continue to do this, there won't be any VC funded open source companies built in the future, which is like the cloud providers eating their seed corn (because the open source companies like Elasticsearch prove out a market, undercut proprietary systems, and basically do market research for the cloud providers).

<comment><USER3> The same way WWI ended for Europe, with the US taking over the world.

Which company would be least hurt by the nuclear option being used on all sides and has piles of cash to redevelop everything in house? My guess is Apple.</comment></comment>


Polyfills as a Service - <AUTHOR> http://polyfills.io/ <comment><USER2> Author here. Haven't maintained this in a while. It's down due to some breaking changes in libraries and I haven't updated the code to handle it.

I also stopped using this as you could just use babel to automatically use whichever polyfill you use with babel-runtime. Saving a few kb is an overoptimization.

If you're interested in maintaining this project, let me know. I can add you to the GitHub organization.

<comment><USER3> Would be nice to have a note on the homepage indicating that this project has since been abandoned.

<comment><USER2> will do

</comment></comment></comment><comment><USER4> This is a really great example of why not to use random CDN's just because it is convenient. Currently they are just serving internal server errors.

<comment><USER5> The problem is their origin not the CDN itself. The author is not responding and wont fix the server

</comment></comment><comment><USER6> If this interests you, there is also [https://cdn.polyfill.io/v1/docs/](https://cdn.polyfill.io/v1/docs/) ([https://github.com/Financial-Times/polyfill- service](https://github.com/Financial-Times/polyfill-service)), backed by FT.

<comment><USER7> If you're using Webpack there is also a great and simple loader module here: [https://github.com/deepsweet/autopolyfiller- loader](https://github.com/deepsweet/autopolyfiller-loader)

Works like a charm

</comment></comment><comment><USER8> > To include polyfills, use a -, otherwise, use a +.

That should say 'exclude', right? To avoid confusion, probably avoid "otherwise" too, spell it out "to exclude polyfills use a `-`; to include only listed polyfills use a `+`"

</comment><comment><USER9> as a low level developer all of this confuses me. polyfills as a thing at all, multiple solutions and a service that can provide them (but doesn't actually work!)

this is why web development makes me feel bad... all this time an effort spent solve very easily and classically well solved problems in the browser, because browsers are wastelands of terrible engineering :I

</comment><comment><USER10> Getting an Internal Server Error at [https://cdn.jsdelivr.net/polyfills/polyfill.js](https://cdn.jsdelivr.net/polyfills/polyfill.js)

</comment><comment><USER11> This is a really neat idea... when paired with the Express middleware and Babel, you could have a pretty clean ES6 app with modern browser features and still have it work on older browsers.

<comment><USER12> You don't need this if you write your app with babel. it will automatically add polyfills if needed.

<comment><USER13> No, the point of this tool is that some browsers require a polyfill, and some don't because the feature is natively supported. A transpiler like Babel cannot possibly determine that, so it has to be safe and include polyfills for all features used in the code it's transpiling, reglardless of whether or not the browser you're using already supports the feature.

A good example of this is Promises, which are supported in many modern browsers, but not all.

<comment><USER7> Yet this is exactly what babel-runtime will do for you: include all the polyfills. If you're not targetting IE8 and you don't care about Intl won't actually be that much code.

If you're using webpack you can use the code splitting feature to make sure the browser doesn't download that extra few KBs (which is presumable a trade- off between (an) extra roundtrip(s), so maybe you should just swallow those KBs).

</comment></comment></comment></comment><comment><USER14> CDNs beats packages for faster page loads, but there must be a reliable maintainer. This was paramount as I was building SaturnAPI. If anyone needs to utilize MATLAB in the cloud check it out: [https://SaturnAPI.com](https://SaturnAPI.com)</comment>


Potential Economic Effects of Ashley Madison Hack - <AUTHOR> http://www.nytimes.com/2015/08/20/upshot/an-ashley-madison-recession-or-an-ashley-madison-stimulus.html

<comment><USER2> The other change could be stronger privacy laws in the USA and possibly harsher sentences for hacking</comment>


On the age of computation in the epoch of humankind - <AUTHOR> https://www.nature.com/articles/d42473-018-00286-8 <comment><USER2> To avoid doubt, this is a 'sponsor feature' from the Max Plank Gesellscaft rather than a peer-reviewed paper.

It's basically an advert / announcement for a Max Plank initiative concerning...

>'geo-anthropology', the science of human–Earth interaction. Geo-anthropology studies the various mechanisms, dynamics and pathways that have moved us into the Anthropocene.

<comment><USER3> Some interesting ideas. But it's written _very_ badly.</comment></comment>


The Failing Fast Controversy - <AUTHOR> http://weiksner.com/2010/03/12/the-failing-fast-controversy/

<comment><USER2> Where's the controversy? The article does a great job of pointing out that Mark's rant missed the point entirely. Was there actually anything said that turned this mantra upside down?</comment>


Terra Nullius - <AUTHOR> https://en.wikipedia.org/wiki/Terra_nullius <comment><USER2> Sort of a fascinating aspect of purchasing a home was realizing that within the territory of the United States, there isn't any unowned land. All land is owned by either a private entity (person or corporate) or the state or federal governments. Even the small home I was buying had a chain of custody dating back to the European conquest of America. And as consequence of that, even if you walk away from a property, the system still considers it owned by you until some positive action is taken.

It had never really occurred to me before that you can pile most of your earthly possessions up in a box somewhere with "PLEASE TAKE" stenciled sloppily on the side, but you can't really do the same with a plot of land.

<comment><USER3> > All land is owned by either a private entity (person or corporate) or the > state or federal governments.

Don't forget tribal governments.

</comment></comment><comment><USER4> See also, Cory Doctorow, "Terra Nullius":

 _In 1660, John Locke published his Two Treatises of Government, where he set out to resolve the seeming conflict between individual property rights (which he valorized) and the Bible (ditto), which set out the principle that God had created the Earth and its bounty for all of humanity. How could a Christian claim to own something personally when God had intended for everyone to share in His creation?..._

[https://locusmag.com/2019/03/cory-doctorow-terra- nullius/](https://locusmag.com/2019/03/cory-doctorow-terra-nullius/)

<comment><USER5> Good question. How can somebody own land, what gives them the right to it? Well they bought the land from someone else, and paid a lot of money for it. But then how did that someone else acquire the rights to that land?

<comment><USER6> Usually there's theft involved somewhere in the chain. Something goes directly from indisputably unoccupied land through hundreds of years of honest selling and buying and inheritance to the present day has got to be the most rare exception. Can anyone point to an example?

<comment><USER4> Antarctica would likely be the closest approximation, though the real estate market remains small. Otherwise, small islands in which human habitation is comparatively recent.

There likely remain properties in Europe which can trace ownership through at the very least centuries, if not 1000+ years.

Possibly some British Crown posessions.

Iceland.

<comment><USER7> You could look up the US Guano Islands Act.

<comment><USER4> I'm familiar with it. What / how specifically?

Note that taking national possession of an entire island need not necessarily displace all, or even _any_ , prior / traditional land claims or rights.

My interest at this point is more in _suggesting_ possible places to look than in claiming "this is definitely where that is the case".

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> via patio11

[https://twitter.com/patio11/status/1186458041975066624](https://twitter.com/patio11/status/1186458041975066624)

</comment><comment><USER8> There's a pretty good argument that Bir Tawil isn't really terra nullius. The right answer to "who owns it" is clearly "Egypt" or "Sudan", depending on the outcome of the Hala'ib Triangle territory dispute, not "neither".

<comment><USER9> Supposedly, people have tried to claim it in the past but have been rebuffed by both Egypt and Sudan. [https://www.theguardian.com/world/2016/mar/03/welcome-to- the...](https://www.theguardian.com/world/2016/mar/03/welcome-to-the-land- that-no-country-wants-bir-tawil)

</comment></comment><comment><USER10> An interesting supplement to this is that common law based jurisdictions (US, UK, etc.) still have a legal concept of "Adverse Possession" or "Squatter's Rights" which effectively lets people claim land or property which is abandoned by selling it and improving it, even if there is an existing legal claim to it.

[https://en.m.wikipedia.org/wiki/Adverse_possession](https://en.m.wikipedia.org/wiki/Adverse_possession) for the complexities.

<comment><USER11> And equivalent rights also exists in France, allowing squatters to enter people's home while they are on holidays, changing the locks and showing proof of living here (like a bill) and they're very difficult to evict.</comment></comment>


Every Residential Renovation of the Past 10 Years in NYC on One Map - <AUTHOR> http://ny.curbed.com/archives/2013/12/04/every_residential_renovation_of_the_past_10_years_on_one_map.php

<comment><USER2> A lot of expensive work done around Central Park. Not surprising considering there is probably a high demand and higher income residents for that area.

<comment><USER3> Yeah I saw that too. $80,000 to redo two bathrooms, on Central Park South? I'd love to find out what $40,000 buys in a bathroom. I'm feeling a little cheap now. When I redid my 1950's bathroom, my cabinets, fixtures, tile, etc was only ~$500, from Home Depot.</comment></comment>


DeepMind's new algorithm adds 'memory' to AI - <AUTHOR> http://www.wired.co.uk/article/deepmind-atari-learning-sequential-memory-ewc <comment><USER2> I always assumed there was only one mechanism for memory in the brain, but it's interesting how multiple Deep Learning architectures have different mechanisms that could all be described as memory: RNNs and LSTMs can selectively save states from sequences of data, Neural Turing Machines basically have a RAM unit to store larger data structures, and now we have these networks that can remember "skills" across different training programs.

If we draw parallels to the human brain, the mechanisms sort of look like short term memory, long term memory, and something like "skills memory" (I'm not sure if the latter has a proper academic term, but it's a common experience e g. You never forget how to ride a bike).

Maybe one of the reasons why human memory has been such an elusive concept is because it's actually many different and independent mechanisms instead of just one.</comment>


Ask HN: Which VPN Providers do you use/can you recommend? - <AUTHOR>

<comment><USER2> [https://www.privateinternetaccess.com/](https://www.privateinternetaccess.com/)

[https://torrentfreak.com/which-vpn-services-take-your- anonym...](https://torrentfreak.com/which-vpn-services-take-your-anonymity- seriously-2014-edition-140315/) They log basically nothing (so they claim). Fast speeds, tons of locations, OpenVPN compatible. Zero problems for 2 years now.

<comment><USER3> I would second Private Internet Access. They have a shitty billing system (need to cancel your current account if you want to switch to a yearly plan), but it I've found it Just Works(TM). Really happy with their service.

<comment><USER4> I've recently had issues with PIA where traffic just stopped routing, necessitating a reconnect. Also the Mac client connects probably 50% of the time and often gets in to an unrecoverable state - but that might be OS X/Openvpn's fault, not PIA.

</comment></comment></comment><comment><USER5> I've ran a VPN via Amazon's AWS "free" tier (approx. $5/month for 12 months). Works both on Windows (with appropriate UDP encapsulation configured for IPsec traffic[0][1] on both client and server) or via OpenVPN on Linux.

I'd imagine OpenVPN would work just fine on Linode or DO. And Windows/OpenVPN would also work via Microsoft's Azure platform.

[0] [https://support.microsoft.com/kb/926179](https://support.microsoft.com/kb/926179) [1] The key term to Google is: "AssumeUDPEncapsulationContextOnSendRule"

</comment><comment><USER6> I've used AirVPN, Cryptostorm, and iPREDATOR in the past. No complaints with either of the three.

That said, if you're trying to hax0r the NSA or something crazy like that, don't expect a VPN to save you.

</comment><comment><USER7> Streisand ([https://github.com/jlund/streisand](https://github.com/jlund/streisand)) on Digital Ocean, 5$/Month

<comment><USER8> I'm 90% sold on this. For the last 10%.. Is it easy enough to choose/change your VPN region on Digital Ocean?

Say for example I want to use Netflix from the US today, and Germany tomorrow for general web surfing.

</comment></comment><comment><USER9> I would recommend you set up your own VPN so you fine-tune it to suit your need. However, if you can't, then choose VPN providers maintain their servers on their own network instead of renting servers from others. Checkout IPVanish: ([http://www.vpntips.com/hidemyass- alternatives/#ipvanish](http://www.vpntips.com/hidemyass- alternatives/#ipvanish))

</comment><comment><USER10> I've used both prgmr.com and DigitalOcean. I would recommend either.

Use my referral link to get $10 in account credits at DO: [https://www.digitalocean.com/?refcode=9fad2cc71fbc](https://www.digitalocean.com/?refcode=9fad2cc71fbc)

</comment><comment><USER11> VyprVPN is my weapon of choice. Only bad side I can see after months of use is lack of coverage inside the China firewall.

<comment><USER12> Do you have the Chameleon protocol activated?

David Y.

</comment></comment><comment><USER13> tunnelbear is great.

</comment><comment><USER14> box.pn</comment>


STRIKE Magazine – On the Phenomenon of Bullshit Jobs - <AUTHOR> http://strikemag.org/bullshit-jobs/ <comment><AUTHOR>
      Answer: if 1% of the population controls most of the
      disposable wealth, what we call 'the market' reflects
      what they think is useful or important, not anybody
      else.)

This</comment>


Mt. Gox CEO Karpeles says Bitcoin exchange is at "turning point" - <AUTHOR> http://www.reuters.com/article/2014/02/25/us-bitcoin-mtgox-ceo-idUSBREA1O12T20140225 <comment><USER2> Ah, how good it feels to not have been a greedy bitcoin evangelist. That is, 90% of the people pushing positive opinions about Bitcoin, have a stake in it, in investment - not actual, real use. Just a 'hope it goes up, so I can make money like a bandit.'

The truth is that if one really wanted to assist Bitcoin, they'd buy a few; not a treasure trove for speculative investment.

The really sad thing about this situation is that Bitcoin investors are not the usual class of investors that measure safety, volatility, and other factors. These are your hardware monkeys and computer geeks who have 15k saved up, find an investment they can finally relate to, and foolishly attach all their emotion to their savings floating inside a glass ball. I wish our kind could be more rational when it comes to enthusiasm and unbridled ignorance surrounding bits and bytes. Because it usually doesn't hurt us but when it does, we never see it coming.

<comment><USER3> The vast majority of bitcoin users aren't in it just for speculation. Besides this only affects Mt. Gox and not the dozens of other trade floors that are legitimate. If you'd do even a modicum of research you'd find there is more to Bitcoin than ponzi scheme price pumping.

<comment><USER4> _dozens of other trade floors that are legitimate._

Do any of these "legitimate" trading houses let you sell Bitcoins and then /take out the money/, yet?

Until that's actually possible, for decent amounts, as a regular thing, Bitcoin's price is a sham of artificially trapping and holding people's money.

<comment><USER3> I sold 2BTC on coinbase (a YC comapny) recently. So no the price is not a sham.

<comment><USER4> That's not enough evidence to support that claim.

When anyone can sell any amount of bitcoins they like so the price could adjust freely, then the price would not be a scam.

<comment><USER3> But anyone CAN sell bitcoins freely. Just because you've tied them up in an exchange doesn't prevent bitcoins from being sold.

</comment></comment></comment></comment></comment></comment><comment><USER5> "We are currently at a turning point for the business. I can't tell much more for now as this also involves other parties."

No shit it involves other parties: all your customers, for one.

</comment><comment><USER6> Wow. I can't believe with all of the money that they made that they can't afford a professional crisis management team.

This is the end for Gox and Karpeles. There is literally nothing they could do at this point to turn it around.

<comment><AUTHOR> To quote /r/Bitcoin:

        "If there will ever be a book on MtGox, it will have two Chapter 11s"

</comment></comment><comment><USER7> Turning into an epic fiasco, I'd say. This story is unfolding like the second half of every episode for American Greed that I've ever seen on CNBC. You'd swear it's the same story over and over just the character names have been changed.

My prognosis is Bitcoin will survive and thrive as a technology, but current Bitcoin businesses and investments are about to take a big hit.

</comment><comment><USER8> This is what their website says: " Dear MtGox Customers,

In light of recent news reports and the potential repercussions on MtGox's operations and the market, a decision was taken to close all transactions for the time being in order to protect the site and our users. We will be closely monitoring the situation and will react accordingly.

Best regards, MtGox Team"

</comment><comment><USER9> Well yes, it is at a turning point. It has turned straight down. It has hit rock-bottom and is starting to dig.

</comment><comment><USER10> So they got acquired and all the Bitcoin investors will get pennies per each coin. I think that's the best case scenario right now.

</comment><comment><USER11> Sure. A turning point from bad to worse.

</comment><comment><USER12> I just hope MT Gox doesn't take the rest of us down with them.

</comment><comment><USER13> This was posted over 2 hours ago..... Whats with the duplicates? Can't people use search here?</comment>


Ask HN: When do you guys start writing unit tests? - <AUTHOR> Do you guys follow TDD approach? If you guys do, at what point do you start writing test cases? Any advantages you found by following this approach? <comment><USER2> Typically for any personal projects I will do it before any large refractors then keep on top of code coverage going forth. I find this approach let's me move fast until I reach a level of seriousness.

I sometimes use TDD when adding new functionality, I even created a relatively popular YouTube video on the topic. I find it most useful when I'm coding a particularly complicated function, helps me think through the problem better.

</comment><comment><USER3> I typically don't for my personal projects, but if I was going to publish my code or start collaborating in git it would move toward the top of my todo list.

Or if I started weaving together lots of different parts of the project.</comment>


Peter Thiel on "Founder as Victim, Founder as God" (2012) - <AUTHOR> http://blakemasters.tumblr.com/post/24578683805/peter-thiels-cs183-startup-class-18-notes-essay <comment><USER2> Delusional.

<comment><USER3> Maybe so, but please don't post unsubstantive comments to HN.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


"People of class drink alcohol" - with charts which start at zero - <AUTHOR> http://img340.imageshack.us/img340/2190/everdrinkalcoholicbever.png

<comment><AUTHOR> Thanks to the original article[1] for including a link to the raw data.

I think this shows the distribution more clearly, however, I still don't think that any of the demographic categories listed maps to "class".

[1] <http://news.ycombinator.com/item?id=1313745> [http://blogs.discovermagazine.com/gnxp/2010/05/people-of- cla...](http://blogs.discovermagazine.com/gnxp/2010/05/people-of-class-drink- alcohol/)

<comment><USER2> wordsum is a vocabulary based IQ test. Maybe the author refers to intelligent people rather than people with exceptional taste.

Though FWIW, I don't take much stock in the ability of most IQ tests to measure intelligence, since it seems a bit silly to put it on a single dimensional scale.</comment></comment>


Show HN: Udemy course on learning Swift by examples – free for the next 24 hours - <AUTHOR>

I will be adding new videos everyday until the content is finished. I have 50 videos right now https://www.udemy.com/swift-learn-apples-new-programming-language-by-examples/ <comment><USER2> @OP thanks for share. Was planning to learn something new. Swift will surely be a good choice.

Udemy seems to be super fast. WWDC ended just couple of days ago and they have produced the video tutorials for the same.

<comment><USER3> As for WWDC, the videos from the Swift sessions are on YouTube: [https://www.youtube.com/playlist?list=PLxwBNxx9j4PUPPcHVrrCH...](https://www.youtube.com/playlist?list=PLxwBNxx9j4PUPPcHVrrCHRPmtrsA_Tmzq)

</comment></comment><comment><USER4> Is it free just for the next two days... so I have to complete it by then? Or if I enroll within the next two days it's free forever? I've never used Udemy before.

<comment><USER5> > __This course will be free for 24 hours. Enroll before June 6th 6:00pm PST > and get all future content for free! __

</comment></comment><comment><USER6> From the TOC, it seems pure Swift language course. I wish you could put more of iOS/OSX SDK content there.</comment>


Prismic.io for Laravel - Re-defining the CMS - <AUTHOR> http://blog.enge.me/post/prismicio-for-laravel-re-defining-the-cms

<comment><USER2> Feedback: I really what you write, but your design is horrible here (Win7/FF24). Without Readability I just would have closed the page.

<comment><AUTHOR> Sujan, thanks for the feedback. I know that the typeface is pretty thin... I've received the feedback from others as well. I have a retina display, so it looks better to me. I'm in the process of reviewing my typeface options. ([http://www.youtube.com/watch?v=evzc2hoW- qg&feature=player_de...](http://www.youtube.com/watch?v=evzc2hoW- qg&feature=player_detailpage#t=61))</comment></comment>


48-year timelapse video of Alaska's glaciers - <AUTHOR> https://youtu.be/E4Zc_KuXMkA <comment><USER2> 1972 was a VERY cold year. It's a shame that NASA doesn't have observations back to the beginning of the 20th century. We know from terrestrial observations that arctic ice cycled down (below where it is now) in the early 20th century, and then ramped up and peaked sometime around the beginning of this video. It was cycling down again until about 10 years ago and has been relatively stable since then.</comment>


GoLimited - UK Limited company formation £4.50, where's the catch? - <AUTHOR> https://golimited.co/

<comment><AUTHOR> Found the catch (though it's not really a catch, easily worth the discounted price):

"Unlike other formation agents, GoLimited.co is not a money-making exercise – we don't offer any "premium" packages or add-ons, and only charge £4.50, making your incorporation VAT-exempt. As more people incorporate our costs will go down, and so will the price. Our service has proven so popular that the price has already fallen from £14. We just want people to incorporate quickly and easily – and if you decide you want to sign up with Crunch afterwards, that's great! If not, no sweat – we're not going to pester you."

</comment><comment><USER2> I've been looking at these companies and would be interested in any advice as to whether I should register a company myself or use such a service. I've heard people say such things as "if you can't register a company yourself, you won't be good at business" however I'm interested in developing the product, not form-filling. Views?

<comment><AUTHOR> There's two aspects of running a business in question here. One is the bureaucracy of reporting your existence and finances to the Companies House and HMRC, the other is managing yourself and any employees.

The former has become so complex and time consuming that I opt for using services to do the job for me, whilst I concentrate on making a living. (or at least I hope to when and if I decide to go Freelance 100% of the time) It's much easier to have professional bureaucrats handle the bureaucracy than learn how to do it myself.

That being said I'll never do something without a bit of research, and the more transparent the service is the better. Communicating in simple terms what's being done with my information is important.

<comment><USER3> This is great advice. You should understand what's going on, what your company needs to file and to who. However, get your accountant to do it for you, things such as Corporation Tax / VAT returns are complicated, and you will get no sympathy from HMRC if you screw up.

Your accountant will also be able to advise you on company structure, and most importantly some of the significant tax savings you can make when incorporating:

[http://www.rossmartin.co.uk/index.php/incorporation/607-good...](http://www.rossmartin.co.uk/index.php/incorporation/607-goodwill- a-incorproaton-tax-issues)

You can basically sell any assets (including 'goodwill' which is the valuation of the business over and above its assets) from the sole trader to the Ltd Co.

This is a great way of removing money from the company at 10% (CGT Entrepreneur's rate) rather than your income tax rate)</comment></comment></comment>


Search the web from Vim - <AUTHOR> http://hartley.io/blog/2012/07/21/search-the-web-from-vim/

<comment><USER2> Works great, thanks!</comment>


The ten years bug: solving a bug that wont go away - <AUTHOR> http://blog.getjaco.com/the-ten-years-bug-solving-a-bug-that-wont-go-away/ <comment><USER2> Just another example of how RTFM goes a _loooooong_ way!

<comment><USER3> Probably an unfortunate case of copypasta</comment></comment>