How many jobs can be done at home? [pdf] - <AUTHOR> https://bfi.uchicago.edu/wp-content/uploads/BFI_White-Paper_Dingel_Neiman_3.2020.pdf <comment><USER2> As someone who's worked from a lot and also worked from an office, I feel like there's an important component missing when discussing WFH for professions outside of tech.

One important issue IMO is just having a workspace. Software engineers are kinda spoiled in this regard because we make the big bucks. We can afford to retrofit areas of our homes to create good working conditions. We can take our laptops to coffee shops in a pinch.

I recently upgraded my living situation by moving into a much nicer place, but it's smaller so I ditched the "home office" setup I had before. Now with COVID I'm working in my dining room and on my couch. It's so much worse. It might sound silly but I'm putting a lot more wear/tear on my furniture by being around all day.

My take on this is that homes aren't and never were designed for WFH conditions. There are so many details about offices that we take for granted. I found myself having to clean way more often and do way more dishes now that the entire family is stuck in the house together.

Then there's a socialization aspect. Tech has a culture of "as long as you can do the job, it doesn't matter how you behave/dress/interact" \-- this thinking is applied along a spectrum, some companies are more extreme than others about it. But a lot of professions like sales/legal/etc rely very heavily on close social interaction. Tech is also unique in this regard IMO.

<comment><USER3> I've always preferred working from home (couch, bed, or floor - I don't do tables and chairs) simply because programming was my hobby before it was my job, and I always associated peak productivity with being able to be relaxed and enjoy my surroundings rather than feel like I need to put on a physical performance of working.

My take on it is that people will adjust, and that the most productive environment is the one you're most familiar with. Many professions like sales, legal, and investment banking rely on putting on a professional "front" to make a good first impression. This is much harder to do when you're sitting on a couch at home and have a couple kids screaming in the background. IMHO this is a _good_ thing, because the constant impression-management needed in these professions is a huge distraction from the actual substance of these jobs, and anything that punctures the impression-management bubble and forces people to deal with real human realities is an improvement. Already I'm seeing a big normalization of things like childcare, screaming toddlers, two-parent schedules, breastfeeding, and so on - this can't be shunted off as "woman's work" and relegated to the home anymore, when the home becomes the workplace and both parents generally need to trade off to make it work.

Basically I think our society before coronavirus was broken and coronavirus lockdowns are simply forcing us to deal with the ways in which it was broken. The old society isn't going to last much longer, and it's better to deal with that and build a more resilient, more honest one than to try to preserve the rituals that many industries had developed in 75 years of peace.

<comment><USER4> That is impressive; I could not possibly work like that though :<

1\. Never mind posturing, it's the posture - I get back and neck pain just thinking of working from a couch or floor :(

2\. I like my multiple 27" monitors. Going back to just a single 14" feels like a _huge_ productivity hit.

3\. Same thing with proper keyboard + mouse, vs just a touchpad or even the trackpoint.

So I'll agree that there's a lot of posturing and professional front in this and many professions; but even without that, I've always far far preferred my home office to either proper office, or working from living areas.

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

The other aspects are more age dependent (though I believe so is the posture / back pain;). It helps to distinguish "working area" and "non-working area", triply so once you have family. There's a million things that I do better at when I'm "in the zone" \- ingested the background, focused on the problem at hand. Distractions reset that counter - I love my kid, I love my wife, but there are aspects of my work that don't benefit from their presence :-). This is probably part of why my personal most productive times tended to be late at night when the world has settled down and distractions are at a minimum...

<comment><USER5> This is a problem I have too. I don't have a home office so I have to work from the couch hunched over my laptop. It hurts. I've been doing it for a month. I get tingles in my pinkie after a couple hours they last for the day (ulnar nerve compression I think)

I don't know how to cope. I can't take the time off and not work for another month, but I also don't want to wear my body down and have pain all day every day. I hated working in my office because it's open space and noisy but I'd love to go now that it's deserted. I have two large displays there, a mouse, a keyboard.

<comment><USER6> It sounds like you have trigger points building up. Stretch your arms, shoulders, and back everyday. I recommend arm stretches for doing handstands. Also, make sure your arms and upper body are warm, borderline hot. I wear winter cycling sleeves because they are thin and don't get in the way. Also wear a thin smartwool sweater, and the heat is on 76. Completely reversed the pain and discomfort I had been experiencing for years by doing the above daily.

<comment><USER7> I'm sweating just thinking about wearing a wool sweater with the heat on 76!

</comment></comment></comment></comment><comment><USER8> > Our classification implies that 34 percent of U.S. jobs can plausibly be > performed at home.

If even 25% of jobs could be made remote, that would be huge. The reduction in automobile traffic, the improved happiness of workers(who want to work remote), as well as parents being around more for their kids, would benefit society overall.

<comment><USER9> I have a feeling that a low double-digit percent of jobs will permanently convert to remote or partial remote after this experience.

I have been in two companies that went remote, and the bosses don't want to, until they try and realize the convenience.

<comment><USER10> >I have a feeling that a low double-digit percent of jobs will permanently convert to remote or partial remote after this experience.

I am hesitant to draw too many conclusions from this work at home experience because the pandemic is providing so many complicating factors that end up distorting both the benefits and downsides of working from home. Some examples to mind:

* It often is a benefit to get out of a distracting office, but now people are at home being distracted by kids who would otherwise be in school under normal circumstances.

* Work from home allows people the freedom to work form wherever they want. Now we are all stuck at home.

* Every company is being forced to be a remote-first organization so there is no face to face communication happening in the office that someone working from home might miss.

* The pandemic takes a mental toll on everyone. Many of us are probably not as productive right now as we would be otherwise and that has nothing to do with working form home, but will that decreased productivity be blamed on working from home?

<comment><USER11> Here's another angle: office space is also a (significant at times) cost and some companies may be low on cash soon.

<comment><USER12> Won't change a thing- they are all tied into long term contracts..

<comment><USER13> Indeed - my company has wanted to reduce office space for a while now but we're in something like a six year contract.

<comment><USER14> Well, every contract has a force majeure clause, so...

<comment><USER15> The typical _force majeure_ clauses won't allow commercial tenants to get out of paying office leases.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> All remote work is not created equal. I think an aspect of remote work being a more seamless/smoother transition is for the distributed team to be in the same time zone or have less than 1 hour time difference. At my current company, we have conference calls between SF-Portland without much change in work/life. We evan have virtual lunches together.

I recall having to do SF-Asia and even SF-Dallas and SF-Europe calls in my previous job and I was burnt out real quick. Just trying to plan a meeting that wasn't already a recurring scheduled meeting took about 2 days.

[EDIT] Based on the initial responses I changed it from the same time zone being a _key_ aspect to an aspect which makes the transition seamless/smoother.

<comment><USER17> I'm not sure it really is a key aspect, maybe it is a risk. With such a small time difference you can continue - for the most part - as you did before. But there's always the question if what you did before was really a good idea or just "we always did it that way", e.g. many conference calls probably could (and should?) be replaced by written text, which isn't as ephemeral and can be worked on asynchronously.

That is a change at first, but not more of a change than going from a very small company, where everyone talks to everyone and maybe even sits in the same office, to a bigger one where you have to establish processes to ensure information still reaches everyone in the company (if it needs to).

<comment><USER16> Agreed! Its not a key aspect, its just an aspect which makes the transition more seamless/smoother. Made a brief update to my initial comment. For people can for sure adapt to remote work across various timezones.

</comment></comment></comment><comment><USER18> Many people have brought this up, but there are definitely things to consider for a job to be done while working from home:

1) worker productivity (does it go up or down for all of these professions)

2) do companies want to pay you as much if you work from home?

3) is it sustainable for large swathes of people vs. small groups of people who self-select to like this work-style

4) will people abuse the system such that it ruins it for everybody else

I can see a far more likely implementation of this would be a mixed case -- "work from home wednesdays" or something like that.. not friday or monday because then basically people would assume there is a certain amount of abuse of people working for 1 hour on Friday then starting their weekend early..

<comment><USER19> > _2) do companies want to pay you as much if you work from home?_

Is there anyone out there with a good argument for why remote workers should be paid less?

Especially interested in hearing from anyone not incentivized by this practice (eg not the CEO or Chief People Officer of an org that practices this)

> _will people abuse the system such that it ruins it for everybody else_

An inevitable question and likely consequence.

A counter question: are the myriad ways in-office employees game/abuse the system working materially worse than how remote workers might?

<comment><USER20> Assuming equal value created, companies should pay remote workers more: normal pay + savings from not using office related overhead (rent + equipment + amenities)

<comment><USER21> The argument also goes the other way. The company pays you now for the work in the office and for the inconvenience you incur from commuting. No more commuting, so you should get paid less.

<comment><USER22> The company isn't paying for your time in the car but it is paying for the space your desk in the office occupies. Would you argue that someone who drives 30 minutes more to the office than an otherwise equivalent coworker should be paid more?

<comment><USER23> It's possible, isn't it? The person with the longer commute may be able to use it to negotiate for a higher salary. Particularly if they have another option with a shorter commute.

Perhaps I misunderstand you or have overlooked something.

</comment></comment></comment></comment></comment></comment><comment><USER24> Look, I am just gonna say it a certain way: It is better now but there were long stretches in my life where the only in person human interaction I had was at work or at stores(until delivery apps became a thing) would have sucked big time if I did wfh then.

I also did wfh doing call support and now IT/infosec stuff. Night and day!

Team dynamics: not everyone can develop interpersonal relationships well when wfh compared do in person. Imagine being the new guy and have a million questions but your personality forces you to evaluate body language and greetings in person before you are comfortable approaching someone.

Oh, and.. Some people have terrible home situation. I don't mean just kids but sick people to care for, abusive people living with them,loud roommates,etc ....

WFH being the norm would suck,but companies should be much more accomodating these days.

</comment><comment><USER25> Head mounted displays that were immersive as a motorcycle helmet with headphones could suddenly move from being a luxury product to a substitute for a private space for an office in apartments with families.

If I were in the business, I'd be re-marketing HMDs as a work from home privacy solution. What makes something mass market is it serves people and solves a problem for them, not something that's just entertaining.

Edit: and someone's already there: [https://www.techradar.com/news/the- cheapest-active-vr-headse...](https://www.techradar.com/news/the-cheapest- active-vr-headset-could-be-the-perfect-remote-working-tool)

</comment><comment><USER26> I'm a little confused by their definition of "jobs" here. Is this the absolute number of jobs? Or the types of jobs available? Looking at the article, they use wages to get a more firm grasp on this (saying something like 44% of wages could be made from home). If that's the case, what does that statistic say for the unemployment rate in the US, should social-distancing remain long term? Are we going to see >50% unemployment??

<comment><USER27> A large number of the remaining 56% are classified as "essential": grocery and certain retail, public servants and first responders, healthcare, education, automotive services, etc. In Houston, for example, many of the energy sector jobs are classified as essential. Stay at home orders don't impact those jobs (though many of them may be operating at partial capacity)

<comment><USER28> > A large number of the remaining 56% are classified as "essential": grocery > and certain retail, public servants and first responders, healthcare, > education [...]

The authors already code 82% of teachers as able to work from home, albeit with difficulty. See the second footnote in the paper.

<comment><USER29> That's not just working from home if so, that's reassigning an industry from face to face to virtual, and if history is any guide a lot of teachers may lose their jobs as well as secondary jobs becoming lost too. Sort of a pyrrhic victory.

</comment></comment></comment></comment><comment><USER30> If you look at these images: [https://www.google.com/search?q=piecework%20from%20home&tbm=...](https://www.google.com/search?q=piecework%20from%20home&tbm=isch&safe=active&safe=active&tbs=rimg%3ACWqKwee01nVqImAKKespCKpy84Lpx- LFQC12RsF72suB7cM04zLOWQ4y3AmKrrcwnvf4KBFzUFAxIWPibqAZDSdWvoj87jzp_1dqcDDBbP8jpHRU7HSCChPkGhATYtBZgHxbOXtNVWHlXwZsqEgkKKespCKpy8xFOxgvhnHj9VCoSCYLpx- LFQC12EWu1O3CAMWIaKhIJRsF72suB7cMRF8xan6t7XScqEgk04zLOWQ4y3BGxTADB5uCTvSoSCQmKrrcwnvf4ER0hkVsNyUc1KhIJKBFzUFAxIWMRIqvlkUsl1VoqEgnibqAZDSdWvhEnFcBNE5iLuyoSCYj87jzp_1dqcEfaNsu97gqSqKhIJDDBbP8jpHRURmBtDfyEzym8qEgk7HSCChPkGhBHgow1V8De_1DyoSCQTYtBZgHxbOERB9os9bK8rUKhIJXtNVWHlXwZsR49UApPak9C1hZMvRYm7JCpg&hl=en&ved=0CAIQrnZqFwoTCJjc4cvyx- gCFQAAAAAdAAAAABAG&biw=1146&bih=1035)

You will see there is a lot more than can be done from home than people realize. Obviously it doesn't all translate over, there's a lot more machinery now.

But if people _had_ to work from home, people would get creative and there's more that could be done.

</comment><comment><USER31> > most jobs in finance, corporate management, and professional and scientific > services could plausibly be performed at home

Or some of this could simply not be done at all.

> very few jobs in agriculture, hotels and restaurants, or retail

Au contraire, all agriculture work can be done at home when we raise our own food. All teaching can also be done at home and currently is being done so. The basic need of a hotel, a place to sleep, and restauranting, of preparing and serving food, can be done at home. And retail is already done at home, store clerks are largely obsolete. What can't be done at home yet is delivery services and most manufacturing in its current state, but manufacturing probably could be done at home through expanding micromanufacturing. Networks of craftsmen shops running mini production lines can make a lot of things.

<comment><USER32> Micromanufacturing, aka the cottage industry. Everything old is new again.

</comment></comment><comment><USER33> I stopped going into the office a decade ago to be a home dad. I raised 3 kids at home while doing home duties and casual web dev and server support. It is very isolating and I think a lot of people are going to struggle with it. I have always been socially awkward, I didn't grow up with siblings and have always been comfortable with silence and something to read. But even I struggled a bit. I think most people should make extra time to keep in touch with colleagues and do video meetups and fun stuff with them. It might be disruptive to work and some people might want to do something else instead but I think the effort probably needs to be made.

</comment><comment><USER34> If you stare at a computer all day, ie. you have an office job, your job can be done from home.

I really hope remote work becomes more accepted as an option. It's not even just about individual productivity and happiness, it's better for the environment.

What annoys me on these threads is when I see people say "I don't like WFH, therefore other people shouldn't be able to WFH". There's nothing wrong with preferring to go into the office, but who gives you the right to tell others how they have to work? Everyone should have the freedom to work how they are most comfortable, so long as they can get the work done.

<comment> non-entity > "I don't like WFH, therefore other people shouldn't be able to WFH".

Could you point me to an example of this, because I dont think I've ever seen this. The opposite, however I've seen pretty commonly where since "I like WFH so everyone should WFH".

</comment></comment><comment><USER35> I had the idea of an remote apprenticeship startup to educate people at home in regulated jobs here in Germany.

Well, that was a few years ago, and I guess the market will be flooded now.

</comment><comment><USER36> I'll gladly WFH if the kids weren't here!

</comment><comment><USER37> If it all goes in and out over a wire, a computer can probably do much of it now and more of it soon.

</comment><comment><USER38> > How many jobs can be done at home?

Infinite.

That's because the set of possible vocations is only bounded by human imagination. This results in an uncountable set, which would resolve to a value that approaches infinity.

A more insightful question is, "How many of the jobs _that people hold today_ can be done at home?" 34% seems like a reasonable metric.

<comment><USER39> Despite the downvotes you make a good point.

The paper does not address the underlying assumption: jobs are fixed in number and type and we can only change the location.

In reality, job markets are extremely elastic.

Case in point: millions of jobs in the world exist only because a human worker is slightly cheaper than a machine at a given task.

</comment></comment><comment><USER40> Keep in mind that those "work from home" jobs depend on people in China labouring away to produce your cheap computer hardware.

<comment><USER41> I'd argue that a large majority of people who have "work from home" computer jobs either already have a computer that they can use for work, or their employer does. Or it can be purchased from already existing inventory (used or new).

Also, a computer purchase for an employee isn't usually a frequent occurrence. Maybe once during hire, and once a year to stay up to date (if that).

Computer manufacturers can probably take a break for a couple of months and the tech industry will survive.

<comment><USER40> It's naive to think the whole world can just "work from home" indefinitely. Everything's interconnected, and the vast majority of jobs are still jobs that can't be done without humans labouring in meatspace. If you want to pretend the US is some magic island that doesn't depend on China, go for it.</comment></comment></comment>


NASA mulls restoring Saturn V to service - <AUTHOR> https://www.theregister.co.uk/2020/04/01/nasa_mulls_restoring_saturn_v/ <comment><AUTHOR> Well, it's healthy to chuckle at least once or twice on this, of all, dates. Nicely done, too.</comment>


Ask HN: Change.gov has launched Citizen's Briefing Book. What do you think? - <AUTHOR> http://citizensbriefingbook.change.gov/

<comment><USER2> Strangely, the site "feels" dead, even though it is actually quite active. I think it's because they don't show the scores of each submission on the frontpage, in addition to not allowing you to upvote/downvote them without clicking through.</comment>


The case of the disappearing favicon - <AUTHOR> http://kilianvalkhof.com/2010/javascript/the-case-of-the-disappearing-favicon/ <comment><USER2> I think this post is indicative of a problem that arises when a project such as firefox becomes too big. Sure, it is an open source project, so it is nice that you can file a bug report if you discover a shortcoming like the disappearing favicon.

But the author of the blog seems to be a programmer himself. Ideally, he would not only file a bug report but - since the bug seems to bother him a lot - perhaps even come up with a patch.

Instead, he writes a work-around -- and can you blame him? Compared to a two- line function, the work required to dig into a huge code base, try to understand it, come up with a patch (that doesn't break anything else), get the maintainers to integrate it, etc... seems enormous. Well, perhaps it actually isn't, who knows, but I can understand that people feel too inhibited to invest time to come up with a patch if the required effort seems so overwhelming from the start.

It appears to me that this is a general problem, and the bigger the code base, the worse it gets. Yet at the same time, the overall benefit of submitting a patch rather than coming up with workarounds grows with an increasing user base, because more people are positively affected. So I wonder if there are any realistic methods to cope with this problem: how can open source projects get people to provide more patches?!

<comment><USER3> Things like this make me wonder why anyone would want to write a huge project (like Firefox) in C/C++. I can understand wanting to re-use some legacy code, or perhaps the need for a few bits of optimized, low-level code where you really need the performance...but why not write the majority of the code in something like OCaml? I know there aren't as many good OCaml (for example) developers out there, but I'd bet that the end result would be just as fast (or faster) than the C/C++ version and have way fewer bugs (thanks to the strong type inference and succinctness of the code).

<comment><USER4> If Firefox were an OCaml project, it would have likely died before hitting 1.0.

Also, I've never used OCaml, so maybe I'm wrong here, but I highly doubt it's faster than C.

</comment></comment></comment><comment><USER5> It also took them a few years to include the patch for HttpOnly (proposed in 2002, implemented 2008).

Really strange how long some things take to fix in Firefox, I wonder if it's politics or apathy, impossible to tell.

</comment><comment><USER6> Out of curiosity, why would one set window.location.hash?

<comment><USER7> In order to maintain the usability of the URL in a heavily AJAX application.

For example, with movielandmarks I designed it so that you don't use back/forward at all. But I wanted to provide a useful URL for bookmarking and sharing with friends. So I used the hash for this because changing the actual URL of the page forces a refresh.

</comment></comment><comment><USER8> One more reason for me to keep using Opera. Thanks.</comment>


Mozilla will remove Panorama (tab groups) from Firefox - <AUTHOR> https://support.mozilla.org/en-US/kb/tab-groups-removal <comment><USER2> > The Bookmarks sidebar is a great way to organize and access all your open > tabs.

No, it is not. It's an terrible replacement for me, because it's a) bookmarks system, which I use for something else, and b) I hate sidebars.

</comment><comment><AUTHOR> This is one of the best features unique to Firefox and for me this was another reason to not to move Chrome. Mozilla embed stupid Pocket Stuff and removing most useful features instead of informing people to how to use them properly.

</comment><comment><USER3> :(</comment>


Nokia Maps 3D (WebGL) - <AUTHOR> http://maps3d.svc.nokia.com/webgl/

<comment><USER2> This is a really impressive demo. Most virtual globes (e.g. Google Earth) separate the terrain, surface image and building data. Normally, these are sent to the client separately and merged in the graphics card: the surface image is texture mapped onto the terrain, and then the building data is drawn separately on top. Special routines are used to draw trees (e.g. billboards).

What Nokia have done here is to merge everything - terrain, surface image, buildings and trees - into the same model. They're still using the classic chunked level of detail approach, just with more complex models, which the graphics card handles with ease.

This requires more work on the server side to prepare the data, but once it is done it is _really_ fast for the client. The main disadvantage is that the data ends up being very static - you can't move objects around, for example.

P.S. I'm currently working on open source WebGL globes like OpenWebGlobe (www.openwebglobe.org) and WebGLEarth (www.webglearth.org). If you're interested in this sort of thing, I recommend reading www.virtualglobebook.com .

<comment><USER3> Lot of webGL these days. As you are directly working on this technology, I would like to know how the future of it is going to be?

<comment><USER2> I think the future for WebGL is very bright, especially as it becomes more widely available on mobile, and a full screen mode with mouse capture gets added on the desktop (critical for games).

A little more here: <http://news.ycombinator.com/item?id=3429641>

</comment></comment></comment><comment><USER4> The mapping team at Nokia is by far the best software development team in the organization (maybe with the exception of Trolltech/qt), and it's surviving the MSFT integration. It's (largely) the legacy of the successful acquisition of Gate5 in Berlin -- and somehow the team there was able to resist full assimilation into the Borg. I was talking to a Nokian today who commented that in Nokia, "Berlin is the new Helsinki".

<comment><USER5> Your friend is right. I freelanced there earlier this year to create a prototype of Ovi Maps on Windows Phone. I couldn't stay on to see the production version through (commitments in London), but what they shipped on the Lumia (Maps and Drive) is awesome.

[Edit] Earlier LAST year, this year's only a few days old ;-)

</comment></comment><comment><USER6> Smooth as butter! Too bad there is no way to search or get permalinks to specific location-view combinations, but hey, it's a demo :)

<comment><AUTHOR> I think this is destined to eventually replace their plugin-based version at <http://maps.nokia.com/> \- at least for WebGL browsers.

<comment><USER7> I wonder if MS will ever support WebGL? When they had 95% market share they could afford to not support new tech safe in the knowledge that the rest of the industry wouldn't bother coding to it. Now they're sub-50% in a lot of sectors and there are a lot of visually impressive tech demos coming out that they don't support.

<comment><USER8> They probably won't, which is why in an earlier thread I said that IEN will always be IE6. My assumption would be that they'd do something along the lines of webDirectX and we'd have to create a shim to give it a common interface.

<comment><USER9> Agreed. Given DirectX and Direct3D, MS is unlikely to support a derivative of OpenGL. That may eventually change if WebGL becomes widely adopted, forcing their hand, but current lack of support in IE9+ is a major inhibition to adoption. I doubt they would create a competing standard (such as WebDirectX).

Instead, MS is pushing performance improvements and hardware acceleration for Canvas and SVG. This is NVIDIA, but to give an example of the possibilities:

<http://developer.nvidia.com/nv-path-rendering>

IMO, focusing on these isn't a bad thing, because these 2D technologies are substantially easier to use (e.g., SVG is declarative and integrates with CSS). Though, WebGL is obviously more expressive.

We may also see some WebGL-derived technologies make their way back into CSS + SVG. Similar to SVG filters for CSS:

<http://www.w3.org/Graphics/fx/>

Proposed GLSL shaders for CSS:

<http://www.adobe.com/devnet/html5/articles/css-shaders.html>

<comment><USER10> (And the irony behind "WebGL is a derivative of OpenGL" is that on Windows (at least for Chrome and Firefox), WebGL is actually all based on Direct3D, via ANGLE:

<http://code.google.com/p/angleproject/>)

I would love to see shaders on CSS, but GLSL is such an ugly layer to add on top of a fairly nice design. Notice how the SVG filters are so much simpler to specify than the GLSL-on-CSS proposal.

I would much rather that Adobe designed a more restricted, declarative little language which would easily compile to GLSL, than bolt an almost-turing- complete C variant on top of CSS which is hard to reason about, hard to guarantee safety (most of the webgl-crashes-video-drivers issues have still not been solved, aside from the hamfisted "we will block webgl if we see this set of drivers" solution), and hard to interoperate.

</comment></comment></comment></comment></comment></comment><comment><USER11> It looks like only the cities that are labeled have 3D data (buildings etc), but those that do look phenomenal. Even the trees look pretty good!

<comment><USER12> No, unlisted cities may be partially covered. There is quite an amount of coverage for Berlin, Germany, for example (far from complete though).

</comment></comment><comment><USER13> It didn't even increase the speed of my computers fans from lowest point. And normally, a YouTube-video can be enough to do that. That's impressive.

Nokia scores a point with me here, if they keep delivering things like this I may even consider buying one of their phones one day.

</comment><comment> adam-a Includes anaglyph 3d mode too if you put "nw.setRedBlueStereo(true, 10.0, 10.0)" in your js console.

<comment><USER14> Awesome! Though it seems to work better for my particular anaglyph glasses if you set the values at ~40

<comment> adam-a I don't have any glasses to try it with unfortunately, but cool to hear it works!

</comment></comment></comment><comment><USER15> Can anyone fill us in on how they're collecting such accurate 3D detail for all these buildings? I mean are they flying airplanes with 360 degree cameras over the major cities at low altitude, for instance?

<comment><USER16> I'd really like to know that too. Also, are they collecting data themselves? If not, where are they getting it from?

<comment><USER5> It's based on a virtual cityscape, which is painted with images taken much like StreeView's. The 3D models are built with data from Navteq's Journey View system, using lidar (<http://en.wikipedia.org/wiki/LIDAR>). Photos are then stitched and rendered onto the 3D models.

<comment><USER17> Thanks for the details! This technique works surprisingly well. (One of the artifacts I was able to find is at the base of the Bay Bridge in SF's SOMA -- there's a vertical wall that has the street surface projected up along it rather than an actual hole underneath the bridge. That does seem like a challenging case for airborne lidar + stitching.)

Another impressive spot is the top of the Stratosphere Tower in Las Vegas -- it manages to capture the spike at the top fairly well. It'd be interesting to know how much hand-editing they did for sites of interest like that, and how they represent hand-edits in a way that can be re-applied when new lidar datasets come in.

</comment></comment></comment></comment><comment><USER18> Fantastic. Is there a way to create a link to a given viewpoint location/direction/zoomlevel? That would make it possible to share views of the world, always nice.

When zoomed into an area for which there is 3D building coverage, it feels almost game-like. And I say that from a vantage point of some relevance. :)

<comment><USER19> I wonder how photography will be affected by this sort of technology in the not so distant future, as the images and point cloud data increase in definition. For instance, instead of waiting for the perfect weather conditions for the desired picture, the "photographer" could simply manipulate lighting and such, then render the scene in high definition.

</comment></comment><comment><USER20> Wow, I am impressed with how responsive that is. I'm on an Air and I generally don't have good experiences with this sort of thing.

<comment><USER21> What is the config if I may ask? I'm thinking of getting an Air for dev work (13" 2011 model).

<comment><USER20> No problem. I believe mine is a late 2010 model. It has the 1.4 GHz Core 2 Duo with 4 GB of RAM. It's 11'' rather than 13''. Performance is generally excellent and it's probably the best computer I've ever owned in terms of outright utility simply because it's approximately the size of a Kindle DX and I can take it anywhere without a thought. The fact that it's usable and responsive essentially instantly after opening the lid is also huge.

The only real problem comes with pushing pixels around, as the other reply mentioned. I can watch QT video fine, but if I go to Vimeo or YouTube, I can't really get a good playback out of Flash. Generally Flash is bad on this machine. I'm a long time Mac user so I'm not too unused to this, but it seems a little worse than on an iMac or something like that.

I think if you use an IDE for dev work you should check it out at an Apple Store or something to make sure the resolution works for you. That's really the only thing I'd consider. My 11'' is really just too small to me, having been spoiled by dual 30''s on my desktop. If you use a text editor or vim/emacs it'll probably be fine, but IntelliJ or Eclipse or whatever just have too many windows to manage in the space, in my opinion.

<comment><USER21> My choice is between MBP 13" and Air 13", and looking at the online store, Air actually has the better resolution (~1440x900 vs. ~1280x800). I was surprised at this, but I have used Xcode on 1440x900 on a 15" MBP and I was ok with it.

Thanks!

</comment></comment></comment></comment><comment><USER22> Who thinks it's better than Google maps?

<comment><USER23> Er, not me. Where's the search box?

Stuff like this does look genuinely awesome, but Google Maps provides a whole different set of functionality. Searching, routing, etc.

<comment><USER24> Well, what Nokia has done is better than the way Google has it set up. At least for advanced machines that can run it. But I'm sure Google will catch up when it's a reliable standard.

<comment><USER25> Google has their own WebGL demo which isn't anything like this <http://news.ycombinator.com/item?id=3106658>

<comment><USER24> I've played with their streetview transition in GL... really nice.

</comment></comment></comment></comment></comment><comment><USER26> very cool. the satellite imagery seems both more detailed and more recent than Google's.

<comment><USER27> Came here to say the same, google maps imagery of my area is about 7-10 years old.

<comment><USER5> I was convinced the CIA was watching me, because I've been checking Google Maps for over a year now and the same white van's been parked outside my house for all that time. I just saw that on Nokia maps it's left. Thank goodness!

</comment></comment></comment><comment><USER28> Can anyone tell how old the maps are that they are using? I looked around but I couldn't find anything.

I tried zooming over my workplace in Darwin, AU and the building we work in isn't even there.. (its roughly 5years or so old)

I imagine there is probably a mash up of old/new map data in there depending on the population of a given place..

</comment><comment><USER29> Wow. Very impressive. I'm in Boston and was able to pull an almost disturbingly detailed 3d view of my balcony.

<comment><USER30> First time I saw Google Street View, I was sitting on my balcony with my laptop. I looked at the Google image for my street, and it was me sitting on the balcony with my laptop. I had to do a double-take before I realized the picture was taken a few weeks prior.

</comment></comment><comment><USER31> Amazing how well the software renders thousands of objects. On close inspection, I find the post-apocalyptic aesthetic of the rendering geometry very appealing. <http://i.imgur.com/dNYer.jpg>

</comment><comment><USER32> Here's the APIs for the older version: <http://api.maps.nokia.com/>. Hopefully they'll be doing some documentation on using the new WebGL based API!

</comment><comment><USER33> Nokia (Ovi) Maps was always the best built in GPS solution for smartphones.

</comment><comment><USER34> It's really nice! I hope that Nokia releases this eventually.

<comment><AUTHOR> Presumably this is a precursor to replacing their 3D plugin version at <http://maps.nokia.com/> \- at least for browsers that support WebGL.

</comment></comment><comment><USER35> On Safari: This requires latest Chrome or Firefox.

On latest Chrome: There was a WebGL compatibility problem. Please check system settings.

Yay standards?

<comment><USER24> 16.0.912.63 Chrome on OSX here, works beautifully

<comment><USER36> chrome detects if your graphics card is on some whitelist of gcards known to work with webGL. you can override (force on) this in chrome:flags I believe

<comment><USER24> Woah, what? Why have I not seen chrome:flags before? This is like Christmas

</comment></comment></comment></comment><comment><USER37> I've been wanting an API key to nokia's 3D maps for a while. There are a lot of gaming possibilities there.

</comment><comment><USER38> Isn't the WebGL stuff done by Navteq, that's who the copyright says.

<comment><USER39> Nokia owns Navteq.

</comment></comment><comment><USER40> Does anyone else have all text on globe upside-down?

<comment><USER41> Are you in Australia? Just kidding, since I don't have the latest version of Firefox, despite clicking the check for updates box, I can not check this out. I even tried downloading chrome but it failed. Naturally google needs javascript to let me download a file, and even when it was enabled it did not download.

</comment></comment><comment><USER42> Is there a writeup anywhere on how this is done?

</comment><comment><USER43> downtown Chicago is lots of fun

</comment><comment><USER44> yeah, that's pretty cool.

</comment><comment><USER45> I wonder how do they get the building facade textures/polys... It seems they have not only vertical satelite shots but also inclined ones.

</comment><comment><USER45> Not bug free: <http://fredbrach.posterous.com/pas-de-sujet> This is the limit between the 3D data and the flat ones.

</comment><comment><USER46> No scale? Not a map.</comment>


10 Myths surrounding solar energy - <AUTHOR> http://solarplaza.com/article/10-myths-surrounding-solar-energy

<comment><USER2> Consider that the name of the site is Solarplaza. That said:

"But the payback time for the energy used to produce a solar panel is only one to two years. This means that in this time the panel generates the total amount of energy that has been used in its entire production. ... Other sources of energy have much longer payback times. Specifically, nuclear power plants have extremely long payback times - so long in fact that it is questionable whether all the power that generated during their lifetime is enough to pay for the energy used to build and disassemble them."

<comment><USER3> The bit about nuclear power plants is such nonsense I doubt the creditability of the rest of the article. The highest figure anywhere seems to be about 15 years, from Storm van Leeuwen <http://www.stormsmith.nl/report20071013/partC.pdf>

</comment></comment><comment><USER4> "In the summer, almost 10% of the household electricity in the south of Germany is generated by solar panels."

I don't know a great deal about solar energy, and I was led to believe that it was a bit hokey or inefficient, but that is a really impressive number. Cool!

</comment><comment><USER5> Very enlightening. I did not know that solar panels can last from 25 to 40 years and that only in 1 to 2 years the produced energy pays off the carbon footprint needed for producing the panels.

</comment><comment><USER6> This is why I want the public and the Governments to focus on pouring money into solar energy. The more attention it gets, the better the technology becomes and the price keeps dropping.

<comment><USER7> Thank you for the offer, but no.

Government should stay away from innovations. It's not where government is efficient at.

<comment><USER6> Well, I wasn't exactly implying that Government should be the biggest investor in these technologies, just that it should support it, and be its main priority going forward, like writing legislation to help it accelerate, etc.

<comment><USER7> Partial government involvement into innovation process would limit the damage, but it still would be damaging. Main priority of the government going forward should be limiting government expenses. That would be the best thing to encourage innovation.

</comment></comment></comment></comment><comment><USER8> What about the end of life of solar panels ? Did they manage to build recyclable ones ?

<comment><USER5> The answer is at the end of the article. The short answeris: that the solar industrie has processes to recycle 100% all the panels. I agree that it would be nice to know more about this, especially if the panels are really recycled - after all having processes is not a gjarantee that they are really applied.</comment></comment>


Show HN: Hiring startups get top developers in their inbox - <AUTHOR> http://devhunt.co

<comment><USER2> Do you have an About page? How are you acquiring your network/database of caliber engineers for these start-ups? What are you going to charge after a limited time?

<comment><AUTHOR> The engineering talent is at a high level due to the fact that candidates have worked at top tech companies. There is no charge to the developers. Startups at a monthly fee will get an increased number of candidates in their inbox.

Meant to include all information in one page so didn't add a separate About page.

<comment><USER2> So I imagine you already have a large database of candidates in there so employers can receive them once they sign up, right?

Otherwise it's a basically a landing page and e-mail sign up for a stack overflow-type careers site and you'll only receive active (with few exceptions, lower caliber) candidates. Hopefully that's not the case, as there would be practically zero chance of success.

<comment><AUTHOR> Startups specify what tech companies the candidates have worked. This narrows the pool of candidates to ones already vetted by these companies.

For example, if a startup chooses Google and Facebook, they will only receive developers who have worked at Google or Facebook and who are looking to be hired by a startup.

<comment><USER2> OK, but how are you finding/convincing these prospective candidates to talk to these companies?

What value are you providing these companies here? The fact that you're already requiring the employer to TELL you which companies to target puts you far behind an average recruiter just in terms of hassle & productivity.

<comment><AUTHOR> I'm building up the database of candidates at the same time as the database of startups. There are two sign up paths on the form, "Get Hired" and "Hire".

The benefit to the startup is convenience. Startups get a regular e-mail with engineers including their contact information. No app or service to log in to. They also don't need to deal with anonymous introductions to candidates who aren't seriously looking.

Requiring startups to specify which companies to hire from may be limiting or like you said not productive. If I see many startups selecting many or all companies I will simply make it a requirement that candidates have worked at a top tech company and not specific ones.

<comment><USER2> Got it, thanks for explaining. Here's my two cents and I'm sorry if it's not what you want to hear:

The foundation of recruiting is sales - you are competing again internal, external recruiters and many other avenues pursued by an employer to hire THE best candidate for a given role. They don't care about anything but you delivering the best in the most efficient way possible.

I regular give advice to people testing new tech recruiting approaches - because the system is broken in many ways. The worst attempts at fixing are generally made by engineers with limited understanding of what it takes to actually be.a.recruiter. They assume that their technical proficiency will give them the edge - wrong. This is the mistake made by most technical people who believe they'll also succeed in sales - it ends up being a handicap. For the most part, actuaries make terrible insurances salespeople, mechanics fail in car sales, and so on. Human first, salesperson second, technician a distant third.

At this point, all you have is a visually appealing tool that may add a tiny fraction to the employer's hiring productivity. But that means nothing unless you have the best candidates for them, yesterday. If you are starting from scratch, you'll either need to partner with a recruiter with a huge rolodex or spend about years building up your own. You cannot just enter this game without a huge database ready for your hiring campaign. It's a numbers game, it takes massive outreach before you can even offer a simple tool like this to differentiate yourself. Until then, an employer could care less unless you've proven you can deliver the best candidate, now.

Hope this helps!

<comment><AUTHOR> Based on your experience in the tech recruiting industry, what aspect of recruiting is broken and is the biggest pain point?

<comment><USER2> IMO trust in recruiters. Like any commission-sales role, there is a low barrier to entry and too many bad professionals give it a bad name, lead to skepticism, therefore creating challenges and inefficiencies for the minority that can make it a valuable experience for both candidates & hiring managers.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Kotlin is the hero Android needs - <AUTHOR> https://10clouds.com/blog/kotlin-android/ <comment><USER3> It makes me sad that people are so upset by the recent hype Kotlin is getting. Everyone has something that they get excited about. Kotlin is new and shiny and has been around awhile but only on the fringe. Google brings it to the spotlight and people are going to be interested. Maybe Kotlin gets big, maybe not but there is no need to get angry about the news. It is big news. Android is the most used smartphone OS in the world[1]. This is going to have an impact somewhere.

1: [https://en.wikipedia.org/wiki/Usage_share_of_operating_syste...](https://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Worldwide_device_shipments)

<comment><USER4> I like kotlin and I am not angry about the news. I am angry because the people is starting to notice it now because Google bla bla bla. It is a great language, with or without Google, it is going to keep being a great language.

There were so much hype about swift, when kotlin was here and probably doing better (no incompatibility issues between versions for example). Swift and kotlin are the languages to look to the future. One or two years ago, and today.

I wish the people would have more critic sense and asses the things by themselves before a big company says anything. (Because kotlin was great before Google said anything)

<comment><USER5> You're coming across as a Kotlin hipster. I would just be happy the language is now on more people's radar. Maybe some folks had never even heard of the language before this year's IO. Learning a new programming language and its idioms isn't a trivial time investment for devs swamped with work, so waiting until a heavy hitter like Google throws its weight behind it is quite a pragmatic approach.

<comment><USER4> I am happy more people is aware of kotlin now, I am not happy the people wasn't aware before. Even when you were pointing them to the goods of the language. But still I trust more JetBrains than Google for programming langues, only because is a company that create tools for programmers, they have more experience.

<comment><USER6> The suitability of a language for a particular project doesn't just depend on language features.

Most new languages will fade away without ever getting enough traction to survive. It's a real risk that is mitigated by corporate backing.

Many people may have been aware of Kotlin's strengths but found themselves unable to justify its use for a mission critical task.

</comment></comment></comment></comment></comment><comment><USER7> The hero that android needs is a complete rewrite of Activities and Fragments into something that makes sense in a stateful application

<comment><USER8> Kotlin was not required. Android developers keep losing focus on what's more important and what's less; with the dance of variations of MVP patterns, RxJava, 10 ways to do the same shit. Now even Google has to focus on 2 things, providing support for 2 languages. Java 9 is on the verge of being released and we are just getting parts of Java 8. Yes, we do not need all features, but what we actually need is FOCUS.

<comment><USER9> What would you like "us" to focus on? As for MVP variations and RxJava, those are useful tools. MVP variations are often for organization and writing more modular, testable code. RxJava and other Rx implementations are useful for describing data flows and transformations while also making complicated asynchronous problems more manageable.

<comment><USER8> MVP & Rx are good, no doubt. But there are a crazy amount of Pundits preaching different variations and thanks to the internet an early developer/beginner is confused. I have spent several hours helping others rectify basic mistakes. There should be some serious and well-documented approaches to achieve something (a performant app in this case). Decay is also important. As frameworks mature and android itself moves ahead, old documentation or answers which no longer have relevance should be purged. Android documentation itself boasts old sample codes, while the framework has deprecated some of them. The problem which OEMs faced are being resolved now, but the reality is it will take another year or two for it to come live. In 2013 Huawei had come up with its own extension to segregate its own modification with vendor and base; very sure that's not getting removed at least in the next 1 year.

</comment></comment></comment></comment><comment><USER10> WTF? Some people are spending serious money on a PR campaign to promote Kotlin this week!

<comment><USER11> 1\. Android is the largest mobile platform on the planet.

2\. It's been around for a decade now, but has only supported development with Java and C++.

3\. The most recent version of Java supported comes from 2011. And full C++ support is only recent.

4\. Few people (if any) really like these options.

5\. This week Google announced that Kotlin is the next "official" language with first-class support.

6\. A temporary wave of stories appear on HN.

Are you new here? I'm sure that next week it'll go back to the usual threads about Rust or Haskell, or someone will start a retro fad around Algol-68 or something.

<comment><USER12> You can write android apps in c# or JavaScript too.

I'm not sure if you consider them "supported" but they both have pretty advanced tooling for the purpose.

<comment><USER11> If you write a C# app with Xamarin and have problems, then it's Xamarin's support problem. If you write a JavaScript app with Qt (I assume?), then it's Qt's support problem.

Now, if you write an app with Kotlin, then it's _Google 's_ support problem. I can see how that would change the game for a lot of shops.

<comment><USER13> I'm not sure I trust google to support anything properly, I'm glad it's Jetbrain's problem. Atleast their tooling isn't garbage.

<comment><USER14> It is much easier to squeeze support out of Xamarin than Google.

</comment></comment></comment></comment></comment></comment><comment><USER15> Can someone compare their productivity with React Native or Xamarin to "native" Java/Kotlin development? Having used RN, the whole state/data layer can be shared across two platforms, and I guess the same is doable with C# and Xamarin. I get that both require bridges when interfacing with ObjC/Java, whereas Kotlin seems to have great (but only) Java interop.

<comment><USER14> I can only say I'm way more productive in Xamarin than I am in Android native with Java, I do a fair bit of both. I'm excited about Kotlin and will definitely give it a try, but Xamarin does still retain some advantages over Kotlin, even though it seems to be a slightly more advanced language than C#:

Xamarin allows you to target iOS, MacOS, and Windows in addition to Android. Though you have to rewrite the view layer for each platform. If your view layer is in HTML, then you mostly have WORA.

Xamarin converts a lot of crufty weird Android API to a slightly more modern form. So instead of int constants hanging off random classes all over the place, you have proper enums.

Coroutines and async/await seem much more ready for primetime in C# than in Kotlin.

Xamarin builds seem saner and faster than Android native.

There's some very advanced and battle-tested C# libraries that Xamarin opens up that I think are unmatched in native Android land. For full-application frameworks, ORMs, DI, databinding, and serialisation.

There's way more C# devs in the world than Kotlin devs.

Though I have to say that Xamarin has one big disadvantage - it adds another layer of sometimes leaky abstraction, and a whole new source of framework bugs to Android. So you spend a lot of time asking yourself "is this a Google bug, or a Xamarin bug, or my bug?"

<comment><USER16> > Though I have to say that Xamarin has one big disadvantage - it adds another > layer of sometimes leaky abstraction, and a whole new source of framework > bugs to Android. So you spend a lot of time asking yourself "is this a > Google bug, or a Xamarin bug, or my bug?"

This the main reason why while I dabble in all interesting technologies to get a taste of what they bring into the table, production code is always written 100% with official SDK languages for the system being targeted.

</comment></comment></comment><comment><USER17> Someone in an earlier Kotlin discussion (there has been quite a few just today) was praising how Kotlin solves the "1M$ mistake" having no null. He was also complaining that sadly is day-to-day job involves Go.

Unline Kotlin, Go does support len() (.length in Kotlin) on nil: [https://play.golang.org/p/koqYbIdltw](https://play.golang.org/p/koqYbIdltw)

In Kotlin, b.length can throw a NPE, only a b?.length won't (it will return zero or null, I have not understood that).

Together with the var/val debacle, it seems like it is designed to be very terse, which can lead to easier errors.

I don't think it solves the 1M$ mistake at all. And how could it, while maintaining full compatiblity with Java?

<comment><USER18> The only way b.length would compile, if b is a nullable array, is if it's defined in a Java class. In which case Kotlin will _assume_ it's non-nullable in the absence of nullability annotations. That is not perfectly ideal, but it's not Kotlin's fault; they decided (rightly, I think) that the reduced friction is worth the risk. And you can add annotations.

If b were defined in kotlin, as nullable, then b.length is a type error. You can use b?.length, or you can add an explicit null check and depend on the smart cast.

</comment></comment><comment><USER19> I am what they call a Dilbertish Java Developer and I really like what they've done with Kotlin, wanted to jump ship to .NET ecosystem just because of C# but now I changed my mind. Articles like this are focused on syntactic sugar and kool-aid. What I really want to know is the following:

How different is idiomatic Kotlin in respect to Java?

How complex Kotlin Native will get? (I know that they want it for iOS, IoT, games, data science but something like this will require some types of manual memory mechanism, at least for gaming)

Will Kotlin Native work in Android NDK (calling it from JVM in general)?

Will Kotlin Native support WebAssembly?

<comment><USER20> > How different is idiomatic Kotlin in respect to Java?

Not much, but there are differences. It's generally things that Java just don't have.

> How complex Kotlin Native will get? (I know that they want it for iOS, IoT, > games, data science but something like this will require some types of > manual memory mechanism, at least for gaming) Will Kotlin Native work in > Android NDK (calling it from JVM in general)?

I think it'll be native code with small stdlib which will compile to many platforms. So generally if you can write something with C, you'll be able to use Kotlin.

> Will Kotlin Native support WebAssembly?

I think so. Kotlin Native uses LLVM and LLVM can produce WebAssembly output.

</comment></comment><comment><USER21> "Remember filtering lists with for loops? Thanks to the functional approach to collections, we can also reduce all the complex, multiline instructions to only one line of code."

Erm, same can be done in Java with the Java 8 stream API.

I like Kotlin and use it with Spring, but articles like this where programming languages are not compared properly make me cringe.

<comment><USER11> Even after 10,000 armchair lawyer discussions about the Google-Oracle lawsuit, I feel like 99% of developers still do not grok that Android's "Java" isn't really Java.

They wrote their own implementation of an earlier version, and at this point will probably never update its API to fully match Java 8 or beyond. Android devs who want advancements will have to add "shims", like retrolambda or (quite frankly) Kotlin.

<comment><USER16> Aka language fork.

</comment></comment></comment><comment><USER22> > Remember POJOs? With the introduction of Kotlin's data classes, we can say > goodbye to generating the getters and setters for all object fields and > writing implementations of toString(), hashCode() and equals() methods. > Instead of 50+ LOC in Java, we can reduce that number to 1 (!) in Kotlin.

So this is like Python's attrs module

</comment><comment><USER23> It's very sad that our industry is so hype driven.

Nothing really changed, you could write Android apps on Kotlin before, as well as on any other JVM language. But now "Kotlin is the hero".

I suspect that Google's adoption of Kotlin is just politics: JetBrains develops Android Studio for Google, so they pushed Kotlin as part of the deal. Google could acknowledge Scala years ago, but didn't, because Scala authors spend less time on bullshit politics and more time on actually improving the language.

Also, I don't understand the point of Kotlin. Clojure, Groovy and Scala are all very distinctive from each other and have their own niche. Kotlin is just a subset of Scala. Same thing, but less features. I guess it's NIH principle applied to JetBrains.

<comment><USER24> Kotlin is a smart subset of Scala.

Scala did a lot of things that pushed mainstream programming forward, but it's also crapped up with a lot of detritus, ideas that didn't work out, and ideas that were always obviously bad.

<comment><USER4> > Kotlin is a smart subset of Scala

Yes, it is only the subset you need, nothing else. That is why is here to stay and Scala not.

Making the things more complex doesn't mean making them better. Do one thing, and do it right. Don't do a lot of things half good.

<comment><USER25> Scala does all the features of Kotlin equally well, not half good.

Actually Kotlin inherited a few bad ideas from Scala as well - which Scala already dropped like procedure syntax.

And some features like null handling or coroutines in Kotlin are implemented as language features - special cases in the compiler, because the core of the language lacks abstraction mechanisms. This is making the language _more complex_ than Scala.

Scala: minimal and powerful language core, the rest is in libraries.

Dotty: make this core even smaller

Kotlin: take a powerful language like Scala, remove almost all of the unnique abstraction features, leave only "better Java syntax" and then reimplement missing features by special cases directly in the language instead of libraries. Feels like VB of XXI century.

<comment><USER4> I have written Scala code and kotlin code, and it is much more legible the kotlin code. When I tried also there were problems calling Scala code from Java (I think there were problems with the type inference system that was giving me non-sense errors). Scala adds like 500kb to an Android app, kotlin only few kb. The compilation times are much faster with kotlin, the tooling support is also better. It is easier to become more productive with kotlin than with Scala.

> Scala already dropped like procedure syntax

Do you mean this?: [https://groups.google.com/forum/#!topic/scala- internals/q1YX...](https://groups.google.com/forum/#!topic/scala- internals/q1YX7NC1geM/discussion)

Kotlin does not do that.

> some features like null handling or coroutines in Kotlin are implemented as > language features

null handling yes, and it is very well done. Coroutines so so, they added a couple of keywords to the language and most of the implementation is in the library. You can create your own coroutines: [https://kotlinlang.org/docs/reference/coroutines.html](https://kotlinlang.org/docs/reference/coroutines.html)

Go do coroutines quite good and they have also implemented in the language, why is it bad they use a couple of keywords for those special cases?

<comment><USER25> > Scala adds like 500kb to an Android app

This is a lie. Please stop spreading these lies about Scala requiring a huge runtime. Scala runtime adds about 30 kB, which is nothing in 2017.

> the tooling support is also better.

Both use the same IDE from Jetbrains and both are officially supported. Hard to tell which one is really better, but Kotlin support has more issues in its bug tracker, despite being less popular :P

> (nulls) it is very well done.

It is not. It makes the type system more complex, and you can't abstract over optionals and other collection types. You also can't make your own flavor of optional-kinds, like Either or Try that would behave similar to the builtin nullability feature.

The biggest problem with builtin features is that you can't make your own slightly different ones. You're at mercy of one company controlling the language. With a smaller language + libraries, you can always fork a library and do modifications.

</comment></comment></comment></comment></comment></comment><comment><USER26> Should someone that's starting to learn native android development switch to Kotlin, or is it better to learn Java first?

<comment><USER27> I'd go with Java and the standard APIs at first. Kotlin looks very similar to Java just less verbose (I have not used it) and they say that you can mix it in with Java if you like.

<comment><USER28> Kotlin uses Java Byte-Code and JetBrains has put in a lot of effort to make it so that any Java you do write can be automatically translated into Kotlin in their IDE's. Idk how well this works because I haven't tried it but apparently it worked well enough for them to try and do it with JavaScript as well which is still in Beta.

<comment><USER18> It works well. The resulting code often won't compile without manual changes on the Java side, but they're simple changes, and it does automate 90-95% of it. I've never yet introduced bugs this way. It doesn't produce idiomatic Kotlin, of course.

It's also a nice Rosetta stone while learning Kotlin.

</comment></comment></comment></comment><comment><USER29> So... I just started getting into writing an Android app. What would be the advice... I installed Android studio last week, is that still a preferred IDE?

<comment><USER30> Yep, don't know if you can change the channel in settings to get canary updates, but either way I installed from here: [https://developer.android.com/studio/preview/index.html](https://developer.android.com/studio/preview/index.html)

edit: I'm assuming you want, like me, to try Kotlin

<comment><USER31> You don't actually need to use the 3.0 preview for kotlin development in android. You can use the stable version and just follow the instructions provided by jetbrains: [https://kotlinlang.org/docs/tutorials/kotlin- android.html](https://kotlinlang.org/docs/tutorials/kotlin-android.html)

</comment></comment></comment><comment><USER32> I just started trying to pick up Android development in the last few weeks. I'm comfortable with Java from college, but don't really keep up with it or the ecosystem. Should I consider Kotlin for learning the platform with, or are the docs and learning resources Google provides not up to speed yet?

Note: I'd eventually just use Kotlin anyways cause I don't care all that much for Java.

<comment><USER18> It's easy to use Java libraries from Kotlin, to the point that there's nearly a 1:1 syntactic mapping. So in my opinion, yes, you should be able to use Kotlin from the start.

That said, I've never written an Android app. There may be issues with that particular platform.

</comment></comment><comment><USER33> Its not a hero and android doesn't need it. Android is a near monopoly, they could tell us to start programming in Ada and we'd all have to follow along whether we wanted to or not.

Java is baggage ridden. I wonder if Java would've been the language of choice had Rust or Go existed when it was started.

</comment><comment><USER34> I don't see how this is at all true. Android store is unregulated and allows anyone to submit a crApp. This language looks stupid and it's no different than a dozen other languages in principle. Why not port Swift to Android so we can truly write once and run on two places?

<comment><USER35> Because Swift doesn't interoperate with Java, ergo removing any path forward for a gradual migration. And if it did, then it'd fragment the Swift ecosystem.

</comment></comment><comment><USER36> What about Clojure? If Kotlin works for Android, shouldn't Clojure by now?

<comment><USER37> Clojure is unfortunately implemented in such a way that makes it extremely slow to load/start. It's really only suitable for heavy duty long running servers where you don't care about startup time or resource usage, the exact opposite of what android apps need. It's sort of sad to see such an amazing language packaged up in a J2EE'ish manner.

</comment></comment><comment><USER38> I had mixed feelings about Kotlin when I first heard about it. Usually I wouldn't think twice about a language developed and championed by a small company. But the "small company" being JetBrains, I had a feeling it would be well thought out with a good IDE. It doesn't seem like I'll be disappointed. I've avoided Android development because I dislike both Java and Eclipse. Both of those problems seem to be solved. Now of only the emulator was better and building GUIs....

</comment><comment><USER39> The Kotlin interest strikes me as funny, it feels like Java programmers are just realising what the rest of us have been using for years is pretty nice.

</comment><comment><USER40> Is it easy to learn for someone who doesn't know any programming languages beforehand? Like I only know a bit of JavaScript

<comment><USER41> The strong point of kotlin is definitely that it's "java pseudocode" \- it's what you'd have to write on a whiteboard to leave no questions about what was elided. Like data classes - in kotlin you write the attributes, but get setters and getters, so you could to validation on change or whatever you might need steers for beyond beans.

Given that; it's a pretty simple language - a lot like python or ruby, but with a touch more of syntax beurocracy.

If you only have _some_ javascript, it would probably be best to learn it from a proper kotlin book - there's a few out/coming out - but I've not read them.

But if anyone took a typical "java as a first programming language"-book and shifted it to idiomatic kotlin, such a book would probably be a decent first programming book.

Note that I do agree somewhat with the comments about kotlin being lipstick on java's broken and strange single-inheritance oo, which leans more on Simula than Smalltalk. But I think the result is rather pretty. Maybe just because it manages to get rid of so much cruft from java ("Doctor it hurts when I do this." \- "Then stop doing that.").

<comment><USER40> Okay thanks, maybe I'll go into it through Java.

<comment><USER41> To be clear: I believe kotlin is a much better language to start with than java (but then, java is a pretty awful language inmho). But I've yet to see or read/hear about any books for teaching programming through kotlin as a ~first programming language (while there are many for python, ruby, java etc - <USER2> even lisp/scheme).

I would probably rate kotlin as a better starting language than javascript, for that matter.

<comment><USER40> Wow that's a big one then, I wasn't a Computer Science student but I like tech. Tried to learn Java a couple years ago and gave up, decided to go with HTML/CSS on Codeacademy as baby steps and did Javascript from there. If Kotlin is easier than that I'll definitely try to learn it ASAP I'm really interested.

</comment></comment></comment></comment></comment><comment><USER42>
        Lambdas
        Data classes
        Function literals & inline functions
        Extension functions
        Null safety
        Smart casts
        String templates
        Properties
        Primary constructors
        Class delegation
        Type inference
        Singletons
        Declaration-site variance
        Range expressions

</comment><comment><USER43> Kotlin examples on the site are not much different from Java ones. They're almost identical in length. Why bother to use it and add one more step for translation to a compiler chain that is already very slow.

Same with Scala. I once ported a Scala program to Java one and ended up with much shorter and concise code.

<comment><USER44> > Why bother to use it and add one more step for translation to a compiler > chain that is already very slow.

I think you have a misconception about how Kotlin and Scala are compiled. Java source code is not generated by either of these compilers -- they both compile directly to .class files, just like javac does. There is no extra step, just a different step.

<comment><USER35> But, from what I know, Scala is compilation is really, really slow. So if you're only familiar with Scala and not Kotlin, you may get the wrong idea.

</comment></comment></comment><comment><USER45> Does anyone know of something like hyperpolygot.org for Kotlin? I guess my main question is can anonymous functions be nested with out requiring final in Kotlin? Java requires final either implicitly or explicitly which makes anonymous functions rather uslesss.

</comment><comment><USER46> I've been watching this for a bit - it is my understanding that large parts of IntelliJ itself are written in Kotlin.

I, for one, am very interested in how I can use it to speed my JVM-based development.

I'm also interested in doing front end dev with it as well.

</comment><comment><USER47> Genuine question: what is wrong with Java from a pragmatic point of view?

<comment><USER48> One major issue is that Android only supports java 6. All the nice things java 8 brings aren't available. With Kotlin officially supported in Android, you can finally have nice things.

</comment></comment><comment><USER49> Title is hype. IMO the hero Android needs is root access to be accessible easily out of the box. Buying closed phones is a fool's game.

Sincerely, a developer.

</comment><comment><USER50> What's with the kotlin hacker news spam this week? Isn't one article enough?

<comment><USER51> During Google I/O it has been announced as a officially supported language in Android to the same level as Java, so all documentation, tooling, etc, will have a Kotlin version. Therefore, everybody wants to know more about this language.

<comment><USER52> Thats right, forgot google io stuff is going on, makes sense. After a apple keynote we see ipad and swift flooding to the top.

</comment></comment></comment><comment><USER53> Did someone spend some cash on 'promote this link' for Kotlin today? It seems like we've had a flood of Kotlin links.

I mean, the first one I saw was Steve Yegge's so that lends a bunch of credibility but still, this is more than Baader-Meinhoff.

<comment><USER54> I think you're just underestimating the huge number of Java programmers in the world, and what this announcement means for them, that's all.

HN is usually flooded with stories like "Show HN: I wrote a config parser in Rust" or "Show HN: a web server that serves JSON in Go", which are irrelevant to 90% of working programmers. We just get blind to it. There's no money at work there, just the enthusiasm of the users ... along with a dire need to spark enthusiasm in others given that Rust and Go hardly interop with anything except C.

Kotlin's getting a lot of attention right now, but it'll die down because Kotlin users don't need to win converts to their ecosystem. You won't be seeing the next two years of HN front pages be filled with "My experience of converting a microservice to Kotlin" type stories, because Kotlin users can just use all the Java and JVM ecosystem support already, so there's no need to win people over. Getting more Kotlin users in the world doesn't make a huge difference to your own experience.

</comment></comment><comment><USER55> The hug of death

<comment><USER56> It's back!

</comment></comment><comment><USER57> Did anyone said Kotlin?

</comment><comment><USER58> It's just Java with a few Swift features. The only thing Kotlin does is help you to be more efficient at writing terrible OO code.

This is even less of a reason to to be excited than when C++ came out, and solved none of the issues C had, just introduced a weak inheritance system, and search-and-replace level of meta-programming.</comment>


Cybeats gets 2 prestigious awards - <AUTHOR> https://www.cybeats.com/blog/2018/4/10/cybeats-takes-top-honors-in-two-categories-of-the-iot-global-awards <comment><USER2> Great idea, great product and an amazing team!</comment>


Google: Security and Disinformation US 2016 Election - <AUTHOR> https://blog.google/topics/public-policy/security-and-disinformation-us-2016-election/ <comment><USER2> If $4700 in ads could sway an entire US Presidential election, that has to be the most cost-effective use of money to achieve a foreign policy objective in the history of the world.

<comment><USER3> It's far from that. Didn't Google report thousands of hours of YouTube videos created? Combine this with disinformation on Twitter, Facebook, and less transparent media like 4chan and Reddit, and the sheer amount of person hours spent impersonating Americans pushing one talking point or another can have a profound effect.

The problem with Correct the Record was, other than an extremely shortsighted objective, the fact that everyone knew about it. People who legitimately defended Hillary Clinton were assumed to be shills, to be "correcting the record" and this backfired tremendously.

Keep that in mind with these releases. The advertising dollars aren't the major news. It's the sock puppets and vote/conversation manipulation that are by far the largest component of the disinformation campaign. Those costs won't be public, either.

<comment><USER4> "We found 18 [Youtube] channels likely associated with this campaign that made videos publicly available, in English and with content that appeared to be political (These channels also posted non-political videos, e.g., personal travelogues). There were 1,108 such videos uploaded, representing 43 hours of content and totaling 309,000 U.S. views from June 2015 to November 2016. These videos generally had very low view counts; only around 3 percent had more than 5,000 views. These channels' videos were not targeted to the U.S. or to any particular sector of the U.S. population."

<comment><USER3> That seems like a low count of channels, videos, and hours, does that include the content existing channels were paid to create? e.g.: the divisive messaging on Black Lives Matter, where the Internet Research Agency was found to have paid existing content creators to post messages for or against the organization.

</comment></comment></comment></comment><comment><USER5> > We found that two accounts linked to the Internet > Research Agency spent a total of $4,700 on our platforms > during the 2016 election cycle. This figure covers both > search and display ads.

> Publisher products:  We found less than $35 in AdSense > and Ad Exchange revenue from ads on associated sites.

Then Facebook we found spent $100k on ads. Twitter apparently went directly to RT and implored them to target Americans with an ad campaign. Then made a brave and patriotic move to publicly tell them off recently.

Mueller was investigating for months and got Manafort for tax evasion and other corruption mostly around 2014 or so. That was when he was in bed with the Democratic lobby group headed by Tony Podesta, who apparently now is stepping down as well [https://www.politico.com/story/2017/10/30/tony-podesta- stepp...](https://www.politico.com/story/2017/10/30/tony-podesta-stepping- down-from-lobbying-giant-amid-mueller-probe-244314).

Clinton campaign: spent $1B+, had most of the large media conglomerates on her side, Wall Street, major tech companies sponsor and support her, debate questions passed to her ahead of time, best campaign managers, sitting president flying and campaigning on her behalf, and somehow some ads on Facebook and $5000 spent on Google overturned the result of the election?

Is this enough to convince everyone that there is probably no grand Russian collusion and they have been believing a conspiracy theory? Not really. After heading the wrong way for such a long time, it is hard to swallow ones pride and say "Oops, been driving the wrong way for about half a day, should definitely turn around". That's surprisingly hard to do, and is the reason people end up stranded in the desert or on an unmarked road in the mountains in a snow storm. Or another example would be the people in those doomsday cults, who surprisingly stay with the cult even after the end of the world date passes uneventfully. You'd think it would be pretty clear by then what's going on. But no, there is a new date set, and they stay and start believing ever more fervently than before.

<comment><USER6> The existence or not of collusion is independent on whether said collusion was ineffective or unnecessary.

The allure of populist retoric is very powerful, and this election showed it's a weak spot in the American system.

<comment><USER7> > The existence or not of collusion is independent on whether said collusion > was ineffective or unnecessary.

Am I misreading you or are you effectively saying that non-existent collusion can be as effective as existing collusion?

I've read it three times now.

(As usual I guess I should point out the sitting POTUS is and was not my preferred choice.)

<comment><USER6> Nah, I'm rebutting the argument of "the effect of any possible collusion was small, so no collusion existed".

</comment></comment></comment></comment><comment><USER8> I feel that Google is trolling. $4,700 spent on ads? I know advertisers that spend that much per hour. This is a drop in an ocean. That's 94,000 clicks at best ($0.05/click). But probably won't get such low clicks. At 5% engagement rate you'll engage 4,700 people.

</comment><comment><USER9> The most interesting part of this is the timing - on the same day as the first indictments from Mueller, and a week before election day.</comment>


Learning Python while processing raw text: The NLTK book - <AUTHOR> http://nltk.org/book/ch03.html <comment><USER2> Here is another freely available book, Text Processing in Python: <http://gnosis.cx/TPiP/>

Plain text files and not tied to a library.

</comment><comment><AUTHOR> I know this is Chapter 3, and hence jumping into the middle of the book, but lots of people here will have enough knowledge and experience to start from here and check up on unfamiliar terms. You may find you need to backtrack a little, but it seems to me this is a good place to start.

<comment><USER3> That is going to be very useful to me, thanks. I'm doing 2 classes right now, one where I have to present python and the other explain NLTK! :P

</comment></comment><comment><USER4> For anyone whose interested in text classification (along the lines of what Chapter 6 in this book covers), check out our service [https://www.repustate.com/predictive-analytics-machine- learn...](https://www.repustate.com/predictive-analytics-machine-learning/)

It's machine learning as a service: simple API calls to train, cross-validate & classify your data. We'll also be at PyCon this week in Santa Clara so come on by.

Currently in private beta, but we're ramping things up quickly.

<comment><USER5> Do you really see any sort of market for providing operations that can be implemented very easily using python itself?

<comment><USER4> The Python examples given in the book are very very rudimentary. The service behind our API is "real" machine learning (e.g. SVMs, RBMs, deep neural networks & the like). This is all transparent to the user - you just submit your data via our API.

</comment></comment></comment><comment><USER6> In terms of Machine Learning for text data, Chapter 6 is highly recommended.

<http://nltk.org/book/ch06.html>

</comment><comment><USER7> I've learned a lot from the NLTK library, but unfortunately NLTK is terribly slow. Nevertheless, it is a fantastic place for beginners to start with text processing and learn from as the documentation is superb. However eventually one may want to start digging into the NLTK source to rewrite necessary functions using multiprocessing if they plan to process any "big" textual datasets.

</comment><comment><USER8> Processing text is a great way to learn any programming language but I would think there's more interesting and varied practice found through web scraping, not to mention it's a whole lot easier

<comment><AUTHOR> Forgive me if I'm mistaken, but that comment feels like you've read the title of this submission, but not actually read the chapter. This isn't just about chopping and slicing strings, this is an entry point into a comprehensive book about Natural Language Processing, and its associated techniques as exemplified in Python.

<comment><USER8> The chapter contains HTML processing but that's a small subset of what this chapter covers. You don't need to learn word stems to do really interesting things with structured HTML. Also, web scraping involves more than text processing, but the programmatic navigation of websites, which does add some complexity but is pretty manageable with the libraries out there.

Edit: I'm obviously not saying NLP isn't useful, just that web scraping is more _immediately_ useful. With NLP, besides learning the concepts, you have to find a source of raw text that's been unprocessed and yet contains something of real world value. With web text, you just have to collect what someone already thought was valuable to publish and find insights through the aggregation. It seems to me that the latter scenario is easier to grasp, with NLP being useful for going beyond what others have gathered and published.

<comment><AUTHOR> Thing is, this is a book about NLP, not a book about web scraping, so while what you say may be true (although personally I find more value learning about NLP than WS) it seems a little misplaced.

But there is value in both, depending on your objectives. I find web scraping trivial, and mining the text hard, hence my interest in NLP and machine learning.

</comment></comment></comment></comment><comment><USER9> I actually read this book a few weeks ago. I'm pretty new to Python as whole (4 months with the language), so I picked up a few small tricks have saved me quite a bit of time. It does not assume that you either know Python or linguistics very well, so I was certainly pleased that I was able to have my hand held through some of that. I recommend it!

</comment><comment><USER10> This is an excellent resource which I own, but seemed to be focused on language scientists who are unfamiliar with Python rather than developers who need to process text - which I suspect is a large portion of the audience.

<comment><USER11> What simpler use cases do you see? In my case, I'm the language guy this is targeted at and have no clue what most web devs would want this stuff for. Spam and text classification of some kind maybe? MAYBE certain kinds of named entity recognition?

<comment><USER12> Well you as a news-distributor could try to build a tagging-machine, something, that takes texts from a sports news agency for example and enriches it with meaningful tags/keywords, your data from your statistics-section (and so on), to later match other, related content, or match images, or anything like this. something, that you could transmit with the original texts, to make life easier for your customers, with sorting and managing these texts in an automatic fashion inside their content management systems.

[edit] This coming from a text guy, who recently started down the path of python and is hooked ;-)

</comment></comment></comment><comment><USER13> Cover and TOC

<http://nltk.org/book/>

</comment><comment><USER14> I read it and their code examples are not great. Too many abbreviated and meaningless variable names.

</comment><comment><USER15> The "pattern" library is also worth checking out:

      http://www.clips.ua.ac.be/pages/pattern</comment>


3D iMacs with parallax effect created entirely with CSS - <AUTHOR> http://www.thismanslife.co.uk/projects/lab/imac3d/ <comment><USER2> Whoa, that's amazing. Works without JavaScript, and doesn't hijack scrolling too - just a nice little effect, love it!</comment>