Firefox market share exceeds 20%, Internet Explorer dips below 70% - <AUTHOR> http://www.tgdaily.com/content/view/38653/113/

<comment><USER2> There's a part of me that just simply doesn't care about these metrics anymore. It's not like the early days where the non-techies were suspicious or when websites were being created IE-only. The web is just very different - partially thanks to FF - but do you see the web looking different when FF is at 30% vs 20%?

Sites now do accommodate multiple browsers. We aren't going to get to a situation where we stop supporting IE as long as it's the default install on Windows. Is there progress to be made (in a way that changes my experience as an FF user)? By that I mean, when FF was at >1%, lots of sites didn't work right for me. That changed as FF grew larger. Do you think a jump from 20% to 30% would help me?

<comment><USER3> If IE6 were to drop below epsilon, it would greatly help me.

</comment></comment><comment><USER4> It's kinda funny how it differs between different market segments. Diffle (casual games, launched on Digg) had 90% of its visitors use IE and only about 7% on Firefox, while WhatShallIDoNow (to-do list, launched on news.YC) has 70% of its visitors on FireFox with less than 10% on IE. In the first hour after launch - when it was _just_ news.YC traffic - there were a couple hundred Firefox hits and _one_ visitor with IE.

<comment><USER5> Who is the bastard reading this site in IE?

I'm the closest thing to a MS fanboy in these parts, and I've been using Mozilla since it was called Phoenix.

<comment><USER6> I had issues with FF2, so I went to IE7 when it launched. It wasn't so bad and I actually thought it was beneficial to be running the same platform the majority of my users were running. But eventually I couldn't take it anymore, and FF3 came out so I've switched back.

</comment></comment></comment><comment><USER7> As Firefox gains in popularity and the ever popular AdBlock Plus being a regular fixture for installations I wonder if anyone has done any research or speculation into what effect this will have on the internet free with ads based revenue that so many people have built their success around.

So to get off my own butt and google it I found a few articles that talk about the same issue ([http://www.roughtype.com/archives/2007/09/adblock_plus_th.ph...](http://www.roughtype.com/archives/2007/09/adblock_plus_th.php), <http://www.hhcc.com/?p=450>) but nothing seems to really go very deep. It is always "users are too small a population to worry" but it is always a good idea to start thinking now on this before it becomes a problem.

<comment><USER8> I don't think there is all that much correlation to be honest between firefox, and adblock.

I've used firefox for years but would never dream of installing adblock. I can see there's a sort of person that would, probably the same people who like to tell you how they don't own a TV...

Also, adblock only blocks irritating 'obvious' adverts. There's a ton of adverts you wouldn't even recognize as being adverts. "Ad-Blocking" isn't really a threat to the net.

<comment><USER9> I use adblock. (I do also own a TV.) It's a matter of sheer usability for me. I've never been able to develop that "ad-blindness" which others seem to have. When I don't block ads I almost literally cannot focus enough on the actual pages content to read it coherently. Flashing images and giant swaths of color are just painful. I often surf with page colors disabled and images blocked as well.

On a totally related note, I like the low-impact styling of HN.

</comment></comment></comment><comment><USER10> e.g. FF is already #1 in .hu

Firefox 48.9% Internet Explorer 46.8%

<http://www.adverticum.com/article/1063/>

</comment><comment><USER11> I wonder what Opera would be getting if they actually listened to their users. Plus, right now any site with fancy AJAX would have some rendering/performing problem under opera (most of google stuff does, not gmail though). So that's another terrible sin.

I love Opera and think they deserve more success, but somewhere up in their hierarchy someone is making all the wrong decisions.

</comment><comment><USER12> I have noticed in my web stats FireFox is now even with Internet Explorer 6

<http://www.officezilla.com/most_used_browsers.png>

IE7 32.23%, FireFox 29.09%, IE 6 25.94%

</comment><comment><USER13> SearchYC.com stats:

      Firefox  75.7%
      Safari   12.9%
      IE        7.6%
      Opera     2.2%
      Mozilla   1.3%
      Other     0.3%

</comment><comment><USER14> Good. Slowly, but surely...

</comment><comment><USER15> I think Firefox has increased the market-share mainly because of launch of Firefox 3 before the launch of IE 8, also Firefox got very good press before the launch. I think we can come to a good conclusion only when IE 8 launches. If it is good enough, i am sure lot of people will switch to IE.</comment>


Data Visualization and D3.js Newsletter - Issue 49 - <AUTHOR> https://www.dashingd3js.com/data-visualization-and-d3-newsletter/data-visualization-and-d3-newsletter-issue-49

<comment><USER2> If you're interested in using d3, check out dc.js ... [http://nickqizhu.github.io/dc.js/](http://nickqizhu.github.io/dc.js/) ... it's d3 with crossfilter.js added. Really useful for linking interactive charts together - filter on one applies the filter to all. And it's damn fast.

</comment><comment><USER3> I need to do some charts and other customized data visualizations on ipad. Is using webview with D3.js a good option for the ipad ? Any suggestions?

<comment><USER4> No, not a good idea due to performance limitations. d3 is very powerful framework but on most mobile devices you can't do anything that complex if it's animated (try the animated demos on a phone).

On the other hand if you're doing something less complex like charting, choosing a domain specific framework like highcharts.js can offer much higher frame rates.

This problem is much worse on iOS when using a browser like Chrome, or using Safari inside of an app. That's because Apple disables many JS optimizations when not using Safari or when using a browser window inside an app.

</comment></comment><comment><USER5> I just found out about this so I hope others find it useful but...

Google Fusion Tables is amazing when it comes to visualizing, storing, and manipulating data: [http://www.google.com/drive/apps.html#fusiontables](http://www.google.com/drive/apps.html#fusiontables)

It's like Google Spreadsheets on steroids.

</comment><comment><USER6> I'd like to use this opportunity to vent my frustrations using cubism.js. I love d3 and I love the idea of cubism. But doing a real-time cubism vis with custom data sources was a painful task. Not sure if it would be less painful than doing real-time horizon charts or sparklines myself.</comment>


Why Can't We See Evidence Of Alien Life? - <AUTHOR> http://www.33rdsquare.com/2012/03/why-cant-we-see-evidence-of-alien-life.html <comment><USER2> One argument I like is that alien civilizations are going to be either extremely more advanced than us, or extremely less advanced.

Human intelligence is only 5k years old, on a 4.5BB year old planet in a 14BB year old universe. Yet, our level of technological advancement means if FTL travel or communication is possible, we'll probably discover it in the next couple of hundred years, and we would probably get rid of the inferior EM waves as a medium.

How long would the average civilization be detectable by our current means under these conditions? Makes a needle in the haystack seem simple.

<comment><USER3> Did you really mean to say that human intelligence began a millennium after the start of recorded history?

<comment><USER4> More like it he meant to give an order of magnitude correct answer, and could not care less about give or take 2-3 millennia.

<comment><USER3> Behavioural modernity is generally accepted as 50–40kya, and anatomical modernity 200kya. That's more than a few millennia of difference. I was mainly curious as to whether there were a religious reason for such a comment.

<comment><USER4> Oh, I think he meant technological modernity (well, not modernity but relative maturity).

</comment></comment></comment></comment></comment><comment><USER5> Maybe we're galatic lottery winners wondering why no ones else has won the lottery? Our existence is a survivorship bias.

Also, take into account the possibility that other intelligent life might be more biological than technological (e.g. interconnected intelligence without technology like in Avatar).

Then factor in that intelligent life might be microscopic or just tiny.

It's really not hard to imagine that the search for alien life is a problem of asking a question for a rare/over-specified solution.

<comment><USER6> > interconnected intelligence without technology like in Avatar

I have a feeling that the Avatar scenario is no more likely than tall blue- skinned humanoids. Our notion of intelligence pretty much defines it as collection of thought processes that end up manifesting themselves in the development of technology. Dolphins may be extremely intelligent on some scale unknown to us, but we don't observe them building submarines or decoding radio signals, so we don't consider them to be human-level intelligent. Similarly, to them, we may appear as these strange shore-bound small amphibious quadrupeds who carry various strange amulets on their bodies with which they do various strange things, all of them being of completely no use or interest to an average cetacean. I'm probably exaggerating cetacean intelligence a fair bit, but I just wanted to illustrate how closely our definition of intelligence is bound to the availability/use of technology.

<comment><USER7> Yes, also yes to the exaggeration bit, but intelligence is just, well, intelligence. A complex "brain" can be about emotional depth, about being able to communicate that emotional complexity, it can be about processing senses in amazing ways or many other functions we may not even think of. That is just the complexity of a certain nervous system though, not intelligence per se, for us what matters is indeed problem solving capabilities which lead to technology.

<comment><USER6> Sure emotional intelligence may be more important than most of us realize (the theory of mind, the ability to "read" other people's thoughts, sometimes also more cynically called Machiavellian intelligence, is thought by some to be the primary driver behind the development of sentience in humans), but I was developing the following thought experiment:

Suppose bottlenose dolphins have an uncanny ability to "read minds" and interpret thoughts and emotions of other bottlenose dolphins (but _only_ of individuals of their own species -- not of porpoises, humans, etc.) to the same or even better extent than we humans can read minds of other humans, but due to the accidental specifics of their bodily layout and environment (no limbs with which to grasp and manipulate objects, unsuitable environment for the use of fire) are unable to develop any semblance of technology. What would those "super-dolphins" look like to us? I have a feeling they would still look a lot like dolphins, and we, without some very specific/expensive/targeted research, probably would have never even realize that we are living right next to some "super-intelligent" animals.

</comment></comment></comment></comment><comment><USER8> A bit of perspective:

Our technological civilization in the sense of being capable of wireless electromagnetic signaling exists only around 120 years -- it started only ten years before my granddad was born. 120 years is nothing compared to the existence of life on Earth -- at least 3 billion years: one part of 25 millions.

Only around seventy years the humanity also produces nuclear bombs. Now at this moment there are around 5000 actively deployed nuclear warheads in the world, waiting for a press of some button to fly to their targets, every one more orders of magnitude more powerful than the ones that destroyed Hiroshima and Nagasaki.

[http://en.wikipedia.org/wiki/List_of_states_with_nuclear_wea...](http://en.wikipedia.org/wiki/List_of_states_with_nuclear_weapons)

Now the oil reserves, if we continue only to use them without any growth (which is not what politicians and the electorate are used to expect) will last only for next 64 years:

<http://en.wikipedia.org/wiki/Oil_reserves>

How many years are left to the humanity to enjoy the possibilities of the electromagnetic communication?

We're sitting here discussing most of the time the solutions to the following big problems of humanity:

[https://plus.google.com/117114202722218150209/posts/KhMRNmgG...](https://plus.google.com/117114202722218150209/posts/KhMRNmgGniP)

(the companies) "make these apparati that draw a box on somebody's computer screen. That person then types words into that box on their screen. Then, the Internet Startup uses some computer codes to copy those words onto somebody else's computer screen, so that other person can then read them."

<comment><USER9> Why do you mention oil? Oil's useful for driving cars and flying planes, but we do not need to depend on oil for energy.

</comment></comment><comment><USER10> Why we can't find Evidence of Alien Life - We are not looking seriously. And that is because -

1\. We waste far too much money on wars, weapons and fighting than what we should be spending on this sort of problems.

2\. The pressing needs of human kind at this time are photo sharing apps and 'bird in pig' games.

3\. No serious, I mean real serious intent on developing space travel, exploration and colonization.

4\. Misplaced priorities, the people who can solve tough problems like educating kids, finding cures for diseases and space research are paid peanuts in comparison with people who are doing far easier jobs than them. There by scaring off more people working on those jobs.

5\. Nation states must collaborate on working these kind of issues instead of developing weapons, wasting brain power, energy, money and resources to destroy each other.

</comment><comment><USER11> I think SETI is horribly misguided. It may be there are other civilizations, but that they are smart enough to avoid each other.

I posit that the only aliens we want to meet are ones that _are not interested in us_. Any interest, given the likely difference in technological levels, is unlikely to end well for us. The book Guns, Germs, and Steel painted a not-so- rosy picture of the meetings of societies at even small differences of technological advances. These differences are likely to be magnified for races without a common ancestral history and similar starting point in time.

The wishful thinking of people hoping to meet alien civilizations includes assumptions like:

* Alien civilization began just like ours.

* Time passed.

* ????????

* Magically altruistic alien society arises.

If this is true, great. But do I want to bet humanity on it? Hell no.

<comment><USER12> I don't want to discuss whether your pessimistic outlook is more realistic than an optimistic outlook. However, I'd like to point out that SETI isn't misguided in any case.

Heck, if your pessimistic outlook is correct, SETI is even _more_ important, because it might provide the only early warning of an incoming invasion. That may not help in the end, but it's better than nothing.

<comment><USER11> I could be wrong on this point, but isn't the underlying assumption with SETI that when we listen that we will also respond?

<comment><USER12> Well, it's called _Search_ for Extra-Terrestrial Intelligence, not _Communication_ with Extra-Terrestrial Intelligence. At least right now they aren't sending anything, and I'm sure there will be plenty of time to discuss this issue before and if they ever find anything.

I agree with you that it makes sense to be careful. Sending high-powered directed radio signals before we really know what we're dealing with does sound like a bad idea.

</comment></comment></comment></comment><comment><USER13> I've always wondered why humans are the only species on earth to build huge complex societies.

Why aren't there multiple species of intelligent life on earth? (yes some animals are pretty smart, but they don't build cars, make movies, have laws, etc.)

<comment><USER14> Because we're the only ones with language. Language gave us a _huge_ technical advantage over all of the other animals.

Typically, in species without language, it takes many generations for a "mutation"[1] to propagate across the species.

If I instinctually figure out a better way of hunting deer, which gives me an advantage over my competitors for mates, and I pass it on to my children, who pass it on to theirs, etc. eventually the new instinct will be present in most of the species.

(This is basic basic natural selection).

Language changed all of that. Now instead of waiting for offspring to carry a mutation, I can just _tell people_ about the better way of hunting deer, they can do it, and they can tell people too.

Stuff spreads quickly. It makes humans able to evolve at a much, much, much faster rate than any other animal on the planet.

(And yes, really, humans are the only animals on the planet with language. Bird song, whale song, and tree-pheromones don't count.)

[1] In quotes because consciously iterating over a problem (like hunting deer) isn't a "mutation" in the classic sense.

<comment><USER15> There were other species with language (Neanderthals, other proto-humans). Some of these species coexisted, and there is some evidence that they fought one another, and maybe killed each other off.

<comment><USER9> They not only fought, but also pro-created. I heard that genes for red hair might actually come from the Neanderthals. (There are lots of news reports about that on the web.)

</comment></comment></comment></comment><comment><USER16> Because we aren't looking close enough yet. Reverse the question, an alien 200 light years from Earth, using technology at our current state-of-the art would likely not see any life on Earth either.

<comment><USER17> The odds that we all evolved to that point of technology at the same time is tiny. It's far more likely that there are many civilizations in advance of us and far enough away that we'd detect something. Unless they already went quiet (deliberately or through extinction).

<comment><USER18> Or because they plugged themselves into virtual realities that are more attractive to hang out in than physical reality.

<comment><USER19> Or maybe they don't need virtual realities anymore because they can reshape their world anyway they want through nanotechnology.

At that point I doubt it would be too hard for them to hide from us, anyway. They could cover their planet in a shield that makes it look and act like a non-planet to us ( whatever that would be).

<comment><USER20> Larry Niven has posited that perhaps all those red giants are just Matrioshka Brains - Dyson spheres enclosing suns and radiating mostly infra-red waste heat.

</comment></comment></comment></comment></comment><comment><USER21> A much simpler explanation ;-)

[http://images.cryhavok.org/v/Calvin+and+Hobbes+-+Intelligent...](http://images.cryhavok.org/v/Calvin+and+Hobbes+-+Intelligent+Life.jpg.html)

(Calvin & Hobbes: Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.)

</comment><comment><USER22> so let's assume SETI is mostly looking for electromagnetic emissions as a trace for aliens. let's also assume that exchanging information via e.e. happens only during a very short timeframe for any given civilization (eg. ~200 years), because soon more advance communication methods arise (eg. quantum teleportation) and the communication via e.e. is left to a few nostalgic nerds (via transmitors far too weak to reach our galaxy). on a timeline of several billion years, this means that the chance that two civiliations are per chance roughly in the same state of development (eg. 200 years window of e.e. + the delay in lightyears for the emissions to reach our planet), is probably close to zero. (and this is probably true for any given technology).

at least that's my take on it. i'm pretty darn sure we're not the only ones out there.

</comment><comment><USER23> The probabilities all point to advanced life being close by, we just can't see it. Most likely because they don't want to disturb us. Like a lost tribe in middle of the Amazon, coming in to too close of contact with us would mean almost certain extinction.

Either that, or SETI is completely off.

</comment><comment><USER24> Because they are hiding the evidence. They don't want us to find them. I don't blame them.

</comment><comment><USER25> Aaah! Why did they show the beginning of the universe as God sneezing? I know this is for kids, so that's all the more reason why they shouldn't be including such nonsense like a god or religion in this video. That makes me angry.

</comment><comment><USER26> 1: We are unique in the galaxy because life is rare.

2: The galaxy is teaming with life, but just like a flower in the amazon rain forest is wondering why there is not life all around it, the flower simply lacks the basic tools necessary to find any evidence whatsoever of the lifeforms all around it.

3: Radio silence is required, as there is a bully in our solar system who sterilizes any life forms found. And as soon as we have the technology to broadcast our location, we will be extinguished by a process designed to keep this galaxy pure.

4: Life is right next to us, inside us, all around us. Just in alternate dimensions which make our galaxy look like a drop of rainwater. We just can't see it.

5: The human race is an experiment by a higher life form, and it's empty because it was designed to be empty. This one planet was seeded, and we are being watched.

6: DNA based life, like a virus, extinguishes all resources it can get it's hands onto, Humans will explode with productivity until we exhaust every resource available to us. We do not understand the word sustainable, even the green weenies acknowledge growth of O(n^n)

7: Humans are a weapon of mass destruction, and we have been planted, as a terrorist would plant a bomb in the other guy's house. We humans will consume every last calorie of energy from this universe. We are a weapon, and our growth is the explosion which will knock out the enemy alien.

8: When species get advanced enough to travel throughout the galaxy, we figure out that this isn't a universe at all, and we hack into the holodeck projectors in the wall and then forget about the useless projection that we call the universe.

9: The suns and phenomenon around us in the universe is an alien life form's abdominal fat, and we are bacteria who is growing inside it. As soon as we start consuming too much, demanding our life is more important than the natural decay of suns, the white blood cells will come to our planet and destroy us.

10: We will find life in other parts of the galaxy, as surly as the homo sapiens on the earth figured out that when you cross the great blue expanse, other strange cultures, much like our own, were growing there.

11: What we understand as the universe, with height width and depth, velocity, time, inertia and such, is a completely incorrect view of the universe. It's the same problem with how the flower sees the universe in terms of it's own life and needs. The flower only knows it's root structure and the properties of the ground, wondering why it doesn't find other flowers in its root structure. The flower simply cannot fathom that the life is actually touching it, around it, and inside it.

</comment><comment><USER27> Lots of pat answers from the smart kids here at HN.

I dunno guys, maybe the universe is a lot stranger than we can get our heads around, and we should admit that we don't know.

<comment><USER28> Embracing ignorance is not the right answer to ignorance.

For an example of a genuinely strange resolution to the Fermi paradox, see Paul Almond's "Civilization-level quantum suicide": [http://www.paul- almond.com/CivilizationLevelQuantumSuicide.p...](http://www.paul- almond.com/CivilizationLevelQuantumSuicide.pdf)

<comment><USER27> Admitting our own limitations in the face of a bizarre situation is not embracing ignorance.

There are a lot of scientistic answers in this thread that are as scientifically valid as "God created us uniquely in his own image". Admitting that would be a good first step.

MOAR DOWNVOTES!</comment></comment></comment>


Happiness is a freshly organized codebase - <AUTHOR> https://slack.engineering/happiness-is-a-freshly-organized-codebase-7ffa6590a70d <comment><USER3> The concept of linting repo structure is an excellent one.

I cannot even get started in projects without a sane repo layout. Source files scattered everywhere unrelated to each other, utils junk-drawers with dozens of files, multiple top-level source directories without explicit rationale, tests and source totally disjoint, hacks to modify build and run paths, implicit dependencies between directories, awful convoluted build-system configuration to match all of these idiosyncrasies, and impossible or very difficult editor/ide integration as a result. Even rails-eque apps (which come with a reasonable structure) get really messy really quickly if somebody doesn't have the diligence to stay on top of it.

I want there to be a {sane, polyglot, large-ish-scale} project layout convention that plays well with {intuition/discoverability, build-systems, editors, project size}, but it seems there's an inherent tension between these. Maven tried. Kinda. I wonder if there's a fundamental problem we aren't solving somewhere.

<comment><USER4> On the flip side, reorganizing a codebase totally fucks the git history.

<comment><USER5> Just make sure to use 'git mv' for all your files so the history can be tracked. 'git log myfile' will only show the history for that file, but 'git blame' will follow the line changes across file moves.

That aside, there are some many productivity and tooling gains around organizing your project properly, that it is worth history discontinuities.

Also, I've found that the worse the project organization is, the less likely the team is to separate out different fileset changes into different commits to keep a useful history, or make the use of the git history at all outside of looking at a few recent commits or or sometimes looking at the last release. I've heard this as very circular arguments. Can't re-org because we loose history. Can't maintain good history because the project is too disorganized.

<comment><USER6> This might not be the forum for it, but I have a question about this - <USER2> thought git was supposed to be pretty smart about detecting renames, but in my experience (on Windows) it _never_ does, and I always have to use `git mv`. What's the deal with this?

<comment><USER7> Even if rename detection is enabled, git will only try to identify renames if it wouldn't take too much time (since IIRC it's a O(#files^2) operation).

Thus, there's a config "diff.renameLimit" and "merge.renameLimit" that tells git to only detect renames if less than N files are affected.

I have personally been burned by this before, and there usually is a default value set in most git clients.

See also some discussion at [https://stackoverflow.com/a/7831027/1237375](https://stackoverflow.com/a/7831027/1237375) .

</comment></comment></comment></comment></comment><comment><USER8> I feel like a lot of the pain in codebase organization boils down to having a technical project structure (i.e. layout on disk) that does not align well with the business. Obviously, it's impossible to force something to directly align with such disparate and abstract requirements, so you have to create abstractions (layers) to enable a hypothetically-pure realm.

In our architecture, we've created roughly 2 different kinds of abstraction: Platform and Business.

The Platform abstractions are only intended to support themselves and the Business abstractions. These are not supposed to be easily-accessible by non- technical folks. Their entire purpose is to make the Business abstractions as elegant as possible. The idea is these should be slowly-changing and stable across all use cases. Developers are only expected to visit this realm maybe once every other week. We effectively treat ourselves as our own customer with this layer.

The Business abstractions are built using only first-party primitives and our Platform layer. Most of this is very clean because we explicitly force all non-business concerns out into the Platform layer. Things like validation logic are written using purely functional code in this realm, which makes it very easy to reason with. Developers are expected to live in this area most of the time. Organization of business abstractions typically falls along lines of usage or logical business activity. We explicitly duplicate some code in order to maintain very clean separation of differing business activities. I've watched first hand as the subtle variances of a single combined Customer model across hundreds of contexts eventually turned it into a boat anchor.

As a consequence of all this, our project managers and other non-code-experts are actually able to review large parts of the codebase and derive meaningful insights without a developer babysitting them. We are at a point where project managers can open PRs for adjusting basic validation and parameter items in our customers' biz code. Developers also enjoy not having to do massive altitude shifts on abstractions while reading through 1 source file. You either spend a day working platform concerns, or you are in the business layer. Context switching sucks and we built to avoid it as much as possible. IMO, having a bad project structure is one direct side-effect of being forced to context switch all the time.

<comment><USER9> Wow, I love this idea. I'm curious how you have that structured within the code base. Is it literally a platform folder and a business folder?

<comment><USER8> Pretty much. We have an issue in our backlog right now that will pull the platform concern into a completely different project/DLL from the rest of the biz code. We still have a little bit of coupling, but we are 99% of the way there. Our long-term goal is to produce a company-common platform layer that can be used to build a wide range of final products. Most business applications that we would build share a lot of common concerns - namely how to manage business state, client views and transactions with external business systems. This is all implemented in various services within our platform layer so we rarely think about it. When we integrate with a 3rd party vendor's API, it goes into platform so anything can now use that integration.

The crazy thing I've come to realize is that the journey doesn't have to end there either... You can build yet-higher-order abstractions on top of your platform layer (i.e. a platform for platform). I don't know where this all ends up, but 1 or 2 iterations of it has been extremely healthy for our architecture and business use cases so far. We are now able to chain together extremely complex business processes in ways that can be reasoned with in a single POCO mapper. Without a separation of the "noise" of platform-related and other lower-order code from the business code, it would become impossible to see these opportunities.

<comment><USER10> Bob can you give more details about this or is there a way to contact you? I am genuinely curious about this type of architecture and would love to learn more. If you would rather respond here could you give two simple, concrete examples of each case?

<comment><USER8> Based on the responses here, it is apparent that I should spend some time documenting this concept in more detail for the greater good. I do not have the bandwidth for this right now, but perhaps in a few weeks I'll have time to put together some realistic examples for a proper Show HN submission.

</comment></comment></comment></comment></comment><comment> rudi-c I've encountered similar difficulties around codebases with a lack of file hierarchy structure. But one major difficulty in fixing the issue is that moving a lot of files around tends to trash `git blame`, which is often more valuable than knowing what folder to put a new file in. Is that something you've encountered?

<comment><USER3> There are workarounds to get git to search harder or to commit things in a way that's helpful for large-scale file-shuffles, but to be honest I've rarely found this to be enough of a reason to not move things around. The end result is a much more productive and purposeful place for code to live and grow. This said, moving files and moving code within those files at the same time is a recipe for confusing yourself and git. Move files first, then content.

<comment><USER11> A few options to look at specifically: --follow, -M, and -C. Less related to refactoring I also find --first-parent and --merges useful

</comment></comment></comment><comment><USER12> I sometimes wish Git properly records copy and move information. It turns out Git's heuristics for detecting copies and moves work about 95% of the time, and for the remaining 5% it's mildly annoying to read a git blame with every line from a move. You can blame further across that move, but that's manual. If copy and move information is perfectly recorded, I'd have more incentive to do these kinds of code reorganization.

<comment><USER3> This article mentioned a while ago had relevant info: [https://news.ycombinator.com/item?id=22689301](https://news.ycombinator.com/item?id=22689301)

In my experience, ensure you don't change the code as you move it, don't rename files and move content at the same time, and don't move "too much" code in a single commit. Around 2k lines at a time seems to be a good number. Maybe some languages/structures are easier for git to analyze when doing blames.

<comment><USER12> How do you not change the code as it's being moved, when you need to update #include directives, imports, and other file paths?

<comment><USER13> It's easy if not every commit needs to compile. :)

</comment></comment></comment></comment><comment><USER14> Interesting read!

> No more dumping ground folders like "Helper" or "Utility"

If you're organizing by feature and you have one of these helper/utility classes that support multiple features, where does it live? Would you consider each utility to be its own "feature"?

<comment><USER15> I actually think it's vitally important to have "dumping ground" locations for things that aren't fully figured-out yet. If I'm working on a new thing and I have something that's relevant in multiple files but I'm not sure where it should go, or even whether it will stick around, I don't want to have to come to a screeching halt just to make a taxonomic decision about something that's still a work in progress. The key, of course, is going back and categorizing those things later once you _do_ have an idea of where they should go.

<comment><USER16> Totally agree. So much of programming and designing is figuring out what pattern your code is falling into and what stuff "is" or "means".

I believe it's totally okay to name things utilities when you haven't yet established a common pattern or understanding of it. Naming things is hard and spending so much time on it and organizing things can often block you from progressing to a place where you DO have more information and can intelligently name things.

You'll always be juggling unknowns, so it's okay to have dumping grounds here and there, so long as over time you clean them up as you gain more info.

<comment><USER15> I recently started working within a Python codebase, and one of the things I really like about it (not sure whether this is standard Python practice) is that most directories have a "common.py" file in them. So if you just want to put something somewhere real quick, you can elevate it to exactly the appropriate directory-level instead of going to a single, global "utils" file. It's a neat pattern.

</comment></comment></comment></comment><comment><USER17> For new projects (especially as a solo developer), there's also a related topic of not taking advantage of tools like kanban boards, or having a place outside of your source code to organize your thoughts and research.

It's very possible to wind up with massive comment dumps of things to research, alternate implementations, notes to yourself and other things littered in your code base where you haven't made any git commits yet.

This really leaves things in a messy state where you feel like the project is never going to be finished.

An example of this and how I solved this problem with a kanban board can be found here: [https://youtu.be/HHOkcCqsipE?t=76](https://youtu.be/HHOkcCqsipE?t=76)

</comment><comment><USER18> I've been wondering a lot recently if folders make projects better or worse.

For example, when I write a library its usually very simple. There's a single directory which contains all of the source files. When people use the library they:

"""

import lib

lib.run()

""""

Dead simple, no complex module paths to remember, no hierarchical folder structure forcing you to code based on a pattern rather than functionality. Pure bliss.

But on the other hand, I have projects that contain 100k lines of source code. I can't just leave it out in the cold. So poor baby gets a couple of folders.

But I do hate it. I hate writing the code. I hate reading it. I hate finding it 6 months after the fact.

That's probably just the nature of the job. It is work at the end of the day. Maybe its just doomed to be hard.

<comment><USER19> I'm not plugging the language, but I've come to appreciate OCaml's module system with no imports and (mostly) globally unique module names. No circular dependencies allowed either. You can have multiple modules within a file (which is also a module named after the file name).

I structure larger projects as libraries with minimal dependencies that depend on one another, and dump all my modules with descriptive file names under the same directory within the library.

I vaguely remember reading something that hinted at Facebook doing something similar with their React components.

</comment></comment><comment><USER20> There is this wonderful utility: dependency-cruiser[0] for javascript / typescript projects.

It visualizes dependencies in a project. I found it so so easy to refactor and move files around after I started using it. I am not usually a visually- oriented person, but for this usecase, and to be happy, `dep-cruiser` surely helps.

[0]: [https://github.com/sverweij/dependency- cruiser](https://github.com/sverweij/dependency-cruiser)

</comment><comment><USER21> What if we just got rid of files and put our code into a database?

You'd just have a "new code block" button, which creates the editor tab for your code, usually a function or a class, and usually one item per block. When you save it, it puts it into a database and you can version things easily. You can call other functions from the block and your editor will show their code when you mouseover or maybe some other method, just like today. Basically the same as today, but you don't need to worry about where some code lives. You back it with a great search feature to find stuff.

Hell, let's just eliminate pathed files, why do we care about file paths with the level of search today? Just store everything in a key:value store directly on the hard drive, no paths needed. For legacy, just add keys for '/etc/fstab' or whatever.

</comment><comment><USER22> > _" The Slack iOS team lived in these conditions for a few too many years. We > got here as a result of some attempts to organize source files (several > times), a lack of architecture pattern in the codebase, and a high growth of > developers over a couple years. To put things into context, we have roughly > 13,000 files (and counting), about 27 top level directories, a mix of files > in Objective-C and Swift, and around 40 iOS developers that work in one > monorepo."_

An extensive, unrefactored codebase is no different than a jungle.

You might have a 10'xer programmer on your staff, and he might hold the programming equivalent of a machete, but if the rate of his refactoring (assuming your corporate rules let him) is slower than the rate of new code being added by other employees, he is going to fail, no matter how good he is!

I need to write a future essay about the relationship between 10'xers and how a 10'xer is a combination of only as good as how well the codebase is refactored, how well they know the codebase, how much corporate rules/polcies permit refactoring (or not), how much time he doesn't have to waste time solving stupid one-time issues from single customers, and how much help or pushback he is or isn't getting from the rest of the team.

In other words, given the right set of conditions between codebase size and obfuscation, limiting corporate policies (i.e., "you can't refactor", "you can't make just one mistake in your code, because it's all mission critical, and if you do, you will be fired, and by the way, there's no test environment!"), distraction ("you have to help this customer with his cosmetic problem before you are permitted to tackle the guts of the system"), and pushback from the rest of the team, you can actually change 10'xers (and higher!) to 1x'ers and below...

The reverse is true too...

I'll make anyone a "My Fair Lady" / Eliza Doolittle style bet (or the reverse!) that what I say is true!

That is, that 1'xers can be taught to become 10'xers, and conversely, 10'xers can be hampered by a variety of factors ("The Perfect Storm") resulting in them being slowed to 1'xers, or below...

</comment><comment><USER23> _Danger is a tool we integrated into our Continuous Integration system that performs post-commit automated checks_

You mean like the _post-commit_ hook that Git offers out of the box? It's even named the exact same! I feel like we don't focus all this time on fast build test and deploy cycles only to then commit, navigate to some website to create a "merge request", wait for some fairy to allocate computing resources for trivial checks my computer could have done, only to get some pure noise "don't put this file here" comment and repeat the cycle all again.

<comment> core-questions When did you think I was going to get coffee and/or check Slack for more annoying work to do? It's like you want me to get things _done_, which is not fun at all.

</comment></comment><comment><USER24> In Go, there's a standard project layout [1]. It'd be nice to have a project layout linter in Go Report Card [2].

[1]: [https://github.com/golang-standards/project- layout](https://github.com/golang-standards/project-layout)

[2]: [https://goreportcard.com](https://goreportcard.com)

<comment><USER25> Just to clarify, that's not an official standard at all (i.e: not supported by the go team). It's a community project to establish some common layout.

Surely valuable, but to say it is actually a Go standard is misleading IMHO.

<comment><USER24> Ah! I stand corrected. Mea culpa.

</comment></comment></comment><comment><USER26> Needing organized codebases is a personality type as there is zero academic research I'm aware of that has ever shown strict organization has resulted in less bugs or faster development.

These are all done by people that need to feel in control and that everything has a place. So much money and time has been wasted on stuff like this with zero proven or measured benefit.

<comment><USER27> There is famously also no academic study showing that parachutes improve outcomes when jumping out of a plane.

<comment><USER28> There _is_ a study for that! "Parachute use to prevent death and major trauma when jumping from aircraft: randomized controlled trial". [1]

[1] [https://www.bmj.com/content/363/bmj.k5094](https://www.bmj.com/content/363/bmj.k5094)</comment></comment></comment>


Experiment HN: Crowdsourcing Tech Stock Predictions - <AUTHOR> http://www.zacharyburt.com/hn-crowdsourcing-stocks/

<comment><USER2> The stock market is already a crowdsourcing platform. As is the options market.

<comment><USER3> True, but the aggregation function is a bit complex.

I'm curious where we'd wind up with something more transparent or democratic.

Sadly, we aren't able to make any beta-neutral or relative value bets!

<comment><USER2> In what way do you think the aggregation function is "complex" or that it is not transparent or democratic?

You are stating opinions as facts. Please back them up?

<comment><USER3> Alright, I'll bite, but obviously we're hand-waving definitions on many fronts.

I'll argue that equity markets are not good platforms for crowds to judge the fair market cap of companies (or the NPV of cashflows). Most participants have an incentive to maximize profits or preserve capital subject to some risk appetite, and very few are actually interested in pricing companies; instead participants are mostly interested in what they think the others players are doing.

If we were to crowdsource what movies HN users enjoyed, that could work. However, if we said that you would be paid for your vote only if you were in the same group as the majority, then suddenly you aren't voting honestly... you are trying to figure out how other people might vote, and our final result is the aggregation of a lot of game theory (plus a few naive honest players who get picked off by the rest of us).

Therefore, equity prices are not a democratic vote. Prices are not a weighted sum of your vote times your conviction (nor are they your vote * conviction * wealth). They can break down to a battle of speculators trying to outwit each other and exploit any flaws in the market or others' thought processes.

D. E. Shaw Research recently set a record simulating a single protein molecule in surrounding water for about 1 millisecond using first principles from computational chemistry, and I suppose that means they have a long way to go before fully modeling protein folding because the aggregation function of all those forces are complex. However, I'd bet it would be much harder to aggregate all the market participants and all their incentives from first principles to step 1 millisecond forward in live trading time.

I'm not saying you can't make profits. Obviously people have for a long time found relationships here and there that can predict future price movements. I'm saying a formal aggregation model that would let us fully compute and Turing-decide future prices, even if we had all the relevant inputs, seems complex.

<comment><USER2> Speculators continually enter and abandon the market. Without adding information to the system, they just add volatility without driving the price in any direction.

The price is thus the sum of people that know or believe something, weighted by the resources the have to bear.

I'm not sure I understand why you need or want the price to be "democratic"? What problem are you trying to solve here?

</comment></comment></comment></comment></comment><comment><USER4> Just to be fair to everyone entering things into this form: After you're done, you don't get to see any aggregated predictions, only a "thank you" message (which I found disappointing)

<comment><AUTHOR> Fair enough.

I would appreciate it if nobody shares their predictions in this thread, either. I know this isn't at all rigorous, but I'd still like to try.

</comment></comment><comment><USER5> These are mature stocks, which are basically a random walk, unless you have some insider info.

What'd be really interesting would be if you got a couple thousand speculative plays on there, and allowed people to only submit on the industries they knew something about. Although that'd probably just lead to people only submitting their pet stock as "going to the moon!"

Nice job in any case though.

<comment><USER6> Every statement you made is wrong.

1\. Every stock is a random walk. 2\. Insider info for smaller companies is much more valuable then larger companies. 3\. Speculative plays would make this even more boring, because then everyone makes wild guesses at the future value of a company they have never heard of.

Nice job in any case though.

<comment><USER5> Every statement you made was a complete misunderstanding of my statement. Including the sarcasm, I was being genuine in my praise.

Briefly, the random walk factor is less of an issue for speculative stocks because they either make it as a business, or don't. That's not a random walk. And I really don't understand why you're so miffed.

</comment></comment></comment><comment><USER7> It's more an experiment on chaos theory and dart throwing than "Predictions". I recommend you look at the fundamentals and aggregate the EPS forecasts in relation to the ROE to get a better idea as to where they should be in a year's time. On top of that you need to factor your economy and China's.

<comment><AUTHOR> You seem to know what you're talking about. I hope you submit a prediction. I doubt you will, though.

<comment><USER7> You're right I won't. It's like trying to predict the next lotto numbers.

Fear and greed fuel the market in the short term, so even if you got close 2 days before the deadline, a scare in the market would throw off all your predictions out the window.

All you can really predict is what you believe a stock will be worth (intrinsic value) assuming the EPS forecast is fairly correct, the economy behaves ok and that china doesn't cock up.

 _edit_ : I do appreciate anybody taking time to run an experiment though! That's why I voted up your post.

</comment></comment></comment><comment><USER8> The biggest issue with this design is that there's no incentive to put in effort for better predictions.

Take it to the next level; design this for Mechanical Turk (<https://github.com/aantix/turkee>), and make this offer; for each prediction received, get a nickel. If you're on the right side with your prediction, receive an extra nickel. If you're within 0.5%, receive an additional nickel.

Not enough people utilize the "bonus" feature of Mechanical Turk as financial incentive to increase the quality of data they receive. You don't have to pay everyone the same. Reward better input.

<comment><AUTHOR> the point is to see if the HN crowd is good at predicting, not random people...

</comment></comment><comment><USER9> Make sure to tell me how I did in six months. ;p

<comment><AUTHOR> I'll post a follow-up, but I'm not going to release people's individual predictions publicly in case I inadvertently embarrass anyone. I'm probably going to contact the winners individually to alert them of their insight and luck.

But yeah, I'll post a detailed analysis in 6 months' time. If people then want to contact me directly to get their data then they will be able to.

<comment><USER10> You should post aggregate values in a few days as well.

I hope you're also storing timestamps with the submissions. Just guessing, but I'd bet any predictions made on 04/30 will correlate much better than those made today.

<comment><AUTHOR> One of the hard lessons I've learned is to try to put timestamps in every table unless absolutely not necessary. :)

Edit: I'll post aggregate values to my blog in a few days' time. zacharyburt.com. I'll cc the link to @zburt on Twitter.

</comment></comment></comment></comment><comment><USER11> Wasn't there just a story linked here the other day about the advice given to the newly minted (back at the IPO) Google millionaires? As I recall it said;

Don't try to beat the market. Don't try to beat the market. _Don't try to beat the market._

</comment><comment><USER12> SELECT username, MAX(one_year) AS price_target FROM guesses GROUP BY ticker;

A cunning strategy to discover Mary Meeker's HN account name.

</comment><comment><USER13> Somehow I don't think MSFT is $0.00.

Logged, with wild randomness. I don't pretend to understand chaos theory nor astrology.

</comment><comment><USER14> are you planning on removing blank entries (those set at 0.00). i, for one, only filled out predictions who i actively follow in the market to keep "uneducated" data from entering your prediction. maybe a good strategy would be to remove the lower and upper ends of the curve as well...

<comment><AUTHOR> thanks, yes, i am planning on tossing out obviously bad data.

<comment><USER15> However, 0.00 might be a valid guess. If I think Acme is going bankrupt soon, then 0.00 is a good approximation for its future stock price.

</comment></comment></comment><comment><USER16> Some other popular sites with similar ideas are caps.fool.com and YC funded socialpicks.com.

</comment><comment><USER17> Does everyone get an equal vote?</comment>


Ask HN: Direct deposit/ACH processor for payroll? - <AUTHOR> We do our payroll in-house and currently send checks to our employees.  I've been trying to find a company which will do direct deposits for us, however all the solutions I find seem to only work if you do the entire payroll solution with them, and for now we don't need or want to pay for a full service payroll.
I've seen a few ACH services, but they have stated that you cannot use them for payroll and that it is against their TOS.
Any suggestions on an ACH/direct deposit processor that would work for a small company (under 10 employees).
Thanks! <comment><USER2> Probably not the answer you're looking for, but our small company, of 7 full timers and a handful of part timers, switched to Gusto for payroll about a year ago. I know our founder who had previously managed all this himself has saved himself a ton of time and stress. He's generally a frugal person, so if he was won over it's probably worth a look. Since then I've know a few other agencies who have switched to Gusto as well. From an employees perspective I have to say it's been great. I get emails when I get paid, I can easily grab my paystubs, and access to my W-2 without and issue.

<comment><AUTHOR> I've heard good things about them, for me right now the payroll takes ~30 minutes or so a month with end of quarter payroll taking a little longer to create the 941 forms.

</comment></comment><comment><USER3> I would guess that most banks (especially large ones) offer a way to transfer money online. Can you do that manually, for now, through your company's bank account?

<comment><AUTHOR> We do the people at the same bank get free transfers, it's out of bank ones is ~5$ per transfer. The bank recommended using viewpost which charges at 50 cents/transfer but from their site they say they should not be used for payroll, and require the other side is registered on their network so it isn't just a routing+accounting numbers push ACH transfer.</comment></comment>


Enumerating test cases by multiplying state machines - <AUTHOR> https://medium.com/cleartax-engineering/enumerating-test-cases-by-multiplying-state-machines-c1bedbf0e8e6 <comment><USER2> Nice article!

I authored a javascript library which modelizes state machines as a multidigraph, use cartesian products to derive a standard flat graph, and generate test sequences out of it. Cf. [https://github.com/brucou/state- transducer#generatetestseque...](https://github.com/brucou/state- transducer#generatetestsequences--fsm_def---generators---gensettings--- arraytestcase) for the theory, here for the example : [https://github.com/brucou/state-transducer#implementation- ex...](https://github.com/brucou/state-transducer#implementation-example-2)

In conjunction with predicates, which tell you which edge you can explore, and when to stop a path search (a test sequence is a path), this gives a pretty flexible and configurable tool for automatic test generation, as you observed.

So far I preconfigured two search strategies, one which visits all transitions in the graph once, and the second which does the same but up to n visits of the same transition. I am working on more complex strategies (favor some paths over some others following a probability distribution etc.) but that is not a priority as of now.

Smart automated test generation is an exciting topic!</comment>


The iPad Is For Everyone But Us - <AUTHOR> http://flyosity.com/ipad/the-ipad-is-for-everyone-but-us.php

<comment><USER2> This is apple, once and for all, signaling to the world, that the people who make computers do cool things, the developers and the savvy, are not the market. It's too small. No one knows how to make computers do cool things, but lots of people want cool computers.

I, for one, take this as a blessing. If you are technically savvy, it's in your best interest for companies like Apple to lull consumers into a sense of satisfaction. Your job, as a programmer, is to avoid all things consumer. Your job is to do the hard stuff. If you're using facebook, you're wasting time. If you're _building_ facebook, you're making tons of money.

This has been coming. The writing has been on the wall. The app store tragedy. Hard for developers, easy for consumers. The developers, as always, are the ones jumping through hoops. Change the color, add this, add that, i want it this way.

So the devs say ok and do it. That's the way it has always been and increasingly into the future, it will be more typical. Developers work harder so everyone else can work less. That's the way it should be.

<comment><USER3> Apple's goal is to sell the iPad to people who already have a desktop, but don't feel like they need a full-blown laptop.

For people who want a full-blown laptop, Apple still sells those. If they made a $800 iPad fully capable of replacing a $1200 MacBook, they'd be in trouble.

<comment><USER4> No, they wouldn't be in trouble. The laptop form factor will always have the advantage of a physical keyboard and higher performance or battery life as compared with the iPad form factor. $400 sounds a bit smaller than the expected Apple markup to get those two advantages, which probably indicates how much more miniaturized the iPad components are compared with the MacBook. If you compare the iPad to the MacBook Air, which is similarly miniaturized, you get a $700 disparity, of which about $500 can be attributed to the difference in form-factor and the resulting expectations, and about $200 of which go to performance and storage improvements that aren't consequences of the relaxed size and weight limits.

</comment></comment></comment><comment><USER5> If you ask me this new model of computing is mainly interesting for Apple because they like their 30% earning. In fact there is nothing preventing you from doing simple to use smart computer than when you press Ctrl+L+A+M+E open an terminal where it's also possible to do more interesting stuff.

Or a smart computer where I can save an image from a web page and later email it. Or a smart enjoyable computer that allows me to change ebook reader and still open /My/Ebooks to read all my old stuff with it.

The iPad has usability limits that are a direct consequence of the fact that Apple want to _control_ what you can do whit it, because more control, more $$$.

I don't want a world where most of the computers can't be used to write code. My dad taught me BASIC when I was 7 because we had computer at home, and this computers where _build_ to write programs, attach it to the power line and what you see is a BASIC prompt.

Don't have to be _so_ exasperated today of course, but the iPad has all the potential to make computer users more stupid.

What we really need is a decent competitor, able to do cool computers without the aim to control the world.

<comment><USER6> Sorry, Apple's not making much money off the App Store nor the iTunes music/video store.

They're a hardware company--that's where they make their money.

<comment><USER7> How many songs have they sold at a 30% cut from the music store again? I can't find anything right now to back this up, but my gut feeling is that they make a _lot_ of money from the software side, and they're going to keep pushing that because there's a lot more profit and (again, I suspect) lower costs.

If I find some numbers to back this up then I'll post them...

Edit: [http://www.betanews.com/joewilcox/article/Apple-Q3-2009-by-t...](http://www.betanews.com/joewilcox/article/Apple-Q3-2009-by- the-numbers/1248218543) (Q3 2009) shows $958m from Music and $528m from software, services. This isn't as much as from hardware totalled, but those numbers and the iPhone numbers are the only ones with growth. They're going to keep growing as they put more hardware out which can buy music, videos, apps etc from their stores.

</comment></comment></comment><comment><USER8> I'm not sure about this. Computers are versatile things and there is a LOT of specialized software out there. My mom has quilting software that she loves. She'd have to give that up unless the iPad quilting market gets big enough. My Dad has GPS software he uses for fishing. How's that going to work? Both of them print like crazy. My dad doesn't like games except the rare first person shooter.

This MIGHT be Joel Spolsky's 80-20 problem ( <http://www.joelonsoftware.com/items/2006/12/09.html> ). If you make the 20% of features that everyone wants, you have something that's sufficient for NO ONE.

</comment><comment><USER9> I use an MBP, but my 3 year old does not...I can see the iPad keeping her occupied and me happy on long trips.

<comment><USER10> yes, and no dvds to scratch when you buy movies. I wish the iphone had better parental controls, so you could flip on a child mode and hand it over when in line. since ou can't override the button, there is no real way to provide this functionality, either.

</comment></comment><comment><USER11> I agree here. I wrote a similar post this morning with the same point.

[http://rajuv.com/2010/01/28/ipad-is-the-computer-for-rest- of...](http://rajuv.com/2010/01/28/ipad-is-the-computer-for-rest-of-the- world/)

"This is a device I can hand it my grand father and he won't have much trouble using it. Compare this to handing him a laptop and training him about how an OS works, what a drive is, what a file system is, why he needs an anti-virus software etc. Ease of use is the key here. Infact, we have seen this with iPhone already. Every day I see many 2-3 year old having absolutely no problem using the device. That makes a HUGE difference.

In a country like India, there are over 500 million mobile phones. But there are less than 15 Million computers (connected to the internet). Why is this the case? One of the reason is, PCs are complicated to use/learn for non- techies. I think this device can address a broader market as it hides the details from the user."

</comment><comment><USER12> I disagree with the main premise: That as long as you provide the "90% functionality" (i.e mail,chat e.t.c), no casual user will miss the last 10%. Sure, most of the time this will work fine, but occasionally people want more. Maybe upload a video to youtube, or chat on that new up-and-coming social networking site? "The user" is not quite so simpleminded as some here seem to think. More importantly, since the web market can change so fast any static set of features could get sidelined by a new application/web page et al, and it's very hard to predict in advance what the user will want. Therefore, one makes devices that can do everything. This is not an anachronism, it's the only logical solution to a market that changes too fast to lock people in to a very small subset of a computer.

</comment><comment><USER13> I'd rather just use a chrome OS tablet, at least I don't have to connect it to a computer in order to update/sync/install stuff. And all the apps are web based so even if I need to use a regular computer I still have access to all my apps and data.

<comment><USER14> \- With a Chrome OS Tablet, ALL your data lives in someone ELSE's cloud (unless you synchronize it with your computer).

\- If that floats your boat, it was pointed out in one of the earlier front page links that you can do that too with this new iTouch device. It uses an advanced HTML5 compliant browser called Safari. It will even save your web app frontend with its own icon on the main screen, giving it the same user attention privileges as any normal app.

<comment><USER13> > \- With a Chrome OS Tablet, ALL your data lives in someone ELSE's cloud > (unless you synchronize it with your computer).

Wrong, with HTML5 offline storage you can keep all your data offline on your own machine too.

> \- It uses an advanced HTML5 compliant browser called Safari.

I think most people on hacker news know that safari and chrome share the same webkit engine, thanks for the news though :p

> It will even save your web app frontend with its own icon on the main > screen, giving it the same user attention privileges as any normal app.

But this kind of device is not for me (see the link), it's for people who don't know much about computers or don't want to deal with one.

The problem with the iPad is that you still need to own a computer and know how to use iTunes to sync/update your device. So my friends will still need me to help them with itunes (I know my mom would). With the chrome os tablet, I can just get one for my mom because it syncs and updates itself automatically so she'll never need to call me to ask "how that thing plugs into the computer again" and why itunes is asking her to "sync or delete my whole photos collection" or "why itunes doesn't work anymore? it says I need to download 200MB of update, is that a virus or can I go ahead?" etc.

</comment></comment></comment><comment><USER15> I see the point that he is trying to make in this article about the iPad's intended audience, but I think that the iPad is still a disappointing device.

If someone needs a computer for typical tasks such as Chatting with friends, Sending and receiving email, Listening to music, Watching videos, Playing games, and Browsing the web, then they should just get a netbook for ~$300. A netbook is still highly portable and can do all of these tasks at a cheaper price.

<comment><USER16> While a netbook may do all of those tasks, it doesn't do them particularly well. The iPad will turn on instantaneously, will be easy to use, and apps will be optimised for the screen size. The biggest problem with netbooks is that they run OSs and apps that have been optimised for much larger displays.

</comment></comment><comment><USER17> Yes, normal people who... Chat with friends WHILE writing an email? Browse the web WHILE chatting with friends? Plug their USB digital camera in to upload photos?

<comment><USER18> How can you write an e-mail and a chat message at the same exact time?

<comment><USER19> The gmail web interface? It might require a complete mental context switch, but it does not require closing of one program and opening another, then back again.

<comment><USER20> That would work on the ipad too, wouldn't it?

But I too, think that the missing multitasking is a problem for this device. I think this is something Apple will change soon. They will not change their app store policy. This is the main reason for me not buying an ipad.

But what bothers me the most is that they could close also the Mac-Platform. Then I would have to leave it. And that makes me sad.

</comment></comment></comment></comment><comment><USER21> The end of the desktop OS.

<comment><USER22> The Last March of the Ents

<comment><USER23> Cobol's last gasp...

<comment><USER24> Netcraft confirms it...

<comment><USER25> This thread is worthless without pics.

</comment></comment></comment></comment></comment><comment><USER26> BUT... I do those things too and don't mind buying a general purpose device to achieve them... Doesn't mean I need to give up my laptop, desktop, server, phone, abacus. You're allowed to have more than one gadget, in fact, do you know what? It's positively encouraged. I honestly don't get all the hate.

</comment><comment><USER27> I disagree. I think the iPad is perfect for reading Hacker News and PragProg e-books and I can't wait to get one.

</comment><comment><USER28> That the rebuttal for pointing out flaws in the iPad is simply to say that one is not the target market for the device is ridiculous.</comment>


Show HN: IdentityServer4 Admin UI - <AUTHOR> https://github.com/skoruba/IdentityServer4.Admin <comment><AUTHOR> Hi HN,

I've been working on an admin UI for IdentityServer4 for the past year and a half and today I've released the RC for the first version.

It has features like:

\- managing the data for IdentityServer4 and Asp.Net Core Identity

\- localization for multiple languages

\- API with swagger support

\- docker support

\- support for multiple database providers with health checks

and more which is described in the readme.

I'll be around to hear your feedback and I hope you'll be able to use it in your projects, in case you use IdentityServer4.

</comment><comment><USER2> Hi. I like your project and I cant wait to test it out.

Compared to other identity solutions, yours has the best engagement and feature set.

Good job and keep going!</comment>


Ask YC: Real time web app updates - <AUTHOR>

What tools/technologies do you use for real time updates without reloading a web page? comet, ajax polling, jabber? P.S: it has to be open source <comment><USER2> The Mibbit case, by its author: <http://news.ycombinator.com/item?id=531896>

It uses Comet.

</comment><comment><USER3> I followed the Comet community for a long time, but for my projects I've always used a small invisible Flash applet (to create a socket connection). Server-side, a tiny Python dispatcher server that just forwards messages to clients.</comment>


Study in mice explains how brain can turn pain signals up or down - <AUTHOR> https://www.nih.gov/news-events/news-releases/nih-study-mice-explains-how-brain-can-turn-pain-signals-or-down <comment> Funes- >We know that pain is not static and that it can be modulated by several factors. Early research showed that the central amygdala, long known for its role in _processing fear_ , can dial up pain signals.

Interesting. A couple of days ago I was washing dishes and the water was too hot, so I almost burnt my hand--or so I thought--by putting it directly under the faucet by accident. Nonetheless, I started playing with it for a while: how long could I keep it there? I realized that if I put my hand under it, whenever I gave in to fear, the pain got unbearable, as if a switch had been turned on.

I think that's why expert meditators can handle pain better. Also, meditation and yoga reduce the right amygdala's volume [0], which processes fear and negative emotions.

[0] [https://www.psypost.org/2019/08/meditation-and-yoga- practice...](https://www.psypost.org/2019/08/meditation-and-yoga-practice- linked-to-reduced-volume-in-brain-region-tied-to-negative-emotions-54273).

<comment><USER2> I have another anecdote about pain. A few years ago, cycling at night on the then-under-construction path by the Cambridge Guided Busway, I bounced off an invisible kerb and noticed the "pain" from the fall before I hit the ground, when I was still at a ~45 degree angle; yet when I then picked myself up and cycled on to the cinema I felt no pain — even though, when I checked myself at the end of the film (one of the Hobbit films), I found I'd been bleeding enough to make quite a mess.

<comment><USER3> It is pretty common under situation of physical effort not to feel pain, which makes some sort of evolutionary sense.

Another anecdote: during last year's Tour de France, halfway climbing the Alpe d'Huez (~13.8km at avg 8% slope, nothing to scoff at), Vincenzo Nibali got knocked off his bike because it got hooked on a supporter's camera strap. He got back on his bike and completed the rest of the climb faster than the top contenders in front of him. When the doctors checked him, it turned out he had a fractured vertebra. I suppose that must've hurt.

</comment></comment></comment><comment><USER4> This is really cool!

 _The "switch" acts more like a "pain rheostat," similar to a home thermostat that modulates temperature — the pain rheostat reacts to pain signals to modulate pain sensations. In the mice, researchers found that activity in neurons that express protein kinase C-delta (CeA-PKCδ) turned up the pain rheostat and demonstrated an increase in pain-related responses. Conversely, researchers found that activity in neurons that express somatostatin (CeA-Som) turned down the pain rheostat, inhibiting nociception or the chain of activity in the nerves required to communicate pain._

 _During the experiments, researchers were able to take advantage of molecular genetic approaches that allow them to fluorescently label and manipulate the activity of these two central amygdala cell types. They found that when they blocked CeA-PKCδ neurons, pain activity decreased. When researchers activated CeA-Som neurons, they observed a marked analgesic response in mice._

Do these findings have any immediate practical benefit for humans?

<comment><USER5> > Do these findings have any immediate practical benefit for humans?

Immediate? Probably not.

Practical? Probably yes.

There are quite a number of not-fully-understood chronic pain conditions out there. This likely offers some alternative approaches that may lead to more treatments, or even possible cures.

<comment><USER6> Neuropathic pain is an utter bastard to treat.

There are medications that are effective - gabapentin and pregablin (for some lucky people, me been one of them) but for others they aren't, Opiates don't do much neither do OTC painkillers - There is some evidence that Tramadol can help.

I'm glad we are continuing to make breakthroughs in the field even if it's a decade or two before they may show up, pain is an incredibly useful notification that something may be wrong except when the thing that is wrong the notification system as a whole.

I can cycle 60 miles, work all day etc but some days if someone steps on my foot I could drop them on the spot.

</comment></comment></comment><comment><USER7> I'm interested in the role of genetics in pain experience, it's interesting to see studies looking at the role of CYP2D6 in the amygdala, I look forward to more research in this area.

<comment><USER8> Just as interesting is the role of culture on pain experience. I believe I recall a study some years ago that showed differences in pain experience across different countries/cultures. Immigrants to a new culture continued to show response patterns consistent with culture of origin. Their offspring responded more like the new culture and more so over several generations. I wish I could recall the research but it's been a while. Pain, especially chronic pain (which is very different from acute pain) often presents very similarly to an anxiety disorder.

</comment></comment><comment><USER9> Edit: Deleted

<comment><USER10> Presumably: wait a few years for this to turn into a drug.

But more practically: talk to your doctor? Why would you ask a tech news site for medical advice?</comment></comment>


Ask HN: When Should We Use Down Votes? - <AUTHOR> Should we use the down vote if: If we disagree with the opinion ? If the premise is factually incorrect ? If the item is poorly written ? Whenever/however we want?<p>What is the proper use of the downvote? <comment><USER2> I don't think a down vote should be used for simple disagreement, because there's no point in having a one-sided discussion. If there's a factual error, correct it in a comment. I think down votes should be used on things that are:

a) Utterly pointless (memes, insults, trolling, etc)

or

b) Spam

<comment><USER3> For comments, if it does not contribute to the discussion at all, it should (probably) be downvoted.

</comment></comment><comment><USER4> I usually only downvote purely out of disagreement if the person trotted out some argument that everyone who disagrees with them has heard before, so that I don't leave the response everyone already knows that rebuts it. E.g., the old pro-/anti-GPL debate. Downvoting lets you get satisfaction without dignifying a dumb thread with a response.

Also I downvote things that are just conversational, low content, inflammatory. But I don't downvote a lot, only when the comments seem to be derailing things.

</comment><comment><USER5> It varies. I very rarely downvote something just because I disagree with it, but will do so freely if it's based on an obvious fallacy or false premise, or it's pointlessly rude or antagonistic. I try not to do so too often, but I don't actually know my ratio of up- to down-votes, so I'm probably a bit more negative in practice than this idealized concept.

</comment><comment><USER6> Downvotes are polymorphic. I downvote what needs downvoting. Recognize that some things trigger downvoting because of what someone else did and some things trigger downvoting because of what I might do otherwise, A down vote is better for HN than my passion fueled contrary opinion to something wrong on the internet.

</comment><comment><USER7> Reasons I downvote comments fall into two categories:

1\. Poor etiquette

2\. Poor writing

Examples of poor etiquette:

\- Obvious self promotion that adds nothing to discussion

\- Any mention of "downvote" in the comment body

\- "Flamebait" and clearly mean-spirited remarks

Examples of poor writing:

\- Completely off-topic, especially if at top of thread

\- Factually incorrect

\- Extraordinary claim without extraoridinary evidence

\- Ambiguous language or poor wording that leads to confusion

\- Aggressive conclusions based on faulty logic

I try to avoid downvoting for emotional reasons. Just because I disagree with a comment does not mean it's wrong. I have noticed a trend, especially around NSA/government/surveillance/conspiracy type comments, where people will downvote logical arguments without refuting them. This is not good for discussion. If you disagree with a comment, try to understand its author before reflexively downvoting. An equally logical reply contributes far more to discussion than a downvote.

</comment><comment><USER8> I usually downvote:

\- Bad quality content

\- Factually incorrect or unscientific

\- Clickbait and misleading titles

\- Spam

\- non-tech political Stuff

\- shaming, whining, blaming

\- too personal centered content

In one: Everthing that doesn't contributes to a tech-centered professional news site.</comment>


Ask HN: How often do you use a debugger? - <AUTHOR>

I wanted to know if the HN community uses a debugger during development.
I have this feeling that developers who create native apps use it a lot. But web developers don't, from what I see, most of web dev use print/echos/var_dumps and so on.
Why aren't we all using debuggers ? <comment><USER2> I do software consulting, so I tend to use a variety of different environments. Likewise, my debugger use varies quite a bit between projects and platforms.

Python/Django: never. I don't think I've ever used a debugger here. I tend to write unit tests instead.

Ruby/Rails: same as Python, never. Unit tests all the way.

JavaScript/CoffeeScript: occasionally (once a week?). Usually in chunks of code that are hard to test (DOM manipulation, generally). Usually use Jasmine and write a unit test, especially if it's a logic-related problem.

C#: I've been working on a legacy codebase written in C#, and I tend to use the debugger quite liberally here. When I got there, the codebase was around 36kloc with 0 unit tests and many global variables. Most of the code was not written with testing in mind.

Java: Not often. It's been a while, but most of my Java projects were greenfield projects, so they were written with a JUnit suite from the ground up.

Objective-C: Occasionally. The last project I worked on was using Cocos2D and network stuff. Neither was particularly easy to write tests for, so the debugger was useful for inspecting state when things got weird. More often, I would add a few NSLog statements instead, to capture long-running state changes so that I could reconstruct a model of what went wrong and when.

</comment><comment><USER3> For Ruby, never. Literally never since 2005. For Objective-C, quite often.

Why? I'm not sure. Maybe because the Ruby has such good unit test support, and logging is pretty painless. It could very well be that I'm missing out by not using ruby-debug or some other tool, though.

In Xcode, the path of least resistance is the debugger. Maybe it's because I'm less familiar with Cocoa, but the code just seems more complicated and harder to trace from start to end. The debugger really helps with that. Even there, though, I use a lot of NSLog(). This helps when you have to track down a changing situation, and can't quite figure out when or how it breaks. Just log a bunch of stuff and let it rip.

</comment><comment><USER4> For Java work I use the debugger a lot. When working on my Django or Python projects I use it a lot as well since its built into PyCharm. When writing code in emacs etc I tend to not bother.

I also make heavy use of logging statements, but these are usually left in for debug builds and used to help find unexpected bugs rather than active debugging.

Just recently had to start using JavaScript so I have spent some times figuring out FireBug and its debugger. I must say I was pleasantly surprised that it works well.

</comment><comment><USER5> I use one about every other day and find it indispensable. We use Play! so compilation/deployment isn't an issue, but I still find the feedback loop between "I want to know the state of this variable", "I'll write a logging statement here" and "I'll reproduce the state I was in with the app" to be too long.

The only time I don't use one is when I need to debug an issue that occurs only on a remote server (our sysadmins don't like opening ports for that sort of thing).

</comment><comment><USER6> I use a debugger when I code in C# (because the VS IDE is fantastic), but unfortunately I'm doing a lot of PHP these days. I've never found a debugger for PHP that I really enjoy using. XDebug + print_r() wrapped in
 tags does a pretty good job, but it's a lot more painful than using a real debugger :(

Edit: Hurp durp, XDebug has remote debugging. I've never actually used it...although I think I'll check it out soon.

</comment><comment> shane-armstrong I use an echo'd statement or the "or die" function when using PHP, I just find it easier for me, as I am used to the error messages.

PHP at compile time has it's own built in error warnings (for those unlucky enough to get PARSE ERROR as often as I do) which can be useful, although for loops the line it finds the error on can sometimes be completely wrong, and normally derivative of another error.

</comment><comment><USER7> Doing PHP web Dev at the moment. I use chrome and xdebug close to 100% of the time.

I've done Java,c#,vb6,vb.net,c++ and have used a debugger for every project.

Does anyone remember the days before firebug doing js Dev. Using alerts() for debugging... god I'm glad web tools have got allot better.

</comment><comment><USER8> I walk every line of code I write multiple times with a debugger. So the answer is, a lot. But I mostly work in an environment that makes debugging easy (VS).

Lack of good debugging support is a good reason to avoid a platform. Logging, screen writes, dumps, are awful ways to work.

</comment><comment><USER9> I'm writing a web app right now with a node backend, and I prefer to use the debugger over print statements. Granted I do 9-10 hours of Java programming every day before I work on the web app, so I may just be more comfortable with the debugger than some other web devs.

<comment><USER4> Same situation as me then, mostly Java during the day with debugger and then after hours with PyCharm and Python.

</comment></comment><comment><USER10> I use dbx and gdb almost every day to debug c/c++ code. We have executables that approach the OS file size limit. Debugging with print statements is a nightmare. We absolutely need conditional breakpoints, stack traces and such.

</comment><comment><USER11> As a Web Developer I'd be lost without Chrome Dev Tools right about now.

Edit: to more directly answer the question, when I am programming all the time, not an hour goes by (when programming) without using it.

</comment><comment><USER12> I use printf a lot for embedded stuff over serial as I don't have a full debug tool - I would if I could though as using printf to debug interrupt driven things is a real pain and can mess things up

</comment><comment><USER13> I also use a debugger daily, though I am doing mostly Objective-C programming.

</comment><comment><USER14> Javascript debuggers did not exist for most of the 2000s. It was a godsend when Mozilla provided the Error Console to let developers know when an error had occurred in Javascript (in a nicer way than getting an alert for each error), but developers still needed print statements because code that worked in Firefox and Opera would break in Internet Explorer. When the first Javascript debuggers came out, they were difficult to use and slow enough to do more damage to productivity than they helped. Experienced developers might be continuing with their old work patterns or may not be aware that better tools exist now. Safari has a good Javascript debugger and I use it.

On the server side, print and vardump statements will provide the developer the desired information in a one-second refresh of the browser. A debugger will need to be run on an independent server instance which can take time to configure and start up. If the development environment is not already set up for this, running a debugger can take longer than identifying and fixing the bug using print statements.

<comment> shane-armstrong The javascript console on -webkit (Chrome)is a godsend for me, because if you have a JQuery bug, nothing at all works, so instead of being able to do one large update you have to do it in small ones, or spend ages debugging.

Of course, you could just write correct code, but no one is perfect and mistakes do happen. Would be better if the errors it found were displayed in a more clear form of english instead of generic error names, but it is better than looking over line after line trying to find that darn missing semi-colon.</comment></comment>


The Case Against Stretching - <AUTHOR> https://www.outsideonline.com/2408467/case-against-stretching-flexibility-research <comment><USER2> > Could targeted stretching of your identified weak spots reduce your risk of > injury or help rehab an existing injury? Here, too, the evidence is slim at > best—but this is a hard question to study, so I'd leave it in the > "plausible" category.

I am stretching to help an injury having seen a physio. I hope it is helping. At least it feels nice.</comment>


Sketch City Houston needs your help with online tools to aid relief and recovery - <AUTHOR> http://sketchcity.herokuapp.com/ <comment><AUTHOR> Sketch City is an open, non-profit community of technology advocates and civic hackers who have been working non-stop on relief and recovery tools to aid shelters, people seeking help and supplies, and volunteers. There are several active projects, many being used right now by Houstonians and shelters. If you would like to contribute to these projects, please join the slack channel at [http://sketchcity.herokuapp.com/](http://sketchcity.herokuapp.com/) and check out the pinned google doc in the #harvey channel in slack which includes active projects, channels, and instructions on where to get started helping out.

Ongoing Projects:

[http://flood.care](http://flood.care)

[http://harvey-resources.ghost.io](http://harvey-resources.ghost.io)

[http://www.preparingforaction.org/](http://www.preparingforaction.org/)

[http://harveyneeds.org](http://harveyneeds.org)

[https://github.com/sketch-city/harvey-connect](https://github.com/sketch- city/harvey-connect)

[http://texasrescuemap.com](http://texasrescuemap.com)

[https://sketch-city.github.io/harvey-needs/](https://sketch- city.github.io/harvey-needs/)

[http://houstonsheltermap.com](http://houstonsheltermap.com)</comment>