WebKit is the jQuery of Browser Engines - <AUTHOR> http://ejohn.org/blog/webkit-is-the-jquery-of-browser-engines/ <comment><USER2> The web is not open and becoming increasingly less so.

People love to talk about how the web is about open standards and such, but it really is rather quite closed.

It's driven less by standards and more by de-facto implementations. Soon we can get rid of the standards committee and just talk to the implementers of webkit to define the "standard".

And I think even worse has been the wholesale discounting of plugins. I still strongly believe that being tied to JavaScript as really the only client side language is a mistake. It's not a great IL and limiting the language for such a pervasive platform is scary. I powerful plugin model would be, IMO, one of the best things to a truly powerful web.

I wish the web was more open. I wish that browsers were a truly extensible runtime that specified lower level abstractions, that allowed more innovation at the top of the stack.

It feels like we're walking into the dark age of the internet.

<comment><USER3> This comment captures a lot, perhaps not in the way Ken intended, but I feel compelled to respond.

Lets start with the thesis statement, _"The web is not open and becoming increasingly less so."_

On its face, this statement is not only false, it is painfully so. Sort of like saying the world is not round and becoming increasingly less so. To pretty much anyone they would say "the world is clearly round, and its impossible to change that." Similarly there is absolutely nothing standing between Ken, or anyone else, preventing them from building an entirely different "web" just like Tim Berners-Lee did back at CERN. So the definition of the word 'open' here clearly is needs some additional verbiage.

The next statement helps a bit, _"It's driven less by standards and more by de-facto implementations. Soon we can get rid of the standards committee and just talk to the implementers of webkit to define the 'standard'."_

This deliciously captures a debate that has raged for 30 years at least. "Which came first, the standard or the code?"

Back when I was young and impressionable, the debate was something called the "ISO 7 layer networking model" and "TCP/IP". You see the international standards organization had decided that the world needed a global networking standard, and so they got their best standards engineers together to come up with what they gloriously christened the "Open Standards Interconnect" or OSI set of protocols. Meanwhile a scrappy bunch of network engineers and hacker types were in this loose knit organization called the Internet Engineering Task Force who were building networks that spanned countries and they wrote code and brought it to the meetings and debated stuff that worked well and stuff that didn't work well, and then everyone went back and wrote more code, Etc.

The forces of evil ignored the IETF and focused on the ISO working groups, since the latter were making _standards_ and the former were just playing around with code.

As it turned out, working code tended to trump standards, and a process of debating changes to the system using working code vs debate using 'it should/it might' as opposed to 'version A does/ version B doesn't' meant that changes got made to standards based on a convincing argument that had never been tried or experienced in practice. The result was that the OSI standards had a lot of stuff in them to avoid issues that weren't issues, and were missing responses to things that actually _were_ issues.

A number of people found the 'code first, standard later' methodology superior for that reason. Assuming that the code was available and unencumbered by patent or licensing restrictions. The latter of course became a much bigger problem when the focus switched to the IETF and the 'big guns' started their usual games.

My first response is then, "open" means anyone can implement and contribute new stuff. And by that definition the web is very open. However, since the community favors a implementation model over a theoretical standards model the 'cost' to influence change is you have to write code, as opposed to making a good argument. And that disenfranchises people without good coding skills.

The second part of this screed is prefaced with this: _"And I think even worse has been the wholesale discounting of plugins."_ Which speaks to the other side effect of "open" as in "we don't make any boundaries we don't have to."

From a mass adoption point of view, the more variability you have in an experience the harder it is to capture the larger audience. This is why cars and motorcycles are all driven in basically the same way, Televisions have 'channels' and 'volume' and browsers have an address bar and bookmarks.

The unification of the structure allows for mass learning and talking in generalizations that remain true without device specific knowledge. Can you imagine how hard it would be to write a driver's code if every vehicle had its own customizable UI and indicators?

So as a technology matures the variability is removed and the common practices are enshrined into the structure.

What that means in a practical sense is that if you're trying to push the envelope in such a mature technology you will face higher and higher resistance. However, you are always allowed to create an entirely new way of doing things.

This isn't the 'dark age' it's the post renaissance start of the industrial revolution. Except instead of widely accessible books we've now got widely accessible information and a de-facto portal for accessing it.

<comment><USER4> You could argue that the IETF has become everything the ISO working groups used to be, and that 'rough consensus and running code' is long gone.

I seem to flip flop back and forth on this, personally. Some days the standards process seems bright and cheery, at other times, I fear Apple/Google/Microsoft are running the show.

<comment><USER3> _"You could argue that the IETF has become everything the ISO working groups used to be, and that 'rough consensus and running code' is long gone."_

Yes you could, I was there in the trenches trying to urge them not to go down that road. I really lost it when we had gotten Sun to release all claim to any rights to the XDR or RPC code libraries so that IETF could endorse it as an 'independent' standard. There were enough implementations out there, a regular connectathon which tested interoperability. Paul Leach, who made it his life's work to prevent any sort of standardization of RPC, successfully rallied Microsoft to overwhelm the otherwise rational members of the IETF and de-rail that process. It was so blatant, and so petty. I remember telling Vint Cerf that I marked that day, and those events, as the death of the IETF as a body with any integrity. Many working groups soldiered along and did well until they became 'strategic' to some big player, and then their integrity too was ripped out of them. Sort of like that movie 'Invasion of the Body Snatchers.' Very sad.

Over the years I've toyed briefly with starting a new networking working group.

</comment></comment></comment></comment><comment><USER5> I don't disagree but I also see it more as WebKit as the "Linux kernel" of browser engines. Safari and Chrome both use WebKit but are very different in what they offer.. so they're like the Ubuntu and RedHat.

Is it a bad thing that AIX and Solaris fell by the wayside in a rush to Linux? I don't think so. So neither should adopting WebKit as a sort of common kernel in browsers, IMHO. But that's all it is.. MHO ;-)

<comment><USER6> But Linux isn't even close to being the only kernel being worked on. Neither absolutely nor from a marketshare perspective.

<comment><USER7> What's your point? There's also Trident (IE) and Gecko (FF), just like there's NT and BSD.

<comment><USER6> There are dozens if not hundreds of kernels in development today. Some developed as small niche side projects. Some in proprietary embedded products. Some purely as research experiments. I do not see that type of diversity in browser engines and I think it is absolutely as important.

<comment><USER8> Diversity for the sake of diversity isn't going to get anywhere. That is basically gambling that something good will fall out of a different implementation just because it is different.

Instead, focus on solving problems. If the best way to solve a problem is to use webkit, then why do otherwise? If the best way is to go back and fork webkit from 2 years ago, and start your project from there, do that instead.

But don't be different just because you want to be different. Target your ambition toward something more meaningful.

<comment><USER9> difference ensure competition and variety of point of views. The problem with monoculture is that it _enforces_ the lack of difference. So if the guys in control of the monoculture stop progressing, or progress in a direction that you do not agree with, you're basically fucked and it takes enormous effort and time to change it.

It happens so many times and with so many things (not even software related) that I'm amazed it's not the first thing that comes to mind.

</comment></comment></comment></comment></comment></comment><comment><USER10> I disagree with much of this article.

> as a contributor to WebKit you have the complete ability to drive it in a > direction you wish (often for the better)

Not really. Follow the internal WebKit politics and you see a lot of conflicts. For example, Google wanted to push multi-VM support (for Dart) and Apple blocked that.

> WebKit is already a de facto standard

On _mobile_. Mobile isn't everything.

Also, should we have said "ie6 is already a de factor standard and given up"?

> I think one this is clear already: WebKit has completely and unequivocally > won mobile at this point. They are nearly the only rendering engine used on > the vast majority of mobile browsers, including the soon-to-switch Opera > Mini/Mobile browsers too. There is no reason to worry about a slippery > slope, the slope has already been slid down. In order for any other browser > to remain relevant in the world of mobile (which, you must admit, is quickly > becoming the only world we live in) they must keep feature parity with > WebKit.

Again, this is utterly defeatist. Even if it were 99% true, should everyone give up?

> At this point it's honestly a business/engineering decision for Mozilla and > Microsoft (as it always has been).

No, Mozilla is a nonprofit and the decision would also regard whether it is _good for the web, or not_. I'm surprised to see John Resig not realize that - he used to work at Mozilla.

edit: And regarding the main point: jQuery worked in a space that was not standards-based. There were multiple JS libraries, and they fought for market share. No one tried to develop a standard that there would be multiple implementations for. Comparing jQuery to WebKit is odd.

<comment><USER9> "On mobile. Mobile isn't everything." And.. mobile is not nothing. mobile is huge.

<comment><USER10> Agreed.

</comment></comment></comment><comment><USER11>
      In the case of JavaScript libraries virtually everyone has
      standardized upon jQuery at this point.

This guy really lives on his own planet. Maybe most websites that only need to add a small piece of JS functionality are using jQuery, but I seriously doubt that "virtually everyone" writing large JS projects is using jQuery. Google Closure Tools, Sencha/ExtJS, and MooTools remain quite popular, and a host of developers are skipping compatibility layers altogether and only supporting IE9+ and other recent browser versions, particularly those targeting mobile devices.

<comment><USER12> I don't think this is particularly controversial opinion to have at this point: <http://trends.builtwith.com/javascript/jQuery> <http://trends.builtwith.com/javascript>

<comment><USER11> Most websites fall into the former "only need to add a small piece of JS functionality are using jQuery" category. A whole lot of websites include jQuery in default frontend templates and don't even use it on the public- facing website (Drupal, WordPress, other software that has a huge installed base).

Vague deployment statistics mean very little.

<comment><USER13> Clearly you have some kind of issue with jQuery but just because you don't like it doesn't make it any less popular, useful or prevalent. Here's a fun drinking game - open up the top 1000 websites and do a shot for each one that uses jQuery. You will be in hospital by about #20 I think.

<comment><USER11> None of the top five websites use jQuery.

Of the top 20, I've got one fifth of them using jQuery: Amazon, eBay, Wikipedia, and MSN. Not in the hospital yet.

<comment><USER14> I just checked Amazon, eBay, and MSN they use jQuery.

The only one you listed that doesn't seem to is Wikipedia. You really should actually _try_ the websites before you list them.

<comment><USER11> You ought to read comments before replying to them. I clearly said that only those four are using jQuery, and that the remaining sixteen do not. I checked all of them by hand before stating this, except for Wikipedia because it is common knowledge that MediaWiki uses jQuery.

Also, your idea below about sniffing for $ is a bit embarrassing. Firefox, Chrome, etc. have come with $ for many years as an ID or query selector, and it has nothing to do with jQuery. Prototype and MooTools also provide $, and probably a dozen or more similar libraries you haven't heard of.

<comment><USER14> you ought to read comments before replying to them.

I clearly said you can _not_ just check for `$`.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I like the arguments: "Don't worry about <x bad thing> happening, because it's already happened!"

<comment><USER12> Pretty much! People worry that the transition to a WebKit monoculture would result in some terrible things. On the contrary Chrome has shown that a shared rendering engine does not result in stagnation. Stagnation is a separate concern from a shared core.

<comment><USER16> On desktop the only browsers that use Webkit are Chrome (about 1/3 of the market), Safari (about 1/10) and now Opera (currently unreleased). So roughly two thirds of the market are on non-webkit engines which I think contradicts your argument as there's still competition there.

However, on mobile (a market which Chrome has only just entered) you could say that webkit is dominant and that we can already see problems there. To be honest though, I think that's misleading. Mobile Safari has been ridiculously dominant compared with other webkits, in mind and marketshare, and it's _that_ monoculture causing the problems we currently see.

Serious new contenders like Chrome and Opera entering the mobile market with webkit renderers will, I think, actually help that situation to some degree by actually competing with Mobile Safari and not being half-hearted also-rans.

<comment><USER17> According to Statcounter.com's current numbers, Chrome is 36.9%, Safari is 8.57%, and Opera is 1.2% = 46.67%, leaving 53.3% for everything else. That's not "roughly two thirds".

Also, Safari and Chrome are both trending upwards, everything else is trending downwards.

<http://gs.statcounter.com/#browser-ww-monthly-200807-201302>

<comment><USER18> When it comes to mobile, "everything else" is the android default which is also webkit.

</comment></comment></comment></comment></comment><comment><USER19> Increasingly, jQuery is not just an implementation, but is rather an API. That's why we're seeing the rise of alternatives like zepto.js that match the jQuery API de-facto standard but are implemented better (smaller, dropping IE6 compatibility).

Replace "jQuery API" with "Web API" and this actually argues against John's point. Multiple implementations are better for everyone.

<comment><USER12> I'm not sure Zepto could be defined as "better" considering that it only implements a small subset of the jQuery API. In the browser world you can't get away with implementing a small subset of a specification, it'll be consider broken and people won't use it.

I'm not arguing against multiple implementations. If Mozilla were to switch to WebKit, rewrite its DOM implementation to be 20x faster, and then release that -- that would be absolutely stupendous! Much in the same way that the Chrome team created a new JavaScript engine that was much faster than Safari's JS engine. I am arguing that the writing is on the wall for the common parts of a browser. A browser vendor's time will be used much more efficiently by collaborating with each other on the implementation instead of writing a number of separate implementations.

<comment><USER19> "If Mozilla were to switch to WebKit, rewrite its DOM implementation to be 20x faster, and then release that -- that would be absolutely stupendous!"

Rewriting WebKit's DOM implementation to be 20x faster wouldn't be possible without rewriting WebKit. The DOM implementation is one of the most central parts of any rendering engine. We're working on doing that (Servo), but not by building on top of WebKit for precisely this reason.

"Much in the same way that the Chrome team created a new JavaScript engine that was much faster than Safari's JS engine."

They did that by _replacing JavaScriptCore wholesale_ , rather than building on top of it. This was only possible because JavaScript is a standard, not defined by JavaScriptCore's implementation. If JSC had had a monopoly and the Web started relying on JSC's quirks, then V8 might never have happened.

</comment></comment></comment><comment><USER20> In the past there was some amount of competitive advantage in owning the rendering/browser engine. You could add unique features, fix things your competitors wouldn't, whatever.

These days performance is heavily driven by the javascript runtime. While it's challenging to write a browser engine, it is much much more challenging to write a really fast JIT'ing javascript runtime. It seems unlikely Opera would have been able to close the gap, much less surpass, with WebKit on that front.

At that point, any competitive advantage they hold in features is being offset in a fairly substantial performance penalty. Good move making the switch. Differentiate elsewhere.

<comment><USER21> Correct me if I'm wrong (and I very well may be), but isn't the JS runtime separate from the rendering engine?

I was under the impression that Chrome uses WebKit for rendering and V8 for JS.

So, even if Opera switches over to WebKit, that shouldn't affect JS.

<comment><USER22> You're right. The point he is making is that there is no need to maintain a rendering engine if it is no longer a point of differentiation when you can focus your efforts on improving the features that make your browser stand out.

<comment><USER21> Ahh, looks like I misunderstood, thanks.

But will developers/users really flock to Opera just because it has a fast JIT? For me, Opera is just something to check for compliance.

<comment><USER23> > But will developers/users really flock to Opera just because it has a fast > JIT? For me, Opera is just something to check for compliance.

I think it's the reverse: users will like Opera if it has UI features they like. It's highly unlikely that Opera would be able to beat Chrome / Safari on speed but there's plenty of room for innovation in other areas now that the web is becoming fast enough for most users.

Not having to support a modern browser engine just be able to start those features is the major win for Opera because they can focus on things users actually care about rather than obscure feature compatibility or baseline competitive performance.

</comment></comment></comment></comment></comment><comment><USER24> "This page best viewed in Internet Explorer".

Remember those days? This is not a good thing. The HTML spec should be the standard, not WebKit's bugs.

<comment><USER14> The difference is that WebKit is open source with several large companies contributing to it. If it doesn't follow the HTML spec you (or anyone else) can fix the bug.

IE was closed source and Microsoft disbanded the team that developed it (IE6). If it had a bug, there wasn't anything you could do about it. You just made your site work around the bug, possibly breaking it on other browsers.

</comment></comment><comment><USER25> Not to derail the topic, but did anyone else read that headline as a negative, only to find that it wasn't (necessarily)?

<comment><USER26> Maybe it depends on what your view of jQuery is:

 _In the case of JavaScript libraries virtually everyone has standardized upon jQuery at this point._

In other words, as far as he cares things other than jQuery don't have a right of existence. Although it's very popular it's probably even more arguable if there aren't better JavaScript frameworks than jQuery, compared to whether there are better rendering engines than WebKit.

I believe it comes pretty close to illustrating what I believe is so wrong about his arguments.

<comment><USER12> Are there better JavaScript libraries than jQuery at certain things? Absolutely -- look to Backbone, Angular, Meteor, etc. etc. Are they better than jQuery at doing DOM manipulation? I think that's an easy argument simply by looking at the numbers: <http://trends.builtwith.com/javascript/jQuery>

jQuery or WebKit being dominant platforms doesn't requite that innovation stop, it gives innovation the ability to explode: When you don't have to work about nit-picky cross-platform capabilities or standardization then you get to focus on performance and building sweet frameworks like Backbone and Angular.

<comment><USER11>
      I think that's an easy argument simply by looking at the
      numbers

Popular does not imply "better."

<comment><USER27> Popularity is highly correlated with quality.

Given that A is 10-100x more popular than B, what are the odds that B is "better" than A? Slim.

Now, popularity does not imply that something is the best. Often times there is something better that isn't as popular. But generally the popular thing is better than most alternatives.

<comment><USER28> Popularity is no correlated with quality, more with "good enough for the price".

</comment></comment></comment></comment></comment></comment><comment><USER29> WebKit and jQuery -- and Bootstrap -- are becoming the new 'Win32 API.'

<comment><USER30> The cool part about jQuery is that I _don't have to use it_. Same with Bootstrap. So it's not a needless tyranny.

With browser engines things get a little more political - mono-culture is not a good thing. But at least Firefox holds enough of a market share, and of course IE is now a much better player in this space - so WebKit can't get away with too much silliness.

<comment><USER31> Theoretically yes, mono-culture is not a good thing. Having more from-scratch rendering engines would be good for the robustness of web standards. However web standards are hugely complex at this point and it becomes increasingly infeasible to implement from scratch. With WebKit at least you have an open- source pluggable engine, so you're not talking about branded product monopolies where one or two bad actors can foul things up for everyone. An IE6-like scenario is completely impossible with WebKit.

<comment><USER32> This has always struck me as a really poor argument. For one thing, because webkit itself is by far the youngest rendering engine around and also among the most complete. You can't reasonably argue both for a webkit monoculture _and_ an unreasonably high barrier to entry.

Gecko was an open source ostensibly pluggable engine (even MSIE is pluggable, in fact), so why did we need webkit to bring about the monoculture? Would advocates of it have been satisfied if it had come about then? Probably not, and rightly so, because Gecko has stagnated, as most large codebases managed by people with specific interests do.

And we are talking about branded product monopolies here. Should Google and/or Apple fall behind who's going to take up the cause of moving things forward again? People don't use webkit, they use Chrome and Safari.

<comment><USER31> What do you think exactly is my argument? I'm just talking about the way things are, not some ideal that I'm holding up. Also, your commentary has major holes in it:

> _webkit itself is by far the youngest rendering engine around and also among > the most complete_

WebKit was formally released by Apple almost 8 years ago after being in development secretly for at least a couple years before that. That encompasses the entire era of the modern mobile web. It was based on KHTML which I believe was released in the late 90s, in an era when CSS was barely off the ground and not used in any meaningful capacity by web designers of the time. That's the same era when Gecko was first developed and released as a clean break from the previous Netscape rendering engine which was deemed a dead-end from an engineering standpoint. So no, WebKit is not new.

> _Gecko was an open source ostensibly pluggable engine (even MSIE is > pluggable, in fact), so why did we need webkit to bring about the > monoculture?_

I don't know, but neither Gecko nor IE was ever meaningfully used as a pluggable engine in a major consumer product outside of the original organization's control. I don't know if there were technical reasons why they were never embraced on a wider basis, but they weren't, therefore they are not very informative on the question of what happens with an open-source rendering engine monoculture when multiple large parties and user bases are relying on it.

> *Should Google and/or Apple fall behind who's going to take up the cause of > moving things forward again? People don't use webkit, they use Chrome and > Safari.

This sentence is hard to argue because it's a non-sequitur. First of all, anyone can take up the torch any time. The only time this hasn't happened in the history of the web was when Microsoft has a monopoly and their core interests were being eroded by the web. Unlike IE, WebKit is LGPL, so anyone is free to start innovating from the current state of the art. As to the second point that people use Chrome and Safari, that's not entirely true. On Android for instance the default browser is not Chrome. Also, WebKit is being embedded in all kinds of devices. But beyond that, does the fact that people use Chrome and Safari give Google/Apple to the power to hold innovation hostage? First, they are competitors, but even if they colluded, it would be very hard for them to hold off the whole market if everyone else's web browsers were getting better and better. This is not the Windows-monopoly- plus-unsavvy-consumer market of the early 2000s. Everyone is used to computers now and in the web era they won't be corralled into an inferior platform by sheer business inertia.

<comment><USER32> I did not say it was brand new, but it is the youngest and that's inarguable. It's pre-webkit state also was not exactly much to write home about, and I say that having been a user of Konqueror back in the day.

Google seems to be replacing the AOSP browser in Android with Chrome, btw.

I think you underestimate the non-technical cost of entry of a new browser by a lot while overestimating the technical. I'm not saying that it's a small feat to make a compliant browser by any means, but if a non-Google company were to attempt to market a new browser the way Google did (including ads of equivalent value to links on Google's front page), it would be absurdly expensive. There's a reason all the dominant and growing players in this space are massive corporations: a plucky underdog stands little chance against Google, Apple, or Microsoft. So who else's browsers would they have to hold off exactly?

<comment><USER31> No, it's only 15 years old out of 20 years of the history of the web. Sheesh.

</comment></comment></comment></comment></comment></comment></comment><comment><USER33> I look at the who the author and hesitate to disagree, but I've had better experience in some areas with Firefox on Android (notably webgl) than I have had with Chrome / Chrome Beta.

Personally, aside from a few small wrinkles, I prefer the experience of using Firefox over Chrome on Android.

</comment><comment><USER34> I think it is obvious that WebKit has won and by a margin when it comes to browser engines.

For Opera it is the best move for them. They can now focus the majority of their development time on making the browser great instead of putting a decent chunk of their development time in effectively replicating what WebKit does. I think in the coming year or so Opera will be become a far better browser for it.

As for Mozilla and IE. You would expect Microsoft have more than enough resources to keep working on Trident/Lynx whatever it is called.

For Mozilla is their OS tied to their own engine? I don't know how committed they are to it. For all the releases of Firefox tabs still aren't sandboxed and phpmyadmin often freezes the entire browser when looking at monster tables... perhaps they would benefit from spending more time improving the browser and less time working on rendering.

I wonder what would have happened if Microsoft, Mozilla or Opera had open sourced their browser engine with WebKit. Perhaps we would have seen a split and more competition in this area.

Now it is who has the $$$ to continue to develop their own propriety engine.

<comment><USER26> _I don't know how committed they are to it._

Extremely, especially in this context. The reason why Opera is switching (web compatibility issues if you're not the dominant implementation) is exactly the reason why Mozilla would fight a switch with tooth and nail - and remember that unlike Opera they cannot care for profit when doing so.

Here's an extensive reply from a Firefox developer: [http://www.quora.com/Mozilla-Firefox/Will-Firefox-ever- drop-...](http://www.quora.com/Mozilla-Firefox/Will-Firefox-ever-drop-its- Gecko-layout-engine-to-adopt-WebKit)

 _I wonder what would have happened if Microsoft, Mozilla or Opera had open sourced their browser engine with WebKit._

I have no idea what you mean.

<comment><USER35> He means that there are different parts of a browser you can focus on and innovate there. If the rendering engine was 'out of the way", and didn't have to worry about that part, they could focus a lot more on other stuff.

Right now Microsoft has to focus on making Trident catch-up with webkit, and it's _still_ 2 years behind webkit in HTML5 features. Go to html5test.com and see how far IE10 is. It's more behind than Chrome 10 was when IE9 launched 2 years ago.

</comment></comment></comment><comment><USER36> "I don't think anyone can successfully argue that Chome/Chromium isn't a better browser than Safari [...]"

That sounds like Chrome was somehow superior to Safari. Chrome has some nice features that Safari lacks (and vice versa) but from _browser engine_ perspective they are definitely on par.

<comment><USER37> That stuck out for me as well, I could argue that Chrome isn't a better browser than Safari _for me_ , but functionally they're both using WebKit so they render sites identically in most cases.

<comment><USER12> Except when it comes to the JavaScript engine. Safari's JS engine is the slowest out of Chrome/Firefox/Safari: <http://arewefastyet.com/>

<comment><USER37> I'd still argue that Chrome isn't a better browser _for me_ , irregardless of JS processing speed.

</comment></comment></comment></comment><comment><USER38> I wouldn't say mobile is the only world we live; that's a bit of a stretch for me.

</comment><comment><USER39> Boring. They can switch to Gecko with IPC embedding for a change: <https://wiki.mozilla.org/Embedding/IPCLiteAPI>

</comment><comment><USER40> I find that funny because even if you add up everything WebKit, Gecko+IE+Opera+Others still have a higher browser share. And most of the "large parts" of the world don't even really use WebKit (I'm looking at China, India, Africa, parts of Europe etc) most of which are IE/Gecko/Opera

<comment><USER26> Mobile.

</comment></comment><comment><USER41> <https://html5test.com/results/desktop.html>

Why does Firefox do so poorly? ;_; Mozilla is such a good organization (but to be fair can only survive with Google).

<comment><USER42> Because much of what it tests isn't in HTML5. Some of what it tests isn't even standards track (e.g. WebSQL). The tests are also usually pretty superficial and test things like "does this property exist", not "does this feature work".

</comment></comment><comment><USER43> I know this is OT, but how hard would it be to create a thin layer so that WebKit run on bare metal?

<comment><USER44> Mozilla is doing this with Gecko. Google is sort of doing this with Chromebooks (AFIK). There is little to no incentive for Apple or Google to do this on their flagship products of iOS and Android since they already have dev ecosystems using objective c and java respectively.

</comment></comment><comment><USER45> I'd say the big risk with webkit which no-one is addressing is that it's LGPL not GPL. Someone could get a dominant position and use a closed fork of it. (The fact that Apple open-sourced Webkit is to its credit.)

<comment><USER46> The LGPL doesn't work that way. You can't fork WebKit and keep your changes closed unless you don't distribute your browser to anyone. Now, you could use webkit along with (for example) a closed Javascript runtime, but that really has nothing to do with WebKit itself.

<comment><USER45> Right, my mistake, but you can effectively borg it.

</comment></comment></comment><comment><USER47> Great points. Nice read.</comment>


Did I get a sponsored post on Hacker News? - <AUTHOR> Today I've been researching the company "Flexport", googleling it a lot. A few moments ago I discovered that a Flexport post about hiring developers appeared on my Hacker news main feed (see link below) - and I'm not able to view who posted it or up/down vote it. Is this a sponsored post?<p>https://imgur.com/8gyqN0P <comment><USER2> It's probably not sponsored, I've never googled the company and I'm also seeing hiring posts on the front page even today. It's possible it is backed by YCombinator, in which case they often post those postings here.

<comment><AUTHOR> Ok, just finding it strange with the amount of search I've conducted today - wondering if my IP/search is matched with me and shown as "relevant" post but might just be a freaky coincidence. Looks like ad-stalking paranoia is a real thing!

<comment><USER3> They are the same ads for all users. It's only a coincidence. The list of all (the recent) post is in [https://news.ycombinator.com/jobs](https://news.ycombinator.com/jobs)</comment></comment></comment>


Back to the Mac? 12 features from iOS I'd like to see in Lion - <AUTHOR> http://cocoawithlove.com/2010/11/back-to-mac-12-features-from-ios-i-like.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+CocoaWithLove+%28Cocoa+with+Love%29&utm_content=Google+Reader <comment><USER2> The other points seem pretty valid [1] but points 1-3 and 8 appear to be prime candidates for category extensions. I'm aware of their drawbacks but they could be applied here with little inconvenience and they dilute an otherwise interesting article somewhat. (I almost gave up reading after reading the first 3 complaints in what appeared to be pure API bitching)

[1] I have almost zero experience with "grown-up" Cocoa and plenty with iOS, but assuming their factual correctness, they seem valid concerns.

<comment><USER3> API is a very important aspect of a platform, so I think "API bitching" is still valid complaint.

Improvements in Cocoa Touch make parts of Mac Cocoa look old and needlessly complicated. That's definitely a problem that needs addressing.

Categories can patch some of that, but you still have to write ugly code once, and categories are not as elegant as fix in the API itself (e.g. you have to use odd/prefixed method names in categories to avoid collision with potential future API).

<comment><USER4> _Categories can patch some of that, but you still have to write ugly code once, and categories are not as elegant as fix in the API itself (e.g. you have to use odd/prefixed method names in categories to avoid collision with potential future API)._

If the API is really obvious then this doesn't matter, since the category will simply replace the API method with something that does exactly the same thing.

For example, there's no real need to prefix a category implementation of -cgColor because it couldn't conceivably do anything else.

If it really bothers you, then you can use the runtime to load methods into NSColor, first checking to see if they exist.

</comment></comment></comment><comment><USER5> I wish Lion would protect me from pornography and dangerous apps like iOS does.

<comment><USER6> I assume you've disabled Safari then?</comment></comment>


Ask HN: Cheddar iOS app analogue for Rails? - <AUTHOR>

Cheddar(https://github.com/nothingmagical/cheddar-ios) is a great way to see some professional level Obj-C/iOS code in the wild. Is there an equivalent for Rails? Hartl's app is too elementary, though Diaspora(https://github.com/diaspora/diaspora) seems promising? <comment><USER2> Check out Spree: <https://github.com/spree/spree>

Also, you might find the rails app composer helpful: <http://railsapps.github.com/rails-composer/></comment>


The volume is too damn high - <AUTHOR> http://blog.42floors.com/volume-damn-high/

<comment><USER2> Earplugs! I bought a box of foam earplugs that has supplied me for years now. I cut them in half; half an earplug is the perfect length for unobtrusive everyday wear.

I have quantities of half-earplugs stashed in all my pants pockets, in my car, my work bag, and in a little container on my keychain. I wear them in the car, on planes, at the shooting range, when grinding coffee, and _escpecially_ when putting away dishes. Fucking clanging-together dishes are the loudest things I encounter in my regular routine.

For my kids I bought silicone putty plugs. They work perfectly for little ears, and I keep them with the foam plugs. My kids know where the big orange jar of earplugs is, and they've acquired some of my discipline.

</comment><comment><USER3> The author could have at least read the OSHA regulations before imploring airline employees to complain.

On the (fairly safe) assumption that cabin announcements total no more than two hours per day, the noise levels he reported are well within the permissible exposure limit. The author might find them unpleasantly loud, but OSHA deems them to be perfectly safe.

[https://www.osha.gov/pls/oshaweb/owadisp.show_document?p_tab...](https://www.osha.gov/pls/oshaweb/owadisp.show_document?p_table=standards&p_id=9735)

</comment><comment><USER4> > opened the decibel meter on my iPhone.

Really? What's the effective dynamic range of the iPhone mic?

<comment><USER5> Here's an interesting post at the CDC on this very topic:

[http://blogs.cdc.gov/niosh-science-blog/2014/04/09/sound- app...](http://blogs.cdc.gov/niosh-science-blog/2014/04/09/sound-apps/)

<comment><USER6> The app I used ("Decibel 10th") was not one of the benchmarked apps so I will switch to using two of the tested apps for future measurements.

<comment><USER7> Just get a real recorder like a Zoom or Tascam, they are cheap and miles better than any phone.

</comment></comment></comment></comment><comment><USER8> While I am sort of understanding for high volume for emergency announcements, the routine safety messages are routine, and even worse, the PA announcements are often advertising for the airline or other uselessness.</comment>


Wells Fargo passwords are not case sensitive - <AUTHOR> https://www.reddit.com/r/personalfinance/comments/66n4li/i_just_discovered_that_wells_fargo_account_login/ <comment><AUTHOR> OP Here, I just tested this, the passwords aren't case sensitive, and google[0] and HN[1] says this was known in 2012..

The HN discussion is a little more dismissive of case sensitivity, so I'm wondering if I should be so worried anyway.

[0][https://www.google.com/search?q=wells+fargo+password+not+cas...](https://www.google.com/search?q=wells+fargo+password+not+case- sensitive&oq=wells+farg)

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

</comment><comment><USER2> Unbelievable. There have to be laws for security.</comment>


Ask HN: What will post-git version control look like? - <AUTHOR>

After CVS and Subversion we are in the Git-epoch. What will be the next thing? Is there something on the horizon, like the DVCSs that predated git? <comment><USER2> CVS and Subversion is a bit beyond my time and I never had a chance to use them. Mercurial seems to be getting steam?

<comment><AUTHOR> To elaborate: RCS, CVS, Subversion and Git (moreover Hg, etc.) represent a generation of Version control, each revolutionizing the way we work with source control.

RCS introduced version control

CVS introduced version control with code exchange on a server

SVN introduced version control with atomic committing and repository wide file versions (as opposed to file-specific revisions).

To me it seems that HG is in that sense very close to Git. However I do wonder what might be the next revolution

The Git/Hg generation popularized decentralized version control and made code- sharing easier than ever.</comment></comment>


Oracle underpaid women and minority workers by $401M – Labor Department - <AUTHOR> https://www.businessinsider.com/labor-department-oracle-shorted-women-minorities-by-400-million-2019-1 <comment><USER2> Oracle is an underperformer, not an efficient company, mismanaged...list goes on!

I used to want to work there, but now I'm pivoting to smaller tech companies, better growth potential</comment>


Low Cost, High Performance, Strong Security: Pick Any Three [pdf] - <AUTHOR> http://assets.en.oreilly.com/1/event/22/High%20Performance,%20Low%20Cost,%20and%20Strong%20Security_%20Pick%20Any%20Three%20Presentation.pdf

<comment><USER2> Cross-reference: <http://news.ycombinator.com/item?id=1869337></comment>


India Hacks – HackerEarth – Amazing prizes, open to foreign participants too - <AUTHOR> http://hck.re/LpIQWk <comment><AUTHOR> HackerEarth's flagship event IndiaHacks is back and this time it's bigger than ever. From being one of the largest annual programming contest, IndiaHacks is now going to be a massive month long coding extravaganza.

Register here: [http://hck.re/LpIQWk](http://hck.re/LpIQWk)

There are 9 different technology tracks in which you can participate -

* Algorithms

* Bot Challenge

* Machine Learning

* FinTech

* Internet of Things

* Game Development

* Open Source

* Online Commerce

* Travel and Transportation

Apart from the big, all expenses paid trip to SF for the winners of every programming track, there are some other amazing prizes too [http://i.imgur.com/9iq9fwV.png?1](http://i.imgur.com/9iq9fwV.png?1)</comment>


Show HN: Visual Search using features extracted from Tensor Flow inception model - <AUTHOR> https://github.com/AKSHAYUBHAT/VisualSearchServer <comment><AUTHOR> Inspired by the Pinterest paper at KDD on implementing Visual Search, I have created this barebones but functional implementation of a Visual Search server using ~450,000 Female Fashion images crawled from an image aggregation website. The code uses Pool 3 layer features extracted from the Google's latest Inception model using Tensor Flow. The extracted vectors are then indexed using an Approximate Nearest Neighbor implementation from Nearpy. The AMI provided contains both images and pre-computed vectors.

In future I plan to add more images ~2 Million in the same domain. Test various combination of nearest neighbor indexes and multiple vectors per images using some form of a multibox style detector. I will also add a script to launch spot GPU instances via Cloudformation to economically index images using S3 and SQS. I am building a companion iOS swift app however, since Tensor Flow hasn't been ported to iOS yet, its still in development.

[https://engineering.pinterest.com/blog/building-scalable- mac...](https://engineering.pinterest.com/blog/building-scalable-machine- vision-pipeline)

</comment><comment><USER2> The papers is really good and it is very interesting story. The [https://reviews.clazwork.com](https://reviews.clazwork.com) is making the documents for the students

</comment><comment><USER3> That's pretty nice. I thought that the Pinterest implementation used VGG?

<comment><AUTHOR> According to their KDD paper, they showed modified / trained alexnet performing as good as VGG with significantly less computation time. Not sure what they actually use in practice.

[http://www.kevinjing.com/visual_search_at_pinterest.pdf](http://www.kevinjing.com/visual_search_at_pinterest.pdf)

<comment><USER3> That sounds like it makes sense, right?

I beleive that most of the strength of VGG (and Inception) vs Alexnet is that it was able to learn the feature relationships better, not because it learnt better features.

VGG is pretty computational intensive, which is why Google concentrated so much on the computational complexity for GoogLeNet/Inception/ReCeption

So if you are just using the features directly then it would make sense to use whatever was the quickest to compute.

<comment><AUTHOR> Yes, being able to compute quickly is especially important in reducing query latency, much more so than during indexing. What stood out for me in the paper was that out of box performance of VGG (trained on imagenet alone) was as good as fine tuned alexnet.

I am interested in assessing if there are any tricks that could be used when querying from a mobile device. In such cases feature extraction can be performed on the device itself, with only feature vectors sent over the network. In case of pinterest, another special case is that a lot queries are performed on images already present in the system. The user simply readjusts the bounding box to highlight the object of interest. In this case they can simply pre-compute 4~20 crops per image. Online feature computation is much more expensive / complicated than offline.

<comment><USER3> TensorFlow runs on Android, right? And AlexNet runs on an RaspberryPi, so it should be fine on a phone.

But it would be interesting to know if that is better. I'd imagine most phones have some kind of hardware support for resizing images, so it might be better to take advantage of that and then do feature extraction on a server?

<comment><USER4> Contemporary phones (e.g. iPhone 6S) are capable of running GoogLeNet at 1 FPS, see, for example, this demo (mine): [https://github.com/krasin/MetalDetector](https://github.com/krasin/MetalDetector)

AlexNet will run at ~10 FPS, I guess.</comment></comment></comment></comment></comment></comment>


Instapaper's Bookmarklet API request for Mobile Safari - <AUTHOR> http://www.marco.org/1288715399 <comment><USER2> The absolute simplest way to get the Instapaper "Read Later" bookmark into Mobile Safari is to add it to Safari on your desktop and then have iTunes sync your bookmarks across to your iOS device.

<comment><USER3> I was suggesting the same thing. This is the way I have automagically found the "Read Later" bookmarklet on my iOS devices.

</comment></comment><comment><USER4> "The best way to solve this problem is to eliminate the need for hacky bookmarklets entirely: Add a proper registry of apps that can accept URLs from Safari"

I disagree that this is the best way to solve the problem: it would restrict availability of integration with Safari to native apps, leaving pure web- hosted apps at a disadvantage. Why should every web-hosted app that handles URLs have to produce an iPhone app just to lower the user-experience hurdle? And bear in mind that the app won't have access to cookies set in Safari, so the user will need to authenticate themselves twice - once in Safari, once in the app.

I think the best solution would be one completely within Safari - window.external.AddFavorite or something similar.

<comment><USER5> > I think the best solution would be one completely within Safari - > window.external.AddFavorite or something similar.

But then, what of native applications? And what if you _actually_ just want to send a URL to an other native application? Also, AddFavorite (terrific casing from the MSIE team here) with arbitrary JS?

Also, if the registry/send to method works with offline web applications, then there is no restriction, the site "just" need to bundle a small offline webapp able to handle the information (not sure if there is any specified way for the OS/shell to send data to offline web applications though)

</comment></comment><comment><USER6> They can improve their current procedure by using this technique: <http://joemaller.com/___>

1\. Append bookmarklet as suffix to a short URL 2\. Tell user to visit that page and bookmark that URL 3\. Instruct user to edit that bookmark and delete the prefix of that URL

This removes the step of asking user to copy the URL from a textbox. Plus, if the user misses the step of removing the prefix portion of the URL, clicking that bookmark will direct them to the instruction page.

But yeah, the process still stinks.

</comment><comment><USER7> Two other solutions:

1\. Support Safari extensions in Mobile Safari. Users install it from the gallery, get a nice little icon to tap in the toolbar.

2\. Support an HTML tag in the head, like web browsers do to detect feeds today. Something like <link rel="bookmarklet href="javascript:location.href...">. The browser would detect this, display some sort of notification icon in the address bar, and give the user the option to install it upon tap.

</comment><comment><USER8> This is the type of thing that concerned me about Mobile Safari and Flash. It's not that I care so much about Flash being on the iPhone/iPad (it'd be nice if it could work well though), it's that they're preventing all browser plugins and extensions. HTML5 is great, but standards tend to become standards by adopting the innovative third-party addons. Mobile Safari seems far too locked down at this point.

Same goes for the iPad's Mail App. I'd love to use it, but until I can add my own Archive button (I use MailActOn with OS X), it's far too tedious for managing my inbox (just use it for skimming).

<comment><USER9> 4.2 in November should include an "Archive" button for Gmail accounts.

<comment><USER8> That's great news. Any idea if it'll work for IMAP/Exchange accounts that have an Archive folder? For Gmail, I just use the web iPad interface (which, in my opinion, is nicer than the Mail app).

</comment></comment></comment><comment><USER10> "The best way to solve this problem is to eliminate the need for hacky bookmarklets entirely:

Add a proper registry of apps that can accept URLs from Safari, recognized by an Info.plist key, and add a "Share" or "Send To" panel to Safari that allows users to easily send the current page's URL to any capable apps."

This is what Android has been doing for a while. When I switched from the iPhone to Android I realised how much this sort of message passing between apps can improve the productivity of the device.

<comment><USER5> > When I switched from the iPhone to Android I realised how much this sort of > message passing between apps can improve the productivity of the device.

iPhone has always[0] supported message passing between apps, based on URI schemes.

What it doesn't support is Safari sending URLs to third-party applications registered against the `http` scheme (a `redispatch` feature, basically).

[0] Or for a very long time anyway, but I think it's been there since the release of the original SDK.

</comment></comment><comment><AUTHOR> After I read this, I submitted a new enhancement request to Apple citing my reasons for needing this feature and pointing them to Marco's blog post for specific examples. Please do the same if you need this feature!

</comment><comment><USER11> How would dishonest people exploit Marco's proposed solution?

<comment><USER5> Well Marco proposed a lot of solutions so:

# Add a proper registry of apps that can accept URLs from Safari, recognized by an Info.plist key, and add a "Share" or "Send To" panel to Safari that allows users to easily send the current page's URL to any capable apps.

Not exploitable as far as I can see, this is a mecanism which already exists through the scheme-based dispatch iOS already has (and uses). Safari would simply be extended to dispatch to third-party applications registered against the `http` scheme. Worst thing that can happen is boatloads of applications claiming to handle `http` making for a piss-poor user experience.

As far as I'm concerned this would be the best solution by far (for that issue): it only requires pretty minor changes (technically speaking, the UI/UX issues are bigger), uses existing and well-understood mechanisms, and only touches Safari.

# Add a public iOS API method for apps to prompt users to add a bookmark to Mobile Safari [or] add a Safari-handled URL scheme that apps can invoke to prompt users to add a bookmark

Would be OS-protected APIs, probably with some kind of warnings. Of course users don't read warnings, but the exploitability level would still be pretty low. This is also in-app, with mostly trusted stuff.

# A less-desirable (but still helpful) alternative would be to make the Address field editable in the Add Bookmark sheet for new, unsaved bookmarks. Currently, it's only editable on edits of existing bookmarks, necessitating many extra steps in this process.

Not exploitable, simply avoids wasting time but clutters the UI.

# Alternately, allowing window.location.href to be set to a javascript: URL, and then having that be the logical URL added when someone taps Add Bookmark

Small privacy issue: because the user has no way to know whether what was bookmarked was a regular URL or a bookmarklet, it can be any arbitrary bookmarklet at any time and let the originally bookmarked site know what the active page was when it got activated.

# window.external.AddFavorite(url, title)

From reading on the API, it seems fairly well protected (only accepts http, https or ftp schemes, title is cleaned up thoroughly before registration) and it prompts for addition instead of adding straight. I don't really see how you could exploit that, on the other hand in that state it's useless for Marco's purposes (can't set javascript:) and it lets you spam the user with infinite requests for favs. Annoying but not downright dangerous.

Did I miss anything?</comment></comment>


Quack Overflow - What's with the duck? - <AUTHOR> https://meta.stackoverflow.com/questions/365370/whats-with-the-duck <comment><USER2> I hope this is an early April fools joke. I just saw it too. And if I say "No I don't have a microphone" it still asks me to speak.

</comment><comment><USER3> Oh, for duck's sake ...

I'm going to have to go dark for the next 48 hours or so to avoid the inanity people think is funny, and quite simply isn't. Still, I suppose an enforced break from the internet once a year isn't a bad thing.

</comment><comment><USER4> Wait some time and you'll get a duck's answer by voice + explanation in pop up's content.</comment>


Classic JavaEE or Spring+Hibernate is out - <AUTHOR> http://www.dzone.com/links/ddd_cqrs_eventsourcing_example_source_football_ma.html classic programming mode such as JavaEE or Spring+Hibernate is out, changing the mindset - more object-oriented view at the business domain modeling, thinking about business process instead of data, DDD + CQRS + EventSourcing is the future. football Match is the example for future. <comment><AUTHOR> classic programming mode only thinking about data not business language. in there, the domain model is a data package, not a object.</comment>


Notepad++ 6.9.2 released (tail -f) - <AUTHOR> https://notepad-plus-plus.org/news/notepad-6.9.2-released.html <comment><USER2> Just a reminder that less(1) also does tail -f by pressing the 'F' key,

> Scroll forward, and keep trying to read when the end of file is reached. > Normally this command would be used when already at the end of the file. It > is a way to monitor the tail of a file which is growing while it is being > viewed. (The behavior is similar to the "tail -f" command.)

<comment><USER3> This is why I prefer less to tail. You can do 'F' to have a constantly updated log, and 'Ctrl-C' to stop updating it when you see something odd and the go back to the live update with 'F' again. All without exiting less.

<comment><USER4> For bonus points, you can put in a search ('/' \+ your search phrase), start tailing with 'F' (by the way, that's a capital F, so shift + F key), and have it highlight matching strings as stuff streams in. Makes it easy to spot things if the log is fast-moving.

</comment></comment></comment><comment><USER5> TailBlazer[0] I guess is the most interesting of the "tail -f" apps for Windows that I've tried. My usage is pretty mundane though, so YMMV.

[0] [https://github.com/RolandPheasant/TailBlazer](https://github.com/RolandPheasant/TailBlazer)

<comment><USER6> This Project is really nicely managed, this closed PR left me with a big smile on my face. He seems to be really a nice guy: [https://github.com/RolandPheasant/TailBlazer/pull/105](https://github.com/RolandPheasant/TailBlazer/pull/105)

</comment></comment><comment><USER7> Been using far manager for 12 years as it has this feature even when accessing files through scp.

Edit: Oh, and loading huge log files is no issue on far manager, unlike any other editor I have tried.

<comment><USER8> FarManager is great. At work, it is among the first three or four programs I open when I log in.

<comment><USER9> What's the other three apps?

<comment><USER8> In no specific order: Outlook, Firefox, Emacs, mRemoteNG. Also, mmc.exe. And conEmu. (Windows 7 startup is not a problem, usually. But opening all those applications and getting the windows in the right positions can get quite tedious...)

</comment></comment></comment></comment><comment><USER10> I've been using BareTail on Windows for years. It's minimalist and does one thing well. Scroll locks and unlocks intuitively. You can highlight lines with custom colors based on keywords, super convenient when text is flowing fast.

<comment><AUTHOR> I just discovered gLogG: [http://glogg.bonnefon.org/](http://glogg.bonnefon.org/)

</comment></comment><comment><USER6> Why is this trending now, this was released in May.

And if anyone knows how to use this with log files from remote servers this would make me very happy.

<comment><USER11> Correct, I remember reading about that feature before a month - although there already exist a lot of tail like solutions for windows there wasn't any de facto standard like unix tail, something that I feel will change now with that notepad++ feature!

For using the tail feature with remote files, have you tried it through the ftp notepad++ plugin? I'm not in front if my pc right now so I cant test it myself...

<comment><USER12> I realize I am biased, but I don't get it. Notepad++ and other tools are not designed around viewing log files. They are text editors. People use tools like Notepad++ to view log files because, traditionally, there hasn't been anything better.

Remote access is a good example. I am actually working right now on getting tail for remote servers working in [redacted]. FTP tailing a file is a special feature because you do not want to redownload a 1GB file every 3 seconds. The idea of a forward read-only file is a special concept. If I am using Notepad++ as a text editor, I want it to download the whole file because there may be important changes to the beginning of the document. If I am using it as a log viewer, then I need to provide a special configuration to the FTP agent. Not impossible, but the overlap in behaviour for the tool can be confusing. The additional configuration makes it harder when using it as a text editor and harder when using it as a log viewer. It starts to make the tool less useful for both tasks.

Now add additional features like grep, merging files, very large files (4 GB+), etc and it becomes clear that Notepad++ is a text editor. It is a fantastic tool, but not fit for every task.

Disclosure: I am the author of [redacted].

<comment><USER13> You're right. Notepad++ is a more of a general purpose text tool.

I got into the habit of using it to open HUNDREDS of files at the same time and perform ad-hoc interactive searching and data extraction to prep for further processing in R.

I've not seen any editor that can work effectively with so many files totaling a huge size. Would like to try Emacs for this stuff someday but Notepad++ works great and is easy to use.

</comment></comment></comment></comment><comment><USER14> Or you can simply use powershell:

      Get-Content -Wait -Tail 15 log.txt

</comment><comment><USER15> Finally, not always hitting that Ok button in the alert box.

</comment><comment><USER16> That's quite a weird feature for a text editor. I'm not that familiar with Windows development, but isn't there such a thing as `tail` or `less`?

<comment><USER17> There's nothing built-in on Windows, just a wide variety of post-install options (possibly in the old SFU Unix subsystem, certainly in the new Ubuntu- based piece, and of course a wide variety of third-party implementations including both native apps and Cygwin).

This is a bit of creeping featuritis, but since Notepad++ is a good drop-in replacement/full featured text editor even for non-developers on Windows this could be considered targeting users who would never actually go looking for a 'tail -f' implementation.

</comment></comment><comment><USER18> Had been using wintail for the same till now.

</comment><comment><USER19> On holiday but Log Monitoring for us will be so useful for us I had to share it with colleagues over WhatsApp.

</comment><comment><USER20> GNU/Emacs has nice tail-f functionality with its auto-revert-tail-mode.

</comment><comment><USER21> Now for non-modal regex search in file.

<comment><USER22> Or rather non-modal _everything._ The plugin update modal is beyond infuriating.

</comment></comment><comment><USER23> >18 May 2016</comment>


Ask HN: What a SaaS do you think provide the best REST API implementation? - <AUTHOR>

<comment><USER2> Stripe bar none.</comment>


I have no idea what I'm doing - <AUTHOR> http://codon.com/i-have-no-idea-what-im-doing <comment><USER2> Summary:

If you look closely enough, nobody really knows exactly what they're doing.

When you realize this, you're no longer blinded by the thought that you or other people know everything about something.

Then you also realize that all the stuff that is created by people isn't necessarily how it should be, it's just the outcome of the circumstances that the people were in.

With this realization you allow yourself to think more creatively (outside the box) about things.

However, the author and me don't have any idea what we're doing so I wouldn't take his or my story too seriously.

<comment><USER3> This sounds a lot like mindfulness or other meditations when you describe it this way.

</comment></comment><comment><USER4> _> Nobody knows what they're doing; ignorance fuels creativity; complex systems are built iteratively. Those are the ideas I want you to remember._

Really liked this piece and wanted to add something to it that I hope resonates with HN. I have myself run across all of this, particularly the complexity part, and have heard anecdotal evidence from others that I know, that when one finishes a function or a library of moderate complexity, and you step back from it for a while, and you come back to it, it looks _really impressive_. It's now no longer something that can be grokked at a glance. It _looks_ complicated, with all kinds of persnickety details. You remember the "why" of certain unintuitive parts - evidence of problems you ran into and had to solve. The code is the product of many hours of iteration - and the code expanded, contracted, and settled into the shape it's currently in - a shape which, if presented to your earlier self, you would say "I created _that_? Gosh, it looks like something a _professional programmer_ might have made." (or it might look like a horrendous hacky mess, of course.)

<comment><USER5> This is a thing that I have learned as well.

I have done projects that seemed small, and then by the end they were enormous, but I knew them intimately.

But when I start a project with the idea of it being that big in my head from the start, I'll get stressed and psych myself out, sometimes from doing it at all.

There's something to be said for ignoring the forest for planting the tree, to turn a proverb on it's head.

</comment></comment><comment><USER6> In one sense the author is right. In another sense, saying "I have no idea what I'm doing" is a status play. Those a bit down on the totem pole don't have the luxury of publicly questioning their own competence.

<comment><USER7> That's sometimes true, but it's nice to hear someone _with_ status admit they're not an infallible paragon. There's value in that, especially for those lower on the pole who stew in their own minds with assumptions about how everyone else is x amount smarter and more competent, however true that may be.

</comment></comment><comment><USER8> I know TDD has been discussed to death. However, I disagree completely with TDD encouraging creativity and material exploration. In my opinion, small, iterative increments are much more useful. Creating a test puts a tight box around how you assume (without any experimentation) an interface should work. As opposed to a tiny iteration to learn about how it could work. Then writing a test after for that tiny bit. Finally, moving on and refactoring with the test in hand.

<comment><USER9> Writing the test is the experiment, in your example. You're playing with how it is going to be used and interacted without worrying about the details/implementation. You'll take care of that later.

<comment><USER8> I don't see how you can experiment with functionality by writing tests at all. Tests are basically just pseudocode. It's writing the requirement/interface before figuring out what is possible.

For example. I was recently trying to figure out how to make an autocomplete list faster, as the database was too slow. I already had a functional test taking in search parameters and returning results. But there would be no way to write a test for the actual implementation of the indexed/faster search classes until I figured out a real approach. In the beginning, I had no idea if this would require a separate daemon process to do indexing, or if it could index realtime, or caching, or memoization, or where it might need to keep an index once created. These are just a couple of the unknowns. Once I figured out a workable concept, I wrote tests for those classes and functions. Then I refactored multiple times, altering the tests accordingly.

<comment><USER9> Your functional test was a test that allowed you to experiment. You designed the parameters and then altered the variables involved under the conditions of those tests.

You probably even "called your shot" and make guesses about what would be successful before you even approached the problem.

Then you wrote a test and saw whether your guess was right or not. If not, then you misunderstood something and you dug deeper.

Software, in some ways, in simulated science.

</comment></comment></comment></comment><comment><USER10> This guy seems to confuse "I sometimes have to think about things" with "I have no idea what I'm doing". Those seem quite different to me.

<comment><USER11> Indeed. Working on something for a long time but claiming you have no idea what you're doing is an easy way of not appearing egomaniacal or vain. Especially in our field, when people can be such pompous dickheads.

</comment></comment><comment><USER12> Cached version as the page is beginning to load slowly: [http://webcache.googleusercontent.com/search?q=cache:IoQN9XY...](http://webcache.googleusercontent.com/search?q=cache:IoQN9XYCjTYJ:codon.com/i-have- no-idea-what-im-doing)

<comment><USER13> Yet another argument for building static websites [https://eager.io/blog/build-static-websites/](https://eager.io/blog/build- static-websites/)

<comment><USER14> It's already a static site, but being on the HN front page is really hammering my tiny VPS's network & IO; there are a lot of large images and videos in the post. Guess I should set up a CDN.

<comment><USER15> Probably even just letting amazon or someone host the images would fix the problem.

</comment></comment></comment></comment><comment><USER16> He remarks in the talk about Lamarck having an incorrect theory of "inheritance of acquired characteristics." From what I understand, recent experiments have actually given some evidence to his theory. I can't remember the particular studies though.

<comment><USER17> Epigenetics gives credence to the environment having impact across generations. It doesn't really vindicate Lamarck, there are just some quiet echos of his ideas there.

</comment></comment><comment><USER18> "If you only take one thing away from this talk, make it this: beavers are idiots. They have no idea why they're building these huge structures; they just blindly do it."

I can understand the author's use of the Beaver analogy but it may not be the right analogy.

Beavers build these dams to keep the water level at a certain height. This not only offers protection from predators but also makes it easy to access food.

[http://en.wikipedia.org/wiki/Beaver#Dams](http://en.wikipedia.org/wiki/Beaver#Dams)

They may have poor eyesight but they have a keen sense of hearing.

May be he meant that the Beaver does not know why its teeth grow continuously but it uses it to cut down trees and make dams.

<comment><USER4> _> Beavers build these dams to keep the water level at a certain height._

My friend, I think you are implying _intention_ where there is none. It's true that the effect of beaver dam-building is advantageous, but there was never any _deliberation_ about it on the beavers part. It's a curious case of _effort_ without _decision_. One can easily think of a situation where a beaver might actually do better to not build a dam - but a beaver will try to build one anyway. It's just what he does.

Do humans eat to keep from starving? Do we have sex to have babies? Do we love our babies so that they don't die? I don't think so. We do these things because it's built into us to do them, just like the beaver.

<comment><USER19> Sex seems a lot more simple than building a dam though. I mean, how does the Beaver even know this kind of stuff? Is it in its genetic material, or is it taught by its parents?

Either way, fascinating stuff.

<comment><USER14> Just to answer your question: it's in its genetic material. It really is fascinating; it can even make evolutionary sense to think of the dam as an extension of the beaver's physical body, in as much a beaver's dams are "built by" its genes just like the cells of its body are. Google "extended phenotype" if you'd like more detail.

</comment></comment></comment></comment><comment><USER20> This was an interesting talk. I admit I was easily hooked due to my own circumstances and experiences. I often feel like I don't know what I'm doing.

Shoshin was a great lesson for me. When I was training in martial arts I was told that shoshin was akin to fashioning one's self after an empty vessel. If the vessel is full then it cannot receive any more water. I took it to mean that one must periodically empty their minds of preconceived notions and ideas and be receptive to new ones when seeking new knowledge.

It has also taught me that I have a hard time appreciating what I am capable of and what I do know. I may fight feelings of inadequacy but I must remind myself that my bar is much higher today than it was when I started out. It is good to not feel like you know what you are doing _all of the time_. It's an opportunity to learn and fill yourself with new knowledge. As long as I know what I don't know I feel that I can find it out and fill the gaps.

I think what makes it difficult is the amount of competition there is these days and how high we have raised the bar. Capital and growth demand experience and knowledge but we need to take time for development too. You may want to hire the best but maybe you need to take some time to help people develop into the best they can be? But we should all take time to be thankful for what we have done and are able to do. It's easy to forget how painful it all once was.

A talk worth watching, in my opinion, if you've ever been concerned about feeling like you don't know what you'd doing.

</comment><comment><USER21> Hey Tom, I just want to say, I have your book, and I find it wonderful.

<comment><USER5> Was really sad to hear this: _" You don't really make any money by writing a book, but O'Reilly did send me a nice hat"_

How poorly does O'Reilly pay their authors? A book the size of most of their tomes, and at the prices they charge, should be a 5-figure advance in any other part of the industry.

<comment><USER22> Curious about this too. I wonder if he means that you don't really make any money compared to the opportunity cost of all the hours you spend on it, or if you really don't make any money in an absolute sense. Unfortunately, I suspect it's actually the latter due to the relatively tiny size of the target market for such books.

<comment><USER23> From other tech book authors it seems it's the former; they work many hours for a year and then they make 20k or that kind of minimum wage money

<comment><USER24> That's right. I wrote some computer books some years back, and the royalties were somewhere around 10% of the _wholesale_ cost of the book. So a book with a $40 shelf price might have a $20 wholesale price... and with only about 6000 copies as a typical print run, I didn't make much at all.

And also bear in mind that an advance is just that: it comes off the royalties, so you may not end up making any money for quite a while.

<comment><USER5> That's a good point. With a run like that, the advance may be all you ever see.

</comment></comment></comment></comment></comment></comment><comment><USER25> I am suspicious of the imposter syndrome self-diagnosis. It permits you to explain away your problems and possible deficiencies without being confronted with the often not so nice reality. As the author rightly says, it is not a solution. To anyone diagnosing himself with the imposter syndrome, I would say: great, so now that you know, you don't have it anymore.

</comment><comment><USER26> Everyone knew everything about everything they do then AI would be easy.

</comment><comment><USER27> This sort of post seems to do well on HN, so to offer a bit of criticism I'd like to posit that often they seem to be a thin veneer over humble bragging.

e.g. I don't know what I'm doing, but then neither does anyone else but I am stating it so therefore I'm actually better than them and I have impostor syndrome so that actually makes me better at what I do than you, and everyone who says they know what they're doing suffers from the Dunning–Kruger effect, etc.

This has become a bit of a meme -- the whole "I'm better because I claim to be worse" bit.

<comment><USER28> So does this mean that we need to come full circle and become worse and being better due to claiming to feel worse?

I get where you are coming from, but I think the best point in this somewhat rambly essay is that it is fine to come out and talk about how to deal with these odd mental effects, especially when they are keeping us from getting work done.

<comment><USER29> > So does this mean that we need to come full circle and become worse and > being better due to claiming to feel worse?

Usually when people begin kicking up a dust, the solution is to stop kicking– in this case I think that means to avoid making claims, and focus instead on doing great work!

</comment></comment></comment><comment><USER30>
      Recently I found this note on my desk at home. It says "I HAVE NO IDEA
      WHAT I'M DOING". I don't remember writing it, but it was in my house
      on my desk in my handwriting, so I obviously did.

He might want to seek some psychiatric help if this persists.

      So what did it mean? Was it a cry for help? A product idea? A topic
      for a blog post? Or could it be an idea for a conference talk?

The card was a cry for help. This talk is a cry for attention.

      I'll begin by showing you some compelling evidence that I have no idea
      what I'm doing.

Well, he definitely proved it with all the completely asinine comparisons in the rest of his talk, but this one is the best:

      If you only take one thing away from this talk, make it this: beavers are
      idiots. They have no idea why they're building these huge structures; they just
      blindly do it.

Really.

 _" One of the primary reasons beavers build dams is to surround their lodge with water for protection from predators." [...] "On land, the beaver's short legs and wide body made them slow and vulnerable to their enemies. However, unlike most of their historic predators, beavers are excellent swimmers. As a result beavers evolved to have a strong preference to remain in or very close to the safety of the water. The need for safety is the primary reason beavers build dams to create ponds."_ \-- [http://www.beaversolutions.com/about_beaver_biology.asp](http://www.beaversolutions.com/about_beaver_biology.asp)

Sounds like they have a pretty good idea why they build dams.

      But enough about me. As you've seen, I frequently find myself in situations
      where I don't know what I'm doing, and I usually hit a brick wall and
      feel disappointed. But it's not just me! You have no idea what you're doing
      either.

Don't go projecting on us, buddy. Most people, when faced with a challenge they're not immediately sure how to solve, will go read a book, or take a class, or ask someone who does know what they're doing. Lying about being able to write a book when you have no idea how in order to make money is not "impostor syndrome", it's merely being an impostor.

Dunning-Kruger does not explain or justify a total lack of forethought.

      All of these animals look remarkably like something in their environment,
      but none of them has any meaningful understanding of why they look that way.
      They don't know what they're imitating. The stick insect doesn't know anything
      about eucalyptus; that's just what it looks like.

Says who? You, the expert? I'm pretty sure an animal who _lives on a goddamn plant and looks just like it_ probably realizes that it's a plant, and that it looks similar, and that if it wants to eat, it should use that plant in order to hunt, so it can live.

An interviewer asked Richard Feynman to explain how magnetism works. He explained that it was a force that interacted with certain things. The interviewer asked, but why? Richard's answer was a long way of saying "just because, you moron."

You don't need to understand every layer of the onion. Every layer has another layer, and once you understand every single of them, and grok quantum physics and multiple dimensions and relativity and whatever else affects that onion's properties, that won't change that you need to cook that onion until it's soft before you add in meat to get the flavor out of it. If you know how to cook it, you know what you're doing.

It's not that the author has no idea what he's doing. He's just an idiot.

<comment><USER31> Not only have you missed the point of this author's talk, you've also missed the point of Feynman's answer, which served to demonstrate that the question being asked did not have a simple answer that could be succinctly constructed in a way that does the whole story justice. He wasn't saying 'don't try to understand magnets, just use them' he was saying 'I can't answer that question in a satisfactory way without first explaining all of Physics'

The author of this talk is not abnormal to do things without remembering them. I write things down all the time only to come across them a year later with no recollection.

It must be nice to be so self-assured of one's intellectual superiority though. Most of us have no idea what we're doing, after all.

<comment><USER30> The basic meaning of 'knowing what you are doing' is "to be aware of through observation, inquiry, or information of an action, the precise nature of which is often unspecified".

This is _completely different_ than what the author (and other commenters) are suggesting, which is that one should have a completely in-depth understanding of all aspects of a given idea as far as human culture is capable of understanding.

If you are walking, you know what you are doing. If you are reading, you know what you are doing. If you're commenting on a web forum, you know what you are doing. You are not confused. You know what typing is. You know what the words you want to say are. You know what you intend to say. This is knowing. This is doing. That's it. _That is it._

Most of us, except for maybe the mentally handicapped or the catatonic, know what we are doing. There is no big secret or mystery or hidden understanding. It is not correct to suggest that the majority of people do not comprehend the actions they take. Most people comprehend their actions, even if subconsciously in many cases.

If you watch the video, Feynman gets pissed off. He's not pissed off because he can't answer it, because he could just state "I would have to explain all of physics to you for you to be satisfied." He's pissed because this person doesn't even know what they're asking for.

This author doesn't know what he's talking about when he says he doesn't know what we're doing. But that has nothing to do at all with the rest of us.

The best comparison I can make is to say that most of us don't know _why_ we do anything. There is seemingly no purpose to the universe, or why any of it does what it does. Yet there is completely obvious purpose to everything.

I drink because i'm thirsty. Why am I thirsty? Because my body needs to be hydrated. Why hydrated? Because it's made mostly of water. Why water? Continue that logic train until you run out of ways to explain why the universe exists. Nobody needs to know why the universe exists. But we do know when we're thirsty, and why we drink, which is what we're actually doing, so we do know what we're doing, and why.

We do know why we do things, and what we do. Anyone telling you different is selling something.</comment></comment></comment>


Where to Find NYC Based Hackers - <AUTHOR>

Does anyone have suggestions about where to find an NYC based hacker? I are currently working on a start up based in the city that will make living here exponentially easier and more engaging. You can check us out at mappening.me for more information but the application is not yet open to the public.
Any ideas about how to located an ambitious creative techie New Yorker are more than welcome.
Thanks! Ron <comment><USER2> Hang out at the monthly NYTM or any of the other tech related meetups. Blog about what you're doing and where you need help. Talk up Charlie O'Donnell, Nate Westheimer, either of the guys at New Work City (Peter Chislett, Tony Bacigalupo). Go to the monthly Digital DUMBO event (next is 9/29). You could try posting to any of the area mailing lists (NYTM, nextny , wwwac) but job postings are getting little traction these days.

One other thing to try: organize an event (either under the NextNY umbrella unstructured/free event format or…pretty much whatever you want) in an area of interest to you and invite the world (or some subset of the world which you can handle/fit in a space legally).

<comment><AUTHOR> thanks!</comment></comment>


Operating System Development Tutorials - <AUTHOR> http://www.brokenthorn.com/Resources/OSDevIndex.html <comment><USER2> This looks awesome.</comment>


How we can use light to see deep inside our bodies and brains – Mary Lou Jepsen - <AUTHOR> https://www.ted.com/talks/mary_lou_jepsen_how_we_can_use_light_to_see_deep_inside_our_bodies_and_brains <comment><USER2> This is one of those TED talks that sounds absolutely groundbreaking and miraculous but has my bullshit detectors firing constantly because it sounds like a commercial without any critique or analysis of the technology. I realize that may be too much to ask for a TED Talk, which is supposed to "inspire" the public viewership, but I don't think it would hurt to inject some discussion of limitations and challenges.

<comment><AUTHOR> As they point out - this we a first demonstration in public. I sure hope that as things become more public and they make plans for products this will start to show up. ( Or we will make enough noise about it that it will have to show up ;-) )

</comment></comment><comment><AUTHOR> But if you focus such an intense point focus of light in tissue, could you cause damage? Would a high enough intensity red light be absorbed by blood and damage those cells?

If not damage, could you use this to do targeted stimulation of neurons in the brain?

</comment><comment><AUTHOR> " In a series of mind-bending demos, inventor Mary Lou Jepsen shows how we can use red light to see and stimulate what's inside our bodies and brains. Taking us to the edge of optical physics, Jepsen unveils new technologies that utilize light and sound to track tumors, measure neural activity and could eventually replace the MRI machine with a cheaper, more efficient and wearable system. "

Holography and ultrasound to do visible wavelength deep tissue scans. This is really exciting new tech!</comment>


Dr. Johnson's Dream - <AUTHOR> https://www.laphamsquarterly.org/roundtable/dr-johnsons-dream <comment><USER2> Perhaps he meant 'my Brother' as his fellow man, not his familial brother.</comment>