Ask HN: Those 'employed' do you see no other resort? - <AUTHOR> Im burned out with the way employers treat employees.<p>I wondered how many of you feel so burnt out by it, you see no option, but to start your own company? <comment><USER2> I don't necessarily buy the notion that all companies treat their employees poorly. Start a company if you want to (I have before, and it was very freeing) but the world might not be quite as binary as you're seeing it right now.

</comment><comment><USER3> Not everyone wants to deal with running a company. If I started my own company, I'd have to be involved in hiring/firing people, worrying about whether I had enough cash flow to make payroll, and all sorts of other things I'd rather not be doing. That would probably burn me out faster than being employed as a developer. (In a previous job, I almost burned out from the stress of being a manager, and then went back to being a developer, so I know first hand some of the burdens of management.) Besides, my employer treats me pretty well.

</comment><comment><USER4> I'm the opposite. The stress of finding contracts or not getting an income until I do, managing the sales, business, and financial side of things almost more than what I liked about being self-employed.

Some things suck, but I don't care what happens at work unless I'm clocked in and I have weekends now.

</comment><comment><USER5> I went the contracting route, which gives me the freedom of working remotely, setting my own hours, and unlimited vacation. These were the three things I felt were lacking in every other company I worked for. Some people worry about the uncertainty of paychecks every two weeks, but I am under contract with a company that finds all the clients and guarantees 40 hours a week of billable hours.</comment>


Show HN: Maze Game – A Weekend Project - <AUTHOR> https://mazegame.org <comment><AUTHOR> Was playing with BabylonJS engine the other day, found it quite cool, so made it into a playable result. Hope you'll enjoy!</comment>


Millennials are going to extreme lengths to share streaming passwords - <AUTHOR> https://www.cnbc.com/2018/08/19/millennials-are-going-to-extreme-lengths-to-share-streaming-passwords-.html <comment><USER2> Entertainment dollars are largely fixed for the majority of people. Millennials and younger demonstrate this in huge percentages.

The forms compete too, movie, games, etc... A Netflix account is a good deal, but not so good that everyone mooching will buy if they suddenly cannot share and share alike with others..

Netflix could get a bigger slice of the pie, but something else will take a hit. And Netflix will get a bigger slice too. Just not as big as they may envision.

Some will seek other services.

And there is growth, I am not making a zero sum argument. I am making a priority one.

Growth is not at the rates desired either. That is due to debt and wages.

One person has Netflix, shares with a few others, who may have other accounts. Everyone gets more potential entertainment.

Close that up, and for the most part, everyone gets less entertainment, and some amount of more dollars will get spent, but not the big potential gain the sharing would indicate.</comment>


China's effort to collect its people's DNA concerns scientists - <AUTHOR> https://www.nature.com/articles/d41586-020-01984-4 <comment><USER2> > _Scientists and human-rights activists say a genetic database containing > information about people without a criminal history is unprecedented. "This > is really unique. No other country is doing it,"_

Maybe unique at that scale, but I believe that the genome of 20% of Iceland's population has been fully sequenced (60k fully sequenced, 180k partially sequenced, population 300k)</comment>


Ask HN: Are there technical reasons ISP support experiences are often terrible? - <AUTHOR> I'm astonished by how often ISP support starts with wasting time walking through a script, often by someone it isn't clear knows much, culminating in asking for a traceroute when the script allows.
Today I tried jump starting things with Frontier Communications by just pasting a few sample traceroutes into a chat window. All of them pretty clearly enter 3-missed-response territory several hops into named Frontier infrastructure, likely right on the boundary between them and whoever their upstream provider is.
I might have hoped that a CSR could look at that and say "Oh, hey, yeah, that does look like an issue, we'll get someone to look at that, thanks."
But instead they went straight into the script, and eventually we ended up stalling out on a 3rd piece of authenticating info I don't know anymore if I ever did, which I can see might be needed if I was trying to change service, get money, or play global thermonuclear war, but not to try and troubleshoot an interruption of service.
Maybe ISPs don't care if tech support is good, and it's a cargo cult crosswalk button isn't designed to do anything other than let the customer feel like they've given input. Maybe simple reboot fixes comprise 95% of issues and so that's what support does. Maybe good support is much, much harder than I think it is?
Sometimes I think: ISP, you have hardware in my home/business. If it's working, you can tell. If it's not, presumably you can observe the absence of activity. If to troubleshoot further you need a client reaching out from my side to some service on your network designed to evaluate things, then pretty much all of us have web browsers which not only do HTTP but have evolved to do socket-level communication. Why do I need to answer any questions? Shouldn't this just be "reboot and hit diagnostic page"?  And authentication... you've got my physical and network addresses, you know I'm on your network or I'm not.
Am I missing something? If so, what? <comment><USER2> > Am I missing something? If so, what?

Potentially a couple things:

1\. The center of the Bell curve is a fairly inexperienced user. My experience is a bit outdated, but something like 75% of inquiries get solved by the script. You get pretty close with "Maybe simple reboot fixes comprise 95% of issues and so that's what support does" \- it's simple wifi and computer problems, app-specific issues (try a different browser? try email?), etc.

2\. The impact from providing crappy support is very low. The few experienced users will slog through it. Also, there's a relatively weak correlation between customers who think they're technical and have spotted a problem, and customers who have actually spotted a problem. An example from when I ran an IXP: People who email traceroutes with stars, not understanding that some devices don't generate TTL exceeded messages… or even what a TTL is… but being completely certain (a) it's a problem, and (b) it's the cause of their (completely unrelated) problem.

3\. The price premium that individual customers are willing to pay for great - or even decent - support is small and short-lived. Often the support for business-grade service actually does skip the first tier "Read from a script" support because the numbers work. Even somewhat knowledgeable people are expensive; assume a fully-burdened rate of $1/minute to talk with someone with basic networking CCNA-level knowledge. That person still wouldn't be able to login to devices or do meaningful troubleshooting.

You're also assuming that they don't know about a problem, rather than that they know about it and are trying to solve it (or have decided it's not worth solving, though that's actually more rare than people often think). You might be right, but there aren't many large networks which don't do their own blackbox latency and loss measurements (in addition to polling for link usage, loss, etc.).

So, there's not a technical reason, but it's also not an accident nor a case of ISPs acting illogically.

<comment><AUTHOR> Thanks! It's especially nice to hear from someone who's worked running the infrastructure involved.

Can you speak to the general question of whether it might be possible/practical to have a useful diagnostic suite that runs from the customer end of a connection? I'm sure that my ability to use traceroute is limited (I know what a TTL _is_ , but I expect I don't have much beyond a pretty vague idea for how that interacts with typical device configurations along a typical route), but the fact that scripted conversations with support often seem to end with a request for some traceroute output makes me think someone at the ISP does find that information useful in troubleshooting (unless that's also an unconnected crosswalk button), and it makes me wonder if automating that among other things and frontloading its use could save time on both ends of the support call, which would seem to provide the right incentives.

Also... do you have any insights about the incentives regarding informing customers about already discovered problems? I suppose this touches on my assumption that the ISP doesn't already know about my problem vs the plausible reality that internal monitoring is already going on. I've noticed on a few occasions (primarily back when I was with Comcast, I think?) that when I've called in for interrupted service that they've said "your issue is related to one we're aware of, you can look at this URL to follow our efforts to address it, or sign up for automated updates." That's not the reward that an instant fix is, but it seems to feel pretty good. But it's also apparently rare, which nudges my default perception towards "most of the time the ISP does not already know." Is there a dynamic which means an ISP might reasonably believe it's better off not telegraphing known issues?

</comment></comment><comment><USER3> "We don't care. We don't have to. We're the Phone Company." \--Lily Tomlin

[https://snltranscripts.jt.org/76/76aphonecompany.phtml](https://snltranscripts.jt.org/76/76aphonecompany.phtml)

It used to be funny because it was true. The problem is that it's still true. But now it's true of ISPs, at least in the United States; they have regional monopolies or at most a single competitor using a different physical infrastructure as is the case of Comcast and Verizon.

The support experience sucks for people who know anything about networking because there's no profit in providing better service when most customers are incapable of appreciating it. Since there's no profit, and most customers are incapable of recognizing or demanding better support, ISPs can get away with skimping on that aspect of the experience. Just as they've mainly gotten away with skimping on infrastructure and clinging to IPv4.

"We don't care. We don't have to. We're the Internet Service Provider."

</comment><comment><USER4> Providing good customer service is expensive, and is generally not rewarded by the customers. It becomes what they expect but will not pay for.

So, you inevitably get a race to the bottom. And once you're there, someone has to find a new bottom to race to.

So, why bother?</comment>


Defending the Open Internet - <AUTHOR> http://www.nytimes.com/2014/05/11/business/defending-the-open-internet.html?hpw&rref=business&_r=0 <comment><USER2> It annoys me that people invoke Chinese dissidents, MIT OpenCourseware, and Wikipedia in the context of an issue that, to date, only involves for-profit companies. I don't get how people can work up a moralistic fervor over a dispute between two giant highly profitable industries. Its not that I don't believe that the internet is a tool to deliver education to the underserved, or give voice to the politically marginalized, its that there is no indication that these aspects of the internet are at all threatened. Maybe I'm cynical, but I'm skeptical when these for-profit enterprises cloak themselves in internet utopianism to lobby for policies that have the primary or even sole effect of giving themselves a bigger slice of consumer entertainment dollars.

And if core values are threatened, why not have laws narrowly tailored to that danger? Why not just make it illegal for ISP's to discriminate against websites based on politics, race, etc? Surely that'd be easier to get passed, and people would be happy, if that's what this all was really about.

<comment><USER3> >an issue that, to date, only involves for-profit companies.

Because that isn't what this is. The arguments between these massive companies are deciding the future of peer-to-peer communications on the internet.

If the ones who own the wires win, the internet will be officially divided into two classes: servers and clients. Netflix will still be as fast as it ever was (if not faster) if it pays, and if it doesn't, the wire-owners' new replacements will be just as fast as Netflix was. All of the current players will be making massive content and distribution deals with each other, and the internet will become cable TV.

There's no technical reason that the internet has to be structured that way. This is all just massive incumbents locking out all small fry, and consequently all newcomers. The scale this is being played out in is so large that Netflix is really the newcomer in the situation; this is not just a matter of protecting an oligarchy of entertainment providers, but even a war between content producers and content distributors that has implications that affect how fast the traffic between you and your mother will be, and what programs you will be allowed to use to produce and receive that traffic.

Ultimately it's a defense of a primitive accumulation. Some people own the wires because they were first. We can either let them manipulate the market so all of their vendors have razor-thin margins and all of their consumers have the most constrained agreements and highest prices, or restrict the right of the owners to shape and filter traffic for business purposes.

<comment><USER2> Just because software views IP nodes symmetrically doesn't mean that there aren't central and leaf nodes in the physical structure of the network. That asymmetry is endemic to where consumer nodes sit on the physical network.

I quite agree that letting the people who own the wires do what they want will have an effect on the margins of companies who depend on those wires to reach customers. But doesn't that reinforce my point: there is something disingenuous about certain companies taking up the mantle of free speech and internet Utopianism to lobby for policy that is primarily targeted at fattening their own profit margins?

I don't see any reason to pick sides, certainly. I am equally skeptical of lobbying by ISP's that invoke the public interest or consumer protection to justify regulation excluding competitors from their markets.

</comment></comment></comment><comment><USER4> Arghh.

This simply isn't how the internet works.

Everyone pays for bandwidth, You all pay an ISP for x amount of bits per second, and y amount of transit. You pay more, for more. Unless you live in the US and you've been fucked by the incumbent monopoly.

If you're netflix, you pay a tier 1 carrier for bandwidth. as you get bigger you pay for an CDN. Bigger still, you make your own. (YMMV of course.)

to make it super cost effective, you negotiate your own peering agreement directly, as its cheaper than using cogent/level3 + akami and the like. (hence why google has so much dark fiber.)

The whole two tier internet business, has always been the case. Thats why there is both UDP and TCP. Thats why there is a priority header. Thats why there is QoS.

Yes people say that peering is free. They are simply wrong. To peer you need bandwith, which requires cables in the ground. Places like LONAP and LINX exist for _mutual_ benefit. However at LINX private interchange traffic has been much larger than "public" interchange for _years_

<comment><USER5> I agree with your general message; this freedom for all is confusing to me because it's not at all natural for the operating companies.

Your statement about UDP is wrong though. TCP vs UDP is not a two-tier mechanism for quality. UDP delivers more effective throughput in most cases, as long as the application doesn't need the features that TCP provides. Consider that most TCP connections start with a UDP exchange for the DNS resolution. Even in conditions where you own all the bandwidth you may wish to use UDP.

</comment></comment><comment><USER3> We need a chairman of the FCC that is old enough that they'll retire afterwards. Nobody wants to be the one who pulls the trigger on common carrier because they all plan to work at telecom, cable companies, and radio networks after they step down.

Of course, there's still speaking fees.

<comment><USER2> Tom Wheeler is 66. Before becoming FCC chairman, he was managing director at a VC fund that funded early stage companies. He has also founded several companies. He was also on the board of directors of EarthLink, which is a competitive ISP with interests adverse to the entrenched cable companies. Aside from a stint at NCTA in the 80's, long before they were in the IsP business, his business background is far more skewed in favor of Internet companies.

</comment></comment><comment><USER6> Somewhat related, but I made a small site to help the average internet "user" understand what net neutrality is and why it's important: [http://net- neutrality.io/](http://net-neutrality.io/)

I'm not quite sure where to advertise it, does HN have any suggestions?

<comment><USER7> Forget the average user, can you explain in detail how you envision this to work and be administrated at a network level?

So I'm a packet, leaving my computer...what happens now and what laws govern me?

So for the NN supporters have been very high on rhetoric and appalling low on details, which is always a prescription for legislative disaster.

<comment><USER8> I love the implication that it is somehow incumbent on NN supporters to educate you about how the internet works.....and the additional implication that there is a single set of laws that govern it.

If you actually understand neither the technical details, or the legal aspects, maybe you should take responsibility for educating yourself?

or, at the very least, avoid making deprecating comments about those who know more than yourself?

</comment></comment></comment><comment><USER9> The usual and expected hatchet job from a main stream media stalwart.

Neglecting the fact the fact digging up the ground to place cable, which is what the customer is actually paying for is entirely different from wiring up interconnects at core exchanges, which costs virtually nothing in comparison.

The customer pays the last mile provider to _go fetch_ with the understanding that what they pay covers everything the provider is supposed to _go fetch_ with some profit added on. Then the provider goes to _stiff_ the content provider for a share of their income, or else throttles the content provider which is essentially robbing the customer of a service they've already paid for.

Why can't the NY Times put it this plainly and simply?

<comment><USER10> Does net neutrality fix this issue?

If Comcast wants the extra money they're trying to get from Netflix/Level 3/etc, but is politically prohibited from doing so, then can't they still just raise end-user's prices? That would look worse from a Comcast PR perspective, but with no competition—which lets them get away with letting the quality of service degrade—does that really matter?

This (especially in terms of Netflix vs Comcast) seems like a massive distraction from the underlying competition issue. A distraction Comcast is probably happy to have.

<comment><USER7> No, NN won't fix the issue.

Even more, most NN supporters cannot actually state what they envision such laws to even do. If you ask, they will give you handwavy answers like "provide equal access"...then they will be unable / unwilling to answer any of the obvious questions that follow on from that (ie. what if I pay for faster access, what does that mean for others who don't? Is all QoS illegal now? How will NN be monitored, government installed monitoring stations in ISP? etc etc etc)

This is a political wet-dream though, lots of people clamoring for "more regulation" without any real knowledge of the details or effects. It was the same sort of lazy, unfocused clamor that brought us the Patriot Act, so be prepared.

<comment><USER11> Here's my proposal:

[https://news.ycombinator.com/item?id=7644339](https://news.ycombinator.com/item?id=7644339)

It would fix the issues of neutrality at the interconnect point. Additional rules may be needed to prevent an ISP from throttling a specific port/protocol/service inside it's own network, but this would fix the current hot issue (blocking Youtube, Netflix, etc).

</comment></comment></comment></comment><comment><USER12> Honest question: has bandwidth providing costs actually grown very much, or are ISPs just profit hungry and try to rip off everything they can? Because if it's the first one, something should actually be changed for them to compensate.</comment>


BBC Worldwide to offer TV episodes to rent for the first time on Facebook - <AUTHOR> http://www.bbc.co.uk/pressoffice/bbcworldwide/worldwidestories/pressreleases/2011/07_july/dw_facebook.shtml

<comment><USER2> I was very excited about this until I read the words "Facebook credits" and "streaming."

If I'm paying for video, I need to be certain that I'll be able to see the entire thing uninterrupted, even if I'm offline or my connection becomes unreliable. This is where Apple and Amazon get my money, and streams don't.

The Facebook Credits idea is even worse. Here's the experience:

1\. Go to the Doctor Who page on Facebook. I can't see the content until I agree to "like" the page. Annoying. What if I just want to see a BBC video? It's a bit presumptuous to assume I like something I haven't seen yet.

2\. Once I agree that I "like" the page, a small grid of videos appear. Clicking on any video then redirects me to an app page, telling me that if I still want to watch a video, "liking" wasn't enough. I now have to grant BBC access to my private profile data, and allow them to post messages to my wall.

3\. Fine, BBC, I "like" you, and you can come into my house, look at all my stuff, and talk to my friends on my behalf. Now how do I watch a video? Facebook Credits. Each video is 15 Credits. Ok, I'll go get some.

4\. I click "watch," and am prompted to go buy some Credits. How do I want to pay, Visa, Western Union, other? I don't know, how much do they cost? How does Facebook know my credit card number? I don't remember entering that, but there it is.

5\. Bravely moving on, I click through and see the price of Credits. 50 Credits = $5. So, 15 credits = $1.50 a movie, right? Oops, no. What a funny coincidence, 50 isn't divisible by 15. I'll always have $0.50 that I'm loaning to Facebook until I build up enough Credits to use them all up.

And they wonder why people download videos from "pirate" sites.

<comment><USER3> When I clicked 'watch', it prompted me to buy just the 15 credits needed. I'm not sure why that was different for you.

</comment></comment><comment><USER3> Looks like each portion of each episode is 15 facebook credits, which is $1.50 USD.

That makes each doctor who 'movie' from Netflix cost $6 USD to watch once. (Or as many times as you like within 48 hours.)

Seems a bit pricey to me. I'll likely pay for any I can't get on Netflix, but only those.</comment>


GPS devices may have detected dark matter - <AUTHOR> http://www.sciencerecorder.com/news/gps-devices-may-have-detected-dark-matter/ http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys3137.html <comment><AUTHOR> Sorry for the title, here is an abstract: [http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys...](http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys3137.html)</comment>


College students devote less time to studying than ever before - <AUTHOR> http://econ.ucsb.edu/~babcock/college_time_use_6_08.pdf

<comment><USER2> Reminds me of the model of UK economy constructed as an anolog computer (<http://en.wikipedia.org/wiki/MONIAC_Computer>) Fundamentally, stats in the article are based on a survey, asking students to report studying time. Probably worthless, if the students thought anybody was going to read it.

</comment><comment><USER3> College has become an extension of high school and less of a place where people go to learn.</comment>


Debunking the myth of higher pay in Silicon Valley - <AUTHOR> https://medium.com/@srlake/debunking-the-myth-of-higher-pay-in-silicon-valley-87828cbf6698#.rz5i6hpdp <comment><USER2> This is a gross misrepresentation. SV != SF, and while I agree that the Bay Area is expensive, and SF ridiculously so, there are _plenty_ of places available for under 2.9k (Even entire detached houses). This is especially true if you're willing to live within a reasonable distance to a Bart station in the East Bay.

Check out Oakland, San Leandro, Hayward, Castro Valley, and Fremont. All those have decent Bart access and reasonably priced housing[1].

[1]For someone working in tech making ~multiples~ of entire ~household~ incomes in the Bay Area (Roughly 50-75k depending on the county)</comment>


Inside Internet Explorer 9: Redmond gets back in the game - <AUTHOR> http://arstechnica.com/microsoft/news/2010/09/inside-internet-explorer-9-redmond-gets-back-in-the-game.ars <comment><USER2> While I am happy too that the new version of IE is coming soon and it supports the latest standards, let us not forget that we all were saying the exact same thing when IE7 and IE8 came out:

 _This new release will help developers very much by supporting the latest standards._

The problems is not with supporting a subset of the latest standards. The problem is that the latest standards change over time and IE stays the same for 2-4 years.

In the long run, as a web developer I feel that IE7 or IE8 did not help me much in reducing the work I have to do to fix the compatibility issues. Now instead of just IE6, I have to fix issues with IE7 and IE8. (I have had issues where I could fix the problem using some extreme hacks in IE7 while there was no way to fix the issue in IE8. Later I was forced to use the EmulateIE7 meta- tag for the website, which was BTW developed this year. For the curious, the problem was similar to this: <http://stackoverflow.com/q/1156985/184> )

Until unless some version of IE ships with an auto-update mechanism, I will just refrain myself from going gaga over the new CSS/HTML standards support of IE. The most important thing they have to fix is their release cycle (+ auto- update) and they seem to ignore this part for a long time. Now every time a new version of IE comes out, I don't know whether to smile or to cry.

<comment><USER3> They could shorten their release cycle but it wouldn't change the behavior of their largest customers.

Consider a large organization that finally installed IE7. [Welcome to 2006!]

I'm sure we'll have to deal with this for years to come (unfortunately), and neglecting corporate customers leaves a lot of money on the table.

<comment><USER4> A thousand times this. I have clients who are site-wide IE6 to this day. Ironically, Firefox worsened this problem, because all those clients _also_ allow you to run Firefox (because IE6 barely works), but have apps that require IE, so (a) there's little incentive to upgrade (just use Firefox!) and (b) it's still likely that your first visit from a user there will be from IE6.

IE7 is also _much_ easier to work with than IE6, having had the semirecent pleasure of getting a jQuery-ish Rails app working on both.

<comment><USER5> When chrome frame gets officially greenlighted, I'm immediately dropping all IE 6-8 support and campaigning as hard as I can at work for them to do the same.

</comment></comment></comment></comment><comment><USER6> Visually, IE9 is one of the most gorgeous browsers I have ever seen. It had the wow feeling I had after installing Chrome for the first time.

The amount of new features in this release is amazing. I am blown away at how much has changed.

I think the whole speed issue has become a moot point now. Shaving of milliseconds off of already fast browsers doesn't impress me anymore.

To everyone who complains about standards compliance, IE6 etc. etc. remember that when IE6 came out, it was the greatest browser ever. It was revolutionary for the time and it doesn't deserve the hate it receives. MS Shouldn't have let it stagnate, but look at HTML4, it only recently is being updated.

Say what you want about ActiveX, but it was MS attempt at updating the browser, because the standards bodies weren't.

I love chrome, but right now there is no reason for me not to switch to IE9. I use minimal addons (StumbleUpon/Lastpass), I could care less about tiny speed improvements. People who have switched away from IE, may find it hard to go back, but people who haven't, will really have no reason to switch after this release hits final.

Great work Microsoft and IE team.

</comment><comment><USER7> Better standards support in IE is a boon for everyone; JS shivs and CSS resets only go so far in alleviating development pain. Still, I don't know that I would go so far as to say "back in the game" but, rather, "no longer so shockingly backward;" if only because IE is still chained to Windows. While it _is_ 90% of the desktop market, mobile platforms are making great strides into ubiquity and, at least anecdotally, folks tend to prefer homogeneity of their program set across devices.

<comment><USER8> "...folks tend to prefer homogeneity of their program set across devices."

You must know different folks than I do. Most of the people I know that aren't developers wonder why the icon for "internet" has a big E on it. I can guarantee you that the grand majority of people don't realize that the web browser on their mobile device isn't the same as the web browser on their desktop. And if they do, they're unlikely to be using IE right now anyway.

<comment><USER7> Yes, it's very likely that I know different folks. That's why I hedged my comment by noting that it was purely anecdotal: I tend to associate with computer scientists, mathematicians and medievalists. The first and last groups tend to be most interested in homogeneity, in my experience.

Besides, if we're to say that IE is "back in the game" then surely we should count only those who make a conscious decision to use IE; otherwise we're using vastly different terms.

</comment></comment></comment><comment><USER9> IE has the opportunity to come out with a truly standards compliant product. If they can give it the speed/wow factor the Chrome release had, then they'll be back in the game.

Regardless, if they create a product that is rid of all of the burdens of previous version, ie. ActiveX and BHOs, then they're giving many consumers little reason to switch to a competitor if they're computer is shipped with IE9

<comment><USER10> All they really need to get back in the game is to come within a lap of the lead browsers -- they don't need users to migrate back from Firefox and Chrome, they just need the "default" browser to be good enough that change isn't necessary.

<comment><USER11> Personally I can't see why they don't stick an IE badge on webkit and be done with it.

<comment><USER3> . . . or a Windows badge on Linux.

<comment><USER11> For the most part webapps will work under any OS with a browser, you can't really say the same thing about Windows/Linux software.

<comment><USER12> Windows NT was designed to have "multiple personalities". It has a Win32 personality most Windows programs see, a POSIX personality (that I think doesn't exist anymore) and an OS/2 personality (that I never saw). Each one could run binaries designed for the respective environment. Few Windows programs ever touch the NT kernel.

OSX is also modeled like this. There is a Mach kernel and a BSD-like personality on top of it.

Wine allows Win32 software to run on top of Unix without ever realizing they are running on top of a "fake" Win32 stack.

I think GNUStep could be used to build something similar that could allow OSX software to run on non-OSX hosts.

<comment><USER13> the posix personality still exists - it's called SUA; the Subsystem for UNIX Applications. the guys at interop systems have made a really nice ports-esque system for it so it's easy to get up and running with the usual pile of apps.

<comment><USER14> Do you have more details on this? I looked around for a while and ended up installing cygwin...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> It seems like the tech sites that end up with mega-publisher owners are a bit soft in articles that cover products from major potential advertisers.

Conde Nast owns Wired, arstechnica, webmonkey, and reddit

Tabs to the side of the address bar? Using the URL space for search? What are they smoking?

We'll see how standards support actually turns out...

<comment><USER16> URL space for search? That's one feature that Chrome had first, and most people seem that I've seen to like it. Of course, for me, Chrome's best feature is that it picks up sites you search on and automatically adds them to the search engine list ... that's convenient.

<comment><USER17> > URL space for search? That's one feature that Chrome had first

Firefox has had this feature since in 2004 [1]. It's called Smart Keywords [2]. It can be enhanced with an extension called SmartSearch [3].

[1] [http://www.wired.com/science/discoveries/news/2004/11/65668?...](http://www.wired.com/science/discoveries/news/2004/11/65668?currentPage=all)

[2] <http://support.mozilla.com/en-US/kb/Smart+keywords>

[3] <https://addons.mozilla.org/en-US/firefox/addon/188/>

</comment></comment></comment><comment><USER18> Agreed, but this is kinda f'ed up: [http://blogs.msdn.com/b/ie/archive/2010/09/13/interoperable-...](http://blogs.msdn.com/b/ie/archive/2010/09/13/interoperable- html-parsing-in-ie9.aspx)

</comment><comment><USER19> Now it needs a decent js engine (js/html5 canvas is sort of slow right now) and more space for tabs (lemme put them into the titlebar or below the address bar forchrissake).

</comment><comment><USER20> Now it just needs a semi-decent debugger.

<comment><USER21> The dev tools in IE8 are pretty darn good. I still use Firebug as my primary, but when I'm chasing an IE specific bug, the dev tools are pretty solid. I even prefer them to Chrome's.

<comment><USER22> Webkit's debugger, not Chrome's. I've actually switched over to Webkit's debugger as my primary one though. It ironed out a lot of the nuances that irked me over the last year (inspection of styles didn't appear as code [it now does], you couldn't use command/ctrl + shift + c to inspect an element [you can now], you couldn't delete dom elements [you can now], as well as a myriad of others that were resolved). So far I've found it to be more stable than firebug and laid out/organized better. That's just me though, and to each their own - but if you haven't tried it in the last year give it another shot.

<comment><USER21> Thanks, I will check it out as it has been about a year. I think about 80% of my preference was simply familiarity.

</comment></comment></comment></comment><comment><USER23> Eager to look into the future that will bring the demise of countless of hours of patching up sites so they also work in IE (the code you write works perfectly in all browsers - just IE always needs that additional hassle), I downloaded the beta, went to a Site I was working on (it is valid HTML5) and _poof_

<http://www.gnegg.ch/muchbetter.png>

error -2147467259

right. Maybe it tells me at least where that happened.

Line 1 character 1. Yeah. Thanks.

I have a feeling that even with all the good intentions, this browser will be as buggy as all the other IE versions before this one. This time though, as it won't run under XP, it's just one more version we have to write workarounds for.

Thanks.

</comment><comment><USER24> Someone has drawn a lot of inspiration from Chrome. But seriously, I love the minimalistic interface of chrome and IE9 being surprisingly similar to it is a very good reason for me switch back.

</comment><comment><USER25> This will only be more of a pain in the ass for me. 50% of my IE users are still on IE7. I dropped support for IE6 last year because I personally couldn't handle the ridiculousness of debugging it, even though I still get hits from it. But now I'll have to test my site in IE7, IE8, _and_ IE9, because it'll take _years_ before IE9 replaces all previous versions completely. (And by then, IE10 and IE11 will have come out). Fuck you, Microsoft.

</comment><comment><USER26> If IE9 can handle multiple tabs better, I am all for it.

IE8 chokes on 20-30 tabs (mostly HN...) while I've have not had the same problem in Firefox, Chrome or Opera, IE just feels sluggish.

I should clarify, that I can crash or slow down to crawl Firefox (I am looking at you Reddit), but then it is obvious something has gone wrong.

The way IE slows down is less obvious, that is you can still use it but it is slow.

IE8 is trying to degrade gracefully and failing.

</comment><comment><USER27> I'm still trying to decide how I want to install it. Being able to test all versions of IE on a single machine is getting impossible.

I have a Windows 7 virtual machine for testing IE8, a Vista vm for IE7, and an Windows XP for testing IE6. And I only have one license of each system, and I don't really want to drop my ability to test IE7 or IE8.

Fuck you Microsoft!!

<comment><USER28> Do you know that Microsoft supplies VHD images for free that you can use to test any version of IE? YOu don't need a license or anything, just Windows and their free Virtual PC software. They're intended to work only with Windows and Virtual PC (of course!) but apparently it's possible to get them to work with other VM software on other OSs.

[http://www.microsoft.com/downloads/en/details.aspx?FamilyId=...](http://www.microsoft.com/downloads/en/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&displaylang=en)

<comment><USER29> > YOu don't need a license or anything, just Windows and their free Virtual PC > software.

Last time I checked, running "just Windows" requires "a license or something".

<comment><USER28> It's true. I meant to say a license specifically for these additional versions.

</comment></comment></comment></comment><comment><USER30> I still don't see a reason to switch to it. I use firefox for day to day browsing and chrome for specific work-related things.

I guess the question I need to ask is "Why?". Unless IE has some serious performance differences I can't see a reason to use it.

</comment><comment><USER31> It's useless unless they stop supporting older IE versions...

<comment><USER32> Can we please stop bashing MS for the continued usage of IE6? For it's time IE6 was a fine browser (honest), and what exactly is so bad about supporting software long after it is obsolete?

If you're tired of supporting IE6 on your site, then stop. Foisting off the cost of transitioning everyone off IE6 onto a big company like MS is comforting but ultimately unrealistic and selfish.

<comment><USER28> What's bad about supporting software long after it is obsolete is that it encourages people who know very little to think it is perfectly legitimate to continue using it long after it is obsolete.

It's their lousy software, it IS their responsibility to transition people off of it.

<comment><USER33> It's just not smart to replace a system that only works well in IE 6 because it might mess up your employees' ability to waste their time on some guy's random startup.

There are perfectly legitimate reasons why a corporation would continue to use IE6, despite its countless flaws.

<comment><USER28> Security is the killer flaw, though. They're going to have to change once MS stops patching it - and who knows what 0 day (or -300 day) flaws lurk in IE6.

<comment><USER33> I hope you never have to understand the perverse inner workings of the corporate IT manager's mind. :'(

<comment><USER34> So the 'perfectly legitimate reasons' are all because of 'perverse inner workings' of some manager's mind?

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> The real unknown is whether or not IE's release cadence (currently at about a 1.5-2 year cycle) is sustainable when every other browser is on a much shorter cycle (in some cases 1/4 that). IE9 may be the bee's knees, but if Google puts out another set of half a dozen releases as substantive as those prior between IE9 and 10 how does IE keep up and stay relevant?

</comment><comment><USER35> the only time i've started the IE in the recent years is to download Mozilla/Firefox on new machines/reinstalls. One time tried to download Chrome instead of FF - the IE hanged on the Google's Chrome download button.

</comment><comment><USER36> That interface looks like ass.

<comment><USER37> It looks better than previous versions, but it's just a shitty knock-off of Chrome. It's hard to argue that Chrome defined the minimalist look for browsers.

</comment></comment><comment><USER12> Does it run on Linux? OSX?

Thought so.</comment>


Will multitasking on the iOS4 make backgrounder on jailbreak redundant? - <AUTHOR> http://www.perivision.net/wordpress/?p=3117 For those of you who have jailbroken iphones, and have read my top ten reasons to jailbreak, know about backgrounder.<p>This is a great jailbreak app that allows you to run applications in the background.  And its one of those apps that I have a hard time living without.  Yes, I have a feeling it could be making my phone slower by getting in the way of memory garbage collection, but the jury is out on that.  And even if that was the case, its still worth it. <comment><USER2> Will it? It already _has_</comment>


Switching to a Zsh Shell - <AUTHOR> http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/

<comment><USER2> I spend a lot of time on the command line, and personally find having that much info in my prompt _incredibly_ distracting. I would really prefer to leave things like battery monitoring to my OS or Window Manager - not my shell prompt. The screenshots in this article look like the kind of stuff that you do when you're just starting with a new piece of technology and you want to use every single feature just to play around. Cool and fun, but at the end of the day perhaps not very useful.

<comment><USER3> Actually I had most of that information in my bash prompt before I switched to Zsh (the battery level and repo-characters are the only things that are really new).

To get to that point I'd been poking around and tweaking for somewhere around 4-5 years, so no, it's not just a case of wanting to use as much of Zsh as possible. Actually very little of that prompt is Zsh-specific.

You might find it distracting, that's fine. I don't. My eyes/brain have adapted to recognize the prompt line(s) as a whole unit. I don't read every single item every single time I see the prompt. But when I _do_ need a piece of information it's right there in front of me and my eyes can home in on it quickly thanks to the color-coding.

Examples:

When I'm switching directories a lot (maybe I'm setting up a new project and installing plugins) my eyes tend to focus on the green text in the center (current directory).

When I'm merging translation branches for hgtip.com's content repository my eyes focus on the magenta text near the right (the current branch).

When I'm using MQ a lot my eyes focus on the list of MQ patches.

The "dirty" flags ("?" and "!" at the right) always jump right out at me if they're there, because they're a different color than the text to the left of them and there's not even a space as a separator.

</comment></comment><comment><USER4> Steve is using Oh My Zsh, which is one of my pet projects. You can find it on Github.

<http://github.com/robbyrussell/oh-my-zsh>

</comment><comment><USER5> I like having extra information in my prompt, but not to the point that it takes up a whole line of its own. Here's what mine looks like: <http://grab.by/26hX>

<comment><USER3> What do the special characters represent?

<comment><USER5> The first one is git status: Magenta means there are unstaged changes, cyan means there aren't. Star is master, I have different symbols for a few different branches I use on some projects. Otherwise, that symbol just shows as the branch name.

The second symbol is my currently-active ruby interpreter.

EDIT: see <http://github.com/burke/dotfiles/tree/master/.config.d/zsh>

</comment></comment></comment><comment><USER6> To be honest, most of that stuff works just fine in BASH too.

<http://gist.github.com/277975>

That's my bash prompt, doing the same. Except, it doesn't factor in mercurial repositories, but that'll be a breeze to add.

Displaying: (<virtual_env>) user@host [ <folder> ~<branch> <* available changes>]$

<comment><USER3> Oh yeah, definitely. Like I mentioned in the post it _could_ be pretty easily converted to bash (except for the RPROMPT), I just haven't gotten around to doing it.

</comment></comment><comment><USER7> There's a more general solution for putting VCS information in your zsh prompt called vcs_info. I don't know if it covers all the features of these hg and git prompts, but it does support svn and cvs (among others), which I still have to use for some projects.

[http://zsh.sourceforge.net/Doc/Release/User- Contributions.ht...](http://zsh.sourceforge.net/Doc/Release/User- Contributions.html#SEC273)

<comment><USER3> Yeah, I've seen vcs_info around before. It's exactly like you said -- it supports more VCSes and it's quicker to set up than hand-rolling your own, but it's less flexible.

</comment></comment><comment><USER8> For a good zsh configuration have a look at <http://grml.org/zsh/> (vcs_dir enabled prompt, persistend dir stack, directory based profile and many more)

For a general zsh overview have a look at <http://grml.org/zsh/zsh- lovers.html></comment>


Generational Garbage Collection for Ruby 2.1 - <AUTHOR> https://bugs.ruby-lang.org/issues/8339 At this rate MRI is gonna be getting most of Rubinius before Rubinius 2.0 shipped. <comment><USER2> Summary:

Generational garbage collectors needs to know about pointers in the old generation that points to objects in the new generation. These objects in the new generation can only be correctly garbage collected together with the old generation. In a mutable language you need to have _write barriers_ to detect when an object in the old generation sets a pointer into the new generation. This has been difficult in Ruby because C-extensions gets direct access to the memory locations. If a C-extension would modify the Array-pointer directly there's no way to detect this.

RGenGC solves this by adding another flag on objects: an object is either _sunny_ or _shady_. All objects start as sunny. If you e.g. use a C-extension that tries to access the Array-pointer (using the RARRAY_PTR-macro) the object becomes _shady_. So: An object is sunny if we know write barriers are used for all updates; an object is shady if we do not know that. A shady object may or may not be modified; all we know is that a C-extension has access to the internal pointers and can do whatever it wants.

In addition, Ruby can't use a copying collector (because a C-extension might store the memory location somewhere). Instead it stores both new and old objects in the same space, only distinguished by a flag. When it does a minor collection (new generation) it will traverse/mark all roots, but ignore objects that are in the old generation. All traversed sunny objects will be promoted to the old generation (causing them to be ignored in the next collection). All traversed shady objects will stay in the new generation and also be added to the shady-set. This shady-set is a part of the roots that are traversed in the minor collection.

If a sunny object is in the old generation and becomes shady (e.g. RARRAY_PTR gets called) it will be demoted (to the new generation) and added to the shady-list.

See the attached PDF for more details (pros/cons, comparisons to other Ruby implementations, some performance numbers, internal API details).

All in all: A decent improvement of the garbage collector without breaking compatibility with C-extensions.

<comment><USER3> Thanks for the excellent summary! For anyone else, I highly recommend reading the paper itself, it's very interesting.

Correct me if I'm wrong, but my interpretation is that this trades memory for speed, so the average memory consumption of Ruby programs would increase. If memory is exhausted, a full 2.0.0-style mark and sweep GC would occur.

Programs that are heavily dependent on C extensions would not see much of a GC speed increase.

Most would, however, and they could continue to improve GC performance piecemeal by moving Ruby classes (starting with common classes like Array or String) to use the new write barrier methods.

<comment><USER4> I think what you're assuming will be relevant for old generation. Most object allocations should be short-lived so that memory should clear up.

</comment></comment></comment><comment><USER5> Koichi Sasada first contributed Ruby 1.9 VM(YARV) & now new GC algo. Its amazing that how much big dent an single person can make to a language/ecosystem used by millions around the world #Respect.

<comment><USER6> Like many Open Source projects, there's a long tail of development with Ruby. 4 or 5 people make up 80% (roughly speaking) of the commits.

It's even easier to see with <http://contributors.rubyonrails.org/> :

The top 2 people have 4,000 vs 3,000 commits, 1/3rd more than the 3rd person.

3rd and 4th have 3,000 vs 2,000, 1/2 more than the fifth.

6th has half of the commits that 4th does.

I myself only started working on Rails about a year ago, and got 192 commits in that time. That places me at #33 overall, out of 1735.

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

It's also interesting to look at numbers for releases, too. Here's Rails 4, for example: <http://contributors.rubyonrails.org/edge/contributors>

Same thing, smaller scale.

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

I'm not saying this invalidates your point in any way, just that it's the same for almost all projects; precious few people do much of the work that we rely on every day.

</comment><comment><USER7> That is great!, about time too :-)

I remember in the early 1980s when ephemeral (or generational) garbage collection started to be available in Lisp systems - this made a large improvement in run time performance. Good work!

<comment><USER8> I actually thought this was a repost of a _very_ old article when I first noticed it on the HN front page. Then I realized that Ruby wasn't around in the 80s. Oh.

I thought all modern dynamic languages use generational GC.

<comment><AUTHOR> Well it wasn't long ago that JS, arguably the most used dynamic languages gets GGC.

<comment><USER9> fwiw V8 always had a generational collector.

<comment><AUTHOR> And that was less then 5 years ago, and it was a Stop the World GC until less then 2 years ago updated to Incremental. While Mozilla's has had incremental for a year and are still working on Generational Collector.

The point is, apart from Java which gets many cooperate backing, even the most widely uses programming languages only recently had a decent enough GC implementation. As much as i hate this slow progression, most VM still dont have GGC as default at all.

</comment></comment></comment></comment></comment><comment><USER10> Any benchmarks out there indicating performance with the new GC?

<comment><USER6> See the PDF attached to the ticket.

</comment></comment><comment><USER11> The presentation that goes into the details is at [https://bugs.ruby- lang.org/attachments/3686/gc-strategy-en.p...](https://bugs.ruby- lang.org/attachments/3686/gc-strategy-en.pdf)

</comment><comment><USER12> It is (mildly) funny how the title of this post was for quite a while on the same page as one about a gem for grammar/syntax correction.

<comment><USER12> It is mildly funny how it got corrected afer my post and someone downvoted it. Ha.</comment></comment>


Machine Learning Confronts the Elephant in the Room - <AUTHOR> https://www.quantamagazine.org/machine-learning-confronts-the-elephant-in-the-room-20180920/ <comment><USER2> Please, correct me if I'm wrong, but isn't the whole machine learning testing approach based on the recognition the whole image at once in full resolution in one attempt? If so, it's not how animals see and observe the world and this could be a key difference between AI and living beings.

What if an algorithm actually had a focused sight? Look at the brightest feature, blur the rest, then try to find another distinctive details, look closer into the parts of the image until the most of it becomes clear. Let other neural network control the scanning process and loop until it develops some confidence in the result. Can it work that way?

<comment><USER3> Yes but children can pass these tests when presented with a single photo as well (if I understand the setup correctly), so I'd say it's a fair comparison. The algorithm can "look" at the picture as long as it wants as well, e.g. using many different convolutional filters that can "see" features in different parts of the image and then combine these in later stages of the analysis.

<comment><USER2> How close are those convolutional filters to the physical sight of animals? Were they designed specifically to mimic nature or they are artificial concept with similar purpose?

<comment><USER4> They may be close to first stages of sight pipeline. Maybe even close to full pipe for some simple animals. For humans, they're pretty much input processing stage. Human vision (and presumably animal vision too) has _runtime feedback_ that uses the the output of the vision process to fix up the input. That's what makes you suddenly see things if someone tells you what to look for, or suddenly unsee things. That's why you didn't notice I repeated the the word "the" in few places in this comment.

As the intro to the the article says (you now noticed, didn't you?), the way DNN vision systems are different is that "unlike humans, they can't do a double take". And those "double takes" is what our vision pipeline does all the time.

<comment><USER5> Very clever young man, but it's turtles all the way down!

</comment></comment></comment></comment></comment><comment><USER6> I know very little about machine vision, so forgive the naïvete of this question:

> an ability humans have that AI lacks: the ability to understand when a scene > is confusing and thus go back for a second glance.

Wouldn't the machine return a low confidence score when a scene is confusing? If not, why is this difficult to get around?

If so, why can't we just call this a computation difficulty problem, simply requiring a way to go back and spend more effort later when required? A problem like this would simply require better computers, and patience.

In other words, Is this problem as deeply rooted as the article suggests? Or is it simply a problem with the popular approach to machine vision?

<comment><USER7> > a low confidence score

Neural nets should return a low confidence score. But, the popular approach (described below) ignores that. Neural nets ignore confidence because of a technique called softmax [1].

This happens as the final operation of a neural net, and is required for training.

Softmax is a tool to make an array of positive numbers look like a probability distribution:

        out = x / x.sum()

x[i] is a class prediction, but x.sum() != 1. Say if the network was uncertain, x[cat, dog] = [0.03, 0.01]. These are small values that do not imply great confidence (the network was trained on vectors with out.sum() = 1. The network would predict "dog" using softmax because out[dog] = 0.75 > 0.25 = out[cat].

But then in inference/prediction, the confidence is ignored. What if x.sum() is small? That would imply that the network is uncertain.

[1]: [https://en.m.wikipedia.org/wiki/Softmax_function](https://en.m.wikipedia.org/wiki/Softmax_function)

<comment><USER4> Is this what softmax is? Simply dividing a vector by sum of its components? If so, then how does it deserve a _name_ , not to mention a long Wikipedia page full of formulas?

<comment><USER8> Softmax has two components:

1\. Transform the components to e^x. This allows the neural network to work with logarithmic probabilities, instead of ordinary probabilities. This turns the common operation of multiplying probabilities into addition, which is far more natural for the linear algebra based structure of neural networks.

2\. Normalize their sum to 1, since that's the total probability we need.

One important consequence of this is that bayes' theorem is very natural to such a network, since it's just multiplication of probabilities normalized by the denominator.

The trivial case of a single layer network with softmax activation is equivalent to logistic regression.

The special case of two component softmax is equivalent to sigmoid activation, which is thus popular when there are only two classes. In multi class classification softmax is used if the classes are mutually exclusive and component-wise sigmoid is used if they are independent.

<comment><USER4> Thanks for the detailed explanation!

</comment></comment></comment></comment></comment><comment><USER9> First, the chair wasn't replaced with a couch - you can see there is yet another rectangle just a few pixels to the left, that likely says "chair".

Second, even many people are surprisingly bad at decoding incongruous scenes, which is why hidden object games are a thing.

<comment><USER8> The disappearing cup and book are caused by a similar issue. They "only show detection results with confidence value that exceeds 0.5". The cup is shown at 50% in the original image, so it "disappears" if the presence of the elephant lowers its score even slightly. Same of disappearing books.

Presumably the couch showed up because it rose from <0.5 to 0.57. They don't tell us what the score is for the chair, it might even be higher than the score for the couch, since their visualization clearly doesn't sort by probability.

</comment></comment><comment><USER10> Why can't you just train the network on artificially altered photos, with "elephants" randomly scattered around, until it is robust to them?

<comment><USER11> Because there's always another type of 'elephant' to be thrown in. The networks are just not inherently robust against unexpected features (I'll call them outliers for want of a better term), and this is what needs to be fixed, and not increasing the variety and frequency of outliers.

<comment><USER10> >Because there's always another type of 'elephant' to be thrown in.

Well, you could randomly generate and render 3D objects, and paste them into photos. This will give you a huge space of 'elephants'.

<comment><USER12> If what you propose was possible to do, if it was possible to overcome the problem described in the above article by using 3d models of real-world objects, then it would also be possible to train on those models in the first place, i.e. we wouldn't need to train machine vision algorithms like CNNs on large datasets of digital stills or photographs- we'd just generate millions of 3d models of objects and scenes of interest, already fully annotated for supervised learning, and train on those. But, as you can probably tell, this is not what happens and instead we have to make do with "real" images, painstakingly collected and annotated with the classes of objets within them "by hand".

What you propose is, essentially, training on a simulation. That doesn't work very well because statistical machine learning algorithms generalise very poorly from training data to unseen data and when your training data is a simulation (such as a 3d model of an object) and the unseen data is the real world (such as a video still, or a digitial photograph of that object) the resulting model will be very bad at predicting the unseen data, so identifying objects in images of the real world.

It might seem to you (and to me!) that modern 3d simulations (as in high-end CGI and video games) is a very faithful simulation of the real world, but that's primarily because we look at modern 3d through human eyes and perceive it with our (presumably) human brains. We don't know how that works exactly, so we can't reproduce the process in computers, yet, therefore machine vision systems essentially "see" and "perceive" something completely different than what we do. In the end, what looks like a very close approximation to you, is pretty much useless for them- or in any case, they are not able to learn to generalise from that to real objects.

<comment><USER10> >It might seem to you (and to me!) that modern 3d simulations (as in high-end CGI and video games) is a very faithful simulation of the real world, but that's primarily because we look at modern 3d through human eyes and perceive it with our (presumably) human brains. We don't know how that works exactly, so we can't reproduce the process in computers, yet, therefore machine vision systems essentially "see" and "perceive" something completely different than what we do. In the end, what looks like a very close approximation to you, is pretty much useless for them- or in any case, they are not able to learn to generalise from that to real objects.

This really is not what I expected, being a layman.

Do you have any more data on this topic of training on a simulation?

<comment><USER12> "Data", not so much, but you can explore the subject by searching for "reality gap in machine learning". To be honest there are not many references to it that I could find online, but this post by the Google AI blog starts with a very good summary (then proceeds to propose one way to overcome the difficulties of training on simulations, though of course the problem is still far from solved):

[https://ai.googleblog.com/2017/10/closing-simulation-to- real...](https://ai.googleblog.com/2017/10/closing-simulation-to-reality-gap- for.html)

 _Simulating many years of robotic interaction is quite feasible with modern parallel computing, physics simulation, and rendering technology. Moreover, the resulting data comes with automatically-generated annotations, which is particularly important for tasks where success is hard to infer automatically. The challenge with simulated training is that even the best available simulators do not perfectly capture reality. Models trained purely on synthetic data fail to generalize to the real world, as there is a discrepancy between simulated and real environments, in terms of both visual and physical properties. In fact, the more we increase the fidelity of our simulations, the more effort we have to expend in order to build them, both in terms of implementing complex physical phenomena and in terms of creating the content (e.g., objects, backgrounds) to populate these simulations. This difficulty is compounded by the fact that powerful optimization methods based on deep learning are exceptionally proficient at exploiting simulator flaws: the more powerful the machine learning algorithm, the more likely it is to discover how to "cheat" the simulator to succeed in ways that are infeasible in the real world. The question then becomes: how can a robot utilize simulation to enable it to perform useful tasks in the real world?_

 _The difficulty of transferring simulated experience into the real world is often called the "reality gap." The reality gap is a subtle but important discrepancy between reality and simulation that prevents simulated robotic experience from directly enabling effective real-world performance. Visual perception often constitutes the widest part of the reality gap: while simulated images continue to improve in fidelity, the peculiar and pathological regularities of synthetic pictures, and the wide, unpredictable diversity of real-world images, makes bridging the reality gap particularly difficult when the robot must use vision to perceive the world, as is the case for example in many manipulation tasks._

Note the bit about deep learning algorithms being very proficient "cheaters", which I missed in my comment above. Indeed, one way to fail to generalise from a simulation to the real world is to "overfit" to the defects in the simulation!

Like the linked blog post, most material you are likely to find online focus on training robots with (deep) Reinforcement Learning, I think because that just happens to be one domain where it is even harder to collect training data than good old supervised learning for image recognition. I can find virtually no source referring to the "reality gap" in the context of purely machine vision research- it's just not the done thing to train vision algorithms on simulated data, for the reasons described above, consequently it's very difficult to find hard data on why it's not done.

A good related source (with a bazillion references) is the following blog post, discussing the difficulties of deep RL, which is primarily trained on simulated environments:

[https://www.alexirpan.com/2018/02/14/rl- hard.html](https://www.alexirpan.com/2018/02/14/rl-hard.html)

The post makes only passing referenct to the "reality gap" but it should give a good idea about the ins and outs of training in simulated environments.

<comment><USER12> Oh, and, regarding the issue of discrepancies in perception between humans and machine vision systems, this is a good source, albeit on the short side (well, the bit that talks about perception anyway):

[https://rodneybrooks.com/forai-steps-toward-super- intelligen...](https://rodneybrooks.com/forai-steps-toward-super-intelligence- iii-hard-things-today/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> I am not an expert in AI/ML, just a casual observer, but I didn't like the tone of the article. Not only it fixates on the speed of processing, it also seems smug and acts as if we know how human brain sees and processes images, while all we have is a bunch of conjectures. That was distracting.

<comment><USER14> Well, we do know that the brain does something that CV systems don't, and that it was a part of a recent self-driving car accident.

</comment></comment><comment><USER15> I'm confused about what's so special here.

This is analogous to a person from the early days of photography having no knowledge of the possibility of image doctoring, and us feeling "smug" because a photo like this would elicit confusion.

It seems to me you just have to run your NN on pairs of doctored and undoctored images, and create a separation of concern between scene continuity and object recognition. It's likely that a lot of implementations currently rely too much on surrounding context for successful categorization.

It's also worth exploring certain image analysis techniques during pre- processing to draw out certain attenuated aspects. Edge detection is par for the course, but things like shading are also important to attenuate so that the NN has an easier time learning.

If we're dealing with multiple frames and not just a single image, this opens up a whole dimension of temporal analysis that should make it trivial to separate the background from juxtaposed images.

<comment><USER16> >It seems to me you just have to run your NN on pairs of doctored and undoctored images, and create a separation of concern between scene continuity and object recognition.

This may fix this problem, but what other visual issues will we uncover that might be fixable with the right kind of training but which we haven't yet accounted for.

For example, we see so many optical illusions because of how our eyes and brain (and the neurons between them) work. These are often times caused by our sensation or perception incorrectly picking up data, but on purpose (well, as much purpose as an evolved system could have). For example, how neurons in the eye exaggerate differences in brightness or how we are overly sensitive to perceiving faces so that we see them even where they don't exist. What impact does the lack of these have on an artificial vision system? For starters, it would likely indicate the system wouldn't recognize the optical illusion unless trained for it, but are there any other impacts that we need to take into consideration, especially when considering having human lives depending upon the system?

</comment></comment><comment><USER17> Can't they implement a "virtual representation" or sort of ideal or archetypical scene in an AIs memory that's quickly accessible, and then use that to diff "new unexpected stuff" and refocus on that difference somehow?

<comment><USER18> If we had such a representation and the mapping from real world (images) to it, we'd basically solved all image recognition tasks because the above is the definition of an image recognition task

<comment><USER17> In the real world you wouldn't need to know the exact shape of an object to determine what it is, unique features could be enough. For an elephant this could be just a range of skin colors that are unique to elephants.

The problem with videos and images vs. the real world is the fidelity, you can't trust images or videos that are previously captured through other equipment. This barrier wouldn't exist if the AI can "see" into the real world, the skin colors of animals can be trusted there!

</comment></comment></comment><comment><USER14> This is an important, and worrying, problem, but I'd be more impressed if the elephant wasn't added as a bad photoshop. That kind of manipulation is going to screw up a lot of the processing.

</comment><comment><USER19> > A visual prank exposes an Achilles' heel of computer vision systems: Unlike > humans, they can't do a double take.

Thanks for giving us ML researchers a TODO. We'll get to work right away.

</comment><comment><USER20> Wouldn't humans who haven't seen Elephants before or who are not trained to recognize the general category of mammals / animals be prone to make similar errors?

<comment><USER21> I don't think so - I think that the human may fail to find the correct label for the Elephant (although if they have some knowledge about Elephants they might), but the machine fails to see it - to identify it as a thing, and also it changes the labels it gives other things; so cats become dogs, mugs become books and so on. Humans are not prone to this.

</comment></comment><comment><USER22> Somehow the right image where according to the description an elephant was introduced is now identical to the left photo in the article.

<comment> proto-n The elephant is on top of the guy's head, it's hard to see with all the boxes laid over the image.

</comment></comment><comment><USER23> Is this not a whole new attack surface?

<comment><USER24> Adversarially generated inputs have been known for some time [1], so I wouldn't call it a new class of attacks unless 1. there are other and older ways of attacking neural networks 2. new as in the last couple of years.

[1] [https://blog.openai.com/adversarial-example- research/](https://blog.openai.com/adversarial-example-research/)

<comment><USER25> Yes, this can be used for generating adversarial inputs, and yes, this is a new attack surface. From the paper:

 _The images generated here could be viewed as a variant of adversarial examples, in which small image perturbations (imperceptible to humans) cause a large shift in the network's output. The images we generate are of a somewhat opposite flavor: while we do not limit the magnitude of the difference between the original and modified image, the detectors are sometimes "blind" to the inserted object. In addition, our examples are not "targeted" in the sense that no optimization process is required to generate them; they seem prevalent enough so that a simple scan of transplanting translated versions of one object in the other can give rise to multiple wrong interpretations._

</comment></comment></comment><comment><USER26> I'm aware of the vision algorithm in my head to a certain extent and I'm not sure if machine vision does the same. You can run simple thought experiments to see what your brain actually does to analyze an image. First of all when I look at a scene I am 100% aware of geometry. Irregardless of meaning, words and symbols I can trace out the three dimensional shape of things without associations to words.

How do I know I can do this? Simple. Every scene I look at I can basically translate or imagine that scene in my head as wireframe scene or some low poly scene as if it was generated by a computer. Similar to if I look at wireframe scene generated by a computer, my mind can translate it into a scene that looks real. Try it, you can do it.

Second, I can look at an actual low poly wireframe model of an elephant and associate it with the word 'elephant.' I do not need color, or detail to know it's an elephant. In fact, with just color and detail alone it is harder for me to identify an elephant. For example if someone takes many very closeup photographs of parts of an elephant like its eye, skin, ear, etc.. and asks me to guess the subject by interpreting the pictures... I become fully aware that I would be accessing a slower, different part of my brain to deduce the meaning. This is a stark contrast to the instantaneous word association established when I look at a wireframe model of an elephant. The speed difference between both ways of identifying an elephant indicate to me that geometric interpretation is the primary driver behind our visual analysis and details like color or texture are tertiary when it comes to the identification of an elephant. I believe the visual cortex determines shape first, then subsequently determines word from shape.

If you feed a white sculpture of an elephant or a wireframe of an elephant into one of these deep learning networks it is unlikely you will get the word 'elephant' as output. But if you feed it a real picture of an elephant it can correctly identify the elephant (assuming it was trained against photos of an elephant). Because the delta between a white sculpture of an elephant and an actual picture of an elephant is just color and detail this indicates to me that when you train these deep learning networks to recognize an elephant you are training the network to recognize details. It's a form of over fitting, the training is not general enough to catch geometry. It is correlating blobs of pixels , color and detail with an elephant rather then associating a three dimensional model of it to the word... the opposite of what humans do. In fact I bet you that if you took those very closeup photographs of an elephant and fed it into the network it'd do a better job at recognition versus the picture of a white sculpture of an elephant.

This indicates to me that to improve our vision algorithms, the algorithm must first associate pixels with geometry then identify the associated word to the geometry rather than try to associate blobs of pixels to words. Train geometry recognition before word association.

My guess is that our minds have specific and genetically determined built in geometry recognition algorithms honed to turn a 2d image into a 3d shape. We do not learn to translate 2d to 3d we are born with that ability hardwired. Where learning comes in is the translation of this shape to a word. Whereas most of the machine learning we focus on in research is image recognition, I believe the brain is actually learning shape and geometry recognition.

</comment><comment><USER27> Wrong. They can do a second take. You should just code it in.

<comment><USER28> Is this sarcasm? The point of the second take is that humans often know they're confused and will go back to think about the image and remedy the confusion, whereas having a neural network just look at the image again isn't going to do anything (plus, existing architectures don't seem to have any capacity to say "I'm confused" anyway).

<comment><USER29> Parent is not sarcastic. Automated recognition systems are _systems_ , which means they are made of several components (sensors, databases, hardwares, softwares) working together. Neural networks are one of those sub-components and no one ever claimed that neural networks are 100% accurate and sufficient to build automated decision systems.

The problem described in the article is taken into account when building systems (like autonomous cars) using neural networks.

<comment><USER23> _The problem described in the article is taken into account when building systems (like autonomous cars) using neural networks._

Where can I find more information on this?

<comment><USER29> This is a vast engineering field studied before the existence of neural networks.

Keywords are "control theory", "sensor fusion", "automated decision under uncertainty" that you can look on Google, Wikipedia and arXiv. Also "Simultaneous localization and mapping" which is a good example of using uncertain data points from different sensors to build a representation of the reality.

In those systems, a neural network is just another sensor providing augmented information.

<comment><USER23> Thank you, I will have a look. Just out of curiosity, what do you mean by 'uncertain' in this context?

<comment><USER30> Errors in precision and accuracy.

<comment><USER23> Hmm... there is no doubt about the sensor input, the elephant is there. The issue is with precision and accuracy of the model itself.

Edit: I need to rephrase, the interesting case for _me_ ( and the one the article is describing) is when the model fails with accurate input data due to assumptions that are intrinsic to the model itself.

<comment><USER31> Optical sensors don't have anywhere near the dynamic range of a retina. I think poor low light performance has been implicated in at least one self- driving crash. Eyes can at least render objects and shapes in extreme low light even if the brain doesn't have enough information to identify them. The tiny sensors in a camera compact enough to be practical still have a long way to go.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> The title is a bit misleading / clickbait. It should be "Neural networks Confronts...". Machine Learning isn't all about neutral networks and deep learning.

As another comment said, "second take" is not what neural networks are made for. Neural networks are a building block of more complex decision systems, where the weakness of the neural networks are taken into account before automatically commiting to decisions.

Otherwise, I guess the article is good at pointing the current limitation of neural networks alone.

<comment><USER32> > It should be "Neural networks Confronts...".

I disagree, for the following reasons:

\- The paper is called The Elephant in the Room. Technically the _paper_ confronted the popular machine learning approaches, so the reversal would have been a more eye catching headline. "The Elephant in the Room confronts Machine Learning" is a rare opportunity to honestly play with word order in a way that would arguably be more attention-grabbing.

\- Machine learning is more general than Convolutional Neural Networks, but less general than AI. This seems appropriate for this type of popular science publication.

\- There are approaches that use attention and RNNs and they are an interesting approach, but by no means mainstream nor producing state-of-the- art classification accuracies. Actually, second take is exactly what an attention-based RNN can do.

\- The last time I checked the state-of-the-art solutions to image classification involve Convolutional Neural Networks.

If there was an approach that was even close to approaching ConvNet performance, I would agree that it is perhaps unfair to condemn the entire field. Even then, we would be in the territory of generalizations in headlines, which are often fair. "{party} proposing legislation" is a probably bigger generalization of headline that would generally pass without criticism.

<comment><USER29> > \- The paper is called The Elephant in the Room.

How is this argument related to the confusion of the terms Machine Learning and Neural Networks...?

> \- Machine learning is more general than Convolutional Neural Networks, but > less general than AI. This seems appropriate for this type of popular > science publication.

The most appropriate term is the most precise one, in this case : neural networks

> \- There are approaches that use attention and RNNs and they are an > interesting approach, but by no means mainstream nor producing state-of-the- > art classification accuracies. Actually, second take is exactly what an > attention-based RNN can do.

Correct, but you are still talking about neural networks...

> \- The last time I checked the state-of-the-art solutions to image > classification involve Convolutional Neural Networks.

And again neural networks.

<comment><USER32> > How is this argument related to the confusion of the terms Machine Learning > and Neural Networks...?

We're talking about the title.

> The most appropriate term is the most precise one, in this case : neural > networks

That is generalizing RNNs and CNNs into "neural networks". If I take a popular CNN architecture, chop off the final dense layer and activation and attach an SVM classifier, is it an SVM or a convnet I am using?

Somehow the title "The Elephant in the Room confronts faster_rcnn_inception_resnet_v2_atrous_coco, faster_rcnn_nas_coco, ssd_mobilenet_v1_coco, mask_rcnn_inception_resnet_v2_atrous_coco, mask_rcnn_resnet101_atrous_coco." (or the reverse) doesn't have the same ring to it and is probably inappropriate for the audience.

</comment></comment></comment></comment><comment><USER33> In this article, learn the secret AI researchers dont want you to know, my non tech friends love talking about it! Gonna have to agree with everyone else here, the title is clickbait and you can just code around it.

There is nothing fatal here its just one more problem to solve. Havent we heard all about this issue of image recognition being trickable 1000 times, why is this the top post?</comment>


Show HN: IP Lookup - <AUTHOR> https://iplook.herokuapp.com <comment><USER2> If you're after IP details via an API you should check out [http://ipinfo.io](http://ipinfo.io), eg:

        $ curl ipinfo.io
        {
          "ip": "22.214.171.124",
          "hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
          "city": "Mountain View",
          "region": "California",
          "country": "US",
          "loc": "37.385999999999996,-122.0838",
          "org": "AS7922 Comcast Cable Communications, Inc.",
          "phone": 650
        }

        $ curl ipinfo.io/geo
        {
          "ip": "18.104.22.168",
          "city": "Mountain View",
          "region": "California",
          "country": "US",
          "loc": "37.385999999999996,-122.0838",
          "phone": 650
        }

        $ curl ipinfo.io/org
        AS7922 Comcast Cable Communications, Inc.

        $ curl ipinfo.io/220.127.116.11/org
        AS15169 Google Inc.

More details available at [http://ipinfo.io/developers](http://ipinfo.io/developers)

<comment><USER3> We offer something similar for free. (One of our client deployments needed it, so we just made it free for everyone.)

[https://www.dailycred.com/api/info.json](https://www.dailycred.com/api/info.json)

This returns the current requester's location, device, and language settings. Or you can just look for location for a specific ip like so:

[https://www.dailycred.com/api/local.json?ip=18.104.22.168](https://www.dailycred.com/api/local.json?ip=184.108.40.206)

<comment><USER4> Interesting. Do you know how the Accept Language header is calculated? I can imagine that it can also be used to track users as in [1]

1: [https://panopticlick.eff.org/](https://panopticlick.eff.org/)

<comment><USER3> It's in each browser request as a header - we just echo it back because it's not available to js.

[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)

</comment></comment></comment></comment><comment><USER5> For those who can't be bothered digging, uses [http://ip- api.com/json/](http://ip-api.com/json/)

For those who don't want their web service to rely on other web services, I recommend MaxMind's lite database, they have a fairly recent downloadable binary of IP to geographic coodinates.

</comment><comment><USER6> I've been using [http://freegeoip.net/](http://freegeoip.net/)

It's not perfect, but it seems to be good enough for my purposes.

         $ip = $_SERVER['REMOTE_ADDR'];
         $ua = $_SERVER['HTTP_USER_AGENT'];
            $ch = curl_init();
            // set url
            curl_setopt($ch, CURLOPT_URL, "freegeoip.net/csv/"    . $ip);
            //return the transfer as a string
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            // $output contains the output string
            $ip = curl_exec($ch);
            // close curl resource to free up system resources
            curl_close($ch);
         $array = explode(',', $ip);

<comment><USER7> Author of freegeoip.net here. It uses the db from MaxMind. Worth mentioning that the system is not only free but also open source, available at github.com/fiorix/freegeoip (currently written in Go)

</comment></comment><comment><USER8> A while back I needed a no-cruft way to get my IP reliably, so put this in my nginx config, to allow "curl example.com/ip":

http {

        # ...

        perl_modules /etc/nginx/perl;

        perl_require myip.pm;

        # ...

        server {

        # ...

          location = /ip {

              perl myip::handler;

            }

        # ...

        }

}

then in /etc/nginx/perl/myip.pm :

\---

package myip;

use nginx;

sub handler {

      my $r = shift;

      $r->send_http_header("text/plain");

      return OK if $r->header_only;

      $r->print($r->remote_addr() . "\n");

      return OK;

}

1;

\---

</comment><comment><USER9> Honestly, I have been around the block trying to find a decent company that provides either a database or api for looking up a location from an ip address.

It seems like every company from MaxMind to IP2Location and all of the others are accurate for some ip addresses, and severely inaccurate for others. And I think that will only become more and more common as all of the ipv4 addresses run out and there are hundreds to thousands behind the same ip address.

I've even tried crowdsourcing from four different ip to location sources and even then, sometimes all four return different cities and even states for a single ip address.

Is there any company out there that is actually fairly accurate (on a city basis)?

<comment><USER10> I am guessing this is why companies like Google have sourced their own info.

Geo-locating by IP will _always_ be an imperfect process because it's not actually geolocating the IP, it's geolocating the block owner.

My downtown Toronto office geo-locates as Kansas City in some cases because the org who owns the block is there. And I assume they are not keeping their records up to date as we have a /8 and I think they should be registering a sub-block or whatever it's called..

But there you go.

<comment><USER11> You have a /8? Are you Xerox? General Electric? :)

<comment><USER12> There aren't that many /8s. You could just go through them all and see which one is "in Kansas City".

</comment></comment></comment></comment><comment><USER13> I recently noticed that you could create your own "IP -> countrycode" lookup system by using the delegation tables provided by arin/ripencc/afrinic/...

It might not be very accurate, but it's a fun little exercise: [http://blog.marc-seeger.de/2013/09/07/ip-to-countrycode- with...](http://blog.marc-seeger.de/2013/09/07/ip-to-countrycode-with-ruby/)

</comment><comment><USER14> What about those of us that get easily excited over IPv6?

<comment><USER15> Is anyone collecting this info for ipv6? Netflix has me in the wrong continent...

</comment></comment><comment><USER16> For a fast GeoIP JSON API, you can try Telize which is open source and has a public API : [http://www.telize.com](http://www.telize.com)

It is built on Nginx + Lua so it has very minimal overhead.

Source code is on GitHub : [https://github.com/fcambus/telize](https://github.com/fcambus/telize)

</comment><comment><USER17> Are you subscribed to map box? It's fast no doubt, but why you didn't move to free alternatives to reduce cost?

<comment><AUTHOR> you are absolutely right. switched to google map

</comment></comment><comment><USER18> In general, the accuracy of geolocation is at 70-80% at the city level. We have researched and compare the data from several providers such as IP2Location, Maxmind, Geobytes and so on. The IP address can be freely reallocated to any postcodes within one or multiple cities so we think that the 70-80% is acceptable.

</comment><comment><USER19> Also available at [http://viewdns.info/iplocation/](http://viewdns.info/iplocation/). There's an API as well [http://viewdns.info/api/](http://viewdns.info/api/).

</comment><comment><USER20> What is the database behind all these geo IP providers? I see many APIs providing same functionality and results are the same. Is this database purchased from somewhere every time you want to do this?

<comment><USER21> Maxmind, probably. ([http://www.maxmind.com/](http://www.maxmind.com/))

</comment></comment><comment><USER22> Simple and cool! I'm starting to learn python so I'll definitely be looking through the source, thanks for posting, flask looks like a nice little framework to get started on

</comment><comment><USER23> If you want to take IP lookup one step further: [https://github.com/fourtonfish/HelloSalut](https://github.com/fourtonfish/HelloSalut)

</comment><comment><USER24> [http://geoiplookup.wikimedia.org/](http://geoiplookup.wikimedia.org/)

</comment><comment><USER25> Lol! Optus still calls its AS Microplex! Microplex hasn't been around in a decade and a half!

</comment><comment><USER26> Maybe include information if the IP is an active Tor exit node?

</comment><comment><USER27> Where can i find a copy of the database that is driving this?

<comment><USER28> Maxmind, [http://dev.maxmind.com/geoip/geoip2/geolite2/](http://dev.maxmind.com/geoip/geoip2/geolite2/), is one option. Look into their git-repo for clients to read into their proprietary (but effective) db-format.

</comment></comment><comment><USER29> Mine was accurate to within a half-mile, scary!

<comment><USER30> Mine is only 100m away - but then again, that's the location of the old GPO, which is usually used as the local "distance from X" position. I'm not sure about elsewhere, but here in Aus, ['road'] distance from A to B is the distance from A's post office to B's post office.

</comment></comment><comment><USER31> Is this on Github?

<comment><USER32> It literally says "fork me on GitHub" at the top right.

<comment><USER33> >It literally says "fork me on GitHub" at the top right.

It din't show up for me either. After a bit of investigating, it looks like Ghostery (and maybe AdBlock Plus too) sees Github ribbon as a tracker and automatically hides it.

<comment><USER34> Quite ironic given the nature of the page you were looking at, and the details that, presumably, DID show.

</comment></comment></comment></comment><comment><USER35> Creepily cool!</comment>


Ask HN: Have the non-tech self-employed been abandoned? - DanI-S

My mother in law is self-employed as a Tai Chi instructor. She doesn't have the time or the knowledge it takes to promote herself online. She is losing business because of her aging website, lack of SEO and limited knowledge of online advertising.
I suspect that her situation is shared by many thousands of others.
Does HN know where someone like her could find a trustworthy party who can evaluate her requirements and build the simple online presence she needs, at a cost that is appropriate for a very small business?
If nobody is doing this right now, what is the cause? Although the market is large, I suspect that those knowledgeable in online marketing and SEO can make far more working outside of the price range of people like my mother in law. On the other hand, the things she needs are elementary enough that they would be very little work for someone with the knowledge.
It seems like there should be an alternative for small business owners that beats hiring their neighbour's 14 year old son. <comment><AUTHOR> The only way to make this work is to offer small businesses a 'package' solution and not consulting.

Small business consulting sucks because of 1,000 reasons, but mostly because you aren't paid anything, aren't paid on time and are viewed more as a technology slave than a consultant.

The package idea gets around the later, but you still have payment issues.

</comment><comment><USER2> Right now I'm working on a startup called Get On Social, which addresses exactly the market you've identified. The premise is simple - reducing updates on Facebook Pages, Twitter, and LinkedIn down to the simplest means possible - a single daily email which prompts a business owner for updates with their business, at a reasonable price of $10/mo. This is a steal in comparison to the hundreds of dollars a month some small biz's are shelling out to "social media consulting agencies" which essentially act as a proxy for their business's message.

We're pretty limited in our features right now, but we've already gotten awesome reviews from the demographic you've mentioned, non-tech self employed who understand that there is a need to keep a good presence online but don't have the time nor desire to learn a new UI's, remember to log into multiple accounts per day, and determine what and how to post.

Some difficulties we've encountered are:

1\. The amount of support that goes into something as simple as signing up for a web-app 2\. Many business owners still don't trust using a credit card online and 3\. Require a face-to-face meeting before they make any decisions on something

It is definitely an undeserved market, but also one that requires more offline networking, development, and explanation - not just A/B testing a landing page and getting good links on popular tech blogs.

Link: <http://www.getonsocial.com>

</comment><comment><USER3> What do you mean by "evaluate her requirements and build the simple online presence she needs"?

If it's custom work based on a spec developed by interviewing her, it's going to take a while to do. It's probably not going to be "simple". Maybe simple off-the-shelf software will work for her though, how about Wordpress?

Actual SEO takes a long time to do and has a very long-term (re: months). This will be costly.

Can she afford online advertising? It's expensive (see yesterday's discussion of AdMob).

Sounds like at least a couple weeks of full-time work. How much would that cost at your mother's Tai Chi instructor rate? 80 x $50/hr? Many web consultants charge more. Even at $50/hr that's at least $4k + the inevitable extra time required.

Sounds expensive and not so simple. This probably will come off sounding really harsh about your question but cost is what it really comes down to. There's a gap between what people need to charge to make it work for them and what small businesses like your mother's are likely willing to pay. How can that be closed? Standard software. Not evaluating her requirements.

<comment> DanI-S It's certainly true that a fully custom solution costs more money than is available. However, there are only a finite number of custom solutions out there. Once you've built a solution for one Tai Chi instructor, a very similar solution will work for most other Tai Chi instructors, as well as Karate instructors and piano instructors and the guy who will teach you how to arrange flowers.

I think that a large enough organization (even a loose collective of individuals sharing best practices) could reduce per-customer overhead sufficiently to allow this to work at scale. With a collective memory of thousands of 'unique' (but only to a point) situations, it'd be far less costly to offer custom service.

</comment></comment><comment><USER4> I don't know much about marketing or SEO, these are merely the uninformed impressions I had when I read your post. Anyone who knows better, please jump in.

"She doesn't have the time or the knowledge it takes to promote herself online."

It sounds like her problem is less her web site, and more her lack of time or ability to market her business.

If she can't market her business, then an improved online presence would end up being an ineffective "build it and they will come" project.

A marketing web site is just a tool, and your mother in law should be actively using her tools, not buying them and laying them down.

<comment> DanI-S The 'online presence' referred to includes getting started with marketing, not just creating a web page in isolation - there are tonnes of companies out there who already do that.

When you're not making a huge amount per hour, but you need to support yourself, it just isn't possible to spend tremendous amounts of your precious time on learning how to do social media and SEO.

</comment></comment><comment><USER5> Well like...I'm in this market, DanI, but I've never considered tai chi instructors because I figured they don't have the kind of margins that would make it worth my time.

You're absolutely right, though, that working with your mother would give someone like me standardized assets and procedures that could be resold with minimal work to other tai chi instructors.

I think a3camero might be overestimating the time it would take to accomplish something like this, but I admittedly had never considered that industry for the reason he mentioned, ie: the price of the services your mother is offering.

</comment><comment><USER6> That sounds like a pretty good business opportunity. Simple SEO for small businesses.

<comment><USER5> As an info product or software?

</comment></comment><comment><USER7> The problem is that most of these people can't afford to pay a lot for this service.</comment>


Anand Kumar - The mathematician behind Super 30 - <AUTHOR> http://en.wikipedia.org/wiki/Anand_Kumar

<comment><USER2> Super 30 is a good initiative, but what the news generally masks is that his students enter IIT through reservation. In India, special seats are reserved for "backward castes", and these students typically do not need to score as high as "general" class students. Hence, his marvelous success rate in IIT JEE exam. No doubt, he has started a very special initiative worth laurels, but this little information also needs to disseminated.</comment>