How to "hack" yourself into conferences for free - <AUTHOR> http://blog.mixergy.com/conferences-for-free/

<comment><USER2> Not a fan of the copying/borrowing a badge ideas. If you don't support whatever the conference is covering, you shouldn't be there. If you do, you shouldn't mind fronting some cash to support the event.

<comment><USER3> Sometimes it's not possible to front cash to support the event due to lots of factors having nothing to do with lack of money or laziness. All the people who asked me about copying my WWDC badge were people who had the money to do so (and I know at least one tried to offer even more money than they were worth to existing attendees willing to sell their tickets), but Apple was actively refusing to sell any more tickets to the event due to having reached maximum capacity. I certainly hope that's not the case next year, but who knows. Moscone West is not exactly huge.

<comment><USER4> I realise I'm stating what for most will be obvious here but there is a reason why they stop selling tickets once they reach maximum capacity.

If there is a fire they may not be able to get everyone out safely if there are too many people. I could dream up other possibilities but hopefully the idea is already clear.

<comment><USER3> I understand that. My wishing for next year was for Apple to move to a larger venue to have increased capacity, not to illegally stuff more people into an overcrowded venue.

</comment></comment></comment></comment><comment><USER5> How to "hack" free food: just steal it!

</comment><comment><USER6> While 3 out of 7 point are "stealing" in some capacity there is some goodness in here, specifically:

 _Volunteer_ , _Offer to write_ , _Offer to speak_

As someone who's job it is to go to conferences to speak and look after the Yahoo booth I see a lot of conference action.

You will get so much more out of a conference by participating in a positive way than shiestering your way in. Both in the way people treat you but also your motivation to engage with the topics. I've met some really great friends and colleagues by offering to blog for them out of the blue, or help out when a speaker drops out.

<comment><AUTHOR> You're right. Those 3 methods are best.

Let me ask you this though. If you knew that someone in the audience was so eager to hear you speak that she borrowed her friend's badge, would you be upset?

<comment><USER7> If I heard everyone in the audience was so eager to hear me speak that no one bought an entrance ticket, and therefore I would not be able to fund my research that made my speeches so interesting, I would doubt their intentions.

</comment></comment></comment><comment><USER8> Walk in the service entrance, then act like you belong there. Will work for most conferences.

<comment><USER9> You might accidentally end up volunteering that way...

</comment></comment><comment><USER3> I had a few people ask if they could photocopy my WWDC 2008 badge (twas sold out, all about iPhone, et cetera). I can't believe how trivial it is for some of the conferences I've been to either. I could easily see that happening, but I wonder just how many people actually do so.

<comment><AUTHOR> In her book, I think Sarah Lacy has a few examples of people doing that at the Web 2.0 conference.

</comment></comment><comment><USER10> Though it's fun to sneak into places (I had my share), it's better in the long run to use participatory strategies (e.g. what the author listed: volunteer, blog, speak, party)

Or better, organize and start your own conference. We are entrepreneurs after all.

</comment><comment><USER11> Hi, my name is PG let me in.

<comment><USER12> Claim to be nickb instead; apparently nobody knows his real identity anyway.

<comment><AUTHOR> I tried finding out who he was and interviewing him. I didn't get anywhere. I didn't realize he was such an unknown. Seems like a sharp guy.

<comment><USER13> His life story:

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


2011: The Year the Check-in Died - <AUTHOR> http://www.readwriteweb.com/archives/2011_the_year_the_check-in_died.php <comment><USER2> So two points here:

1) Usage on foursquare is up 40% since the beginning of the year.

2) We've always seen the checkin as just the beginning of what we want to accomplish. With the launch of explore and specials 2.0 we've started to get more of our vision out into the world. You can expect more of this sort of thing from us over the course of 2011.

-harryh, engineering lead @ foursquare.

ps: Want to be a part of it? We're hiring! <https://foursquare.com/jobs/>

<comment><USER3> explore = chasing yelp

specials 2.0 = chasing groupon

Foursquare's vision appears to be looking backward. Dennis Crowley's been thinking about this space for 10 years?

<comment><USER4> Those are the natural extensions to the product. What would you rather do? ultra-checkin, super-checkin and more badges. "Cool quotient" is good enough to begin you with; but you need to get some real value out of it as well.

<comment><USER5> What real value can a checkin service potentially provide? (Serious question) I think there are a few things: deals from local businesses, meeting new people, interaction coordination.

Deals are booming now. Groupon and LS are huge and do manage to provide me with value. I think Groupon's upcoming mobile offering is brilliant. The likes of foursquare can use this model successfully as well.

Meeting new people is always a tough one, but it is what people want. Give someine a way to make new friends through your service in real life in a safe way and you'll strike gold.

Interaction coordination is probably the most interesting thing I can think of. Imagine communities organizing events by using foursquare. You get invites. You check in. You pay for the event from your phone. You monitor long distance races by the participants' checkins. You participate in live events virtually by having your name flash on a giant screen. At a town fair you are randomly assigned a person and if you find them within a time limit and check in together you get a prize. A giant game of assasin based on checkins.

The checkin itself is just a tool. Playing with a hammer is fun at first but unless you have something to nail it will get boring.

<comment><USER4> Thats exactly what I meant to say.

Too bad the sarcasm in the first sentence is lost on you.

<comment><USER5> No need to be brash. I understood your sarcasm. Just continued the thought further.

<comment><USER4> My bad then. Since you were trying to make the same point as I was, I was under the impression you got it wrong.

To be fair, most replies in HN are arguments than "thought continuation"

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Foursquare is something that became wildly popular at the same time smart phones were becoming more and more ubiquitous. It is a cool sort of "Hey check out what my new phone can do" kind of tool.

As smart phones are becoming more the standard and less the shiny-new-thing, though, Foursquare and the like are turning out to not actually provide that much value, and are losing their stickiness.

</comment><comment><USER7> Personally, I think that 4sq should have taken up the acquisition offer that it supposedly had.

No matter how much they try and innovate and launch new features, the premise of 'checking in' is forcing a user behavior - and sooner or later, checkin fatigue is going to set in. Just like most other shiny things, the shimmer wears off real quick.

<comment><USER8> I agree. Not to mention that for many places the whole check-in bit a moderate hassle.

EG: Panera Bread.

Go in to get a coffe and a bagel in the morning. Take out phone, launch app. Oops, can't connect. Panera has free wifi, but I have to open the browser on my phone and check a little box and hit submit. Go back to the app, let it figure out where I am. No, I'm not at Baby Gap (next store over) at 7AM, I'm at Panera. Finally check in. And then... nothing... kind of anti-climatic really.

Meanwhile, I'm juggling credit cards and rewards cards and a drink and a bagel with the cashier.

If I'm lucky, I might get to be Mayor and get $1 off or something, which equates to earning about 2 cents for every checkin.

I played with 4sq and some of the other location services for a while, but just never got any value out of it proportionate to what I put into it time- wise.

</comment></comment><comment><USER9> While the article raises some valid points, I question the use of compete.com figures to make any claims about foursquare's declining traffic.

<comment><USER10> Compete.com measures _something_ , and whatever that something is, it's declining.

<comment><USER11> Latest stackoverflow blog post also shows that site declining on compete.com, despite all other analytics showing it growing.

[http://blog.stackoverflow.com/2011/04/stack-exchange- traffic...](http://blog.stackoverflow.com/2011/04/stack-exchange-traffic- still-growing/)

</comment></comment></comment><comment><USER12> Location based checkin sites are basically games. The problem is that, like all games, people eventually get tired of them and move on to something else.

<comment><USER13> Tell that to Zynga and Blizzard. Social games (which Foursquare would fall under) have a very long-lasting grip on people.

</comment></comment><comment><USER14> Foursquare reminds me of this fake RPG called Progress Quest[1]. It's like SETI@Home, but for RPGs. In other words you do nothing while it automatically advances progress bars on the screen and your character advances and there is nothing else to it. Ironically, a lot of people actually wind up running it for quite some time, myself included, but then the joke ends and they stop. To me, it seems inevitable the same will come of Foursquare.

[1] <http://progressquest.com/>

</comment><comment><USER15> Declaring a whole class of new and growing startups as "dead" is the most hipster thing I can imagine: Checking in? I guess. _I_ haven't checked into a venue since 2010.

There is some interesting thoughts in here but they're so mixed in with flawed analysis that I don't think I actually learned anything from reading it.

<comment><USER16> True, except for the fact that Foursquare rode to prominence on the backs of hipsters, roaming Brooklyn and SXSW in droves with their smartphones. So, one might argue that if hipsters have moved on, then that's a leading indicator.

</comment></comment><comment><USER17> When I first started using foursquare it was neat but I didn't get the appeal. Then I grabbed my first mayorship and for a few months, I checked in religiously. Recently, checking in to places has become a chore. I still do check in when I remember to, but it's not a priority any more.

<comment><USER18> No-one has ever explained to me why I would want to be the 'mayor' of anything.

I don't even see in what sense it's a game. What. I have to go to Starbucks more than some other person to win?

I thought I was missing some important aspect like I did before I 'got' Twitter but in this case apparently not.

</comment></comment><comment><USER19> Checking-in is tedious. Most of the benefits of location-based services are happening through better uses of wireless communication. Excluding GPS, Shopkick uses high frequency audio signatures and ZuluTime just patented some new wifi based stuff ([http://techcrunch.com/2011/04/11/zulutime-issued- patent-for-...](http://techcrunch.com/2011/04/11/zulutime-issued-patent-for- location-aware-wireless-networks/)).

</comment><comment><USER20> I was quite enthusiastic about check-ins when the good old Plazes service was launched back in 2004. One of the great things about that service was that originally check-ins were based on the WiFi access point you were connected to. This made them effectively automatic.

Unfortunately they had a very problematic rewrite from PHP to Rails that lost them quite a bit of their user base, and later Nokia bought the company.

Here are some notes from the one and only PlazeCamp they held just before the acquisition:

<http://bergie.iki.fi/blog/plazecamp/> <http://fourstarters.com/2008/01/17/plazecamp-wrapup/>

The key points with Plazes were: automatic check-ins (it only asked you for information when nobody had connected to that network before), nice statistics (how much you travel per day, who spends time in the same place as you), and also some fun stuff like racing to see who registers most new plazes.

</comment><comment><USER21> The author gives four reasons for why people check in. He didn't mention the reason I would like to use a checking-in service (I'm not sure if there is a popular one like this yet). I'd like to check in at a bar or a club (I often go alone) and have the service match me with another checked-in person (or people) to hang out with. Instead of using the service to hang out with people I already know, I'd like a service to help me meet new people.

Seems like a check-in service could be a nice way to lower the barrier of introducing oneself to a stranger. It's so easy to talk to strangers online, it would be nice to bring that to the meat world.

<comment><USER16> I think the author's point is that this sort of usage is only actually feasible with a very narrow demographic, in one or two places in the country -- maybe New York, Boston and San Francisco. Elsewhere, the chance that there would be even two people in a given bar or club running that app and looking for new friends at the same time is basically zero point zero.

Besides that, in the introductions world, "meeting new friends" is marketing- speak for meeting people to date, or more precisely, to hook up with. And, I can imagine, as the author does, that women would be pretty squeamish about getting involved with a service that announces their presence in a particular bar and invites people to meet them.

In any case, Loopt has this service, or at any rate did at one point -- in one of their iterations, they cordoned it off into its own application (Loopt Mix). I turned it on briefly once, to see what it would do, and to be honest, it was pretty creepy, a lot like the parts of Craigslist that have been shut down ...

<comment><USER21> Yes, those would be the two big challenges:

* It needs to be widespread to work well.

* No creepy factor.

</comment></comment></comment><comment><USER22> OK, so please bear with me for a second. What the heck are these check-ins about? foursquare? Huh, I can't make any sense of their horrid front page, what is this about? Where is the explanation (no, not a video, thank you I _can read_ )? Allow me to play the grumpy ol' man here, but this look like another useless toy for teens. And yes, I include facebook and twitter in this category, too.

<comment><USER23> You're judging a book by its cover. Why not try them out before you criticise?

Also, today's teens are tomorrow's free-spending twenty-somethings, so their preferences can be quite relevant for many businesses.

<comment><USER22> > _You're judging a book by its cover._

I'm judging a website by its front page, godammit. What else could I do? I clicked a bit around, but my PC slowed to a crawl, so much for a first good impression.

> _Why not try them out before you criticise?_

I could try it out if I could make any sense of it. I don't have time to open accounts on random websites just in case it may be interesting. I'm tech-savvy enough, but if I can't understand what a website is about at first glance, either 1° it's definitely targeting an audience I'm no part of; or 2° there's a serious presentation problem.

So I'm not criticizing, I'm leaning towards the gentler side : I'm probably not their target. Or else, in case they're actually targeting 40yo geeks and entrepreneurs, they may be doing it wrong.

</comment></comment></comment><comment><USER24> I also thought Foursquare was a fad. Who cares if you checked in there? Who cares if you're the mayor?

I actually have one LBS idea that for me would be really useful, I'd love to have it, and thinking about building it. However I'm slammed with other stuff right now and I'm loathe to switch to Yet Another Shiny Thing rather than build up an existing project further.

(Credentials: I wrote the original Postabon/Signpost iPhone app (a deals LBS startup now backed by Google Ventures), and the iPhone app for a different and more recent AR/ecommerce LBS startup that's currently in stealth.)

</comment><comment><USER25> I agree with the article's predictions with respect to foursquare, but I'm not sure about Facebook, there's still tremendous potential there. Facebook appears to have released Places without putting much thought into it beyond allowing people to simply check in wherever they are and share it with their friends. But I wouldn't be surprised if they were working on incorporating deals with local businesses, etc on a much larger scale, some time soon, either on their own or in conjunction with Groupon or Living Social.

<comment><USER26> facebook was actually pretty quick to launch deals:

<http://www.facebook.com/deals>

</comment></comment><comment><USER27> \- Look at compete.com traffic estimates

\- Extrapolate

\- Make assumptions based on extrapolation

\- Write sensationalist headline

</comment><comment><USER28> Missed one reason to check in: to promote the location (being a fan). That alone probably isn't enough to sustain a checkin service, though.

</comment><comment><USER29> The article made me wonder: are any of these accurate enough to be used for "where did I park"? I would love it if my smart phone had a way to eliminate "standing around in a parking lot looking bemused" from my day. I would love it so much that I would permit it to have a "social" component.

<comment><USER30> Why can't you just add a star in Google maps or something? it should be accurate to two meters... I bet there are tens of apps that do it.

<comment><USER31> there are apps for it, but i've found launching any app as I leave the car and head in to a shop to be too much trouble. By the time I get the app loaded and ready to record, I'm many meters from the car's location.

It'd be better if the device had a feature to just replay your GPS locations for the last 60 minutes.

</comment></comment></comment><comment><USER32> And I thought this was about some new source control system that didn't need checkins.

</comment><comment><USER33> Yes, yes, sure, in the greater sense of things everything is dead or dying. However, I think it's a bit silly to write off a phenomenon, market, or product while it's still in the explosive growth stage. I personally don't like foursquare but it seems to be going even strong as ever, which is all the more impressive after having weathered some rather strong competition (such as facebook).

</comment><comment><USER34> The check-in is way too egalitarian in order to transfer any perceived social wealth through using the service.

What value can it have when I spend $300 on tickets to an event and some schmuck in the nosebleed seats who spent $30 can check-in with the same social weight? He's not in my class and I don't want him to be associated with me, never mind competing with me in a game.

It's all fun and games until the normals start playing.

</comment><comment><USER35> Lacking context. What's a "check-in"?

</comment><comment><USER36> correction: foursquare is up to 7 million users, I spoke to dennis a week or two ago. pretty impressive by comparison, I think Facebook had 6 million at their year 2 mark.

<comment><USER37> Woah there, wait just one minute. Facebook had 5.5 million active users after two years _[1]_. Foursquare has 7 million registered accounts _[2]_. I shouldn't have to explain how different those two metrics are.

[1] <http://www.facebook.com/press/info.php?timeline> (active user defined as having visited in the last 30 days)

[2] [http://techcrunch.com/2011/02/21/foursquare-closing-in- on-7-...](http://techcrunch.com/2011/02/21/foursquare-closing-in-on-7-million- users/)

<comment><USER36> ah missed the "active" part ;) I quoted that from memory on my phone--not an apples to apples comparison but makes me wonder. I'm interested in what portion of 4sq's users are 'active', so I'll see if I can do some digging and find out.</comment></comment></comment>


How does a beginner start becoming a web design expert? - <AUTHOR>

<comment><USER2> A good way to start is to find some templates on <http://oswd.org> & modify them. Then, once you can swing it, start building stuff from scratch.

Oh and find a copy of photoshop or a comparable graphics program. Gimp is good (and free), but if you can find PS for cheap, go for that.

<comment><USER3> I agree with Sam. I've long since decided that while I'm keenly interested in how to build clean and very usable sites I just don't have the skills to provide the level of polish I want.

If you find out that you don't have the eye for design, don't waste tons of time (like I have), use an open source web design and focus on what you're really good at doing.

</comment></comment><comment><USER4> Get familiar with FireBug, by far the best Firefox extension for web development. ( <http://www.getfirebug.com> ) It's how I learned CSS. If you're interested in the user interface/experience side of design, it'll help you there too. It's got great Javascript tools.

There's a bit of a learning curve, but Firebug seriously changed the way I design and code.

Other than that, do what you'd do to learn any other creative skill -- find examples that you love, and dissect them. Figure out exactly what it is that turns you on and incorporate those details in your own work. Good luck!

</comment><comment><USER5> Read A List Apart's articles, it's dedicated to people who make websites. This is, "A Guide for New Readers":

<http://alistapart.com/articles/ALAprimer>

<comment><USER6> Ooohh A List Apart, very good choice, I go there at times to get designs for my websites.

</comment></comment><comment><USER7> I wouldn't worry so much about graphics programs - after all, there are no graphics on this site and you use it, right? Start by learning how to do valid markup and get good at CSS. I second the recommendation of <http://alistpart.com>

</comment><comment><USER8> A couple of good books to read too: 1) Don't make me think 2) Designing interfaces (by Tidwell) 3) Defensive design for the web

Anyone have additional books that they've read?

<comment><USER9> the Magic Ink article at worrydream.com/MagicInk is the best I've read on interface design.

</comment></comment><comment><USER10> There's a _lot_ more to being a web design expert than learning to code in HTML and CSS.

So sayeth Jeffrey Zeldman:

Information architecture. Usability. Accessibility. Web standards. If you don't know about these things, stop designing websites until you have learned. Competence in graphic design is merely a baseline; it does not qualify you to create user experiences for the web.

Every time I think I can stop talking about these obvious, simple truths, some crazy bad 90s style train wreck hits me headlong and makes me weep anew.

(<http://www.zeldman.com/2007/04/18/cant-link-with-em/)>

</comment><comment><USER11> Expertise in any artistic en devour, whether it be painting or chess is best learned by studying the masters. So find the website designs you like and take the time to try recreating them. If you need an design application I recommend the GIMP.

<comment><USER12> I've often wondered how much of the explosion in web creativity can be attributed to the transparency of HTML -- you can "view source" any page and find out exactly how the designer created that cool effect. By comparison, Flash is opaque. Yes, there are tools that let you dig in to the ActionScript and whatnot, but you don't have the immediacy of seeing it right there in your browser.

<comment><USER13> A whole lot of it. Consider the influence of GMail and Google maps as recent examples.

</comment></comment></comment><comment><USER14> for me it was the same way that i learned programming or guitar:

1\. start with tutorials or poking at an existing design until it does what you want; learn the fundamentals of html and css from a dummies-level book or tutorials

2\. find motifs or patterns you like, and reverse engineer (i.e. steal) them: specifically, start with a canvas with the original image on the left and try to create it from scratch on the right

3\. repeat 2 until you have a toolkit of techniques (e.g. web 2.0 motifs like gradients, rounded corners, patterned backgrounds, reflections, all that cliched shit :)) and can put together things from scratch

4\. integrate more formal theory (graphic design books, typography, photoshop/illustrator technique, web design books, etc.)

your first few designs will suck, but you'll get better :) but definitely learn by doing.

</comment><comment><USER13> To me, a web design expert needs intuition about usability, an eye for graphic design, and the skills to use photoshop to create mockups and then turn them into clean and robust CSS & HTML.

You can bootstrap some of those by starting out with someone elses attractive, nicely implemented templates, but you'll still need some sense of typography, usability & CSS/HTML skills to adapt them to your own app/site.

</comment><comment><USER15> I'm not a web design expert (or any kind of expert) but I would think:

1\. Read/observe.

2\. Design web pages.

</comment><comment><USER16> One tag at a time?

</comment><comment><USER17> Use YUI CSS grid. It's like coding Java SWING Layout minus listener

</comment><comment><USER18> get someone to mentor you?</comment>


Blockchains: How They Work and Why They'll Change the World - <AUTHOR> https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world <comment><USER2> From the article:

 _Can a blockchain find people offering rides, link them up with people who are trying to go somewhere, and give the two parties a transparent platform for payment? Can a blockchain act as a repository and a replay platform for TV shows, movies, and other digital media while keeping track of royalties and paying content creators? Can a blockchain check the status of airline flights and pay travelers a previously agreed upon amount if their planes don't take off on time?

If so, then blockchain technology could get rid of Uber, Netflix, and every flight-insurance provider on the market._

Really? All these applications can also be built using 'normal' systems architectures. If you build them on a blockchain, then you also get:

       - A very low rate of transactions
       - A very high computational cost to mine new blocks
       - A very high storage cost for each node
       - No way to reverse transactions in the case of error or fraud

So somehow the benefit of putting these applications on the blockchain has to outweigh these costs. The only benefit I can see is transparency. When you have information that must be publicly available and immune to tampering, then a blockchain could be a nice way to achieve that.

But for these examples? I don't see any reason to use Ethereum or a blockchain at all to implement them. Can someone help me out here?

<comment><USER3> Looking at all these pessimistic comments I can't help but wonder if this is what the op eds in the newspaper looked like while the internet was being built. "its too slow, and even with our best compression transferring a movie would take a month. Not gonna happen. Computers are too expensive for most households." etc.

If you want to keep middle men in between most things that we could potentially do programmatically, thats cool. I'm on the hype train.

\- low tx rate? not for long \- high computational cost? Security feature. Makes fraud/hacks very expensive. If you think energy conservation is more important, other chains don't have this cost (proof of stake). \- high node storage cost? mining fees & block reward more than outweigh this. not everyone needs to run a full node (but anyone can). \- no way to reverse transactions? feature. you can always add arbitration / escrow. openbazaar does this very nicely

If you go the traditional route, you will always have a company in the middle, taking their cut or selling you out behind the scenes.

<comment><USER4> Thank you for your comment. Looking at all the doubt and hate about blockchain & cryptocurrencies on HN lately, I personally can't help but wonder where have all innovators gone.

<comment><USER5> Confirmation Bias at work. You're invested, so you want it to take off.

Yet none of those blockchain enthusiasts could tell me a _single_ USP that blockchains had over storage in a normal database on any concrete use case, with the sole exception of cryptocurrencies.

And the reason is simple: all those applications have none of the properties and problems the blockchain solves - which is an elegant niche solution tailor made for mutually mistrusting entities working together on a distributed ledger. That barely exists in real life.

Centralized systems are what you want in 99% of cases. They're more reliable, better controlled, have infinitely more throughput and usually, you _want_ to be able to roll back transactions under certain conditions (fraud, mistakes, etc.)

Sure, you _could_ store anything in a blockchain. Sure, something yada yada blockchain could "replace Netflix". It's just that apparently nobody can tell me _why_.

My only concern right now is that I can't short Blockchain technology because the relation of hype to actual usefulness and potential is so incredibly large that it will drag a big chunk of the tech sector down the drain.

In stark contrast to AI which is just as hyped, but isn't just supposed to "change everything" since years - it's actually starting to do so on a spectacular timeline.

<comment><USER6> > Yet none of those blockchain enthusiasts could tell me a single USP that > blockchains had over storage in a normal database on any concrete use case, > with the sole exception of cryptocurrencies.

> And the reason is simple: all those applications have none of the properties > and problems the blockchain solves - which is an elegant niche solution > tailor made for mutually mistrusting entities working together on a > distributed ledger. That barely exists in real life.

> Centralized systems are what you want in 99% of cases. They're more > reliable, better controlled, have infinitely more throughput and usually, > you want to be able to roll back transactions under certain conditions > (fraud, mistakes, etc.)

While we're high on the hype cycle for blockchains and crypto currencies, it's easy to find actors that do not understand the limitations of the technology. It has heavy drawbacks when compared to centralized systems. That is true, I agree with that part of your comment.

What your position misses, are the huge _unrealized_ upsides of blockchain tech. It's natural, because they are potential, unrealized and, as such, difficult to defend. Let me try my hand at it anyway, as high level as possible so we don't get lost in use case minutiae.

Blockchain allows you to eschew the need for a single central trusted party. This allows for fluid ecosystems, removing the need for a monopoly/oligopoly in scenarios that today require one. This removal of a market deficiency is known to increase innovation, through competition.

If you find it difficult to imagine use scenarios for blockchain, look for deficient markets caused by the need for centralized trust: monopolies and oligopolies. In each, you'll find an opportunity to create a more competitive market through blockchain.

<comment><USER7> > _If you find it difficult to imagine use scenarios for blockchain, look for > deficient markets caused by the need for centralized trust: monopolies and > oligopolies. In each, you 'll find an opportunity to create a more > competitive market through blockchain._

How? This is just vague handwaving that doesn't actually explain how the blockchain can solve real problems. As of now, bitcoin is the only demonstrable use case for a blockchain, and while I don't think anyone could convincingly argue that bitcoin is _useless_ , it's not going to cause an economic revolution like the advent of the internet.

<comment><USER3> > How? By simply eliminating intermediaries. A middle man always takes a cut > somehow. If you can eliminate him, both parties can enjoy better rates. Here > are some non vague ways blockchains can help real problems:

\- What if a kind of youtube existed where advertisers paid content creators directly instead of youtube taking a large percentage? And it was censorship resistant. \- What if we could build app stores that don't take a 30-50% cut. \- How about an entire p2p marketplace without fees like ebay? openbazaar.org \- What about getting paid for things that are impossible right now because of CC tx fees? This unlocks microtransactions & an entire attention economy (see yours.org, steemit.com, more incoming) \- How about p2p digital rights management to allow artists to keep more of their income? Several in the works. \- How about any service that exists to keep records? I would love to see the day Pacer was replaced by a blockchain. \- What if a kind of reddit could exist without centrally moderated channels and armies of fake users? \- What if p2p rented data storage could be a fraction of the price of dropbox without selling your data? \- What if you could rent computing power in a p2p fashion? \- What if network/VPN rules could be tokenized in the hardware and network access could be metered and charged per minute in crypto? \- What if you could receive payroll as a minute by minute stream? \- What if the lottery was provably fair and 1000 times less of a ripoff? \- What if we could replace obviously flawed political polling with prediction markets?

I could write this list all day. Not vague handwaving, all of these things are being worked on or already exist.

<comment><USER7> > _What if a kind of youtube existed where advertisers paid content creators > directly instead of youtube taking a large percentage? And it was censorship > resistant._

Youtube taking a large percentage has nothing to do with the nature of the technology and everything to do with the fact that they have no competition due to insane network effects and highly optimized research driven UX. Also hosting, indexing, and reliably streaming hundreds of TB of high quality video is not a trivial problem. Further, you cannot escape censorship when your concern is advertising revenue.

> _What if we could build app stores that don 't take a 30-50% cut._

Once again, this is not a technology problem: Google and Apple will never allow app store competitors on their platform, otherwise someone would have already done this (and it _was_ done during the early iPhone days with the Cydia store available only by breaking Apple's security - no blockchain required)

> _What about getting paid for things that are impossible right now because of > CC tx fees?_

The same problem exists with bitcoin tx fees such that all the proposed solutions to this problem involve finding a way to avoid the blockchain at all costs.

> _This unlocks microtransactions & an entire attention economy (see > yours.org, steemit.com, more incoming)_

Microtransactions are not practical on the blockchain and _most_ microtransaction concepts are DOA because nobody except crypto-enthusiast wants to pay 10 cents to upvote memes and cat pictures when they can do that for free, with a better selection, on sites like reddit. There is probably some limited potential for microtransactions when it comes to gaming or maybe publishing content, but once again, the real problem has very little to do with technology and much more to do with the fact that most content is crap and people don't want to pay for it.

> _How about p2p digital rights management to allow artists to keep more of > their income_

Once again, not a tech problem. People would happily pay the artist if the artist self-published, but most don't do that because publishing through a platform or another distributor is the only practical option for discoverability. Once you're discovered, the payment aspect is a non-issue, e.g. famous artists who already deploy "pay what you want" style stores (Radiohead, Louis CK, Humble Bundle etc).

> _How about any service that exists to keep records? I would love to see the > day Pacer was replaced by a blockchain_

Why? What problem does this solve? Storing records is already a solved problem. There are plenty of non-blockchain techniques for storing, auditing, and cryptographically verifying and securing records without any of the PoW drawbacks. Please offer even one practical example.

> _What if a kind of reddit could exist without centrally moderated channels > and armies of fake users_

First of all, the blockchain does not solve the "fake user" problem, so I'm not sure what that means, but centralized moderation is not a problem for most people who just want to browse content and don't really care if someone gets banned for spamming "nigger" in comments. For those that really care about totally unbridled free-speech there are already non-blockchain alternatives like voat.co... what does a blockchain bring to the table?

> _What if p2p rented data storage could be a fraction of the price of dropbox > without selling your data_

Economics of scale guarantees you'll never be able to beat a centralized solution like AWS when it comes to this type of thing. You might see some cheaper options for a time, but once the market catches up to the fact that AWS is achieving orders of magnitude cheaper storage than a faux meshnet of consumer harddrives, you'll find that this idea is totally impractical.

> _What if network /VPN rules could be tokenized in the hardware and network > access could be metered and charged per minute in crypto_

Interesting idea, but nobody wants this.

> _What if you could receive payroll as a minute by minute stream_

Interesting idea, but there's no reason that employers would adopt this.

> _What if the lottery was provably fair and 1000 times less of a ripoff_

Not really a concern for those that operate the lottery.

> _What if we could replace obviously flawed political polling with prediction > markets_

Vague, impractical and fraught with its own flaws.

> _I could write this list all day._

Yes, but like 99% of blockchain related ideas, the problems that are actually solved are already solved without the insane drawbacks of PoW.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> It's an easy pitch. Not for all industries or markets, but broadly speaking, removing the need for trusted third-parties is a major leap forward.

And that's how those (trustless) decentralized ledgers should market themselves. It only needs to come down to that one simple thing: they increase the surface on which supply and demand can interact. The resulting friction generates wealth.

Lots of markets remained untapped because of that third-party need. Forgive the punctual essentialism, but increasing "capitalism"'s reach to those uncharted territories is good. In fact, it is precisely why I think it will take-off: the derived utility from an economic point of view is too high to be ignored.

Sometimes you don't need it to be trust-less or permission-less because some industries only have a handful players who already trust each other. That's not the full picture.

Obviously, there's an efficiency trade-off. But, don't make the mistake to throw the baby with the bath water. No system is perfect. No complex system behaves like it should. Bitcoin is imperfect. There are lots of bullshit and koolaid. Nonetheless, I believe the trend since Satoshi, with the long historical line of research he has built upon, published the Bitcoin paper is _clearly_ upward. It should continue. Satoshi was the spark. Now (r)evolution will be incremental.

<comment><USER9> This is the point so many here are missing... blockchain allows free markets to exist where they didn't before. Look at Sia, there's so many people trying to make money hosting files that you can get 5 Tb of storage on the network for $10 a month right now, less than 10% the cost of Azure or S3. Sure that discount will shrink as more people start using the service, but this is allowing everyone to participate in the storage economy instead of the oligopoly of a few key players that we had before. When everyone can participate in the market the competition will lower costs and raise efficiency, improving the system for everyone.

</comment></comment><comment><USER10> All the good bits of blockchain, we already had in git: a transaction ledger with hashes for tamper-proofing. Git came out in 2005, based on work going back a few decades.

What we're seeing in practice is a lot of "Blockchain(tm)" products that are just this, and not actually a blockchain. Remember how Estonia has blockchains in everything and talks them up at every opportunity? Their local "KSI Blockchain" is just a ledger with hashes. [https://davidgerard.co.uk/blockchain/2017/09/06/estonias- sma...](https://davidgerard.co.uk/blockchain/2017/09/06/estonias-smartcard- security-problem-is-probably-not-blockchain-related-but-what-is-estonias- blockchain/)

The Bitcoin-style decentralisation etc is not in practice useful for real things that aren't cryptocurrencies.

Transaction ledgers with hashes are great stuff! So if they get used more, that'll be the good outcome of "Blockchain(tm)" hype. But this article is just full of what are literally Bitcoin hyperbolic claims, with the buzzword changed.

This IEEE Spectrum "blockchain" issue has been consistently glib and lacking in detail. I'm very disappointed. This is supposed to be a magazine from an institute for engineers.

<comment><USER11> > All the good bits of blockchain, we already had in git

This is not true at all and shows a common misunderstanding of why the blockchain is useful.

The big breakthrough with blockchains and crypto currencies has very little to do with it it being a ledger with signed hashes. There are two main "good bits" of the blockchain:

\- it provides a consensus algorithm to agree on a set of updates to the ledger. Not in git.

\- it provides a mechanism for anyone to take part in this consensus algorithm while preventing sybil attacks. Also not in git.

<comment><USER10> And, as I said, this consistently turns out not to be the useful bit for applications other than cryptocurrencies. And the stuff that is actually used - and marketed as "Blockchain" \- is pretty much git.

It's been eight years, "where's the beef" is a reasonable question by now.

</comment></comment></comment><comment><USER12> _A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system_

[https://en.wikipedia.org/wiki/John_Gall_(author)#Gall.27s_la...](https://en.wikipedia.org/wiki/John_Gall_\(author\)#Gall.27s_law)

People like analogizing blockchain development to the development of the world wide web.

Tim Berners-Lee launched the first website in Dec 1990, Google launched in Sept 1998. And in between there were many companies founded that did things that lots of people liked. These companies found widespread use and patronage.

Satoshi Nakamoto launched bitcoin/and the blockchain idea in Jan 2009, it's currently Oct 2017.

What besides trading cryptocurrencies, and endless(half-bakedly) pontificating on, are people doing with blockchains?

What simple, functional, useful blockchain systems are people actually using today that have potential to grow into more useful and complex systems later?

<comment><USER13> Multisignature funds are used by almost all blockchain project organizations and companies. That's a simple system that's extremely useful.

So blockchains give you the ability to open a secure account of valuable digital assets and authorize spending via cryptographic signatures and business logic.

You couldn't do that before blockchains, and it's not hard to imagine interesting variations on the theme: for example the Colony project that's on the top of HN right now.

<comment><USER12> Can you break down into the simplest language, what that actually means?

How is it superior to existing systems? For what applications?

<comment><USER13> It's a checkings account for cryptocurrency with spending conditions of the type "4 out of 6 members agree and the weekly spending limit is not exceeded."

Since blockchains are open source and programmable, that also means it's a checkings account that you can script in any way you want.

It's superior in that it doesn't require a bank. It's also an extremely transparent system, since blockchain transactions are visible to and auditable by everyone, and it has some strong security properties because of decentralization.

</comment></comment></comment></comment><comment><USER14> My understanding is that a blockchain is a distributed, immutable database. There must be some serious dollaroos floating around in consultancy fees for such a simple idea to be cropping up constantly and as a solution to almost every problem.

<comment><USER15> I could say: "My understanding is that software is just the code you put on the Neumann architecture. There must be some serious dollaroos floating around in consultancy fees for such a simple idea to be cropping up constantly and as a solution to almost every problem."

The thing is: not every problem is completely trivial to solve even if the basic idea of the blockchain is well known for some years now. I see progress, there are innovative ideas and implementation in the industry every year. It is not about the initial idea, the cryptoindustry is evolving just like the sowtware industry evolved. There may be more hype than necessary, but this stuff and its potential impact is real.

</comment></comment><comment><USER16> I had to stop reading at:

"In 2009, an anonymous hacker (or group of hackers) going by the name of Satoshi Nakamoto unveiled the first entirely digital currency"

In what sense was Satoshi a hacker? Even the modern use of "hacking out code" is a stretch here.

Also, it clearly was not the first digital cash. e-Gold and many others predate it.

<comment><USER17> Technically, I believe that has always been the definition of a hacker, even back in the 80's. Since then it's been movies and popular culture that have got it wrong. I believe that what most people think of a hacker, i.e someone who digitally breaks into a system, is actually a 'cracker'.

<comment><USER18> I think it's time to stop fighting this fight--nobody I know, even among the security/tech literate, uses the word cracker. We may just have to live with the fact that "hacker" means two easily conflatable things, at least until another term actually catches on for one or the other.

</comment></comment></comment><comment><USER19> FYI: I've put together a collection of blockchains (in JavaScript, Python, Ruby) and articles at Awesome Blockchains - [https://github.com/openblockchains/awesome- blockchains](https://github.com/openblockchains/awesome-blockchains) . The idea is that to learn about blockchains build one (or two) from scratch. Not a crypto god? Or a JavaScript ninja/rockstar. No worries. Yes, you can. Happy blockchaining.

<comment><USER20> This is great, however the real strength of blockchain lies in it being a distributed database. These are all single node examples. Would love to see some examples of a simple network based blockchain

<comment><USER19> Add your single node example onto git than it's distributed :-). For rolling your own peer-to-peer network and nodes see the starter articles linked in the Awesome Blockchains page that include examples in JavaScript, Go, etc. Happy blockchaining.

<comment><USER20> I did in fact roll my own network. You can view it here: [https://github.com/mcrapts/simple-blockchain- network](https://github.com/mcrapts/simple-blockchain-network)

It is spiritually based on your single node examples which I encountered earlier last week, so big thanks for that (was just enough to get me started).

Most of the logic resides in models/blockchain.js. You can interact with the node using the HTTP endpoints in routes.js.

Disclaimer: I have no idea what I'm doing, but it seems to work. Would love some feedback.

</comment></comment></comment></comment><comment><USER21> This is an open question, if you were to use blockchain to prove how much energy someone produced with their solar panel, doesn't this depend on a trusted configuration? Can't they feed in false data before the block chain part?

<comment><USER22> Yes and yes. This is the big pitfall i see so many ignoring - the real challenge if you're trying to interface with the outside world is establishing what the internal token means in the outside world without depending so heavily on a centralized weak link that the decentralization of the blockchain's maintenance is pointless. If the actors in a system don't trust each other enough to make changes to the database unilaterally, why would they trust that the other actors aren't lying about their on-chain/off-chain holdings?

<comment><USER21> Regarding the solar panel part, could be a hardware requirement validated that way but I don't know you could probably spoof that.

</comment></comment></comment><comment><USER23> My understanding is that blockchain truth is determined via a majority vote. What I'm really not clear on is how someone with a botnet can't simply take over a blockchain. With such large sums of cash at stake, it seems like a serious hacker would be much more interested in controlling a blockchain than doing silly DDOS attacks on some corporate website that slighted them.

<comment><USER24> For that you need to have more than half of the hash power of the blockchain, which means, for bitcoin at least, billions of hardware investment. A hacker can't have such power.

<comment><USER25> On the other hand someone with significant influence over a small group of Chinese people still can, and not every blockchain is going to be anywhere near as distributed as BTC

</comment></comment></comment><comment><USER26> They might do even more when you add Machine Learning and AI [https://medium.com/@alexanderwestin/cryptocurrency-plays- art...](https://medium.com/@alexanderwestin/cryptocurrency-plays-artificial- intelligence-data-the-blockchain-a26b3f8bf6a5)

<comment><USER27> What's wrong with writing in _plain english_? Reading that link, I can't help but get the feeling that either a lot of copy-paste from marketing pages has happened, or the author thinks marketing-speak is an acceptable way to explain things.

<comment><USER28> It's a common tactic for hucksters: make it hard to understand and hope that people conclude it's really advanced and get out their wallets.</comment></comment></comment>


Identity in the Browser (Firefox) - <AUTHOR> http://www.azarask.in/blog/post/identity-in-the-browser-firefox/

<comment><USER2> Tired seeing people quote Google search result counts and do it wrong. If an exact phrase, such as "sign in", is being searched, it must be wrapped in quotes! Otherwise numbers hugely will be inflated. So it's not 1.8 billion hits, but rather 322 million.

</comment><comment><USER3> That's where identity really belongs. Please don't make me make accounts for sites in 2010! (OpenID works well enough as technical plumbing but it's not the correct layer of abstraction).

</comment><comment><USER4> Google is going to have a lot of incentive to solve this problem. If you have to sign in or worry about phishing every time you want to write a note or save a picture from your camera, Chrome won't be as useful.

<comment><USER5> Docs: [http://sites.google.com/a/chromium.org/dev/chromium- os/chrom...](http://sites.google.com/a/chromium.org/dev/chromium- os/chromiumos-design-docs/login)

"The Chromium OS-based device login mechanism will provide a single sign on (SSO) capability that users can use to streamline access to cloud-based services."

Presumably regular Chrome will get the same feature.

<comment><USER4> Thanks for that. Highlights:

 _Chromium OS devices will be able to:

1\. Authenticate the user against Google if possible, so that it always uses the user's latest password 2\. Enable the user to log in when offline (assuming the user has logged in online at least once) 3\. Enable an SSO experience for Google properties 4\. Allow the user to opt-in to auto-login that still does SSO, but does not cache the user's password

We also plan to support alternative authentication systems:

1\. Give users an SSO experience at OpenID relying parties 2\. Give users an SSO experience at sites for which they've already typed in credentials on a Chromium OS device_

It's a reminder that Google has bitten off a huge chunk here.

One other huge example is Gears. I imagine that Google Gears is a central art of the ChromeOS world. But Gears is still really an experiment. Very few people really use it at this stage, certainly they don't rely on it. Very few webapps really have a strong offline mode. Even Google webapps don't have brilliant support yet. You can't even create a new document on Google Docs while offline. What's the workaround? Keep a store of blank document ready.

I wonder how much will have come together by the time the first devices launch. The ChromeOS experience at 2012 might be very different to ChromeOS the ChromeOS experience 2010. It seems to me like ChromeOS assumes that problems like SSO, data security, offline webapps, etc. will have been more or less solved pretty soon.

</comment></comment></comment><comment><USER6> as a guy with a startup focused on this area for 12 months, i am curious to know what the group thinks about having some form of identity be stored in the cloud by a single company (e.g. google) or managed locally at your PC/phone (stored by NO company) and synched across devices?</comment>


How Tutanota replaced Google's FCM with their own notification system - <AUTHOR> https://f-droid.org/en/2018/09/03/replacing-gcm-in-tutanota.html <comment><USER2> Is it possible for every app developer to stop using FCM? Yes, in China.

The result is a chaotic market. App devs will have to use multiple push machinism for different device: on Huawei phones, Huawei's own push service is the most reliable; on other phones, you might want use SDKs from Tencent/Baidu/Alibaba so their app (Wechat/Baidu search/Taobao/Alipay) can "wake up" your app to receive push. Battery life become miserable, push become unreliable. It's to a point where the government start "regulating" the market (the Unified Push Alliance, [http://www.chinaupa.com](http://www.chinaupa.com), is lead by CAICT, a think tank of Gov of China).

<comment><USER3> But do we really need "push providers"? The problem is (IMHO) that app developers don't know how to use the connection efficiently causing the radio to wake up constantly (IDLE socket connection has very low battery impact). Instead of pushing every darn detail queue less important ones and send them out when something more important arrives; your client app can signal the server, that app is in the background (or phone is going to sleep) to send less frequent updates. But - companies will abuse everything they can to notify users about absolutely everything. Currently I'm running phone without google play services and it works just fine (with exception of Viber, which can't deliver messages correctly without push services, but it's not that important for me).

<comment><USER4> If you don't have a push provider mediating the many apps trying to get notifications, you end up in a tragedy of the commons scenario, where every single app will try to implement its own push service and will prioritize its own push service, quickly resulting in a race to the bottom where the device is constantly connecting to a different push service, draining battery and exhausting your data connection.

It isn't very different from preemptive/cooperative multitasking.

<comment><USER5> Why can't the device just chose a single wake schedule and communicate that to each push provider? Hopefully UDP can be used so there's no need for any keepalives or handshakes during the wake periods?

Are clocks too unreliable or is there too much NAT because everybody's too lazy to implement IPv6 still?

<comment><USER6> This actually happens on Android (read about Doze mode), but the issue with your approach is that you don't get realtime delivery - only periodic sync. Which is actually less efficient, because the device must wake up on interval, activate the radio and poll for changes.

FCM (and Apple push) run a single keep-alive TCP connection and incoming packets will cause radio and application process wakeup only when necessary.

This change significantly improved Android battery life (remember that HN Apple lovers really loved to bash on Android battery life before this FCM push happened). The fact of the matter is that a lot of developers didn't care one bit about battery life and abused Android background services when there was no need to do so (e.g. schedule periodic wakeups to check for a preset alarm needed once 24 hours) and if we learned anything by this experiment is that you simply can't trust developers to respect users anymore.

<comment><USER7> Does the 1 tcp connwction notnrequire the radio to wakeup to receive pushes?

<comment><USER6> It does, but not really periodically - the radio is just listening and not transmitting until a packet comes. Then it wakes up the application processor to handle it.

<comment><USER8> I guess the question is, if a single listening TCP connection is not a problem because everything can sleep until a packet arrives, what's the problem with multiple apps each opening such a connection?

<comment><USER6> Increase amount of chatter, more keep alives, problems with NATs (see the other post in this thread) which don't whitelist non-Google/Apple endpoints, etc.

But majorly - it makes little business sense for Google to support that. It can only make Android look worse for little gain to them.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is really the chance for a great open source project. So many open source apps (Signal, Mastodon clients, riot.im, telegram-foss and more) have to do hacks to be able to deliver push notifications without GCM/FCM

What if there was an open source software one could setup on a server that would provide push services for all these apps and would interact with one open source client running on android.

That way one would have the energy saving benefits of only handling one server connection, but the privacy benefits of a private server for oneself/friends/people one trusts.

This is definitely not easy and would require coordination between many open source projects and also additions in Android to run on a system level (maybe in lineageos and similar), but I really think it would be worth it.

<comment><USER10> I wish there were an open standard for push notifications with some sort of mux/proxy support. Let me run a daemon (or use a service provider) that collects all my notifications in a data-center, then send a datagram, sms, or even pocsag message to let me know notifications are available for pickup.

<comment><USER11> There is an open standard - it's called Web Push ([https://www.w3.org/TR/push- api/](https://www.w3.org/TR/push-api/)). It's already used by Firefox and Chrome to implement push notifications for web pages (via service workers). The notifications are proxied via Mozilla/Google server respectively, but there is no reason you could not run your own server.

</comment></comment></comment><comment><USER12> > _Wouldn't it be great if the user could just pick a "push notifications > provider" in the phone settings and OS managed all these hard details by > itself? So every app, which doesn't want to be policed by the platform > owner, didn't have to invent the system anew? It could be end-to-end > encrypted between the app and the app server. There's no real technical > difficulty in that, but as long as our systems are controlled by big players > who do not allow this, we have to solve it by ourselves._

Fking this. ideally, this would also involve a standard API on the backend for how to send push notifications. E.g., something like:

1) App on phone queries OS for selected push provider.

2) Phone OS returns some metadata about the push provider to the app, including a a backend URL for sending messages.

3) App sends that URL to it's own backend server.

4) When a push message should be sent, the app's backend server invokes that URL with the message to be sent in some standardized way.

If - which is likely - push servies require that developers register their apps with them before use, this could be expanded by the phone OS returning a list of providers instead of just one.

<comment><USER13> I would encourage app developers to take a look at the network architecture of the major US carriers while determining how to give their app notifications from the server. In the US, the 4 major LTE cellular carriers operate IPv6 only networks with NATed IPv4 access tunneled in as an unsupported afterthought.

From my testing with IPv6 enabled VOIP for inbound calls, compared to FCM with calls coming from an IPv4 only server, only the former setup would reliably get calls to a test device on the first ring. If you need very low latency push notifications, IPv6 and FCM/Apple Push Notification are needed for best performance. Thus far, inter-carrier roaming generally does not support IPv6, so you still must support legacy IPv4 to a degree.

<comment><USER14> To this end, Apple has been leaning on developers to support iOS devices that are on IPv6 only networks: [https://developer.apple.com/support/ipv6/](https://developer.apple.com/support/ipv6/)

</comment></comment></comment><comment><USER15> People migrating from GCM to FCM need to be aware that in FCM analytics are turned on by default: [https://github.com/siacs/Conversations/issues/3041](https://github.com/siacs/Conversations/issues/3041)

<comment><USER16> From your link:

>I'm closing this issue. I think current master successfully disables analytics. Thanks for bringing this to my attention.

<comment><USER17> "Current master" obviously refers to Conversations, not FCM libs.

</comment></comment></comment><comment><USER18> >SSE fits our needs better than WebSocket would (it is cheaper and converges faster, because it's not duplex). We've seen multiple chat apps trying using WebSocket for push notifications and it didn't seem power efficient.

This is just not true unless there is some serious fuckery going on with the websocket implementation. Both require full duplex communications on the transport layer.

</comment><comment><USER19> I'm wondering how it works with different messaging apps. I'm using mostly Facebook Messenger, because of the network effects. A few months ago I tried to use several apps to communicate with my wife. Both Signal and Wire failed to reliably send messages in under 30 minutes or so. More often then not the message would be delivered after a few hours. That's totally unacceptable. If there are some magic settings in Android they were not properly advertised. Our phones are on quite pure 8.1 and 7 versions. So I'm back to Messenger.

Reading this it seems that there is a known solution to this problem. Does Mastodon offer something like private messages? Or is there a messaging app that doesn't use FCM, but works in a way described in article?

<comment><USER20> If your phone has Google Play Services running, Signal should use GCM/FCM; they have a websockets mode, but only for devices lacking the former.

I don't use Signal, but I don't think that delay is typical, could there be an issue with the connectivity to their servers?

<comment><USER13> Nope, this is not normal behavior for Signal, it is a sign that the sending or receiving phone has FCM and data connectivity issues.

I have seen this issue on Motorola Android phones with known dying LTE Modems (eg: these phones couldn't maintain a data session for more than a few minutes, GPS off WiFi is also unreliable).

</comment></comment></comment><comment><USER21> _Final thought: Every user should be able to choose a "Notification Provider" for every app_

At Qbix, we thought deeply about this problem. Ideally, to maintain anonymity, each notification would come from some random endpoint on the cloud. But that's not how the Internet works these days, you have to connect periodically to SOMETHING. So you can choose your own notification providers.

The trouble is if you have many apps, then your device is constantly connected to many servers.

What we settled on for now is a background process with WebSockets, but perhaps this works better. The operating systems weren't designed for this use case and the phones aren't optimized for it. For example, how would you do the same on iOS?

However, what IS possible is tunneling through the native iOS VoIP notifications support and encrypting your notifications. You can even process them on the client side with some "IFTTT" type logic. To do that for Android, however, we had to implement this background process approach. But it's a hack.

<comment><USER22> each app having its own notification provider cones at the cost of extra cpu cycles, network calls, and interrupts. Worsening battery life.

It's likely in the users benefit to only have 1 notification provider

<comment><USER21> Right. I think they should have one other mechanism "in the cloud" somewhere and no need to have too many, one for each domain.

I am starting to realize that DNS is main source of problems on the Internet. We need to replace it with a DHT using something like Kademlia.

It was originally designed to have human-readable domains on the Internet. But it's become a glorified federated search engine, essentially, whereas we can have lots of different search engines, one per app or location. Today, there is very little benefit to having human-readable URLs. If it's anything much longer than a hostname, you won't even say it or read it. So it only works for a tiny subset of internet resources but serves to centralize control in the hands of a few large websites. It leads to centralized databases that attract the NSA and advertisers — and all the stuff from Cambridge Analytica to the Equifax breach are downstream results that can be fixed by apps switching from DNS to a DHT.

<comment><USER23> Even if we ignore the readability of URLs (which I wouldn't), DNS is a nice service discovery protocol with aligned incentives. To find out which server to contact to get hacker news, you ask the DNS server for .com, which has incentive to answer honestly because hacker news pays them to do so, and then the DNS server for ycombinator.com which has incentive to answer honestly because it's operated/payed for by the people running hacker news. Alternativly you can ask the DNS server of your ISP which has incentive to answer honestly because otherwise the ISP risks loosing customers (assuming working capitalism, i.e. competition).

In a DHT, anyone with very different incentives can add as many nodes as he likes. If the node id assignment isn't designed very carefully any attacker can even dominate whatever part of the DHT he is interested in and deny or modify information or just log information.

Sure, the DNS system isn't immune against state actors, especially the US. But DHT is vulnerable against everyone willing to spend some money on spinning up hosts.

<comment><USER21> Why would you care about readability of URLs, when each client can just show the cached metadata? Which is what happens anyway, kind of, in your browser history and anywhere you share the links. Most people won't read the url.

Now, as for the incentives. In fact, DNS does get poisoned and that's why DNSSEC was invented. The same exact thing can be done on a DHT with private keys and certificates authenticating the author of a document. Except you don't have the kind of dynamics that lead to centralized databases and breaches. Instead, we can even have content addressing, so the same exact resource can be cached even if it would have been "on a different domain". And you know that resource hasn't been changes from under you. Talk about incentives — there is a huge incentive for hackers to access these giant centralized honeypots and change up what's being returned from a URL, or do phishing based on a slightly similar domain name.

Look up the MaidSAFE project and tell me, how exactly is the Kademlia DHT there vulnerable against everyone willing to spin up hosts? You can still use certificates and domains can still sign everything. The domain system is basically a search engine, which also has its own incentives.

And finally, Capitalism is the 2nd best system for organizing people and information, the first being open source. The Web, Wikipedia, WebKit, MySQL, PHP and Linux have long ago beaten AOL, Britannica, MSSQL, ASP.NET and Windows NT Server.

</comment></comment></comment></comment></comment><comment><USER24> What's the deal with push notifications if the modem has to be switched on every couple of minutes to keep a connection alive? I was under the impression that push notifications were implemented similar to a call handshake that only activates the phone if there is a call.

Are the FCM service and the iOS equivalent also IP based or can they use some lower level, more energy efficient protocols to wake up the phones?

<comment><USER25> They are IP based.

There are several problems that make replicating FCM hard, which is one reason why Google tries to push you to using it (wordplay definitely intended).

It all boils down to IPv4. IPv4 address space is exhausted, so carriers have had to deploy carrier NAT in front of cell towers, often multiple levels of carrier NAT. Well NAT requires translation tables to be held in RAM and carrier-grade boxes are very expensive in general, so to keep the machines alive they need to aggressively garbage collect dead translations. Otherwise they'd run out of RAM.

This is the origin of the 'keep alive' problem - NATs want to close your connection to free up their own resources, and you want the connection to stay open so you can receive push messages. So phones have to wake up every so often and send keepalive packets or do a connection rebuild.

Google and Apple have an interesting solution to this problem .... it's a mix of learning and data analytics to figure out what NAT timeouts used by each carrier are, and cutting deals with carriers directly to adjust the timeouts for their IP ranges specifically. Therefore you _cannot compete directly with Google or Apple on energy efficiency_. This is something a lot of hackers don't realise. Getting to the level of efficiency FCM has is very hard and takes a lot of work, and basically requires you to be a giant company. This is why it's an OS level service.

They also use very tight protocols, batch things together and of course provide oodles of server side disk space for buffering messages to disk until the devices return, lots of other MQ type things that are hard to do at scale.

IPv6 solves this problem by allowing carriers to lose the NAT boxes. No more machines that need stuff in RAM for every TCP connection, which means connections are no longer a scarce resource that must be culled from time to time. If you only have to maintain connections to devices that support IPv6 you could theoretically maintain very long lived connections if the kernel, radio and server cooperate. Of course there are still timeouts: the TCP connection requires _some_ state server-side, so the servers will kill off connections from time to time because devices may roam across different IP addresses. But it should be a lot more stable and not require cutting deals anymore.

<comment><USER26> I doubt the accuracy of what you are saying. Treating certain IP ranges differently would not be net neutral, which is exactly why we have net neutrality: otherwise it's impossible for new entrants in the market to compete. Also, most ISPs don't run CGNAT (except historically notoriously many in Italy, and by now also a few in the USA). And "oodles" sounds like a lot but running a push server doesn't sound like it would require that much disk space. At Google's level, sure, but for your average app... it can easily be run without Google.

The real problem (afaik) is that people change address whenever they change network (so it doesn't all boil down to v4, either), so you need regular keepalives. If every app starts doing keepalives individually, your phone will be using its radio every 30 seconds 24/7 (assuming you have four apps that need push, and those devs want a maximum delay of 2 minutes, and their timers are roughly evenly distributed). By having a single server to keepalive, the issue is avoided.

<comment><USER27> > Also, most ISPs don't run CGNAT (except historically notoriously many in > Italy, and by now also a few in the USA).

My understanding is that essentially every mobile network in the world uses CGNAT. I happen to have AT&T, T-Mobile, and Verizon SIMs handy at the moment, and all 3 of them are behind NAT.

</comment></comment></comment></comment><comment><USER28> > Wouldn't it be great if the user could just pick a "push notifications > provider" in the phone settings and OS managed all these hard details by > itself?

Having the possibility of choice is a good thing but in this particular case I don't think it would be good if 3rd party notifications providers were available. This should be an integral part of the OS, not a field for competition; knowing that Google itself can harvest data from notifications we can't exclude the possibility that there would appear companies interested only in that activity, at the same time enticing users with pretty and simple design of notifications or whatever else.

<comment><USER29> Well, any Android app can harvest data from notifications right now, by setting up a notification listener. I don't see how this would be any different.

<comment><USER26> The difference is that it's server side. I'm not aware whether the third party server logs my messages, but I am aware when an app has local permissions (you can see it in the permissions overview) to read my notifications.

</comment></comment></comment><comment><USER30> _Another difficulty was caused by the Doze mode, introduced in Android M. The Doze, which is turned on after a period of inactivity, among other things prevents background processes to access the network. As you can imagine, this prevents our app from receiving notifications._

 _We mitigate this problem by asking users to make an exemption from battery optimisations for our app. It worked fairly well._

This is why we were migrating to FCM from our own custom built MQTT solution that was invented back in 2012.

<comment><USER31> MQTT still requires a network connection to publish to (or receive subscription events from) a MQTT server.. so you still have the exact same problem with Doze preventing that. What are you doing to get around that problem, if not exempting your app from battery 'optimisations' ?

Edit: Would anyone care to explain how I am wrong in addition to downvoting me? If Doze blocks network connections to your app when it is backgrounded, how can it receive MQTT events?

<comment><USER32> GP knows that. They said they're migrating _away_ from MQTT, to the Google solution.

<comment><USER31> Ah, somehow I missed that :(

</comment></comment></comment></comment><comment><USER33> This is a very exciting development, it's great to see more developers take this centralisation issue seriously.

On this subject, many people including myself have been failing (hard) to convince Moxie that dropping FCM (or GCM or whatever the name) is the way to go for Signal, if anyone want to give a hand...

[https://www.reddit.com/r/signal/comments/9ekawn/moxie_drop_t...](https://www.reddit.com/r/signal/comments/9ekawn/moxie_drop_the_gcm_requirement_already/)

[https://github.com/signalapp/Signal- Android/issues/7638](https://github.com/signalapp/Signal-Android/issues/7638)

</comment><comment><USER34> Wow reading this seems like android push is a total mess (outside of FCM). Things are much simplier on the iOS side...

<comment><USER35> As an User and Dev of both iOS and Android, I can tell you Push Notifications are miles ahead on Android compared to iOS.

The article refers to not wanting use Google Solution for non technical reasons.</comment></comment>


iTunes Terms and Conditions: The Graphic Novel - <AUTHOR> http://itunestandc.tumblr.com/ <comment><AUTHOR> I find this very creative. It might coax many to actually read the Terms.</comment>


Developer Roadmaps - <AUTHOR> https://roadmap.sh/roadmaps <comment><USER2> Would love to see a roadmap added for embedded development or system level programming etc. There is a huge emphasis on "the web" when it comes to software engineering, that people forget (especially college students figuring out a career path), that there are many jobs in defence, hardware companies, etc. that develop software without using any web technologies at all.

<comment><USER3> What exactly qualifies as a web technology? Isn't anything on an IP address a web technology?

<comment><USER4> Web != internet.

HTTP, HTML, CSS, JavaScript, etc are web technologies.

TCP/IP (among other things) are internet technologies.

Web tech builds upon internet tech.

<comment><USER5> Semantics, but JavaScript itself is not a "web technology" \- despite being conceived for the purpose of web scripting the original publication for version 1 even calls out that the language can be used on a variety of host environments (not limited to browsers). This can largely be seen in host environments like Node.js where it acts like any other similar language.

<comment><USER6> By that logic, CSS is not a web technology because it can also be used in GUI toolkits like GTK[1]. HTML is used in ePUB files[2], so I guess it's not a web technology either...

Would protocols that use HTTP for transport like gRPC[3] mean that HTTP is not a web technology either? I don't know what is a web technology anymore...

[1] [https://developer.gnome.org/gtk3/stable/chap-css- overview.ht...](https://developer.gnome.org/gtk3/stable/chap-css- overview.html)

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

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

</comment></comment></comment></comment></comment><comment><USER7> Hey guys, I am the person behind this website. Please know that it is still in progress. I wanted the initial version out so it is just the "roadmap" images for now. However, I am working on making these roadmaps more accessible for the beginners and easier to contribute to. In the list of things planned for the coming week is the textual version for each with different sections (job- ready, intermediate, advanced, overall landscape, etc) and each of the steps are going to be clickable with resources to learn from.

The website and the content is opensource and can be found at [https://github.com/kamranahmedse/roadmap.sh](https://github.com/kamranahmedse/roadmap.sh). Please feel free to contribute, drop your feedback, feature requests and issues there.

<comment><USER8> Frontend roadmap completly ignores everything that isn't a Web browser.

So no Qt, wxWidgets, Android, iOS, WPF, Forms, UWP, WinUI, GNOME, KDE, ...

<comment><USER9> Except Android/iOS, everything you listed is dead or dying.

No sane person would pick anything but Electron for a desktop app today, unless you are in a particularly high performance domain (CAD/Graphics/Video/...)

<comment><USER10> > No sane person would pick anything but Electron for a desktop app today, > unless you are in a particularly high performance domain > (CAD/Graphics/Video/...)

People who don't hate their users or who don't hate the environment might.

Electron apps use lots of CPU, lots of RAM and lots of energy. I get that they're easy for web devs to make and I've made them before but I'd fight tooth and nail against launching one at scale (like Slack did, for example).

<comment><USER9> Well, if you make the energy argument, theres a lot more to cut then.

How about high resolution displays? And bit depths? We can perfectly work on a 1024x768x256 colors screen. Imagine how much CPU/GPU cycles that would save.

</comment></comment></comment></comment></comment><comment><USER11> These lists are so depressing. Is there any other career where people are expected to know 100 things just to be an employee at the bottom of the food chain? I won't be surprised if it is harder to be a Full Stack Developer than to be a CEO of a multi-national corporation. Looks like we are pushing everything to Developers. Developers of the future are going to need a fulltime pyschologist to cope with this ever increasing list of skills required from them.

<comment><USER12> Doctors, lawyers, and real engineers at least have similar or more broad domains they must be experts in, _or people die._

CEO is a hard role not because of domain area but because of risk and uncertainty, both of which tend to be low when you're "at the bottom of the food chain."

<comment><USER13> All doctors, lawyers and real engineers I know only focus on one aspect. They are specialists. I know lawyers who specialises in rape cases, conveyancing, ligitation, but I have never met a lwayer who is expected to solve a rape case today and register a bond tomorrow. Same with doctors. They specialise and only focus on one domain. I was talking about skills when I included CEO, not about risk. When there is lots of money involved, almost everyone will accept to assume that risk and collect rewards.

<comment><USER14> But even a lawyer specialised in criminal law will have gotten a broad education in contract law, property , civil procedure.

In my engineering school, mechanical engineers were taught the basics of electrical engineering.

There is a lot of value in gaining a good amount of breadth before specialising, even if just to ease communication with specialists of adjacent fields.

<comment><USER13> The best people in every field are people who are focused on one aspect and one aspect only. Linus Torvalds only focus on C programming and kernels. If you judge him based on these lists, he will be regarded incompetent because he can't do UI and is proud of it. He doesn't even try to learn the basics about it because he has his speciality and do it very well.

Lionel Messi doesn't try to be the best header or best defensive midfielder. He focuses on dribbling and scoring goals.

<comment><USER14> Linus Trovalds didn't just create a kernel but also a version control system and even a scuba diving planning tool ([https://en.wikipedia.org/wiki/Subsurface_(software)](https://en.wikipedia.org/wiki/Subsurface_\(software\))).

In the latter, he also touched some GTK code: [https://github.com/torvalds/subsurface-for- dirk/commit/c0adf...](https://github.com/torvalds/subsurface-for- dirk/commit/c0adfdc41bc5bea580f85a29dc073678fcb617e8#diff- dff395e8bda6d155ed50e7984f6527e9)

Trovalds has much more breadth than you give him credit for.

</comment></comment></comment></comment></comment></comment><comment><USER15> I've looked at the "Backend Developer" guide, I'm surprised that it doesn't mention git or any other version control tools.

I think it could be a useful addition; nowadays version control is part of almost all backend projects.

<comment><USER7> Thank you for pointing it out. It is still being modified and will hopefully be fixed this week along with the other changes. It was there in the "common" section in the repository [https://github.com/kamranahmedse/developer- roadmap](https://github.com/kamranahmedse/developer-roadmap) but was missed when moving the roadmap to the website.

<comment><USER16> 1\. Yes, git should definitely appear in a common / transverse section. Oh, I see it now appears.

2\. What do you mean "missed when moving the roadmap to the website"? Don't you have an automated deployment setup?

3\. I see no code at all in the repository. This looks like free-to-contribute documentation, not FOSS then. Still, very good thing that you did it.

4\. Also, besides web (that you cover) and embedded (as mentioned in other comments, and writing device driver can be considered similar), there is still also desktop applications, signal processing oriented programming (including electrical, sound, image and similar) and their number-crunching oriented cousins (machine learning, smart data import with added value, data science and similar) and security. I personally know startups that do each of these.

</comment></comment></comment><comment><USER17> I think I don't understand these. They seem too high level to actually be useful. There's a old Steve Martin skit from the 70s where he's says he's going to tell you "How to get a million dollars and never pay taxes...... Step 1: Get a million dollars ...". These roadmaps seem about that level.

Am I missing it? Are these actually useful? For example clicking backend the first thing is it lists 14 languages (although two of these items are not languages). How is that useful to someone? Which one should they pick? How would someone that didn't already know these languages and their strengths and weaknesses get useful info from that? Sorry I'm not trying to be critical just wondering how this is helpful.

<comment><USER18> I partially agree. The backend map seems really wishy-washy. The front end map seems much more useful, just because it's more limited in scope. It would be better I feel with in depth tutorials for every step, or links to them, with achievable goals at every step, kind of like a testable curriculum.

<comment><USER19> It's funny seeing different peoples' takes on this; someone else said the frontend section was a 'hot mess' but the backend was much more structured and well done. Guess it's just a testament to how much is out there.

</comment></comment></comment><comment><USER20> Love this idea, hope the maps could be interactive. Attaching related resources would be great.

<comment><USER21> I second this, related resources for language of choice.

</comment></comment><comment><USER22> Wow, this is nice. Going through the front-end path briefly, I realize I know most of these things, and it is because of gradual exposure and necessity in a tool.

I remember as a freshman in college, when I decided to first learn the basics of web development, I saw an intimidating roadmap like this one (though that was for full-stack). Back then, I would have never dreamed of making it even a quarter way through the list.

</comment><comment><USER23> Would love to see a roadmap on security engineering!

<comment><USER24> good point...i will be interested too

</comment></comment><comment> aaron-santos Maybe not a developer roadmap per se, but I refer to this data science roadmap[1] from time to time. It isn't a definitive statement on what makes a data scientist, but it does help me pick the next concept to learn and make knowledge gaps more obvious.

[1] - [http://nirvacana.com/thoughts/2013/07/08/becoming-a-data- sci...](http://nirvacana.com/thoughts/2013/07/08/becoming-a-data-scientist/)

</comment><comment><USER25> These seem to be bags of words, which hardly explain the rationale or context for any of the items mentioned.

In terms of 'brainstorm of words, some of which may be useful', fine. But I'd be very surprised if even the average dev had even heard of everything on that list. The scope includes some ubiquitous things, and some things that are surely niche.

I'm hoping no beginner gets the impression that they ought to know all of these things or else they're an imposter.

What's the appeal to these?

<comment><USER26> Full stack dev here. Both the frontend and backend lists look reasonable and I know all the tools and the vast majority of the terms. I do agree with you that the lists look overwhelming. Some information hiding and ability to reveal would help.

</comment></comment><comment><USER27> If they are image maps with links where to learn the leaf nodes this would be the bees knees.

</comment><comment><USER28> Great concept! Teaching yourself things is always difficult because you only see things horizontally and don't know how to actually build on what you know, especially without spending 000s of dollars.

<comment><USER29> > 000s of dollars

Wow, that's a lot of dollars

</comment></comment><comment><USER30> That's a really nice website. I'm a young developer interested in web developer and it gives me a good roadmap for how I would go along figuring stuff out till I become a full stack web development. I just hope that the full stack roadmap comes soon, the front-end and back-end seems really well planned out.

Another thing that I'll say that would be nice, if there were other roadmaps for become a mobile app developer like those including OSes like Android, iOS, Mac OS, etc.

</comment><comment><USER31> Good overview. I also like it as an illustration for beginners to explain, that "learning to code" is very broad and can be broken down into tiny areas.

When I teach friends how to code, I show them the bigger picture and then narrow down what I'll actually teach them no manage expectations: Java / Kotlin basics and some android development. So they now what they get in the beginning and what else is out there.

</comment><comment><USER32> The design of the maps is terrible, the content is gold. Will recommend internally in my company.

Very nice job.

</comment><comment><USER33> I find the back end engineer roadmap lacking a few critical items that seem to be in the devops section (granted, everyone needs devops chops). Metrics, monitoring, alerting, and networks (tcp, http, grpc, sockets), and basic distributed systems.

</comment><comment><USER34> This is amazing! I always get questions from new developers or students similar to "I want to do/be X, how do I start?" and now I can point them to this. Thank you for this.

</comment><comment><USER35> Create a roadmap for low-level/systems developer (ex: create database, search- engine, storage engine, replication, sharding, low level performance etc)

</comment><comment><USER36> Here's an idea to improve this site: make the texts searchable somehow. Ctrl+F -> "JavaScript" shouldn't yield 0 results.

<comment><USER37> It's a png.

<comment><USER38> And he's suggesting for it not to be.

</comment></comment></comment><comment><USER39> this is very cool. how do i add one ? this page is empty -[https://github.com/kamranahmedse/roadmap.sh/blob/master/cont...](https://github.com/kamranahmedse/roadmap.sh/blob/master/contributing/guide.md)

P.S. are you generating a static site using next.js ?

</comment><comment><USER40> Wow, may be slightly overwhelming for a newcomer but a great idea nevertheless!

Which tools they used to make these beautiful infographics?

</comment><comment><USER41> What does yellow color in some boxes mean?

<comment><USER42> It's unfortunate that not every diagram contains the legend from the first diagram in the GitHub repo [0] which explains yellow as "Personal recommendation" and orange as "Available Options". I think grey was "Optional".

[0] [https://github.com/kamranahmedse/developer- roadmap](https://github.com/kamranahmedse/developer-roadmap)

</comment></comment><comment><USER43> Brilliant idea

</comment><comment><USER8> The Frontend Developer "roadmap" ignores any kind of native UI development.

It should be renamed to Frontend _Web_ Developer.

<comment><USER44> When people in the modern era say "front end developer" that basically implies web.

Most people in common nomenclature don't call iOS and Android developers "front end developers". They are referred to as "mobile developers".

<comment><USER8> Plenty of digital agencies do frontend work across multiple delivery platform formats

<comment><USER44> I don't doubt that. But, if they advertise a need for "front end developers", that would strongly imply web developers.

I would definitely be surprised if they advertised a position for a "front end developer", I applied and during the interview they asked questions about Windows Forms development.

<comment><USER8> Be prepared to be surprised then.

<comment><USER44> Trust me, I've been on plenty of successful interviews. Not once have they wanted a "full stack developer" or a front end developer that could do Windows Forms.

I'm not saying that no one wants desktop developers - they just don't refer to them as "front end" developers.

Windows Forms or any windows desktop development was already losing favor when I was looking for a job in 2008 after being at one company for almost a decade.

Now in 2019, any developer who cares about his career will run screaming the other way if a company even mentions that they are doing desktop software unless they can get a job with Microsoft or Adobe.

<comment><USER8> Believe me as well, doing frontend native and Web UIs since mid-90s, including digital agencies.

Plenty of companies are doing greenfield native UIs, including desktop. Mobile is desktop as well, just a matter of hardware form factor.

<comment><USER44> Mobile is "not just like desktop" unless you're using a cross platform framework and even then you have different constraints - unreliable network connections, different screen sizes and interactions, you have to be more mindful of power and memory usage, dealing with app stores and review processes, etc.

But its really not hard to look at job boards or where the money is going both from internal and external investments to see which cart to tie your horse to. It definitely is not the desktop.

Even Microsoft isn't really focusing on desktop development and has put .Net Framework in maintenance mode.

<comment><USER8> A tablet with keyboard is a desktop.

A laptop with wireless connectivity is a desktop.

Anything with a pluggable keyboard and screen is a desktop.

Something that many fail to grasp.

<comment><USER44> What's your point? Just like "front end development" implies "web development" to most people, "desktop development" implies "development that is not web, Android, or iOS".

<comment><USER8> To people that don't know better.

<comment><USER44> Are you really saying that there are people posting to HN that don't know "desktop applications" don't include applications running on laptops?

<comment><USER8> Indeed.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Great content. Lots of typos</comment>


So, you want to be a darknet drug lord - <AUTHOR> https://pastebin.com/index/GrV3uYh5 <comment><USER2> Damn! Thanks for the share.

</comment><comment><USER3> incredibly detailed. not a lot of this out there on the clear web.

</comment><comment><USER4> (2015)</comment>


DynaFlash: High-speed 8-bit image projector at 1,000fps with 3ms delay [video] - <AUTHOR> https://www.youtube.com/watch?v=L8kjdObjZpY

<comment><USER2> Millisecond-level feedback is incredibly exciting. It's only at these rates that the limits of human perception seem to no longer detect the disparity between the real world and digital interaction.

This strongly reminds me of a video[1] from Microsoft Research a few years ago in which touch-based interaction was demonstrated at 1ms latency. It's surprisingly more realistic than even the 10ms level.

[1] [https://youtu.be/vOvQCPLkPt4?t=52s](https://youtu.be/vOvQCPLkPt4?t=52s)

<comment><USER3> >only at these rates that the limits of human perception seem to no longer detect the disparity

IF you use the brute force approach of vomiting pictures in general direction of an eye.

Human vision system is incredibly meager and clever at the same time. Your eye doesnt really capture whole picture all at once, you have a huge blind spot in the middle + part of your nose obscures vision, you can only see sharp shapes in the center and fast movement on the boundaries, data stream consists of shaky blurry fragmented mess. Its the brain that filters and glues it all together into coherent picture.

Example - go to a mirror and look into your eye. Now find another person and look into their eye, you will be surprised to see yours was steady, and theirs is all over the place. Now check out your blind spot [http://io9.com/5804116/why-every-human-has-a-blind-spot--- an...](http://io9.com/5804116/why-every-human-has-a-blind-spot---and-how-to- find-yours)

Saccades produce a lot of blurry artefacts that are simply thrown away. I read somewhere brain ignores about 2-3 hours of visual data a day.

We already have incredibly fast micromirrors, I wonder if someone is working on a microprojector that tracks saccades and displays only part of the picture eye is currently fixated at. This would allow constructing high resolution scenes using lower resolution projector. 120 Fov requires >500mpixels, but you can only see ~7mpixels at a time. Quick back of napkin calculation tells be you could bump perceived resolution of Occulus by ~40x

<comment> jay-saint

      " I read somewhere brain ignores about 2-3 hours of visual data a day."

I imagine that is mostly due to PowerPoint and meaningless dashboards.

</comment></comment></comment><comment><USER4> I'm so glad that we've finally moved past the silly arguments that human reaction times are too slow to need more than 60fps. It's _not_ about reaction times, it's about latency. The future, in this regard, appears bright.

</comment><comment><USER5> For those who didn't notice, the video was published on March 6, 2012.

</comment><comment><USER6> I remember getting so excited with Johnny Lee demoing the movable projected displays 7 years ago on youtube, and thinking that this could be the future - youtube.com/watch?v=liMcMmaewig

This looks like a really big step toward getting something like this into every house :)</comment>


IPython 0.11 RC - First major release in two years - St-Clock http://ipython.org/ipython-doc/dev/whatsnew/version0.11.html

<comment><AUTHOR> I love ipython - if you still use log statements to debug things, you should give ipdb (a mashup of pdb and ipython) a go.

Just:

        import ipdb

        ipdb.set_trace()

And you can now inspect and change any part of your code, right in the middle of your app. This includes prototyping variou fixes to your bug. I wish it was a standard part of Python, it's truly awesome.</comment>