GCC 4.9 is doing "some seriously crazy shit" according to Linus Torvalds - <AUTHOR> https://lkml.org/lkml/2014/7/24/584 <comment><USER2> As a long-time Asm programmer who has read a lot of compiler-generated code (usually for RE purposes), I completely sympathise with Linus - despite all the research and improvements, compilers are still very stupid, and will routinely generate code that no sane human would. The widespread notion that compilers can almost always generate better (faster or smaller) code than a human is probably closer to myth than reality. The one thing that is certainly true is they can compile orders of magnitude faster than a human can, and that's usually the main reason for using them.

I think the x86-64 ABI is also partly to blame for this mess - IMHO it's far too complex (e.g. the "red zone") and makes it easy for these bizarre edge- case-bugs to occur.

"Spilling a constant" is something I've never seen before and I'd probably WTF the first time I saw it, but thinking about it more carefully, it might actually be a wise choice in some cases - x86-64 unfortunately allows very few instructions with 64-bit immediate values, and those few instructions are very long (opcode + 8-byte immediate), so it could make sense to store some constant in memory, on the stack, for a while and put it in a register when it's needed with some moves - 64-bit r/m move with 8-bit displacement is 3/4 bytes. Of course that's not what GCC is doing here; that last move instruction is 6 bytes alone (mov + mod/rm + disp32.)

</comment><comment><USER3> More and interesting conversation happens here:

[https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904)

<comment><USER4> "Here's a small (auto-)reduced testcase for this specific issue"

Do you happen to know how that is done? How is a test case "auto"-reduced? I've never done that before.

<comment><USER5> For example [http://embed.cs.utah.edu/creduce/](http://embed.cs.utah.edu/creduce/) ; the slides from a presentation in 2012 are interesting: [http://embed.cs.utah.edu/creduce/pldi12_talk.pdf](http://embed.cs.utah.edu/creduce/pldi12_talk.pdf)

<comment><USER6> This is awesome, thanks mate!

<comment><USER7> If you find this topic interesting, look up everything written by [http://blog.regehr.org/](http://blog.regehr.org/)

</comment></comment></comment></comment></comment><comment><USER8> Fixed in tree: [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904)

<comment><USER9> I find interesting that the tone in the bug report is completely different (no "colourful language").

<comment><USER10> Because one don't fuck with bug report!

<comment><USER9> I think it is more related to the fact that it is an external project (I assume with different community interactions). So all that "Linux being himself" it's not that accurate.

</comment></comment></comment></comment><comment><USER11> Can anyone give a layperson's explanation of what exactly GCC 4.9 is doing wrong here? I'm not fluent in Assembly and/or compiler internals. What's changed from 4.8?

<comment><USER12> It is doing two things wrong, it is moving a constant value to the stack and it's doing it before increasing the stack pointer, so it's momentarily outside the stack area. If an interrupt hits during the instructions the stack is broken, the interrupt service routine will increase the stack for its own use and overwrite that value.

</comment></comment><comment><USER13> I've noticed it also has idiotic warnings. I have some code with macrology that generates lexically scoped typedefs, which are sometimes not used. I do not wish to be warned about these, damn it! Who cares about a typedef at lexical scope that is not used? It's compile-time only. What's next; a warning about every file-scope typedef that has not been used? "Hey you included <stddef.h> but never used ptrdiff_t!"

</comment><comment><USER14> Whatever you think of his language and attitude, the guy deserves some love for working a Goonies reference into a complaint about the GCC compiler.

</comment><comment> andrey-p I really enjoyed reading this even I don't understand any of what the bug is actually about. There's something about people who have taken swearing to a virtuosic level.

</comment><comment><USER15> What's up with the many insults? A bit of professionalism amongst developers would be nice...

<comment><USER16> Linus is just being Linus. I've been following him since Red Hat 5.2 and the open source culture has always been "colourful".

His words shouldn't be taken too personally, just as getting bitten by a grizzly bear shouldn't be taken personal.

<comment><USER17> That may be so but I'm pretty sure that pretty much every study that's been done on this says insulting people is demotivating and generally destructive behaviour.

Linus can believe what he likes but the evidence contradicts him.

<comment><USER18> He has not insulted any people though. He has said bad things about the piece of software called gcc-4.9.0, but he has not once in that email adressed a person in a negative way.

Plus, the bug report he filed towards gcc is entirely matter-of-fact and polite.

<comment><USER19> As I've worked with more and more younger developers ("Millennials" or "hipsters" or whatever you want to call them), I've noticed that many of them consider criticism of somebody's work to be a criticism of the work's creator himself or herself.

I don't really know for sure why this is. Maybe they're more attached to what they've created, seeing it more as a work of art or something like that, instead of just a tool?

<comment><USER20> Sam Stephenson (Author of Prototype and Rbenv) talks about that here: [http://sstephenson.us/posts/you-are-not-your- code](http://sstephenson.us/posts/you-are-not-your-code)

</comment></comment></comment></comment></comment></comment><comment><USER21> Linus Torvalds says something thread on HN.

Prediction before clicking: Half of the thread, or more, will not be about what he says, but about his tone and "professionalism."

Never change HN. Never change.

<comment><USER22> I'm really baffled about this. Maybe I'm from older hacker generation (and I'm also a Finn). I just did not see personal insults going on. I would like to see more neutral discussion about cultural differences (between hackers and nations) and not opinions and own cultural biases stated as normative.

Here is my personal cultural bias:

1\. Insulting people personally is not same thing as insulting their ideas or their actions. If someone insults my actions or my ideas, I may get emotional, but I don't take it as an insult. For me it means that I'm being challenged.

2\. Cursing is not unprofessional or insulting in itself. Cursing is to be used for emphasis and to get people involved emotionally (good thing). Cursing has its place to signal frustration and get trough people. Too much cursing is like underlining everything.

3\. (Anglo American) business culture is not necessarily something to be emulated. Being overly polite invites all kinds of side stepping, passive aggressive behavior and ineffectiveness. I feel that "being professional" is used here as thought terminating cliche.

4\. Some hacker cultures can be both fiercely competitive and cooperative at the same time. Being heavily criticized and challenged is part of that process. Kernel hackers compete to get their ideas incorporated into the same codebase. Javascript hackers borrow snippets from each other and do their own things (no need to be as competitive as forking is easier). This might lead to different hacker cultures. What is accepted in one culture is not accepted in other.

5\. Management by perkele[1] is management strategy that can be very effective with the 'Shut Up and Show Them the Code' hacker culture.

6\. Pacabel may have a point. Younger generations may no be used to their work or behavior being harshly criticized and take it as personal insult. [https://news.ycombinator.com/item?id=8089706](https://news.ycombinator.com/item?id=8089706)

[1]: [https://en.wikipedia.org/wiki/Management_by_perkele#Examples...](https://en.wikipedia.org/wiki/Management_by_perkele#Examples_in_free_software_culture)

<comment><USER23> I think that the overly critical culture of many European nations prevents younger people from trying out or voicing ideas because humans are human and don't like being humiliated , especially in public. This is something I think we should not emulate.

<comment><USER22> >overly critical culture of many European nations prevents younger people from trying out or voicing ideas

I don't think this is what is happening here.

>humans are human and don't like being humiliated , especially in public.

This is just the cultural difference I'm talking about. Someone criticizing your work or behavior does not universally signal humiliating you as a person. I acknowledge that this may be so for you personally or in your culture.

<comment><USER23> Hi nabla9,

I read the bug report thread and that was as professional as I would expect from grownups. I was responding to your statement about anglo-american culture.

I have observed this "it's OK to be direct" motto from some parts of modern Europe and, interestingly for me, Israel.

Everything we interpret depends on our training, but my observation is that this motto is very commonly interpreted to allow rude, condescending and arrogant behavior. I spent a lot of time in India. In this respect correct behavior (as taught to us by our parents) aligns with the Anglo-American view of politeness in many respects.

I have come to believe that the directness championed by some current European cultures may perhaps be a modern phenomenon, not so common before the 1940s in those countries?

I agree that too much politeness can be perverted into passive aggressive behavior but so can (and I think is) this "Let's be direct" attitude.

There has been much talk on HN and everywhere else of how to develop a code of conduct that allows honest exchange but maintain civility. I think politeness and respect is a central part of this code.

People are not computers. You can not kick them when their output does not please you. You can not kick them when you think you are better than them.

Well, perhaps you can. Perhaps being rude and arrogant leads to a better world.

I would like, however to live in a world where everyone tries to respect each other and show that respect.

Best

</comment></comment></comment></comment></comment><comment><USER24> This is deep into 'dog bites man' territory; Torvalds NOT being an asshole is the newsworthy story.

</comment><comment><USER25> Just use LLVM: [http://llvm.org/](http://llvm.org/)

<comment><USER26> Unfortunately the linux kernel still relies on some gnu C extensions for some low-level control of the output. I don't know if comparable stuff exists in llvm and clang, and if so, if linus has any plans on supporting them. However this is just bugs in a new compiler, and the Linux kernel is probably one of those things that hits cornercases.

<comment><USER27> I'm not sure which C extensions do you mean, but Clang supports most of the same GNU extensions that GCC does. Indeed, it's one of the goals of Clang to be compatible with GCC whenever possible. However, there might be some things that are not (yet?) supported.

And the kernel can be compiled using LLVM and Clang, but not quite in all configurations. But compiling mainline kernel for x86 using LLVM was achieved some years ago.</comment></comment></comment>


Google's new "freshness" update. Affects ~35% of searches - <AUTHOR> http://googleblog.blogspot.com/2011/11/giving-you-fresher-more-recent-search.html <comment><USER3> Has anyone else noticed Google making a lot of autocorrection mistakes recently? I don't mind the traditional "did you mean" links, but I've been getting redirected to pages for different queries, with a "did you mean [what you actually typed]" link.

It's especially a problem with programming because a lot of words that are "wrong" are actually acronyms or strange library names.

<comment><USER4> If you can remember any examples I will make sure they get looked at.

<comment><USER5> Google recently corrected "ruby dreampie" (I wanted a Ruby equivalent of the excellent Python REPL) to "ruby creampie", with extremely NSFW results. It should avoid correcting a search term if the corrected version is potentially offensive.

<comment><USER6> That's pretty funny :-). Well, the Internet is for porn first, code later...

</comment></comment></comment></comment><comment><USER7> What I dislike the most from recent updates is the preview feature. I find it completely gets in my way, and it's very easy to unintentionally make it preview something, when I just want to scan the results. Does anyone else find that feature useful?

<comment><USER8> I never understood the usefulness of the preview feature. The only time I find it marginally interesting is when a website is currently down or had recently been taken offline. Though, I find the "cache:" query more useful in those cases anyway.

The preview window does pop-up unexpectedly for me as well. I guess my mouse pointer wanders over to the right side of the search result every once in a while, triggering the preview.

<comment><USER9> I think the preview thumbnail is a very poor substitute for the 'cached' links that have disappeared. Sometimes the cache link was the best thing for an underperforming website or one that was down. It was simple, everyone understood it, now it's gone. Boo.

<comment><USER10> The cached link is still there. Look for it on the page preview.

<comment><USER9> Can't we just have it back where it was?

</comment></comment></comment></comment></comment><comment><USER11> This should be good. Many queries get clogged up with the long tail of pages from 2003 that are often useless to answer the question at hand.

I hope Google will let us turn it off easily ("-fresh" keyword? advanced search?) if we truly want older pages.

I also hope this won't lead to content farms auto-republishing their pages every six hours with the latest timestamp included to look "fresh". Or rather, I know it will lead to that, and I hope Google is prepared for it.

<comment><USER12> I also hope that the effect that "freshness" has on the total ranking of a result is not high. There are huge swaths of the internet and subjects in which "freshness" would not improve quality.

Changes of this blanket nature are a result of some form of the "Valley Effect" or new is always better. IMO.

The example used, the Olympics, is an outlyer comparison in which this specific change is overly relevant.

</comment></comment><comment><USER13> I hope this works. Searches for error messages and the like are often cluttered with results from 2009 or earlier, describing troubleshooting steps that are out of date or unnecessary. At this point I add the current year to the end of any given troubleshooting search – and even that isn't always enough.

<comment><USER14> I run into this problem all the time. I usually hit the "More search tools" link and then limit my search to the past year or so (depending on the issue).

Also including specific version numbers helps as well.. but maybe this update will make those techniques irrelevant.

</comment></comment><comment><USER15> Lately I've noticed that search results are much worse than they used to be. I used to be able to find the things I've been looking for on the first page, now it seems like most of the links are not very relevant to my query. Any one else experience a degradation in the quality of results?

<comment><USER6> Yes, they are worse. A lot of times, Bing actually shows something more relevant, so it can't be all the spammers. Maybe it has something to do with the search history Google keeps, because sometimes I get different results if I'm logged out of my Google account...

<comment><USER16> Yes, i noticed better results outside of personalized search... It is a hassle to logout thought. I actually use bing for 90% of searches... google is better at tech searches like mysql questions, but outside of that there results have gotten more irrelevant and crowded with useless content...

</comment></comment></comment><comment><USER6> I hope they thought everything through, because there are a lot of cases where old content is just as good or even better - there are a lot of "timeless" articles and video out there.

However, when it comes to software/tech/anything fast moving, I'd really like to see the latest results first. I'm tired of searching for "how to set psa- proftpd to standalone in plesk" (just a quick example off the top of my head) and get 5 year old results that have long since stopped being relevant...

</comment><comment><USER17> Since I never seem to miss a chance to criticize Google:

Thank you, Google. This should make your search results much more helpful.

</comment><comment><USER18> The real question: does it matter who "breaks" a story first? Will the folks who got the story first get to the top of the "fresh" pile even though their story may be a day older? Or does the most recent content always win?

</comment><comment><USER19> I'm actually a little conflicted about this. For instance:

 _If I search for [olympics], I probably want information about next summer's upcoming Olympics, not the 1900 Summer Olympics_

I'm guessing that Google has the data to back that up, but it seems presumptuous. In any case, when you search for "olympics" it returns results about the Olympics as an institution, not any particular year. As it should be. In fact, the first specific year mentioned is 2016. Maybe Google turned the dial a little too far.

As for the "occupy oakland" and "nbc lockout" searches... isn't that's what News search is for?

<comment><USER20> > I'm guessing that Google has the data to back that up, but it seems > presumptuous.

It's interesting that you find the idea of a freshness signal presumptuous, but the hundreds or thousands of existing signals seem to be completely ok. The whole point of search is to try to guess from hilariously little signal (a couple of words) exactly which parts of a huge corpus (tens of billions of pages) you want to see. Making arbitrary decisions on what you meant is the main functionality of the site, not some annoying extra feature.

</comment></comment><comment><USER21> I constantly search for results within the past year to find information that's actually recent and current instead of "how to do x, circa 200X"

<comment><USER8> I do the same thing. I use the left-sidebar time range selection and set it to "past year" for about 50% of my searches.

<comment><USER22> So much that I wish it was visible by default, or even more central. So many times the top results are very high references of outdated things.

</comment></comment></comment><comment><USER23> Unfortunately this doesn't fix the perl tutorial issue (top result is from the early 1990s):

<https://www.google.com/search?q=perl+tutorial>

</comment><comment><USER24> Glad this is here; I really liked Google realtime when it was around.

</comment><comment><USER25> This is a much welcomed change. I find that I quite often want recency based searches and blogged a quick solution if you're using Chrome:

[http://blog.jerodsanto.net/2011/08/a-better-way-to-get- recen...](http://blog.jerodsanto.net/2011/08/a-better-way-to-get-recency- based-google-searches-in-chrome/)

</comment><comment><USER6> They were also experimenting with automatic scrolling in Image Search - <USER2> left me dumbfounded when I was trying to click on an image and it was scrolling down instead :-). It seems to be gone now, though...

</comment><comment><USER26> Hopefully this will help out the perl crew and their problem with stale tutorials.

The leeds doc is still top result, but hopefully this will make it easier for them to push new stuff up there.

</comment><comment><USER27> I really hope programming languages are one of the ones covered. The number of Ruby articles that are out of date even 1 year old is stunning.

</comment><comment><USER28> The real question is, do we have an alternative?

</comment><comment><USER29> It's amusing how the megacorp Google uses the Occupy protests as the main example of their search changes.

</comment><comment><USER30> color me unimpressed that they're now able to sort their livecrawl with a 'date' flag. And this seems to simply be a case of firing that filter automatically for 35% of their searches.</comment>


Learning JavaScript: Where To Start? - <AUTHOR>

I have been programming off and on for a couple of decades. Most recently Obj-C and RonR the past few years with a little Java mixed in. I would like to learn JavaScript, JQuery and JQuery Mobile. I tend to learn better by example than by theory. Given my programming background, where do I start? <comment><USER2> Javascript: The Good Parts

<http://oreilly.com/catalog/9780596517748/>

This teaches you the language. Jquery is just a library on top of that which is fairly simple to learn.

<comment><USER3> This is arguably the best book on JavaScript. It's a great way to understand the prototypal language, and serves as a good guide on building "proper" code in the conventions best suited for the language.

While I do think this is the best book to learn the language, I think you'll want to dive deep into a framework like jQuery to get things done. Straight JavaScript is very bare-bones, and you'll spend much more time in library code than with bare code.

While I love this book, and I finally feel like I 'get' the somewhat odd prototypal style of JS, it didn't help me get things done any faster.

<comment><AUTHOR> Thanks. What is your favorite jquery book?

</comment></comment></comment><comment><USER4> Here's the last list I got from polling HN recommendations. This is ordered according to the way I would go about it.

[http://www.hn-books.com/#B0=41&B1=14&B2=97&B3=89...](http://www.hn- books.com/#B0=41&B1=14&B2=97&B3=89&B4=119&B5=96&B6=30&BC=7&E0=1&EC=1&FC=0&QC=0&Name=Daniel)

I've included a JQuery book because in my opinion JQuery is quickly becoming a de facto part of Javascript.</comment>


Ask HN: How to do branding as a non-designer? - <AUTHOR> I would like to go through a branding exercise for an idea to understand things like: voice, values, messaging, styling, etc, but I don't have any prior UI/UX designer experience to figure out where to start. To be honest, I'm mostly a technical person so I have never really had to think about this side of an idea before.<p>Any resources, advice, or insights would be much appreciated for a total amateur like myself. <comment><USER2> See maybe: [https://news.ycombinator.com/item?id=17139224](https://news.ycombinator.com/item?id=17139224)</comment>


Ask HN: How would you securely store and retrieve photocopied passports/ids - <AUTHOR> We're looking at building an app that requires us to store photocopied passports and ids of our clients.
We're using AWS and are located in Australia.
Are there any local/international laws that require us to encrypt the data at rest?
What's the best way of storing and retrieving this sensitive data? <comment><USER2> Take a look at the new data protection Directive from the UE (will be in effect from June 2018) - Eventually all states will have some kind of regulation similar to this:

[http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:O...](http://eur- lex.europa.eu/legal- content/EN/TXT/?uri=uriserv:OJ.L_.2016.119.01.0089.01.ENG&toc=OJ:L:2016:119:TOC)

The best way to comply if your app is used in Europe is 1) start writing a .doc document detailling which data you want to collect, where do you store it, _when_ do you use encryption (suggestion: both in the application and the data volumes - but be careful choosing the ciphers for volume and in-app), and _why_ do you allow people to see the data.

</comment><comment><USER3> One thing comes to mind is the personally identifiable information (PII) that is in the passport/ID. Usually it will have ID numbers but also name, address, etc.

Look at what the EU is requiring for this - it used to be called Safe Harbor.

A few things I remember about those requirements: \- data encryption at rest and in transit \- no onward transfer to third parties \- opt-out methods for users to not allow you to capture the data

You may want to look into any restrictions on using a cloud provider or specific configurations you may need (i.e. no failover to a non-AU AWS farm).

</comment><comment><USER4> Before you do any of this: in many countries it is illegal to store/copy ID documents of your Clients.</comment>


Use JSON files as if they are Python modules - <AUTHOR> https://github.com/kragniz/json-sempai/tree/master <comment><USER2> The mechanism is called "import hooks":

[https://docs.python.org/3/reference/import.html#import- hooks](https://docs.python.org/3/reference/import.html#import-hooks)

[https://www.python.org/dev/peps/pep-0302/](https://www.python.org/dev/peps/pep-0302/)

You can see the import hook added here:

[https://github.com/kragniz/json- sempai/blob/master/jsonsempa...](https://github.com/kragniz/json- sempai/blob/master/jsonsempai/magic.py#L5)

Import hooks are a great feature in Python.

Take the `import` mechanism in the language and reduce it to its barest theoretical formulation - what does it really do? (Name binding.) Think of all the other features in your application that can be reduced to this. (e.g., configuration management) Use the constraints of the import mechanism to guide the design of this feature, and use import hooks to implement it. You'll end up with an implementation that is very "close" to the core language. I would assert that this closeness strongly suggests correctness and composability.

Less philosophically, think of the Python virtual machine as a system with lots of "safety valves" and "escape hatches." Import hooks are one such safety valve. Think about all the things you could do easily by hooking into module importing? (Real use-cases: loading code from bitemporal object databases, deprecation of modules, relocation of modules, configuration management, &c.)

Of course, there are languages that are much more flexible than Python in this respect. Python aims for a practical flexibility, and I find that, in practice, Python strikes a nice balance.

<comment><USER3> Import hooks are awesome, one of the cool things you can do is re-write the code as you load it. I made a toy loader that automagically inlines (some) Python function calls[1]. There are also cool projects like MacroPy[2] that do much more extensive things.

1\. [https://tomforb.es/automatically-inline-python-function- call...](https://tomforb.es/automatically-inline-python-function-calls)

2\. [https://github.com/lihaoyi/macropy](https://github.com/lihaoyi/macropy)

<comment><USER4> I read your experiment on inlining and it looks quite interesting. Did you do a benchmark on how it affects (improves?) performance? In my line of work I've found ocasionally places where inlining would've helped (functions that do masking with 64 bit masks, for example, are a mess to "inline by hand" and kill a lot of readability and clarity). Even with the current limitations of your "toy" implementation, it seems like it would help to avoid the costly function calls.

</comment></comment></comment><comment><USER5> My favorite is this issue: [https://github.com/kragniz/json- sempai/issues/7](https://github.com/kragniz/json-sempai/issues/7)

> Ever since I saw this I have been unable to sleep. Please fix.

<comment><USER6> > Works as intended. _adds the 'wontfix' label_

This is gold.

<comment><USER7> The 'wontfix' label looks more like a yellow than a gold to me.

</comment></comment></comment><comment><USER8> IIRC there is a moment of sheer terror in this talk by David Beazley [0] where he shows how to import an xml file as a python module.

0\. [https://www.youtube.com/watch?v=0oTh1CXRaQ0](https://www.youtube.com/watch?v=0oTh1CXRaQ0)

</comment><comment><USER9> From the examples:

        >>> from jsonsempai import magic
        >>> from python_package import file
        >>> file
        <module 'python_package.file' from 'python_package/file.json'>

I believe it is not a good idea to teach people to import something named "file", as that overrides Python's builtin class "file".

(On the other hand, that class is usually instantiated via calls to "open", so the class name "file" is unused is most programs dealing with files.)

<comment><USER10> Also, 'file' doesn't exist in Python 3.

</comment></comment><comment><USER11> Really love the fact the import is named `from jsonsempai import magic`.

If this were to be used seriously, it would make sense to other devs that the import named magic is doing some crazy stuff.

</comment><comment><USER12> I did the same with Perl in 10 minutes: [https://git.io/vzKDs](https://git.io/vzKDs)

it was fun I will check it tomorrow when I'm back from the pub

<comment><USER13> Is there any practical difference between that and just a normal new() function returning a hash based on that json? Does bless change anything?

I mean, for "the same" I'd expect something like:

        ....
        use test
        say test->hello;
        say test->this->could->be->a->bad;

<comment><USER12> Ok, back from the pub and fixed it you can now use it like this:

use BlessJSON qw(test.json);

say test->hello;

say test->this->could->be->a->bad;

close enough

</comment></comment></comment><comment><USER14> Why do all the comments act like this is bad? Seems fine to me. Explanation would be appreciated :)

<comment><USER15> You're changing the behavior of import. So if somebody else were to remove the seemingly unused `from jsonsempai import magic` the file would stop working as expected.

Non obvious "magic" code like that tends to be frowned on in general, and especially in the python community

<comment><USER16> Is it be useful? Or there are some alternatives to import JSON as a module as easy as this one does?

<comment><USER17> For files:

        import json
        with open("foo.json") as f:
            foo = json.load(f)

For strings:

        import json
        bar = '{"foo": "bar"}'
        foo = json.loads(bar)

<comment><USER18> Does that respect import search paths? Does the original?

<comment><USER19> There is no good reason to load json from import paths. Your import paths should contain code, assets, not configuration.

<comment><USER20> A JSON document might be an asset, such as static data. In fact, I'd much rather have a Python file as configuration and JSON as data than the opposite.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> As a JavaScript developer for the past 5 years or so, when jumping into Python I certainly miss the simple require(<json file>) which this seems to replicate into Python pretty well!

Having said that I don't think that I would use it for serious things since this isn't really the Python way and I would like my code to be most understood by others. Neat though!

<comment><USER22> JSON stands for JavaScript Object Notation , not Python Object Notation. Furthermore "require" is "proprietary" to nodejs, ES2015 has a different module system and it will be the official js module system.

<comment><USER23> > JSON stands for JavaScript Object Notation , not Python Object Notation.

That does not mean it shouldn't be used anywhere else.

</comment></comment></comment><comment><USER24> > Disclaimer: Only do this if you hate yourself and the rest of the world.

I'm curious why the author would do this. Just for the fun in it?

<comment><USER25> Likely for the fun and it might just save time when writing one off scripts or using the interpreter.

I nearly spit my drink out at the name, though.

</comment></comment><comment><USER26> The enormous downside to this approach is that once you want to load a json file dynamically, e.g. with a filename that comes from a dynamic string, you're stuck and you have to come up with a completely different approach and rewrite your code.

<comment><USER27> Not correct.

Like many things in Python import is actually just syntactic sugar for a dunder function.

[https://docs.python.org/3/library/functions.html#__import__](https://docs.python.org/3/library/functions.html#__import__)

</comment></comment><comment><USER28> Excepting the cringemarsh that is "import <jsonfile>", this is actually very useful. This looks very unpythonic:

my_json["this"]["can"]["be"] == "nested"

and is impossible to write defensively and cleanly after the first call:

my_json.get("this", {}).get("no way to not crash here")

Something that could do:

my_json.this.can.be == "nested"

With a default value would be very useful. Does anyone know something like it, or should I whip a module up in an hour?

<comment><USER29> I've taken a crack at something similar, I'd love to see what you came up with. I ended up with this super-meh solution: [https://github.com/zmap/ztag/blob/master/ztag/transform.py#L...](https://github.com/zmap/ztag/blob/master/ztag/transform.py#L7)

<comment><USER28> My thing turned out to be pretty much the same as yours, also equally meh:

[https://github.com/skorokithakis/jsane](https://github.com/skorokithakis/jsane)

There's no code there, but the underlying class is pretty much spot on yours. I'm still trying to improve the API, but it's not looking great.

</comment></comment></comment><comment><USER30> > Have you ever been kept awake at night, desperately feeling a burning desire > to do nothing else but directly import JSON files as if they were python > modules

I almost died laughing at this. Feels like the author is aware that this scenario is probably the only one where such library can be mission critical.

<comment><USER31> Funny cause it's true. It's really something I desperately seeked a few years ago

<comment><USER32> ... ??? why? What's wrong with json.loads()?

</comment></comment></comment><comment><USER33> Awesome, although I don't quite have a use for it right now. Next we could: * Import HTML/CSS/JS/DOM via a URL: [https://news.ycombinator.com](https://news.ycombinator.com)

* Import XML? * Import any_structured_data!

</comment><comment><USER34> Ah. kragniz must be the Damien Conway of Python.

</comment><comment><USER35> I'm not sure which is the better/worse idea:

"JSONx is an IBM® standard format to represent JSON as XML. The appliance converts JSON messages that are specified as JSON message type to JSONx. The appliance provides a style sheet that you can use to convert JSONx to JSON."

[https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/...](https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.html)

</comment><comment><USER36> ... and I was writing SPARQL queries against my Java source code yesterday

</comment><comment><USER37> These jokes are getting rather sophisticated. For a few (head-scratching) minutes, I thought this was meant seriously.

</comment><comment><USER38> Some people are saying JSON ≠ Python Object Notation. Here we go! [https://github.com/brhs/pon](https://github.com/brhs/pon)

(I used OP's work as a reference. Amazing you can do this in so few lines of code.)

<comment><USER39> It's official. PON is now _a thing_.</comment></comment>


Why SV Angel/Yuri Milner Investing In Every Y Combinator Startup Is Brilliant - <AUTHOR> http://onstartups.com/tabid/3339/bid/38607/8-Reasons-Why-SV-Angel-Yuri-Milner-Investing-150-000-In-Every-YCombinator-Startup-Is-Brilliant.aspx <comment><USER2> It's a nice counter-move to the investors who stopped funding for now because startups got "uppity" with their unjustified valuations and high cap/no discount convertible note demands.

Sidenote: Things to put at the top of guest or aggregated posts: byline and date.

</comment><comment><USER3> It's a brilliant way for Yuri to invest $5M in a portfolio of companies that others are selecting and are almost certain to get investment from top-tier Silicon Valley angels and VC firms -- which gives him relationships with everybody. As you say, cheap at the price. Good article.

</comment><comment><USER4> Having Yuri involved is also brilliant in that it will allow super early stage startups to think globally from the start, and while they may not focus on global markets when they design v1.0 of their products and services, they will at least be considering global market implications for how they build their products.</comment>


The Stroke of Genius Strikes Later in Modern Life - <AUTHOR> http://news.yahoo.com/stroke-genius-strikes-later-modern-life-200607752.html

<comment><USER3> The wrong assumption they are making is that the pace of science is constant, so that Nobel prizes (which are given out at a constant rate) are a rough approximation of progress. In physics, at least, this is very wrong.

In fact, fundamental theoretical physics has been more-or-less stagnant since the late 60's when the Standard Model was finished. _But they have to keep handing out Nobel prizes._ So the outcome is predictable: you see prizes being awarded to people who are fleshing out ideas which have been known for a half century; the low-hanging fruit has already been picked, so you have to work for years in the nitty-gritty to push the bounds. Hence, the prize winners are old.

But this doesn't tell us anything about _physicists_ and when they are capable of genius (and how could it? does anyone really think that human nature has changed?), it tells us about the stagnation of the field.

The really interesting question is this: is the stagnation of physics more attributable to (a) some combination of fundamental technological/intellectual limitations or (b) institutional/social pathologies in Academia. Most people say '(a)', but I (as a young physicist) worry that '(b)' plays a substantial role.

<comment><USER4> or c.) random chance.

Kuhn would say that science consists of long periods of "normal science", in which people flesh out basic theories that have been known for decades, and short periods of "paradigm shifts", where previously ignored evidence is suddenly incorporated into brand-new, world-shifting theories that completely upend the old order. Just because you happen to be in one of those long doldrums of normal science doesn't mean that something is wrong with science, or that the field has stagnated. It just means you're not in a revolutionary paradigm-shifting phase.

<comment><USER3> We have had more physicists working in the past few decades than in the rest of human history put together. Statistically, there are dozens of Einsteins and Feynmans and Newtons walking around. But no breakthroughs. You can't attribute this to chance.

Again, mere _time_ is a bad metric for baseline progress.

</comment></comment></comment><comment><USER5> If the cause is indeed that it takes longer to get on top of increasing complex fields, then it doesn't bode well for the singularity - <USER2> scientists run out of lifespan (e.g. you have to be over 100 to get on top of the field), no more breakthroughs. Of course, it would be really cool if the entire field was overturned with a new abstraction that simplifies the previous epicyclic complexity, and opening up a new surface for young scientists to pioneer. Will that happen? Or is the complexity we see irreducible? I prefer the former...

<comment><USER6> It's another reason why we need to cure aging, just in case the reduced quality of life and huge medical expenses weren't enough.

<comment><USER7> Ageing is nature's way of making way for the young. If we cured ageing there would be more motivation to suppress new births, and then people like you and I might never have come along.

</comment></comment></comment><comment><USER8> Seems more like "Genius strikes later unless there is a revolutionary breakthrough in your field, in which case it strikes early." Makes sense, since a breakthrough typically opens the door for other relatively low-hanging breakthroughs.

<comment><USER9> Right. It seems like it could go back to being the younger kids' game if there is some major breakthrough.

</comment></comment><comment><USER10> What has changed is that the cost of doing business in scientific fields such as chemistry and physics has become immensely higher. The current paradigm requires a facility on the scale of CERN to even have a hope of overturning Einstein's pen and paper side project of relativity via the discovery of faster than light particles.

In other words, the barrier to entry has been raised in science. Nobody is going to place a 25 year old Phd in charge of a major chemistry research laboratory these days.

On the other hand, in software development, the arts, and other creative fields with low barriers to entry, younger people continue to demonstrate genius regularly.

</comment><comment><USER11> I think this happens because it is increasingly difficult to accumulate all the knowledge necessary to make you a specialist in your field (and to give you the opportunity to discover new things) until the age of 30.

</comment><comment><USER12> If you need to provide a breakthrough in a scientific field, you need to know first what has already been done. Even Einstein took some time to understand metric tensor for his general theory of relativity.

Point is we may not be able to solve the aging problem, however as we progress we our children will be smarter to grasp complex subjects in shorter time. How much _short time_? That will depend on the intellect of the child. When I was in 8th standard my father told me that if I can I should finish all the math books upto 12th standard in a year. It may not be a full proof knowledge but it will give me some vision about what the math world looks like. I tried and succeeded partially (No claims here just what happend in my life). It was wonderful to know the world of maths. So we need to expose our young minds to so called _advance topics_ in the subject of their choice. We do not know who is a genius. Moreover, a genius will eventually find a way to solve a problem that he/she wants to solve. Why? My guess - because he/she is a genius(also we do not know how a human brain works now and how it will work in the future).

<comment><USER13> nevertheless, Einsten didn't pause much for advanced Maths at his "wonder year", and seem to have given the subject more thought only when older...

</comment></comment><comment><USER14> Note the abstract for the actual paper is at [http://www.pnas.org/content/early/2011/11/03/1102895108.abst...](http://www.pnas.org/content/early/2011/11/03/1102895108.abstract?sid=12e1b761-43a6-4972-9bfa-4febc4558a26) And some graphs from the paper are at [http://www.blognome.be/2011/11/08/age- dynamics-in-scientific...](http://www.blognome.be/2011/11/08/age-dynamics-in- scientific-creativity/)

</comment><comment><USER15> What the article hints at is the reason for this shift:

You need to accumulate more knowledge and do more work before the breakthrough. Meaning you have to start very early on your highly specialized journey.

Are there any recent (past 50 years or so) examples of someone doing great work in some field, but who started late (say age 25 or 30)?

<comment><USER16> Hodgkin and Huxleys seminal work in neuroscience was done in their late 30s: <http://en.wikipedia.org/wiki/Hodgkin%E2%80%93Huxley_model>

Feynman formulated the path integral at age 30

</comment></comment><comment><USER17> You might want to consider tattooing this somewhere:

 _"It may be that young scientists did better, in part, because they never learned the older ways of thinking and could think in new ways."_

Replace 'scientists' with e.g. 'musicians', 'designers', 'developers', or your profession of choice.

</comment><comment><USER18> Quibble: their title reflects the widespread belief that breakthroughs are sudden eureka moments. I think that belief is damaging.

</comment><comment><USER19> It surprised me that increased life expectancy wasn't mentioned. We live nearly twice as long as we did back in 1850.

</comment><comment><USER20> As a 48-year-old (!), I can't tell you how hopeful this article made me feel.

<comment><USER21> You know, I realize a lot of life falls into the "shopping cart" effect. If there's 5 lines at the grocery store, there's an 80% chance you'll see another line moving faster than yours (there's only a 20% chance you picked the fastest line).

I've recently turned 30 but realize there is no race to make it. Not for me anyway. Maybe I'm turning Zen about it but who really cares when you "succeed"? "The people that mind don't matter, and the people that matter don't mind."

By the way, Colonel Sanders (<http://en.wikipedia.org/wiki/Colonel_Sanders>) began franchising KFC at age...65

<comment><USER5> Adobe was founded by a 42 and 43 year old, if it makes you feel any better. And if anything, we seem to be aging more slowly than way back then (1982). <http://en.wikipedia.org/wiki/Adobe_Systems> <http://en.wikipedia.org/wiki/Charles_Geschke> <http://en.wikipedia.org/wiki/John_Warnock></comment></comment></comment>


Qtile – A hackable tiling window manager written in Python - <AUTHOR> http://www.qtile.org/ <comment><USER2> Used it before, felt like it needed a little more. Great otherwise. After being spoiled with the Windows 8 tiling system I can't seem to appreciate tiling managers on Linux as much as I should.

<comment><USER3> Are you serious? Going from tiling window managers to Windows 8, I was like... this could be the start of something great for Windows, but it's still way too basic for me. All Windows 8 seems to have is a split view with adjustable split widths but that's super easy in any sane tiling WM.

Or are you talking about Windows 8 apps being "responsive" in some sense?

<comment><USER2> Well I do understand it's basic, but I like how isolated the applications can be. For example, I can go full screen with flash on IE for Metro, or with other "full-screen" applications and it will only hijack the portion of the screen that is taken up by IE. I can keep using Skype or even the Desktop on the side and multi-task. If I try to fullscreen Flash elsewhere it hijacks the screen and even with a second monitor breaks my multi-tasking experience.

So if anyone made a Tiling Window Manager that isolates how much an application can control, and gets rid of this config it to make it work mentality, they would have me sold. I love having multiple desktops on Linux, one feature that Windows lacks to this day. Their tiling, although incomplete, it works for me and what I do.

Sorry if I offended anyone, I'm not a tiling guru, though I'd love to be. I just prefer applications that "just work" without too much effort on the end- users part, as opposed to getting in the way of the end-user.

<comment><USER4> Fullscreening applications in xmonad behaves exactly as you described.

<comment><USER5> Are you sure? On my machine, fullscreening, e.g., YouTube will:

\- in FF, launch a new window, showing a fraction of the frame.

\- in Chrome, replace the current window, showing a fraction of the frame.

In both cases, if I want to see the uncropped video, I have to manually switch to Full mode. I know there are hooks[0] to change this behavior to automatically launch a floating window (I don't use YouTube enough to bother), but I don't think there's a way to get the behavior GP described. Is there?

[0] [http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks- Ma...](http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks- ManageHelpers.html)

<comment><USER4> I believe that that is an issue with Flash, not with xmonad. Xmonad only lets applications draw to as much of the screen as then are alloted.

If you fullscreen Firefox, it will simply hide UI elements, not take up the entire screen. It is not xmonads responsibility to automatically scale applications.

</comment></comment></comment></comment></comment></comment><comment><USER6> I've been using stumpwm for a while.. Apart from the "python instead of lisp", what would be the main differences or advantages of Qtile?

</comment><comment><USER7> Does anyone know how it handles multiple monitors? I recently switched from xmonad to awesome and while I'm happy with it, having a separate set of screens for each monitor is pretty annoying.

It's been said before but everyone writing a tiling window manager should make it work just like xmonad does for multiple screens, they really got it perfect.

<comment><USER8> Wingo[1] (a window manager I wrote in Go) will do it right like Xmonad. Like you, I hate how most WMs handle multiple monitors, and Xmonad got that right.

(Wingo is a true hybrid WM. I like to describe it as "Openbox meets Xmonad.")

[1] - [https://github.com/BurntSushi/wingo](https://github.com/BurntSushi/wingo)

<comment><USER9> Cool, I'll give it a go and hope that it's as helpful in getting into Go as xmonad was haskell, nothing like having your basic interaction mechanisms bug you to motivate you to dig into the code.

</comment></comment></comment><comment><USER10> Shameless tangentially-related-software plug: I've been working on Carlisle[0] for a while and I use it day-to-to day. I wrote it because I don't personally like using tiling WMs (and I'm quite happy with Xfce) but I wanted a highly configurable way to quickly move/arrange/resize windows.

If you've used Slate[1], it's like a (much simpler) version of that, for Linux (well, EWMH-compliant X window managers, specifically).

(Carlisle is a fairly simple wrapper on top of Andrew Gallant's amazing xgbutil libraries[2] for Go.)

[0] [https://github.com/cespare/carlisle](https://github.com/cespare/carlisle)

[1] [https://github.com/jigish/slate](https://github.com/jigish/slate)

[2] [http://godoc.org/github.com/BurntSushi/xgbutil](http://godoc.org/github.com/BurntSushi/xgbutil)

</comment><comment><USER11> I've looked at using Qtile before, but opted to go for I3 as it seemed to be a bit more mature. Would love to hear experiences/thoughts of anyone using this, I would love to switch to it and be able to leverage my existing python knowledge for customizing.

<comment><USER12> One of the things about i3 that is really compelling is the multi-monitor support.

<comment><USER13> Qtile has multi monitor support as well. Any thoughts on why i3's is more compelling?

</comment></comment></comment><comment><USER14> I cannot get over the fact GUI apps (like firefox) look so bad on every screenshot with tiling WMs. Is it that users just don't care or you actually cannot make it look good ("good" is ambiguous, so let's say how it would normally look on Xfce with standard Xubuntu theme) easily enough? I saw something like Xmonad + Gnome 3, but it sounds pretty scary (I mean, one thing that is good about tiling WMs is that they are normally lightweight). It might sound funny, but it's one of the main reasons why I don't use tiling WM yet.

<comment><USER15> I guess you are referring to the GTK/QT/... theme used? Most tiling WMs don't set one by default, but you can easily do so by using a custom .gtkrc-2.0 or so[1]. [1] see, for example, [https://wiki.archlinux.org/index.php/GTK%2B#Themes](https://wiki.archlinux.org/index.php/GTK%2B#Themes)

<comment><USER16> This is exactly right. GNOME, KDE and other out-of-the-box solutions make sure to set the GTK and Qt themes so that everything looks pretty. When you use a WM (window manager) rather than a DE (desktop environment), it is up to you to setup all the ancillary things such as themes and daemons. This is why .xprofile exists!

Also, I find lxappearance an easy and quick way to set GTK themes via GUI rather than having to edit the .gtkrc files for every option.

</comment></comment></comment><comment><USER17> Having tried to write a window manager for X, I am always impressed by anyone who has enough followthrough to actually finish one. And I'm very eager to see if Wayland has a nicer and more sane API than X.

</comment><comment><USER18> What have been people's experiences with Qtile? I've used ion, Xmonad, and more recently i3wm and would love to hear what's good and not so good about Qtile.

<comment><USER9> It being Python makes it easier to get the basics done, but for me there's not a lot of value in that fact, other than setting up initial login layouts and screens I'm not a great user of WM scripting, or at least what I do use (setting up workspaces at login and always pushing X app to screen Y, floating all mpv windows) there's not a lot of difficulty or difference in sticking it in a .py file or an xmonad.hs</comment></comment>


High-flying ladybug swarm shows up on National Weather Service radar - <AUTHOR> https://www.latimes.com/local/lanow/la-me-ln-ladybugs-on-radar-20190604-story.html <comment><USER2> I have a question. Does anyone know why insects sometimes go so high? I went to Chicago last year and I went to the top of the Hancock building and I went to top floor, the observatory, to look out and see the surrounding area. And a dragonfly flew by outside. Why would it be up that high? What's the point? There is nothing up there. On the wide open plains of the west, there are not many reasons for insects to go so high, so why do they?

<comment><USER3> Or the annoyance of that one mosquito making up to your 45th story apartment in NYC, how does it know to get up there and through my tiny cracked window!?

<comment><USER4> You may have standing water nearby.

<comment><USER5> On the other hand, it's NYC. There's standing water everywhere.

<comment><USER6> The disintegrating wooden water tanks on the roof?

</comment></comment></comment></comment></comment><comment><USER7> One thing I was surprised to learn is that ladybugs migrate like butterflies. In California, there are secret locations in the Sierras where they overwinter before flying off into the central valley. [https://youtu.be/Y3v8AogAK7U?t=295](https://youtu.be/Y3v8AogAK7U?t=295)

<comment><USER8> In the South they find secret locations like your window seal[1], door frame, or house siding only to come out in the hundreds when the time is right. They used to infest the schools I went to.

Some people even put them into their garden to kill bugs. The article said they love aphids.

[1][https://www.alamy.com/stock-photo-ladybird-ladybug-nest- on-w...](https://www.alamy.com/stock-photo-ladybird-ladybug-nest-on- window-310685963.html)

</comment></comment><comment><USER9> Well, at least they're ladybugs. I don't know how much of this is just due to the name, but I like ladybugs. They're red and pretty, and they don't sting or bite or swarm around my food.

...this all seems too pleasant, so feel free to educate me on how ladybugs are actually the worst insects ever. :(

<comment><USER10> I haven't seen any ladybugs here in Western Ohio in the last 7 - 10 years. We see a lot of a similarly-sized and shaped beetle that's orange with brown spots, but the familiar red and black-spotted ladybugs I remember from my youth seem to have disappeared. These orange doppelgängers come indoors in droves as the fall weather gets cooler. They mass in clumps in corners of windows around my house. They are not at all endearing like the ladybugs they seem to have replaced.

<comment><USER10> Oh, ugh. I searched for an answer and came up with this: [https://soapboxie.com/social-issues/Where-Have-All-The- Ladyb...](https://soapboxie.com/social-issues/Where-Have-All-The-Ladybugs- Gone)

It looks like we introduced the invasive Asian ladybirds and ended-up killing off most of the native ladybirds. Now I have smelly orange beetles trying to get into my house. Thanks, other humans!

(It's times like these that I think the last human dying can't come quickly enough.)

<comment><USER11> I was in my summerhouse last year when a swarm showed up and within minutes the whole house was getting black and they were trying to get into the house. I made a video [https://www.youtube.com/watch?v=Xst1HYJK9Og](https://www.youtube.com/watch?v=Xst1HYJK9Og) Seeing them in such huge numbers is terrifying, I totally see why people during biblical times thought the end was nigh.

That was October last year and they got into my car. Now in Sweden I saw some of them crawling out of the car last month when it got a bit warmer.

<comment><USER6> Offtopic, but does your summerhouse have wired internet access or LTE and if so what speed (down/up) and cost? Just curious.

<comment><USER11> We use a local provider [http://www.trans.net.pl/](http://www.trans.net.pl/) and they have some special setup I'm not sure what it's called but I think it's long range wifi and they use a satelite dish as the antenna. The speed is not super great, especially the uplink is to low for us with 1 Mbit/s and we need to stream cctv from there continously, but the downlink is ok with 20 Mbit/s and we pay 56,12 zł which is about $15 per month.

<comment><USER6> I live in the US, in a small city, and I have DSL. It is $50/mo and downlink is 6Mbps, while upload is 768kbps. That is the fastest available speed.

<comment><USER11> At home in Sweden I have 250 down 100 up for around $38. I can get 1000/100 for $74 here too but I don't have use for such a huge down link.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> From my childhood -and this would be around 1970 - I remember a huge and sudden infestation of ladybugs. For the probably two days it lasted, lawns were tinted red, the air - also out over the water - was visibly red-misted, you couldn't walk anywhere without stepping on the critters, you couldn't quite escape the buzzing and the sound of what sounded like munching, and everywhere was an iron-like smell, some what reminiscent of peas (I can't quite describe it, but to this day the right kind of odour will remind me of ladybugs). And let me tell you: They bite! Walk outside uncovered, they would alight on your skin and start nibbling, not terribly painful, but enough so be unpleasant.

This was Northern Europe. I have seen swarms since then, but nothing remotely compared to that massive outbreak.

<comment><USER13> There were a lot in the UK in 1976. We had a huge growth in aphids after a warm spring, the ladybirds followed on. I remember seeing a boat at our local reservoir that was covered in them, even the sails, it had turned from white to read.

[https://www.bbc.co.uk/news/magazine-35603972](https://www.bbc.co.uk/news/magazine-35603972)

<comment><USER12> Oh yes, the long, hot summer of '76\. A glorrious time to be 16 and unexpectedly having the house to myself for several weeks. But no ladybugs to speak of, over here across the North Sea from you. Jellyfish, on the other hand. I remember sailing through shallow waters almost solid with them. Also a one-off, never seen anything like it since then.

</comment></comment></comment><comment><USER14> Some might say the signs of the end are everywhere lol.

Seriously though, this reminds me of the cicada swarms that hit the south from time to time. Those ARE quite like locusts.

<comment><USER15> Periodical Cicadas? [https://en.wikipedia.org/wiki/Periodical_cicadas](https://en.wikipedia.org/wiki/Periodical_cicadas)

<comment><USER14> That looks like them, yes. When they show up they take over. They're attracted to the buzzing sound of a weedeater, I learned. They come and hang on to your shirt and arms and land on your head. You can't stop every 30 seconds to swat them off, so you just learn to be friends and coexist.

It's a biblical experience.

</comment></comment></comment><comment><USER16> [https://web.archive.org/web/20190606020026/https://www.latim...](https://web.archive.org/web/20190606020026/https://www.latimes.com/local/lanow/la- me-ln-ladybugs-on-radar-20190604-story.html)

[http://archive.is/tJ2LA](http://archive.is/tJ2LA)

</comment><comment><USER17> The article didn't link to the actual radar from @NWSSanDiego, which seems to be this tweet: [https://twitter.com/NWSSanDiego/status/1136115889516867586](https://twitter.com/NWSSanDiego/status/1136115889516867586)

</comment><comment><USER18> Could this bring down a plane?

</comment><comment><USER19> hey ladybugs, get funky

<comment><USER19> no one got the beastie boys reference?

<comment><USER20> Regardless of anyone gets the reference or not, that kind of topic that doesn't further the discussion is generally unwelcome on HN and will get you downvotes.</comment></comment></comment>


Ask HN: What are best practice approaches for cross-platform projects? - <AUTHOR> I am interested in starting a project that runs on desktop (Linux, MacOS, Windows) and mobile (Android, iOS, mainly aiming and tablets). The final application has a GUI with standard components (ListViews, Buttons, etc) and maybe some less standard components (NodeView / TreeView). It will need to access local storage.
Are there good technology stacks to accomplish this, offering maximal code-reuse and minimal overhead?
The programming language doesn't matter at all (C++, Haxe, Kotlin, JS, Python...) productivity is what I am looking for.
tldr: A while ago I wanted to do something similar and ended up using Electron + React (with a library for components). While web-technologies are platform-independent in principle, setting up the project to run on different devices was no fun at all. Also, the library for components wasn't stable and my code was super hard to maintain. I am getting the impression that web technology libraries (offering basic components such as drop-down menus) come and go and don't provide a reliable base for applications. I have limited time to work on open-source projects, so if setting up the applications requires an investment of a week already, then I'll rather ditch the project completely. <comment><USER2> Electron isn't truly cross platform, I'd suggest trying Python with QT, its pretty snazzy and can run in a small footprint.

<comment><AUTHOR> Is there a good way for this to run on mobile?

<comment><USER3> I wouldn't recommend Qt on mobile.

It's got rough edges and is neglected.</comment></comment></comment>


ArrayFire: a general purpose GPU library - <AUTHOR> http://arrayfire.com/ <comment><USER2> OP, While I appreciate you sharing the link, you should have linked to our github page[1] instead of our company page.

P.S. I am the Chief Engineer at ArrayFire. OP does not work for us.

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

<comment><AUTHOR> I thought that the homepage of the project should be a better landing page than the GitHub repo?

<comment><USER2> It's the home page of the company not the project. It is more focused on the services we provide than the library.

</comment></comment></comment><comment><USER2> Previous discussion about ArrayFire when we went open source: [https://news.ycombinator.com/item?id=8597915](https://news.ycombinator.com/item?id=8597915)</comment>


Takes: Java web framework without static methods or annotations - <AUTHOR> https://github.com/yegor256/takes <comment><USER2> I was reading through one of the linked articles of why the author doesn't like using null or static objects:

[https://www.yegor256.com/2014/05/13/why-null-is- bad.html](https://www.yegor256.com/2014/05/13/why-null-is-bad.html)

[https://www.yegor256.com/2014/05/05/oop-alternative-to- utili...](https://www.yegor256.com/2014/05/05/oop-alternative-to-utility- classes.html)

Apparently he replaces null with null objects or throwing exceptions, and creates objects for every static method. Go figure.

Actually, there are a few gems:

> The Map interface (no offense to its authors) has a design flaw.

> It is a good practice to make your code as fragile as possible, letting it > break when necessary.

> The method is basically asking the object about its… race. Black objects go > right while white objects go left. That's what this instanceof is doing, and > that's what discrimination is all about.

<comment><USER3> > Apparently he replaces null with null objects

That's what Optional was introduced for in Java 8. If you want to be absolutely null-safe, using it makes sense. But if you want to optimise performance, going with the slightly more risky route is still the better choice.

<comment><USER4> That's not really "why" it was introduced. Optional is used as a null wrapper in other JVM languages so that idiom bled over pretty naturally.

Here's a talk "Optional - Mother of all Bikesheds" by Stuart Marks, the guy who added it to OpenJDK: [https://m.youtube.com/watch?v=Ej0sss6cq14](https://m.youtube.com/watch?v=Ej0sss6cq14)

It was mostly just meant to cover the zero or one case on fluent-style interfaces like the Streams API, so check as getFirst() or getAny(). In hindsight, the name Optional was a poor choice if they didn't want the idiom coming over.

</comment></comment></comment><comment><USER5> I don't understand why the names are so bad. FtFoo, TkBar, XyBaz. Not pronounceable, meaning not inferable. I like Yegor's stuff mostly, but the naming just kills me.

<comment><USER6> I can get the reasoning. I think after enough InstanceManagerStrategyContexts you want short names more than inferable names.

</comment></comment><comment><USER7> Not trying to knock the work, but why is no static methods a selling point? How does one do utility classes instead? And do you eschew static factory methods entirely?

<comment><USER8> Yegor has quite orthodox view on Java development. You might want to read his blog to get better understanding on his position. While I don't agree with many of his points, it's a very interesting and refreshing perspective that is useful to learn IMO.

<comment><USER2> _Un_ orthodox?

<comment><USER9> I think orthodox works here as its a more strict reading of the "everything is an object" dogma.

</comment></comment></comment></comment><comment><USER10> So from the OOP Alternative to Utility Classes on the site

int max = new Max(10, 5).intValue();

over

int max = Math.max(10, 5)

Yeah, think I am going to pass.

<comment><USER11> Gotta get rid of all those nasty pure functions. Can't have any of that cruft in muh object oriented language.

<comment><USER12> Constructing an immutable object/value isn't any different than a pure function that outputs that object/value. The difference is just syntax.

That said, I don't know if this library uses the practice of immutable-only objects.

</comment></comment></comment><comment><USER13> So instead of static, you're using fixed classes. No difference there. What's next, a classfactory? One inner platform effect coming up!

It's a good exercise though!

</comment><comment><USER14> I write very annotation/static method heavy Java at work, and I write Haskell for fun at home, and my kneejerk reaction to seeing this code in the "Why are static methods bad" link:

        void transform(File in, File out) {
          Collection<String> src = new Trimmed(
            new FileLines(new UnicodeFile(in))
          );
          Collection<String> dest = new FileLines(
            new UnicodeFile(out)
          );
          dest.addAll(src);
        }

was "That looks just like Haskell".

<comment><USER15> and from that link

> public class Max implements Number

uhm

</comment></comment><comment><USER16> Ok, so we know the framework does not contain all these supposedly bad things¹, but what does the framework _do_ exactly?

1: Reminds me of Golang, which likes to define itself as a set of 'negative liberties' (No exceptions, no inheritance, no polymorphism, no ...).

<comment><USER17> I was reminded of golang as well. I kind of like this framework, because I dislike the overly magic dispatch mechanisms of annotation-driven java. Basic request dispatching in golang can look and be clunky, but that one clunky place tells you where to look.

</comment></comment><comment><USER2> > Not a single public static method

main?

<comment><USER18> Unknown if this framework adheres to it, but the JavaEE standard allows one to deploy apps that don't contain a main method, and in fact can run in a security restricted environment that prohibits reading properties, environment variables, and a lot more. So that's a long way of saying that if it doesn't need a main method unless they're trying to deploy their own webserver, too

</comment></comment><comment><USER19> Given style of the code, what Yegor needs is Lisp, but not OOP.</comment>


Kpatch: Dynamic Linux kernel patching - <AUTHOR> https://github.com/dynup/kpatch?hn

<comment><USER2> I was at the Linuxcon talk for this yesterday, here's the slides:

[http://events.linuxfoundation.org/sites/events/files/slides/...](http://events.linuxfoundation.org/sites/events/files/slides/kpatch- linuxcon_2.pdf)

It's important to note that it's not exactly production ready, but it can work with really simple CVEs (things that don't require changes to data structures and such).

Because of this, kpatch needs a person to manually review the patch before applying it, so some kernel knowledge is required to make sure that you're making a good patch.

I do think that it'll get better as time goes on. This is a really neat feature and brings an open source competitor to ksplice.

<comment><USER3> That's [http://events.linuxfoundation.org/sites/events/files/slides/...](http://events.linuxfoundation.org/sites/events/files/slides/kpatch- linuxcon_3.pdf) now.

</comment></comment><comment><USER4> How is this different from ksplice?

<comment><USER5> in a word. support.

as opposed to oracle overlords, who will eventually stop supporting grandfather'd customers and only support unbreakable linux.

there's kgraft and kpatch (suse and redhat respectively), different capabilities.

background links (kgraft/kspice) [http://lwn.net/Articles/584016/](http://lwn.net/Articles/584016/) [http://lwn.net/Articles/589183/](http://lwn.net/Articles/589183/)

edit.. oracle also owns patents on ksplice.

</comment></comment><comment><USER6> Wait, how handy will this be for adding backdoors once you have root?

<comment><USER7> Patch modules can be signed so assuming you only need signed patches (which seems reasonable) this shouldn't be too much of a concern.</comment></comment>


BeerMaps – Search and explore local craft breweries - <AUTHOR> https://beermaps.com <comment><USER2> Neat website. However it seems to provide a poor experience to users who deny the geolocation browser permission, as there's no way to type in any address as a string on the few pages under the search header I took the time to explore...

</comment><comment><USER3> Nice work here. There is a bug on the map where the pins aren't accurately placed until you are zoomed in entirely. If I watch the pin in Kodiak Alaska for example, every level I zoom out, it drifts further out to sea.

</comment><comment><USER4> Aww, US only.

<comment><USER5> [http://routebeer.net/](http://routebeer.net/)

for Vancouver</comment></comment>


InView – Synchronise Xero invoices to your calendar - <AUTHOR> https://www.inviewapp.com/?ref=hn <comment><AUTHOR> Creator of InView here. I'd be interested to hear if any Xero users here on Hacker News would be interested in beta testing some new functionality coming soon? Specifically, the inclusion of your upcoming Xero bills on your calendar apps.</comment>


Apple should disrupt the camera market with the iPod Touch of cameras  - <AUTHOR> http://theonda.org/articles/2009/04/04/apple-should-disrupt-the-camera-market-with-the-ipod-touch-of-cameras

<comment><AUTHOR> This blog is written by the founder of Tabblo which was acquired by HP a while back. Some of the most interesting and credible thinking and predicting goes on here. Definitely check it out.</comment>


Start-ups hit Cash Crunch in Silicon Valley - <AUTHOR> http://online.wsj.com/article_email/SB10001424052970204450804576625043573078086-lMyQjAxMTAxMDEwMjExNDIyWj.html <comment><USER2> I haven't observed web startups running into a "cash crunch."

That said, it does seem to me that the market is exuberant right now. There are business cycles that imply things will go the other way at some point.

I also want to point out that it's utterly specious to compare the 826 consumer web startups funded in the last two years against the 416 funded in 1998-2000. How much bigger is the total addressable market? ~200 million people in the late '90s vs. 2.1 billion today? And that doesn't include mobile.

Similarly with the comparison of VC fundraising. The capital requirements of an Internet business are completely different today than they were in the '90s. (Does anyone from Web 1.0 remember budgeting $150,000 for servers?)

<comment><USER3> This last wave of startups has brought an incredible number of successful ones, and innumerable number ones waiting for monetization. As you said, the audience grew to billions of people. I remember in 2000, we were still trying to convince people that Internet is here to stay,to shop and to do business.

<comment><USER2> Similarly in mobile, where worldwide subscribers have grown from ~400 million in 1999 to over 5 billion today. The smartphone segment of that is still relatively small, but it's growing 100% year over year.

Meanwhile, today's largest Internet companies have five times as many users as the _entire_ Internet subscriber base in 1999. My point is, startups that can profitably solve a problem have HUGE markets to sell to!

</comment></comment></comment><comment><USER4> If this is happening at all, it must be a very recent trend. There was no sign of valuations decreasing a month ago.

<comment><USER5> Really? I've talk to several VCs that were very active previously and they all agreed that valuations are frothy and now is not the time to invest. Naturally valuations are going to be lower since that's what the buyer's perception of that market.

<comment><USER5> @perokreco just like the stock market, the best time for entrance is when the market's at rock bottom.

<comment><USER6> 10 points to anyone who can reliably identify when the market is at rock bottom.

<comment><USER7> I'll bite, but you won't like the answer: when it gets to zero.

Unless you know someone willing to pay people to take their stock?

<comment><USER8> I'm pretty sure I've seen people here saying that they would pay for YC to take some of their stock.

</comment></comment></comment></comment></comment></comment><comment><USER9> My take-away from the article was that at most the stupid money is drying up, and very likely the article is wrong.

Opportunities still abound to use technology to disrupt existing markets. If that can be demonstrated to people with capital, they will invest. Even better, if that can be demonstrated to customers, you don't need people to invest.

</comment><comment><USER10> Lot of action on Twitter about this. Recent tweet from Chris Dixon: <http://twitter.com/#!/cdixon/status/124297282274340864>

</comment><comment><USER11> It would be interesting to know what these start-ups facing a cash crunch are all working on. Are they all chasing the same pie or are they a diverse bunch engaged in finding technology solutions for problems in a range of industries? I asked the question but I think I already know the answer.

</comment><comment><USER12> Having been through the tech crash v1, I cannot stress enough: You must always have an alternative to VC financing or you are playing russian roulette with the availability of new money.

<comment><USER13> Profitability - but VCs don't give a shit about that - in fact one told me that right on the phone... Maybe things will change.

<comment><USER12> That should not be surprising: Profitability makes VCs less necessary, which gives you leverage to walk away from a term sheet.

Google was a great example of that.

<comment><USER14> Google didn't gain a competitive advantage because they were profitable early (they were profitable, but only marginally so). They had an advantage because of the traction (significant year over year growth) they had as well as their ability to scale economically.

If Google didn't raise big money, they wouldn't have went on to do as many early acquisitions. Without those acquisitions, they don't stumble onto adwords/adsense and they remain a mildly profitable company.

<comment><USER15> > If Google didn't raise big money, they wouldn't have went on to do as many > early acquisitions. Without those acquisitions, they don't stumble onto > adwords/adsense

Adwords was out for around 6 months before the company's very first acquisition, DejaNews.

<http://www.google.com/about/corporate/company/history.html>

Google quickly became insanely profitable after launching adwords. They only ever took $25MM in private funding.

[http://en.wikipedia.org/wiki/History_of_Google#Financing_and...](http://en.wikipedia.org/wiki/History_of_Google#Financing_and_initial_public_offering)

I'm curious as to how you arrived at the assertions you made.

<comment><USER14> Fair enough, that's a valid question. I arrived at my assertion by looking at the financials. <http://investor.google.com/financial/2005/tables.html>

Google make the vast majority of their money through ads (no surprise). Adwords didn't take off until they acquired Applied Semantics (for semantic processing) and Sprinks (contextual aware ads). It may have existed pre- acquisitions, but it didn't look anything like the current version, and wasn't anywhere near as profitable.

</comment></comment></comment></comment></comment></comment><comment><USER16> Interesting twitter thread on this between @davemclure, @pkedrosky, @msuster, and others, part of which is here:

<http://twitter.com/#!/pkedrosky/status/124323109032574976>

(how do you capture a series of related tweets, btw?)

Summary seems to be: the cash crunch is not happening (yet). McClure calls it "poor reporting".

Looks like TechCrunch has captured a bunch of the related tweets: [http://techcrunch.com/2011/10/12/web-start-ups-hit-cash- crun...](http://techcrunch.com/2011/10/12/web-start-ups-hit-cash-crunch-or- dont-depending-on-whom-you-ask/)

</comment><comment><USER17> I like watching the discussions articles like this generate. It reminds me of both the dotcom and property bubbles and before it was obvious these were unraveling how people defended their positions. The biggest thing I get reminded of is those who bought property on credit at high values with the intention to flip them quickly at a profit. This reminds me of those who raise a lot of money for a company in order to flip it to the next guy. These are the people who will attack any perceived coming decline the hardest. They will tell you that this time it's different because 1% of China is now online. That technology is here to stay and will always grow and so will the market, with mobiles etc. This is true, but so was it true during the dotcom bubble. We got the timing wrong, and we got the business models wrong for sure.

In reality, like after the dotcom bubble, there are startups that formed over the recent years that will survive all this and be as well known as the giants we have today that formed during the dotcom era. It's just that we'll have a decline of appetite to throw money at me-too ideas with unrealistic business plans apart from flipping the company to the next sucker.

</comment><comment><AUTHOR> What is so interesting to me is how everyone was worried about a start-up bubble earlier this year to now where start-up financing is drying up. The whole notion of media speculation by noting short-term trends makes for some great gossip columns, but in reality do not provide real news to the reader. Because in the end this is not news just speculation more fitting for the Sun rather than WSJ.

<comment><USER18> I'm not suggesting it will play out this way, but financing drying up can be a step in the bubble bursting.

</comment></comment><comment><USER19> I can understand why startups need funding to get them off the ground, but I think this indicates that the focus might change away from "investing in tech that might turn into something" towards "only investing if there is a credible business model".

There's a fundamental difference between funding great people with innovative ideas, and investing in proven business models.

I'm not saying both can't happen to coincide in the same start-up, but there is some great start-ups with really promising technology, who haven't yet reached the stage where the business model should matter, and this would be like cutting them off at the knees.

I guess this is a consequence of bad economic times, moreso than the enthusiasm fading away. At least I hope it is.

</comment><comment><USER20> Indinero should consider pivoting.

Compete.com only shows them at 800 or so uniques _per month_. But more importantly it will be extremely challenging for indinero to pick up enough small business accounts to make this idea work. While it's possible that this company could be an acquisition for Intuit that's not going to happen with anything like the user base they have. And getting time strapped small business owners to see value in this service in my opinion (with many years selling to small business and owning several) doesn't seem likely at all.

<comment><USER21> I don't have access to Indinero's data, but for my own startup, Compete's data is no more accurate than a random number generator. Both the absolute numbers and the shape of the graph have essentially zero resemblance to the real data.

<comment><USER20> If the sample is small then the data will be way off. That's the point. There is low traffic so there is nominal data.

That being said comparing compete data to _hundreds_ of parked domains that get enough traffic to have a decent data sample yes I would agree the data is off. But not anywhere near enough to make any difference in the point I was making.

<comment><USER21> Those numbers being off just by a factor of "only" 10-50X (which I think is reasonable given Compete's record) would make a big difference for a B2B site. Even more important from the perspective of a startup would be the presence of an upward trend - and with Compete, I've seen their estimate for our traffic fall by over 50% in months where we grew by around 40%.

I'm pretty sure for a "decent sample" - at least, accurate enough for the data to be useful for anything - you need to be at least a top 100 site, and even then I've heard stuff from a couple webmasters of those sites that Compete data is off by an order of magnitude or so.

</comment></comment></comment></comment><comment><USER22> If a startup idea is really solid and has a potential for revenues, lets say in the short term ( < 1 year), do these market conditions affect funding such a startup idea. I mean, why would a VC or an angel not be convinced to invest in such an idea regardless of market conditions. Just trying to understand.

</comment><comment><USER5> It's disturbing to read XXXXX "has been burning through its $1.1 million quickly" and all they could think of is raising more money. Why about revenue? Did the idea of making money just drop off the face of the Silicon Valley?

That's just to show that inexperience entrepreneurs like Jessica ( not saying she's not a smart person ) has hype caught up with reality. It's not surprising that these entrepreneurs will fight a long and tough battle ahead.

<comment><USER23> Go read Jessica's blog post from August - she advocated raising as much money as you could, etc. I asked the same question as you did on her blog but never got a response. What's wrong with you know making money to grow instead of trying to just grab vc cash.

<comment><USER5> The only time it make senses to grab as much money as you can is when you're building to flip. I've always viewed raising as little as you can if you are serious about building a sustainable business.

<comment><USER24> No. It makes sense to raise as little money as possible as you can when you are building to flip. Think about it. I'll explain the math if you can't figure it out.

Not all new companies are startups. Startups are companies that are in search of a business model. They are building something that is at least somewhat capital intensive before they can get revenue.

There is a lot to be said about bootstrapping, and if you can do it then that is awesome. But there are lots of ideas that require some cash to get off the ground.

<comment><USER5> You are right about the math and I respect that you did that with delicious but not many entrepreneurs are like you.

No matter how it much it "make sense" to not raise more, most entrepreneurs will do the opposite and not take the risk of running out of cash before the exit. It's like the blue and red pill.

I'm not sure how you define startups but that's subjective and I think all new companies are startups. I would say most new companies have a clear revenue model in the beginning and it's all about making it happen or pivot till you got it right. There are some that don't have one at the early stage and it's also rare to see one that had gotten successful versus most that just got bought without even breaking even or mmde a single dime.

<comment><USER24> I wouldn't take what I did at Delicious as an example of anything. I was green.

</comment></comment></comment></comment></comment></comment><comment><USER25> Whether the trend is real or not, I note two highly encouraging, closely related things:

1) A hell of a lot less money overall is being poured into "Dot Com II". Even if Dot Bomb II happens, it won't be as bad.

2) A lot more companies are being funded, logically with a lot less money each.

There might have been some "excesses" recently, but for once, people _did_ learn.

Moreover, using valuations as a proxy for this analysis is kind of misleading. If you put a million dollars in a company and the company goes bust, you're out the million, whether it "bought" you 5% of worthless shares or 50%. It only matters if the company actually does well.</comment>


Marc Benioff: "Windows 8 is the end of Windows" - <AUTHOR> http://venturebeat.com/2012/10/19/salesforce-ceo-marc-benioff-windows-8-is-the-end-of-windows/

<comment><USER2> So Windows 8 is the end of Windows because people apparently aren't talking much about desktop PCs anymore?

That seems like an awfully weak argument, given that there are still countless millions of desktop PC users, many of which run Windows. Plus, lots of people use everything: smartphones, tablets, desktops.

I must say I'm getting a little tired of these 'Windows 8 is going to crash and burn!!' threads. In truth nobody knows how this experiment will turn out - I'll personally pay far more attention to actual sales figures 6, 12 and 18 months from now.

<comment><USER3> To be honest I think enough people , including a lot of the press seem to want to fail badly enough that it will almost be irrelevant how good it is.

They will definitely sell a bunch of devices with it on but it will never be cool.

<comment><USER4> It's pretty annoying. Anything Apple does is "revolutionary" and "magical". Anything Microsoft does is seen as being bound to fail.

Apple has definitely won the media messaging war.

<comment><USER5> Well... I've been using Windows 7 on one computer at work and it's really bad compared to how smooth both Macs and Ubuntu (Unity and Gnome) are. Little things like the cluttered Aero theme, to the really horrid font rendering, the confusing ideas of "Libraries" mixed with filesystem folders to the unspeakable mess that is the control panel compound to make Windows an awful experience.

Windows 8 is _much_ better but, still, leaves a lot to be desired before it can claim the smoothness of its competitors. It evolved by adding pieces and, after so many years of layer upon layer of stuff added, it starts to show. Windows 8 has some good ideas, but a lot of it is change for the sake of change.

</comment></comment></comment></comment><comment><USER6> "And you should believe me because I have definitely not made my career by convincing people to stop using desktop software."

<comment><USER5> Is Hacker News running on your desktop now?

</comment></comment><comment><USER7> I'd be willing to bet Windows releases another operating system after Windows 8. Whether it is the end of their dominance in the business realm is about the only thing up for debate, but the company is sure not going to file for bankruptcy before Windows 9.

<comment><USER5> Microsoft will not go out of business when Windows ceases to be the dominant desktop OS. They will reshape themselves like they did before. Microsoft started selling BASIC interpreters for 8-bit computers and shifted its main cash cows a good couple times. It may never be as profitable as it was in its height, but to say it will cease to exist is exaggerated.

<comment><USER8> Yep, they'll still have outlook and office. Doesn't seem like anything new they do really sticks. Their web services division has been a real stinker for quite a while now.

<comment><USER9> They also have Xbox.

</comment></comment></comment></comment><comment><USER10> I bet he has never even used it. Windows 8 is really good so I am sure many people/blogs will be talking massive trash the closer it gets to release because they know its going to be a very relevant and possibly even well received.

<comment><USER11> I used it and found it a mess of an OS and Metro apps horrible. Multitasking is boned and it works badly with multi monitors.

<comment><USER12> I agree that the current suite of Metro apps is crap, but that hardly makes the OS a mess. I've been using it as my primary OS for about 6 months and my usage hasn't really changed from Win7. All my work is done from the desktop, with the new start screen working as a useful short cut organiser.

      Multitasking is boned

Not sure what you mean there.

      ...it works badly with multi monitors.

Depends on your definition of 'works badly'. I think they've made smart choices. You can easily nominate which monitor is your Start Screen monitor and all Metro apps will launch there. You can't seem to run metro apps on more than one screen, but you can have 2 visible on the same screen using docking.

<comment><USER11> Try running multiple metro remote desktops on two different monitors. You can't.

Metro apps are not made for multiple screens and this is what they are pushing for as future software. All full screen tabs.

There us a lot of hot corner action that is painful when those hot corners are in between the two monitors. I had to offset the screens so I could catch the mouse to hit the start button area.

This is a huge step backwards in multitasking.

</comment></comment></comment></comment><comment><USER13> I hope all the non-tech folks do move to tablets, phones, and webapps. Then maybe windows 9+ can drop the pretense of user friendliness and become much more technical. Who knows maybe they could strip out all the bloat and produce a highly customizable OS that would appeal to programmers and tech enthusiasts.

<comment><USER14> You can bet on OS X getting there before Windows does.

<comment><USER15> Getting where? More technical? That's certainly not the direction it's been heading up to now.

<comment><USER16> What do you mean by 'technical'. OS X has UNIX underpinnings, you can still VIM, Mutt and Lynx as much as you want, you can compile from source. This is meaningless to me.

</comment></comment></comment></comment><comment><USER17> Widows is dead with version 8. Long live windows. I think he should rather have said enterprise PC's and workstations are dead. It's clear to me that for normal users ( disclaimer, I work with HPSCs all day ) mobile will become the compute device and each display/'workstation' will have some sort of GPU and connection to the mobile device either wired or wireless in the next 5 years. I can't wait to buy an android device like this. Certainly Apple would do well to team up with NVIDIA for their MBA line and offer an external discrete GPU for when you want sit down at a proper desk with a large screen.

<comment><USER18> External GPU's over thunderbolt has been a dream of mine for a long time. It would make the MBA the ultimate computer.

There have been proof of concepts, I think by Acer, but I don't know of any product roadmap by anybody. Apple wouldn't need to partner with NVIDIA for this, it would be an enclosure not unlike one for external hard drives where you could install any off the shelf graphics card. :)

<comment><USER19> Even if thunderbolt provided enough bandwidth, wouldn't the whole idea fall apart because the data has to pass through another protocol (making it slower) vs having the GPU directly interfaced?

<comment><USER18> Thunderbolt is in actuality PCI Express and has ample (20 Gbit/s) bandwidth. As far as I know it will be almost like directly attaching a GPU with some minimal latency because of the greater distance.

If not, the next gen optical version will have more then enough headroom.

</comment></comment></comment></comment><comment><USER20> Interesting thing is that even if it's the end of the line for Microsoft developing new versions of Windows(and I don't think it is), there is still an entire ecosystem that won't be going anywhere.

I'm working for a client right now writing a few apps (away from Access/Excel type apps) so that they can upgrade to Windows 7 by mid-year 2013. And they're upgrading from XP.

So even if Windows 9 never comes out, I would guess there is plenty of work for Windows developers (for better or worse.)

</comment><comment><USER21> How many failures did we predict for Facebook and Google and only god knows how many other companies. There is at least one every week for Facebook. Windows & Microsoft aren't going anywhere. At least not any time in this decade.

<comment><USER22> The death of the PC has been talked about for many years as well. What makes it different this time is that it's microsoft themselves admitting it, and planing their next move with this in mind. There's this show called Windows Weekly in the TWIT network [1]. They often (always?) have microsoft employees as guests to the show. And if you watch the show, you'll see they'll clearly admit that microsoft is sure the PC era is ending for real this time. They know very well the company must change, a lot, what they do to keep themselves alive.

You might argue that they'll succeed in their new strategies. But you sure cannot say that everything is fine and there's nothing to change, or to be alarmed of. Not even microsoft would agree with that.

[1] <http://twit.tv/show/windows-weekly/283>

</comment></comment><comment><USER23> Benioff is very very good at playing the publicity game. What was said is not important, that wasn't the reason why he said it. He said it in order to make front pages, and he did.

</comment><comment><USER24> He is better off making sure that his company is not facing the end soon. For a company that is in business for almost a decade, they are yet to turn a profit.

<comment><USER25> They are clearly following the Amazon model and pursuing growth rather than profitability:

<http://ycharts.com/companies/CRM/revenues>

<comment><USER26> Exactly. The sheer number of employees CRM is hiring, month after month, is staggering.

<comment><USER26> Why the down votes? They've nearly doubled the employee count in a couple of years, which is quite impressive at that scale.</comment></comment></comment></comment>