Quick tips for techies who need to give business presentations - <AUTHOR> http://www.itworld.com/career/204559/5-important-presentation-tips-techies

<comment><USER2> The importance of proper rehearsal cannot be emphasized enough. Record yourself during practice and don't stop until you would be comfortable with uploading the result to Youtube. With enough practice, you can be confident that you will be within the time limit. Once you know what to say without thinking, you can also focus on other aspects of your presentation, like making eye contact with your audience, good posture or avoiding fill words like er, um, etc.

Also, never rely on the internet connection at the venue and bring adapters if you have a Mac.</comment>


House approves major overhaul of patent system - <AUTHOR> http://news.yahoo.com/s/ap/20110623/ap_on_re_us/us_congress_patents;_ylt=Al5JB1JhWFW2umzMUQNRyIas0NUE;_ylu=X3oDMTNucG1rYjg3BGFzc2V0A2FwLzIwMTEwNjIzL3VzX2NvbmdyZXNzX3BhdGVudHMEY2NvZGUDbW9zdHBvcHVsYXIEY3BvcwM2BHBvcwMzBHB0A2hvbWVfY29rZQRzZWMDeW5faGVhZGxpbmVfbGlzdARzbGsDaG91c2VhcHByb3Zl <comment><USER2> "The two chambers still have to reconcile differences, but the bill has the advantage of being supported by the White House, major business groups, and leaders from both parties who have hailed it as a major jobs-creating measure."

This is a huge red flag.

<comment><USER3> No kidding, and this one too-

"Opposition came mainly from groups representing independent inventors, small businesses and academics."

<comment><USER4> Remember, though, that a patent troll's business card doesn't say "patent troll" on it: It says "independent inventor".

Which is not to say that you might not be right to be worried.

<comment><USER3> I suppose. My quick read of the details makes me think this is no good. It sounds like the primary problem being solved for is the backlog of patent applications not the quality of patents being issued or anything at all related to litigation.

<comment><USER5> Increasing staff and relieving the pressure of a 3 year backlog on patent applications could result in a more thorough (read: better) job being done and less "obvious" patents approved.

Or it could water down the standards even further as undertrained people come in and rubber stamp whatever's in front of them.

</comment></comment></comment></comment></comment><comment><USER6> Can anyone shed a light on how the "first to file" change affects prior art?

In general "first to file" makes sense to me because it removes uncertainty (who filed first is indisputable, determining who invented first requires an expensive lawsuit).

But what if I invented something, published it, don't intend to ever file a patent for it and someone comes in and files a patent for that invention?

If the can get a valid patent on my invention, it seems wrong and open to abuse (what if they didn't actually invent it but just filed for a patent based on what I published).

If they can't get a patent, then "first to file" seems meaningless.

<comment><USER7> _But what if I invented something, published it, don't intend to ever file a patent for it and someone comes in and files a patent for that invention?_

Your published prior art blocks them.

 _If they can't get a patent, then "first to file" seems meaningless._

First to file is really about the windows between filiing and inventing. The argument for first to file is generally what you state -- that it helps clear up ambiguity.

The argument against is usually small businesses who believe that they may not patent (because they're expensive) until they have something in practice. So imagine you invent some new high efficiency light, and spend the next year getting it working. And once it works and you're convinced of it you file. But you find out that GE patented it a week earlier. But only discovered it a week before that and hasn't made much progress on it (it's only been a few weeks). You still lose the patent, despite the fact that you may be able to prove that (a) you invented first, and (b) have spent the past year implementing it.

With that said, the first to file vs invest, IMO is a small part of the reform. The bigger part is the grace period, which now has the following change. In the past you could build an iPhone, ship it, write a paper about it, and file a patent within the next year. Now you can write a paper about it, but can't sell it. Once you sell it, your grace period is over.

At least that's my IANAL understanding. And the other big thing in it is they've expanded the timeline of challenging patents. I'm surprised the EFF doesn't have a more coordinated effort to challenge patents when granted.

<comment><USER8> _Your published prior art blocks them_

How does it block them? Does it or does it not matter who invented the thing? I am incredibly confused about this legislation.

<comment><USER9> If you invented it first, but didn't tell anyone about it, then it's not prior art and anyone else is free to patent it. If you publish details about it, it's prior art and can't be patented.

<comment><USER8> Ok, so the difference with the current system is that publishing the idea is, in itself, the prior art, rather than serving as evidence thereof.

As defined in the bill, prior art can be "patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention".

It's not a great time to be making laws that depend on a formal distinction between published and unpublished, since that distinction has been just about completely smoothed over by now.

</comment></comment></comment></comment></comment><comment><USER10> This is basically a cave-in to the EU/Japanese system, and IMNSHO it will increase not decrease the number of frivolous patents.

What it really does is remove the option of protecting something as a secret. You have to either publish or patent (which is basically a state-sanctioned form of publishing with monopoly benefits). It completely changes the calculus of small inventors, who will now be forced to file multiple provisional patents ($100+ a shot plus time spent) and then within a year decide to shell out $5K++ to have any chance at all of not being beaten over the head by corporate patent trolls.

Not good.

<comment><USER11> It is still possible to protect an invention as a trade secret. Of course, if someone later independently invents and files, they get the patent. The earlier user is immune from infringement of the patent under the "prior user defense", though.

<comment><USER12> > _It is still possible to protect an invention as a trade secret. Of course, > if someone later independently invents and files, they get the patent._

That's been true for decades under existing law.

> _The earlier user is immune from infringement of the patent under the "prior > user defense", though._

This will be a new feature of the law under the new legislation.

</comment></comment></comment><comment><USER13> I think the US should move towards a system where multiple patents are awarded for the same invention.

For example:

Lab A and B are all working independently on a project.

1\. Lab A files first and receives a patent. If without reading the patent or knowing of the details of the invention, Lab B manages to re-invent the same technology they will receive a patent as well.

2\. Lab A invents first, but doesn't file. Later Lab B files for a patent it wins one as Lab A's work hadn't been described via the patent office. Lab A can still file for a patent if they can prove that their invention came first.

Essentially it seeks to turn the patent from a monopoly grant to a cartel grant, thereby rewarding _invention_ regardless of when it occurs.

If a patent holder wants to ensure protection for their work, they need to file first and extensively publicize their filing as such no one can claim spontaneous re-invention as is the case with many software products.

<comment><USER14> > If a patent holder wants to ensure protection for their work, they need to > file first and extensively publicize their filing as such no one can claim > spontaneous re-invention as is the case with many software products.

In other words, billion dollar companies get all the SW patents.

HP can "extensively publicize" for almost nothing by piggybacking on other things that they do. Small companies and individuals can't.

IBM, for example, has numerous publications that would qualify. (They send them to every CS department library as well as other subscribers.)

What? You don't keep up with the literature?

I used to look at every tech report that Stanford CS received. That became impossible in the late 80s and things have only gotten worse.

<comment><USER13> > In other words, billion dollar companies get all the SW patents.

All? No, they only get patents for those things that they invent.

It cuts both ways, the bigger you are the more liable the newly empowered patent bureau is to say that you could have easily found the existing patented invention.

On the other hand, since multiple parties can hold patents and subsequently re-licence them it will be easy for a a company, large or small, to protect other parties from patent trolls.

The something obnoxious like the famed "one click" patent would have multiple holders, and _any_ could simply give a universal grant to it _.

In the worst case scenario, which I don't think is plausible then the current status quo is maintained for some patents. A large company invents, files it, then publicizes it.

P.S.

_ I think that business form patents patents like the one-click should be null-in-void in any country.

<comment><USER14> >> In other words, billion dollar companies get all the SW patents.

> All? No, they only get patents for those things that they invent.

As I pointed out, the "extensive publication" requirement is a significant obstacle for everyone else, so they won't get SW patents. Thus, all of the SW patents go to big companies.

> The something obnoxious like the famed "one click" patent

"obnoxious"? That's your objection to one click?

What's wrong with novelty/prior art and non-obvious?

In every other field, recognizing that there is a problem and patenting a broad-swath of mechanisms to solve it is considered good. Why is software different?

And yes, I'm familiar with James Bessen's work. I introduced his EE380 talk at Stanford.

</comment></comment></comment></comment><comment><USER15> Can we stop pretending like patents are a good idea?

As long as they exist, they'll need to be "fixed".

<comment><USER16> [Citation needed].

EDIT: Computer folks tend to see the world through a particular set of glasses. They see a world of inventors in their basement you can invent with little capital investment. That's fine and is great for innovation, but the whole world doesn't look like that. If you're in an industry where the process of invention is extremely costly, patents can often be the only way for smaller entities to participate. Say you have an idea for a new radio technology. It'll cost you millions of dollars to build a prototype (the associated parts and equipment are very expensive). And once you have it --- what do you do with it? Go into production and compete with AT&T and Verizon? Patents allow meaningful seperation of invention from productization, and that's something that hugely benefits smaller entities.

</comment></comment><comment><USER17> The biggest concern to me - given two competitors, the one who delays their product to market while they get patents wins. I want a patent system that I can safely ignore without someone else later 'inventing' the same thing as me and taking me to court.

"[T]he bill would put the United States under the same first-inventor-to-file system for patent applications used by Europe and Japan. Currently the country operates on a first-to-invent system" ...

"John Conyers [...] said it would permit the Patent and Trademark Office to award a patent to the first person who can win a race to the patent office regardless of who is the actual inventor."

<comment><USER18> I would hope prior work would be an acceptable defense in court against a first-to-file-patent suit.

e.g. you really don't care about patents. Guy later patents what you're doing and sues you. You prove prior work, suit fails.

Best of both worlds?

<comment><USER19> You have to publish your work to make yourself protected.

Undisclosed prior art is not a defense in first to fiel systems

<comment><USER20> Well, you can file an invention disclosure with the PTO. I'm not sure, but I would think this would be sufficient to establish prior art.

<comment><USER21> An invention disclosure is just the actual description of the invention that an inventor writes used by a lawyer to write a patent. Its the actual description of the invention before its translated into patent speak.

The difference between one of these and a patent is best summed up by one of my favorite Terry Pratchett quotes: _"It's the difference between using a feather and using a chicken."_

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

</comment></comment></comment></comment></comment><comment><USER22> "The most significant change brought about by the bill would put the United States under the same first-inventor-to-file system for patent applications used by Europe and Japan. Currently the country operates on a first-to-invent system"

Wow, does this mean everyone who wants to not get patent trolled has to file immediately?

<comment><USER23> No. It has no effect on patent trolling.

<comment><USER17> Why not?

It sounds like looking for new gizmos without associated patents and then patenting them as yours would be an ideal strategy.

The alternative? Patent every gizmo yourself before release. Neat. A tax on innovation.

<comment><USER23> It's first INVENTOR to file. If you just see someone else's gizmo, you can't patent it because you are not an inventor.

All this changes is how it is handled when two or more inventors have overlapping inventions.

<comment><USER24> If by INVENTOR you mean APPLICANT... It is simply first to file. If you filed a patent for someone else's work, that work has to be successfully applied as prior art to invalidate the patent. If the existing work isn't sufficiently documented by acceptable publication, it is difficult to use as prior art years later when the patent is first litigated.

But, I am not a lawyer.

</comment></comment></comment></comment></comment><comment><USER25> People keep posting links to mass media reports of this news. Are there any good blog reviews analyzing how this will actually affect software development? I don't trust the media to even have gotten all the facts right, let alone to give me an in-depth understanding of how this will turn out.

</comment><comment><USER26> Isn't anyone else bothered by the fact that business method patents weren't addressed? For us software folks, the business method patent issue is a lot more pertinent given that the majority of software patents hinge on this idea.

<comment><USER16> They are. There is a provision that says that financial services industries can challenge business method patents (or something to that effect).

Hopefully this is a little loophole that can be widened to allow broader attacks on business method patents.

<comment><USER26> Actually, you're right. I had first read the article as stating that the business method patents was written as an amendment that was defeated, but on rereading it seems that the business method patents part was included, and the amendment to remove it failed. Tricky context in reading this one.

"There was also strong opposition to a provision that allows financial institutions to challenge patents issued on business methods, such as ways to process checks. The opponents said the provision amounted to a bailout for banks, but Rep. Robert Goodlatte, R-Va., chairman of the Judiciary intellectual property subcommittee said business method patents, a fairly recent phenomenon, were "a fundamental flaw in the system that is costing consumers millions each year."

"An amendment to remove the section concerning the business method patents was defeated 262-158."

So I guess it's in there? Confusing.

</comment></comment></comment><comment><USER27> Good old wikipedia gives some key details: [http://en.wikipedia.org/wiki/First_to_file_and_first_to_inve...](http://en.wikipedia.org/wiki/First_to_file_and_first_to_invent)

</comment><comment><USER28> Okay, good. No, great.

But what about software patents? Can we discuss reform specifically related to those?

Ideas:

1.) Shorter periods of ownership/proprietary rights. 2.) More detailed applications. 3.) OR abolishment.

</comment><comment><USER29> Let's keep our fingers crossed that this actually helps our economy in some way or another (even if it is just the lawyers ;)

</comment><comment><USER30> On one hand I'm upset about the fact that I can invent something, not have the money to patent it, and have someone else get rights to the patent because they had the money for it.

</comment><comment></comment><comment></comment><comment></comment><comment>=====

On the other hand, image this:

\- I created an invention.

\- I worked my ass off saving up $5-10 thousand dollars for patent and legal fees.

\- I spend hundreds of hours of my life searching for prior art on the internet and in publishing magazines. I think I'm safe.

\- I file the patent.

\- Some random ass guy in Minnesota comes up with prior art and I don't get the patent.

\- I just wasted $15,000 and years of my life.

</comment><comment></comment><comment></comment><comment></comment><comment>=====

It feels like the first-to-file system protects inventors who haul ass and get shit done, and punishes lazy (or unfortunately poor) inventors who sit on their inventions and cannot afford to /or/ refuse to move them to market.

So maybe this is the good thing?

<comment><USER31> If you don't have the money to patent it, then publish it - rendering it unpatentable due to your prior art. Nothing keeps you from being the expert in the field, but you're protected from somebody else patenting it and charging _you_ a royalty.

The first-to-file provision essentially just makes it easier to decide who gets the patent if two people patent substantially the same thing. I don't think it's going to make much of a difference in the existing breakage of the patent system.</comment></comment>


JsErrLog: Log client JavaScript errors - <AUTHOR> http://jserrlog.appspot.com/

<comment><USER2> I usually catch all JS errors using window.onerror and POST them to an endpoint in the backend that will take the incoming data and just log it along with the rest of the logs.</comment>


CrazyEgg To The Rescue Again - <AUTHOR> http://www.kalzumeus.com/2010/03/21/crazyegg-to-the-rescue-again/ <comment><USER2> I'm conflicted here: I'm really happy that folks find my blog valuable, but I would strongly prefer never seeing two posts from it on the front page at once. (It just strikes me as... _unseemly_.)

<comment><USER3> By now you've probably got bots watching your blog and autoposting new entries to the queue upon publication.

You could spread your new posts out by a day or two if it really bugs you.

</comment></comment><comment><USER4> If its an adwords landing page and everyone that is going to the site probably wants to download it if you click it why not make it one big image and have it all link to download?

<comment><USER2> Google disapproves.

</comment></comment><comment><USER5> I like Crazy Egg, but when I used it it the scripts absolutely killed my site's load time. That was around a year and a half ago, I don't know if it has improved since.

</comment><comment><USER6> I wonder if this experience is suggestive of a not-quite-CrazyEgg but still useful technique: add a default click-handler to the whole page, that (in the absence of any real outlink) records the location of the click, and sends visitors to a plausible default 'second page' (or 'third page' if enacted on the second page, etc.). You get the illusion of responsiveness for any click, and capture the regions-of-most-confusion in a log somewhere.

<comment><USER7> I guess you're not one of those people that selects text as you're reading. :)

<comment><USER6> Only as a bookmark before adjusting text size, or to copy-to-clipboard. But that's a good point; intercepting those clicks would be annoying to the readers. The handler could distinguish point-clicks from click-drags.

<comment><USER7> Add doubleclicking to that list, because that's my preferred way of selecting a line of text. Unfortunately a lot of people also doubleclick on links.

I guess there's a lesson here: don't try to chase a higher conversion rate by getting in the way of "savvy" visitors. Still, it's a good idea once you cover all the edge cases.</comment></comment></comment></comment>


Switching to Firefox - <AUTHOR> https://hugotunius.se/2017/01/10/switching-to-firefox.html <comment><USER2> I did the same last weekend and I am very pleased. Chrome genuinely had become unreliable for me.

Highly recommend moving back to firefox</comment>


Zuckerberg Breaks Silence on Facebook Crisis as Criticism Grows - <AUTHOR> https://www.bloomberg.com/news/articles/2018-03-22/zuckerberg-s-response-doesn-t-cut-it-facebook-s-critics-say <comment><USER2> Active discussions:

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

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

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

</comment><comment><USER3> Despite the tough situation for Facebook, I suspect they are somewhat pleased that the focus right now is on an older data breach instead of on the toolset and functionality they provide currently that people aren't talking about.

Although the media is currently focusing on Cambridge Analytica and the simple targeting they offer to ad buyers using likes/interests, the reality is that advanced buyers can buy/collect data elsewhere, chop and segment it as they please, upload names and email addresses, and have Facebook automatically match the data that they have with fairly high accuracy to users on Facebook.

This removes any of Facebook's "liability" in terms of targeting using likes and interests in their system, but still allows anyone with the data and know how to do as they please and still reach all the users they want using Facebook's tools.

Sure, Facebook will take a hit with this, but ultimately Facebook can and will get away with the current narrative that this was something that only happened years ago and they are better now.

To me, the current toolsets and targeting using your own uploaded data is what is even scarier. Facebook will just shirk all responsibility this way but still allow for the same thing to happen in the future.

</comment><comment><USER4> Man, Bloomberg is all over Zuck. I guess they've got an axe to grind after what he did to them with the newsfeed changes. It's interesting in that Zuck and Bloomgerg (really news media in general) are both much more powerful than each other in different ways. Zuck can change an algorithm and completely disrupt the flow of clicks. But he can't effectively attack someone's image the way Bloomberg is attacking his right now.

<comment><USER5> On the other hand, Bloomberg can't block a single user from reading its articles, like Zuck blocked the whistleblower from the platform for no good reason other than revenge.

This is one area where we definitely need some regulation. And I think people who have complained about Google account bans in the past would agree. These companies are getting too powerful and connected to too many things and services to simply be allowed to remove someone's access on a whim, without a strong justification for it and without also being able to appeal the move to authorities, if needed.

Ideally, this wouldn't be needed if the internet was more decentralized and these companies didn't try to be _everywhere_ and own _everything_. But since they love that monopoly power so much, then the regulation is required.

<comment><USER6> Yes, but while we all love the first amendment when it's something like this, people will go to great lengths to point out corps are not subject to it when it would protect an undesirable element with unpopular opinions.

</comment></comment></comment><comment><USER6> The knives are coming out tonight. How many anti-FB articles on the front page today? Had it been a coordinated attack, it would not have been more prominent.

Not defending FB, but this is something else. I'm pretty certain they'll survive this, albeit wounded. But it almost answers the question, what will turn FB into the next MySpace? Maybe a big exaggerated scandal.

</comment><comment><USER7> Hyenas all of 'em.

One has to remember that these news orgs are in competition with Facebook and their coverage should be considered with that in mind.

The eurocrats must be loving this, instead of scrutinizing their discriminatory tax proposal targeting our tech sector our press and politicians are attacking our companies for them.

</comment><comment><USER8> Cambridge Analytica also in focus now for being in talks with Indian opposition party (Congress)

</comment><comment><USER9> wow drake is posting on hacker news now too damn, this guy is everywhere

<comment><USER10> drake is champagnepapi?</comment></comment>


Would you pay $700, plus a monthly fee, for a digital license plate? - <AUTHOR> https://arstechnica.com/tech-policy/2018/07/would-you-pay-700-plus-a-monthly-fee-for-a-digital-license-plate/ <comment><USER2> Pay to be tracked? I already avoid smart phones, now they want to accost my vehicle? What new vulnerabilities will I find on these devices?

</comment><comment> java-man what a dumb idea!</comment>


GNU Binutils 2.32 Released - <AUTHOR> https://sourceware.org/ml/binutils/2019-02/msg00010.html <comment><USER2> This project could greatly benefit from a CI system testing multiple popular distros. Every other release fails to compile on FreeBSD. I tried building from 2.31 then HEAD then rolled back to 2.30 to get it to compile under FreeBSD 12 (for an embedded system where the default patched version in ports didn't cut it).

I have notes I took last product release with a different bug, same scenario.

Unfortunately many GNU projects treat non-Linux platforms as third class citizens (GNU autotools still doesn't always generate Makefiles compatible with bsdmake).

<comment><USER3> The bsd community could set up such a ci/cd system themselves.

Then the GNU folks could use it or ignore it but they wouldn't be ignorant of problems.

In fact for many issues timely notice is almost all it takes to get things fixed.

<comment><USER2> I don't know. As an open source developer I put the onus on myself to make sure my releases (at the very least, not every commit) at least compile and run on Linux, macOS, WSL, and FreeBSD even though I don't use the first two.

<comment><USER4> I mean... you just named two enormous platforms that you should test for but don't use. FreeBSD is hardly equal to either of those. It's a much much different situation.

</comment></comment></comment></comment><comment><USER5> It mentions support for the C-SKY processor. Here's the dev board for it: [https://www.mickmake.com/post/csky-sbc-pi-in-the-sky- review](https://www.mickmake.com/post/csky-sbc-pi-in-the-sky-review)

<comment><USER6> C-SKY Orange PI board is quite nice and cheap. We added C-SKY support in radare2 too.

<comment><USER5> I don't think Orange PI is related...those use Allwinner ARM CPUs.

It's likely the sales listing just said something like "C-SKY Orange PI Raspberry PI" or something, even though it was the board above, which has its own weird architecture that isn't ARM.

For some reason AliExpress listings do that often... "generic thing + some recognizable brand unrelated to it"

</comment></comment></comment><comment><USER7> > Objdump's --disassemble option can now take a parameter, specifying the > starting symbol for disassembly.

Finally!

</comment><comment><USER8> A few days ago I tried "Linux from Scratch" ([http://www.linuxfromscratch.org/](http://www.linuxfromscratch.org/)) and I was learning about Binutils and the linux Toolchain. It's awesome to learn how important those core tools are for GNU/Linux.

</comment><comment><USER9> MD5 signatures, lol.

They do have GPG .sig files now, so do they should announce it how to use it, as most other GNU projects. It's in the newer announce templates.

<comment><USER10> I just pull GNU releases from [https://ftp.gnu.org/gnu/](https://ftp.gnu.org/gnu/). One doesn't find HTTPS links in the official pages for some reason, but it exists.

</comment></comment><comment><USER11> I hope the split dwarf problem was fixed (haven't checked it out), which would make linking way more faster.</comment>


Atari files Chapter 11 bankruptcy - <AUTHOR> http://online.wsj.com/article/SB10001424127887324624404578256000063950658.html

<comment><USER2> Here are a few more versions of the story:

<http://news.ycombinator.com/item?id=5090807> (venturebeat.com)

<http://news.ycombinator.com/item?id=5092088> (telegraph.co.uk)

<http://news.ycombinator.com/item?id=5092123> (bloomberg.com)

<http://news.ycombinator.com/item?id=5092327> (guardian.co.uk)

<http://news.ycombinator.com/item?id=5092447> (latimes.com)

<http://news.ycombinator.com/item?id=5092764> (lohud.com)

<http://news.ycombinator.com/item?id=5092889> (bbc.co.uk)

<http://news.ycombinator.com/item?id=5093489> (cnn.com)

<http://news.ycombinator.com/item?id=5094517> (ft.com)

None have comments yet.</comment>


Researchers Build a Working Carbon Nanotube Computer - <AUTHOR> http://www.nytimes.com/2013/09/26/science/researchers-build-a-working-carbon-nanotube-computer.html

<comment><USER2> So this is a pretty good result, I've been waiting for a full carbon circuit design. The use of tubes rather than something like ion implantation of graphene seems to make it harder than it might otherwise be, but I continue to believe that carbon will end up supplanting silicon as the computation base unit.

Of course if we build a computer out of carbon circuits that achieves sentience it will be a 'carbon based lifeform' :-)</comment>


Ask HN: How do you manage your todos? - <AUTHOR> <comment><USER2> Now that I stay home all day, I use my whiteboard notecards[1], neodymium magnets, and a whiteboard. I plot them out on a 2-dimensional axis of:

\- Impact within the next 2 weeks * certainty of that impact.

\- Scope of the task * Difficulty of making an increment of progress.

I then hopefully pick the tasks with the highest impact per effort.

I'm working on incorporating some of the guidance from Dave Crenshaw's class Time Management Fundamentals.

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

General Recommendation: Take advantage of the curb cut effect.

[https://medium.com/@mosaicofminds/the-curb-cut-effect-how- ma...](https://medium.com/@mosaicofminds/the-curb-cut-effect-how-making- public-spaces-accessible-to-people-with-disabilities-helps- everyone-d69f24c58785)

Spend some amount of time looking at tools and habits built for the ADHD community.

[1] [https://www.amazon.co.uk/Blank-Playing-Cards-Matte- Finish/dp...](https://www.amazon.co.uk/Blank-Playing-Cards-Matte- Finish/dp/B01H4CZQ14/ref=pd_sbs_21_1/258-2580851-9949047)

</comment><comment><USER3> I use google sheets. I find it more easy that using complex todo lists.

\- [https://support.google.com/a/users/answer/9310268#1.1](https://support.google.com/a/users/answer/9310268#1.1)

\- [https://medium.com/benjamin-dada/tutorial-how-to-build- your-...](https://medium.com/benjamin-dada/tutorial-how-to-build-your-own- beautiful-todo-list-sheet-e917f8c7670b)

</comment><comment><USER4> TL;DR Emacs org-mode.

A private git repository containing my org files synced with my devices with syncthing, it's a git repository because I commit and push once or twice a month in case I lose all my devices at once, (very unlikely, but... the TAO of Backup [http://www.taobackup.com/](http://www.taobackup.com/)). On Desktop, I use Emacs (well spacemacs), on mobile Orgzly, to manage the actual work, there are still some glitches, but I stumbled upon this [https://blog.viktomas.com/posts/my- workflow/](https://blog.viktomas.com/posts/my-workflow/) recently and I'll see how to integrate all this in my own workflow.

[https://opensource.com/article/19/4/calendar- git](https://opensource.com/article/19/4/calendar-git)

Edit: Seems there's already a blog post about something like what I'm using. [https://hiepph.github.io/post/2017-11-24-emacs-org- syncthing...](https://hiepph.github.io/post/2017-11-24-emacs-org-syncthing/)

<comment> johnx123-up IMHO, Restyaboard is better. It is more like a self hosted Trello.

</comment></comment><comment><USER5> I am using Restyaboard to organize my to-do list, which is very good.

<comment><USER6> Clearly, as all the comments you've ever posted say. If you're going to manipulate HN to drive traffic to your product, at least do it the smart way.

</comment></comment><comment><USER7> I use to-do list app and a little notebook

</comment><comment><USER8> I don't.

I like to just take things as they come.</comment>


Apply HN: Cadwolf – Intelligent Engineering - <AUTHOR> www.cadwolf.com
When an engineer/scientist/worker solves a problem, they generally use Excel, Matlab, MathCAD, or python to do their work. They then document their results in Word and email that to their boss. This causes problems in that documentation and analysis almost always get out of sync, and bosses/customers will have a license to check your work.
CADWOLF solves these problems by doing all of these things in the browser. Users create web pages called "documents" and add blocks to the document through a gui. These blocks can be text, tables, plots, equations, etc. Equations solve top to bottom in the document and update in real time.
In short, it replaces all of the above platforms with a web page - with nothing to download or install.
For engineers, the platform does considerably more. Whenever a large structure - like a space vehicle - is built, every part is given a unique number through a part numbering scheme. Our part tree module lets the user create this scheme and then add systems and components to the structure.
This gives us two big functionalities : the ability to query the structure for items like "weight" in real time; and the mathematics will update along with design changes.
What would we do with the grant:
Complete an AWS server side to solve large problems, publicize the site, and begin working on a CAD system to go along with the mathematics. This will be unique in that it will be browser based and linked to a backside mathematical model. As the design changes, the math and the CAD will update as well.
This will drastically reduce the time and manpower it takes to design cars, space vehicles, planes, etc.
The system is in beta now and you can see several videos and demos on the main page.
Short intro video here - (2 min) https://www.youtube.com/watch?v=pdFf7jfA5EE
Longer video giving full explanation (15 min) https://www.youtube.com/watch?v=MkdSZhrsxrU <comment><AUTHOR> Thanks to everyone that has asked a question. I wanted to add a little more info on how this will speed up engineering in the future.

A "fitting" is a small component that usually attaches a rod to another item. The fitting consists of a base plate and two vertical extrusions. There is a bolt at each corner of the base plate connecting it on that end and an eye bolt sits between the two vertical extrusions and screws into the rod.

I CADWOLF, you will be able write a single web page or "document" that takes in the load on the fitting through the rod and then calculate the base plate size, the thickness, the size of the vertical extrusions, and the sizes of the bolts needed. These items will populate your part tree automatically. When the load changes, everything updates automatically. If you change this document, the design updates.

Now imagine that you are building a large structure with dozens of these fittings and any engineer can simply place the fitting into their structure in the same way that you call a function. You don't have to worry about whether or not the engineer did the design properly as everyone is using the company standard analysis and the engineer can go about doing the more complicated things.

Now imagine that CADWOLF provides a large array of built in structures like this where a single engineer can design large and complicated structures faster than teams of engineers do today.

</comment><comment><USER2> I'm no domain expert here, just a random HN user. But I think this looks cool though, is trying to solve a real problem.

My first thought: This is a very big problem space to be tackling all at once. Massively huge.

I could see it taking a lot of engineering time to build out a featured product, which has parity with the incumbents at the things they do well. Also your target customers are very process oriented, so you've a big challenge to sell to them. For any given engineering application, you're probably going to be missing some features or feature-richness they consider 'key', for at least the medium term.

Unless something has changed that means they can achieve their needs with a lot less functionality? E.g. Spreadsheet software, by virtue of the inherent power and simplicity of the metaphor, turned out to be good at a lot of things, and killed a lot of special purpose apps. Even then it took a lot of resources to write an early spreadsheet package. And its really difficult to build horizontally successful products like that.

So the common pattern to tackle this is to pick a really narrow niche you can specialize in and dominate, within the wider market. Ideally a new or underserved niche, or one that has changed recently in some important way, which means it isn't being served optimally by existing solutions. And getting enough better than an incumbent in just that niche that you can get some traction, get funding, bootstrap your development, and [>5-10 years later] eventually build the more general product.

Have you thought about doing that? Its not always the best thing to do, but it should be given a lot of thought?

<comment><AUTHOR> You are very right in that a product in this space has to meet a very high bar before it is useful compared to other things like Matlab.

I have functionality to do things like differential equations, linear algebra, FFTs, but not really hard math things like symbolic integration. So, right now my targets are users that need something more powerful than excel but don't need the higher level features of matlab or python. To help acquire those people, I am writing a server side on AWS to let them solve large problems and simply pass the cost they incur on to them (for now). In this way, I can target small companies and let them solve some large problems without having to buy large servers.

I am hoping that this side can pay for the development of the CAD system.

</comment></comment><comment><USER3> How does this integrate with existing tools?

> This will drastically reduce the time and manpower it takes to design cars, > space vehicles, planes, etc.

I don't understand how this follows. Can you give an example of the savings your software will offer?

How well do you understand this market? Have you worked in it before?

To me, it's obvious that writing things in a word doc and emailing it to my boss sucks. But do you know why it's done this way? Are there better options without traction? Is there something about accountability that I'm missing?

<comment><AUTHOR> There is no integration with existing tools. There are some very good CAD systems out there - Catia, ProE, etc. However, for security reasons, there is no way I could link up to that software on the server.

<comment><USER4> so, you can't import g files or excel files or word files? and Have to design everything from within this new framework?

<comment><AUTHOR> The platform has 4 components. One component mimics a folder tree and shows all of you documents and subfolders and stored images.

The second is the documents themselves. Here, you can create a document and add text, equations, plots, etc.

The third is what we call "datasets." A dataset lets you import an excel file, a web page, a text file, or just paste data and store the parsed results. You can then import that dataset as a variable into a document.

The fourth is the part tree module.

Everything other than the datasets is done from within the framework. You can paste text into a document if you like and work with it like a word document.

</comment></comment></comment></comment><comment><USER5> Interesting concept. The aggregating of documentation and analysis together reminds me of a Jupyter notebook. If you add in a fully-featured CAD plugin and connect everything to AWS or whatever, does that approximate your product plan?

<comment><AUTHOR> Pretty much. The CAD will be fully browser based and connected to the documentation and analysis side as well.

There are a lot of things that are somewhat similar at first glance. However, many of those require the user to write a document of some kind in a text editor and then upload it to a server where it is viewed through a URL as a web page. With CADWOLF, the user creates a new page and edits it in a WYSIWYG format.</comment></comment>


Eigentechno – Principal Component Analysis applied to electronic music - <AUTHOR> https://www.math.uci.edu/~isik/posts/Eigentechno.html <comment><USER3> This is really, really awesome. Some other ideas that would be really cool:

1) Do key detection and pitch-shift all the loops to a common key before processing. That might make more of the melodies come through the eigenvectors.

2) Visualize the loop point cloud - maybe with like 10-50 dimensions of PCA followed by 2 or 3 dimensions T-SNE.

3) Maybe some form of earlier dimensionality reduction? I.e. you could do a short-time fourier transform and then threshold and bin frequencies - <USER2> invert the transform to reduce the sounds to their basic characteristics. That make make it so not all of the first 20 or so eigenvectors all have slightly different kick drums. For example, if you have kick drums with fundamentals at 21Hz, 22Hz, 23Hz, 24Hz etc. those will each require two eigenvectors to represent the sine or cosine phases of the signal - but if you could "project" every kick drum sound so they were close to linearly related then PCA could isolate them with fewer eigenvectors.

I would love to play with some sort of live music generation system based on this - really, really interesting ideas. And goes to show what can be built with traditional data analysis techniques and a clever idea!

EDIT: Also if you uploaded your preprocessed data I think that would be really amazing.

<comment><AUTHOR> Thank you for these great suggestions. I will make the dataset available eventually. It's about 15 gigs so I just need some time to do it right. I will let you know when I have it released.

<comment><USER4> If you struggle to find hosting (and even if not), archive.org would be a great place to put it for longevity.

</comment></comment></comment><comment><AUTHOR> Hi, I am the author of the article. I would appreciate any comments/questions/suggestions.

Update: I switched the audio files to Soundcloud now so everything should work again.

Eigencrisis! It looks like the UCI servers are having trouble. I uploaded the audio files to the following Soundcloud playlist and I am working on embedding the soundcloud player in place of the files.

[https://soundcloud.com/umutisik/sets/eigentechno-1](https://soundcloud.com/umutisik/sets/eigentechno-1)

Sorry for the inconvenience.

<comment><USER5> First and foremost: This is really cool, and thank you for sharing! (It's also the first explanation of the terms in the matrix equation for SVD that I've happened across that has really clocked for me: much appreciated.)

Here's my worry, speaking as someone who knows physics but not all that much audio processing. I feel like this approach will inevitably put a _whole_ lot of (unhelpful!) emphasis on the detailed phase information of the various sounds. The near-perfect cancellation of the average track illustrates this: two loops of the exact same bass drum beat offset by a fraction of a second will be treated as orthogonal or even opposite by this algorithm, but they're essentially identical as perceived by the listener.

Conceptually, I imagine what you'd want is some way of encoding the various loops whose average came out sounding like a real average, rather than as nearly silent due to phase cancellation. My first instinct is to say "take the FFT of each loop _first_ , and then run your PCA on that". Maybe that's not the right answer: like I said, I'm not an audio processing expert. But I suspect that right now your analysis is spending a huge fraction of its effort effectively trying to get the first drum beat to happen at precisely the right fraction of a second, and separately to get the second drum beat to happen at precisely the right fraction of a second, and separately the third, and the fourth, and so on. And heaven help you if the different loops' bass drums are tuned to marginally different notes.

Edit: Only after writing this did it sink in that the top overall comment's remarks (by "highd") about earlier dimensional reduction were getting at the same issue. I'll leave this here, just in case the different framing is useful.

<comment><AUTHOR> That's my thinking too. PCA completely ignores the phase shift symmetry and treats a phase-shifted sine wave as a different thing.

One could definitely get something better if they took the audio-loops as translation-invariant. I thought about trying to do a symmetry-invariant (or 'group-action-invariant') PCA but I could not find a good way of doing that. More advanced methods, e.g. 1-d convolutional networks, WaveNet etc. do have this translation-invariance built into them.

Interestingly, the second eigenvector is not just a phase-shifted version of the first eigenvector but contains slightly higher frequency information as well, but I agree totally with what you said.

<comment><USER6> Google "persistent homology" and "Rips complex" for a _completely_ different approach.

</comment></comment></comment></comment><comment><USER7> Life imitating parody? [http://archive.museumoftechno.org/exhibition_detail.php?id=6](http://archive.museumoftechno.org/exhibition_detail.php?id=6)

(see also [http://archive.museumoftechno.org/exhibition_detail.php?id=4](http://archive.museumoftechno.org/exhibition_detail.php?id=4) )

</comment><comment><USER8> _Even though the sampling loses information about the wave; from the sampled data, your computer's digital-to-analog converter can perfectly reconstruct the portion of the sound that contains all the frequencies up to half of the sampling frequency. This is the Nyquist Theorem. So we are O.K._

Pedantic note: This is only true in a theoretical setting where you have infinitely precise samples. Since each sample has only so-and-so many bits, and calculations also are lossy, you cannot reconstruct the wave perfectly. But it's good enough. There are also formats with more bits per sample to increase quality.

<comment><AUTHOR> Thank you. That's a good point which was not clear at all in my sentence.

</comment></comment><comment><USER9> Beautiful work and I think he should probably make a vst or something out of. Producers are always looking for new ways to break sounds apart and put them back together.

<comment><USER10> FFT filters and the like are already a thing, I'm not sure what extra practical benefit you think this would bring. Nevertheless it's a good start and well-documented.

<comment><USER11> PCA can decompose sound to more accurate base functions (if you look at covariance), so if you combine a few of them together with different coefficients, you might be able to generate some cool sounds much faster than with traditional methods. Later you might feed this to a RNN and perhaps compose brand new good sounding songs automatically, make a new Vocaloid band in Japan and go on a tour, generating new music on each performance ;-)

<comment><USER10> I am actually very interested in its application to musical patterns, ie the actual notes rather than the audio. I think there's already a tool that uses this to generate rich and musically-correct MIDI on the fly but I'm having trouble remembering the name/manufacturer now. Future Retro maybe.

</comment></comment></comment></comment><comment><USER12> I don't get it. I guess he is deconstructing music by PCA instead of frequency or time. What is a practical application or interpretation of this? (not being critical, just trying to understand the motivation)

<comment><AUTHOR> Thank you for your question. At this point, this is just to see how PCA works on this kind of data-set. Normally, PCA is used to reduce the dimension of the data in a way that loses less information. It can be useful for saving computation on classification tasks for example.

<comment><USER12> Its a cool exploration for curiosity's sake. Seems weird to use it vs Fft though because while some have said PCA is supposed to be "more optimal" , we have prior knowledge that the music is actually constructed along the FFT dimensions. So I wouldnt expect PCA to be any better

<comment><USER3> FFT and PCA are totally different. FFT is a fixed linear transform - PCA finds the linear projection to k-space that retains the most variance from the original dataset. If you projected to the top k frequencies you'd just get a couple of tones, while PCA finds linear combinations of the original signal that are most "descriptive" in a sense.

Also human hearing is much closer to a wavelet transform or STFT than FFT.

</comment></comment></comment></comment><comment><USER13> I was starting on the opposite tack, tho haven't got far, synthesizing/sampling kicks, snares and bass lines from scratch, which is prett tricky, like a kick is a sine wave swept down, play with ADSR envelope, saturate/compress, then you typically layer 3 separate kick tracks by phase aligning and more post processing. There's a lot to getting a good sounding kick with presence, attack, body.

The reference on this is Rick Snoman's Dance Music Manual, 3rd ed.

<comment><USER11> IMO you are limiting yourself by being in the analog mental model - ADSR, oscillators etc. are what made analog circuits generate sound but in the digital world they aren't necessary anymore and you can view all of it as just (periodic) function compositions in different spaces and model far beyond what analog can reach. Some new VSTis completely abandoned analog-style already.

<comment><USER14> Yes, but how you will achieve that fat synth sound without analog?

<comment><USER7> How will you define fat? (I'm guessing that wasn't a serious comment!)

</comment></comment></comment></comment><comment><USER15> also, as an alternative to PCA, try ICA (independant component analysis). This will attempt to find non-gaussian sources in the data and might be worth seeing if it can carve out more interesting portions of the sound.

<comment><USER16> Try a NN

<comment><USER15> good luck with that

</comment></comment></comment><comment><USER17> I'm working full time on a new DAW that should make writing music a lot faster and easier. Current DAWs don't really understand music theory or the creative process. Also the note input process and experimentation is extremely time consuming and the DAW never helps. Current DAW : my thing = Windows Notepad : IDE. The HN audience is definitely one of my core groups.

Sign up here [https://docs.google.com/forms/d/1-aQzVbkbGwv2BMQsvuoneOUPgyr...](https://docs.google.com/forms/d/1-aQzVbkbGwv2BMQsvuoneOUPgyrc6HRl- DjVwHZxKvo)

And ill ping you when it's released.

<comment><USER18> Current DAWs don't really understand music theory, that's right.

But there are such things as Synfire Pro by cognitone for example, which on the other hand is unusable as DAW exactly like all the other software for music composition.

I would love to see an usable combination of both software categories eventually.

One question left: Your software won't be FOSS, or will it?

<comment><USER17> I'm aware of synfire, I definitely took some inspiration from it but mine will have a faster workflow, will be cheaper (synfire pro is like a thousand usd), will look visually better etc.

It won't be Foss no

</comment></comment></comment><comment><USER19> Very nice. Suggestion: Would be great to put the Jupyter notebooks on [https://notebooks.azure.com](https://notebooks.azure.com) so we can actually run/edit/play with them. Zot!

</comment><comment><USER20> down for me. Here is a copy, albeit useless because the audio files don't work: [https://webcache.googleusercontent.com/search?q=cache:https%...](https://webcache.googleusercontent.com/search?q=cache:https%3A%2F%2Fwww.math.uci.edu%2F~isik%2Fposts%2FEigentechno.html)

Edit: audiofiles suddenly work, but still can't access the website

</comment><comment><USER16> I would think this distills into a sine wave... based on the moog.</comment>


Parsley.js: never write a single JavaScript line to validate your forms - <AUTHOR> http://parsleyjs.org <comment><USER2> Has anyone had any experience where adding or removing client-side validation has affected conversion?

Other comments talked about client-side validation being mainly for UX and user convenience. But I'm wondering if it has a noticeable effect on whether or not people actually submit the form all the way to completion (i.e. no errors).

I made a tool that I have server-side form validation. I found that saving the invalid input so that I could examine it later was extremely valuable in understanding what people were entering, so that I could make the tool smarter. A good example is like with Parsley's demo where it requires <http://> for the website URL. After seeing that people tried to enter URLs without <http://>, I knew I could change my code to automatically infer it. <http://> is obvious, but a lot of times, people will surprise you. I don't have stats, but presumably this kind of change increases conversion. I realize this anecdote is a different effect than what I'm asking about client-side validation.

<comment><USER3> What about a hook where every time a user makes a mistake it sends the related data to a centralized location.

I can envision that could be easily to push this to Sentry <https://getsentry.com/welcome/> using the Sentry Javascript Client

<comment><USER4> You can do the same thing with Google Analytics events. Use a non-interactive event with "form validation" as category, field name as action and entered value as label. You may miss some events based on the service limits, but the common trends will be obvious.

</comment></comment></comment><comment><USER5> This is a clean way to solve the low hanging fruit of form validation, stuff like isItAnEmailAddress().

What I always find messy in web frameworks is doing validations which are more complicated.

For example a radio button choice which hides another form element which would otherwise be mandatory but should now not be filled in at all. Or where supplying a value between certain dates changes another date field from optional to mandatory and also must check that these dates are between certain values dictated by the first date field.

<comment><USER6> For one of my new projects, that is precisely what I am doing - making it possible to define complicated validation rules in a simple manner (and lots more). Would there be interest if we open-source it?

<comment><USER5> Quite possibly.

Though I'm not sure how much this could be generalised since complex validation rules are effectively computer programs in themselves.

Not sure what your approach to this problem is, but perhaps one way to do it would be a validation engine that is inherently functional by design.

Of course, ideally it should be something that can plug in to popular web frameworks easily.

<comment><USER7> Data binding solves this generically. It allows you to build state machine trivially Stuff like angular and ember do this amazingly well though it would be nice to have a nice standalone library. (no idea if one exists)

</comment></comment></comment></comment><comment><USER8> Looks cool, but the demo right at the top of the "examples" page has two things that IMHO aren't as "UX aware" as described on the landing page:

\- The "website" field requires the <http://> part of the address \- After typing three letters into the "message" fieldarea, an error pops up and tells me the message needs to be at least 20 characters long, while I'm still typing away

I realize this could be tweaked by the user but the demo shouldn't have such logical flaws for a script that's described as "Super #UX focused". ;)

<comment><AUTHOR> Right. The demo form is totally UX un-aware! :)

</comment></comment><comment><USER9> This is neat.

A couple of points:

1- Client side validation is easy to circumvent. If you use this you have to make sure it is for UI only and that the real validation happens server side.

2- Using regex for email validation is fraught with issues. Probably the most salient one is that there are a million expressions out there. People run a quick google search, grab one and move on without knowing what they just plugged into their code. This particular tool will, for example, pass "firstname.lastname@example.com" as valid.

Other than that, I am sure this is a great time saver.

<comment><USER10> 1\. I agree, of course. Surely, everyone knows this right?

2\. True, but you have to do something. :) What exactly is wrong with firstname.lastname@example.com? That could be valid domain at some point, right? You could filter those out but it's almost a preference sort of question. Does anyone think it would make sense to have "warning" level of validation for email addresses and let the user decide on these sort of examples? Just throwing it out there.

<comment><USER5> To fix that, you can do a DNS lookup and check the domain has a valid MX record.

<comment><USER11> HTTP calls for client side validation? That's a great idea!

<comment><USER12> "This username has already been taken."

</comment></comment></comment></comment></comment><comment><USER13> Why use <input type="text" data-type="email"> rather than... <input type="email"> ? You're already using HTML5 data attributes, so why not use HTML5 input types? Added benefit is that the browser also has an idea of what kind of data goes there - this helps on mobile devices especially, where email fields won't auto-capitalize and might include extra buttons like the ".com" button and "@" right on the normal keyboard.

<comment><AUTHOR> Right.

jQuery/Zepto $.data() was fast and easy to implement, rather than searching html5 attr.

I'll think about that ;)

<comment><USER14> It shouldn't be that hard to use a attribute instead: var data = $( self ).attr(type);

</comment></comment></comment><comment><USER15> Nice.

Improve the demo by removing spellcheck from the name field and capitalizaton for ios (and likely other touch devices) where appropriate.

Along the same lines, demonstrate phone number field (number formatting), currency field, and automatically dealing with urls more nicely.

</comment><comment><USER16> Speaking with my security hat on: This is a really nice library, but you also do the same validations server side right?

<comment> why-el Great question. I would usually prefer server side validation, and with the nice integration that Rails provides between form errors and validations on the model, I am not sure how I can use this. Does anybody who uses a Rails stack combine both server side and client side validations?

<comment><USER17> I thought it was standard to have both. Server side validation to keep bad data out and client side validation to provide a nicer UX for the user than a complete page reload and them searching around for what went wrong.

<comment><USER10> Yeah, for some reason people always bring up server side validation on these kinds of posts about client side validation ... doesn't server side validation go without saying?

<comment><USER18> You'd _think_ it goes without saying, but I've seen enough code where people didn't. Including code where the client side JS validation was pretty much a guide to hacking the site (trying in vain to protect against SQL injection attacks in one of the most horrific examples, where the SQL injection checks essentially told you exactly what to try to post directly to their server...)

</comment></comment></comment></comment></comment><comment><USER19> This is fantastic. The jQuery Validation plugin has needed a successor for a long, long time.

<comment><USER20> Yes but then we need all the different validation methods that come with it. I use phoneUS and the like, I don't want to give that up.

<comment><AUTHOR> They'll come don't worry ;)

<comment><USER20> Alright. Give us an example of how to make them and I'll fork, patch, and pull request.

</comment></comment></comment></comment><comment><USER21> The url validation seems a bit strict, requiring "<http://> at the start. No one types that these days, and I think in practice it might be a real roadblock for less computer literate users. I notice also that "ftp://" is valid, but not other protocols like, say, "afp://" or "git://".

Other than that, great job! I'm actually really looking forward to using this in my next project - form validation is usually such a pain.

<comment><AUTHOR> I'll take a look to url RegExp validation rule ;)

</comment></comment><comment><USER22> The implementation just smacks of AngularJS. In fact, implementing something like this would be just short of trivial using Angular...!

If you like the concept of "extending html" as used here then you should probably checkout AngularJS: <http://angularjs.org>

<comment><AUTHOR> Sometimes you just don't have or don't need angular or other js framework and just simply want to validate a form ;)

<comment><USER22> Yes quite, it is nice that is framework independent.

</comment></comment></comment><comment><USER23> Looks very similar to the unobtrusive validation used in ASP.NET MVC (which in turn relies on jQuery validation) although this does seem to add richer configuration of behaviour (such as when the validation is triggered etc.)

from here: [http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-...](http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive- validation.html) <input class="text-box single-line" data-val="true" data-val- length="The field LastName must be a string with a maximum length of 60." data-val-length-max="60" data-val-required="The LastName field is required." id="LastName" name="LastName" type="text" value="" />

</comment><comment><USER24> I suppose this is more suited to when your models and schema are also defined on the client side?

Having just hit this situation (validating a form client-side), I found the best solution was to transport the form schema from the server (because I use Django, I can easily whip up a ModelForm), then push that into a simple Javascript Form object which renders the schema and adds validation. Maybe there's better ways, but that's what worked for me. Curious what others have done .. :-)

<comment><USER25> Nice to have a full-blown client-side equivalent of schema definitions and validation rules, but for most of my forms, I just add it quickly and dirty. Sometimes it feels bad, but most web toolkits treat JavaScript as a second- class citizen and not an integrated part of its core (and no, throwing in a jQuery does not count).

Yii framework (PHP) supports validation through Ajax (serializes the form, sends for regular server-side validation and displays the errors on the form). A godsend if your form does not change, and impossible to work with if it is dynamic (consider batch entries with "Add line" features, etc.).

I haven't seen a seamless integration on this higher level.

<comment><USER26> Yii can also do client side validation (without an ajax call) for most of its built in validation rules.

</comment></comment></comment><comment><USER27> This library looks great! I really like the functionality and the html requirement definitions.

I don't want to hijack, but I just want to link to the form library I wrote a couple years ago. It has a little less functionality, but it is a little lighter and has no dependencies. It is here: <https://github.com/rickharrison/validate.js>

<comment><USER28> Hey! I use that! Thank you for validate.js. validate.js + humanize.js works very well (but this morning I was considering using parsley.js. I'll evaluate it over the weekend I guess)

</comment></comment><comment><USER29> Very nicely done. Beat me to it. :(

I am working on a library which takes a data definition, renders the form and then validates it before submitting it via ajax. It supports various hooks like manipulate the data before submission etc.

IMHO form rendering (in a standard way) is also a common pain point along with form validation. Anyone interested in this type of library? Any inputs will be highly appreciated.

</comment><comment><USER30> Great. How about internationalization? Do you allow to replace the english error messages with messages in other languages?

<comment><USER31> That is what I came here to ask. Is there way to define the error messages somewhere, per language?

<comment><AUTHOR> Yes, not very handy currently, but you could override all messages in Parsley constructor on each form..

I'll look definitely into a more handy solution soon :)

<comment><USER32> i18n is a must for most projects to use it :D, we would love that.

</comment></comment></comment></comment><comment><USER33> I suggest you do add this on cdnjs ;) <https://github.com/cdnjs/cdnjs>

</comment><comment><USER34> Typo in the "Super Free" section on the home page: s/developped/developed

<comment><AUTHOR> thx! will fix that :)

</comment></comment><comment><USER35> Very good, I'll give it a fair try in my next project.

</comment><comment><USER36> "DOM-API" is redundant, as the DOM is an API.

</comment><comment><USER37> thanks so much! very excited to use this in a project we're working on.

</comment><comment><USER38> Loved this

</comment><comment><USER39> Nice lib!</comment>


Ask HN: What is a good ACID compliant database hosting service? - <AUTHOR>

Hey guys, so our team is trying to decide where to host our site. Obviously hosting sites can be a little shady about what exactly they offer (like "unlimited" anything), and in the ones we've looked at we've found a couple surprises in the terms and conditions. Could anyone share their experience finding hosting? We need a database that has foreign key and ACID compliance (so Postgres or MySQL with InnoDB) and preferably a decently high connection limit. As always cost is a concern. Thanks a lot for your help <comment><USER2> If you're building an app, you should get a VPS rather than shared hosting. Linode is my personal preference.

</comment><comment><USER3> Why not go with EC2? over RDS mysql instances?</comment>


North Korean media just deleted most of its article archives - <AUTHOR> http://www.nknews.org/2013/12/in-1984-moment-n-korea-deletes-near-entirity-of-news-archives/

<comment><USER2> The website just went down. Here's the Google cache: [http://bit.ly/JBbjuT](http://bit.ly/JBbjuT) (shortened because it is too damn long)

</comment><comment> pre-show-mac I just executed (probably wrong word) about ten searches for derivations of Johnny Carson. You guys should go there and search for derivations of his name too. I figure nothing but butterflies and good things will come from their web team finding out who he is, and what freedom means.</comment>


Experienced Programmers Use Google Frequently - <AUTHOR> http://codeahoy.com/2016/04/30/do-experienced-programmers-use-google-frequently/ <comment><USER2> I not only use Google frequently, I use it to search for things I myself have written in the past.

I can't count the number of times I've Googled for a programming question where the answer is found on a Stack Overflow page I've written. If it's a particularly old answer that I've completely forgotten, I've even thought to myself, " _Wow this genius sounds just like me!_ "[1].

[1]: ... as well as " _This idiot has no clue what he 's talking about!_"

<comment><USER3> That and finding a question you've search for, only to find out that question was also posted by you years ago. Bonus for ones with no answers still.

<comment><USER4> Or a question you had years ago. Couldn't find an answer. So you did a workaround and/or forgot about it.

Now you hit the same problem search -- and find you original question. But wait! Now there are half-a-dozen other people with the same problem! So you click on all of those links.

But none of them could find an answer either. Bonus points if there's a guy who comes in condescendingly and quotes a manual or some other standard piece of information -- which is also wrong. This is usually because they didn't pay enough attention to understand the question in the first place.

<comment><USER3> I had a guy, on stackoverflow, commenting condescendingly on my question (or was it an answer, can't remember) that I was wrong and I should edit my post with his answer instead. All would be well if it wasn't on a 6 year old post at the time, and he was wrong. Ah, stackoverflow - what happened to you? It was fine and dandy when it was all loose. Now you ask a question and it's immediately flagged for various reasons. I've noticed that a lot in programming (I'm not actively programming anymore). It's always fun until the entropy of the rigidness comes in.

<comment><USER5> The one time I posted a question on SO, it got flagged as duplicate and there were links to multiple other questions that were not even remotely the same to mine. Even more so, the tagged questions were not even mutually the same!

It took two hours to carefully craft my question just to have it immediately shot down. It is needless to say I have not posted again since.

<comment><USER6> Yup. If I post anything on SO or related sites it's because I hope to get an answer before the question is inevitably closed.

I just assume that my question won't fit their guidelines, regardless of what it is, these days.

</comment></comment></comment></comment></comment></comment><comment><USER7> I often joke that my ability to formulate good Google queries is the single most important part of my software engineering skillset. Except, you know, I'm not really joking.

<comment><USER8> Related is being good at debugging. There's something about having a certain intuition (in reality probably experience) on what it is that you are looking for that is critical.

<comment><USER9> Like when you are looking at live debugging information that is scrolling fast but you are still able to pick out problems?

<comment><USER10> I think they mean looking for the value/path that doesn't make sense.

<comment><USER11> Yes. I see people getting hung up on irrelevant issues. It happens to me on occasions, but some people seems to get stuck on side effects and irrelevant errors and messages.

I find it to be very irritating if it happens for people that should know better...

<comment><USER10> The important thing to remember is that as sure you are that they're wrong, they're sure that they're right.

In general I find that asking them to explain _why_ they think this is causing the behaviour you're seeing they can usually work out they're wrong/convince you they're right. Of course this only works if they don't scream "I've found the bug" every time you step forward.

</comment></comment></comment></comment></comment></comment><comment><USER12> Ironically, the one time that I did not use Google frequently (as a programmer) was when I was working on Google Search. It's hard to Google the answers for how the search engine works, particularly when they're locked up in the heads of only one or two people.

Use it all the time otherwise, for personal projects and startups (really, all of my startup ideas would be complete non-starters if Google didn't exist). Just beware that if you can Google the answers, the skill is a commodity, and that the real economic gains come from knowing things that nobody else knows.

<comment><USER13> When I'm trying to do something 'big', i start with the technical papers on the subject. Often, I get those by finding the syllabus of a graduate class (or classes) in the field.

Now that I understand the big picture/state of the art, I spend more time looking for specific techniques using Google and/or Stack Overflow.

</comment></comment><comment><USER14> Another essential point here is when you get 'fancy' error messages. Google is amazing at finding why (and usually, The Patch) when you fail to compile random packages.

I have my own little cross-distro builder[0] and I /rarely/ bother trying to dive into autoconf/make hell before cut+pasting the exact error message into google! That very likely saved my sanity many times over :-)

Otherwise I agree with the article -- Given the number of environments and languages around, actually 'knowing' trivialities like exact library names and such is a waste of good neuron..

[0]: [http://github.com/buserror/minifs/](http://github.com/buserror/minifs/)

<comment><USER15> Much like the sort algorithm that downloads and evals Stack Overflow answers until the list is sorted, someone should make a build tool that Googles any error output, installs possible patches, and restarts the build. It could even see if adding the patch caused a new error and decide whether to roll back or keep patching.

<comment><USER16> That seems like a pretty safe idea.

<comment><USER17> Do it in a VM, and it is.

<comment><USER18> A VM is also just software, plenty of quest-to-host escapes in the last few years...

I bet that many people that should know better here have never updated their VM, except those who are warned by the auto updater that is.

<comment><USER19> I always put my vm to host escapes in the sort section of stackoverflow.

Not to say that this is not actually a security threat, but I would say a VM is safe enough

</comment></comment></comment></comment></comment></comment><comment><USER20> > "Never memorize something that you can look up." - Albert Einstein

Here's the actual [1], and perhaps more meaningful, quote:

"[I do not] carry such information in my mind since it is readily available in books. ...The value of a college education is not the learning of many facts but the training of the mind to think."

[1] [https://en.wikiquote.org/wiki/Albert_Einstein](https://en.wikiquote.org/wiki/Albert_Einstein)

<comment><USER21> Yet we force people in interviews to remember things standing in front of a whiteboard.

<comment><USER22> How much you remember is also correlated to how much you actually use certain things; it can be a good signal for whether you have practical experience with X.

For some companies, it's what they need in a hire. For others it's OK to just ensure people have a sound problem solving strategy and above-average general cognition.

I think you'll find varying levels of what you might consider nitpicking depending on the sort of company you're interviewing at.

<comment> at-fates-hands >> it can be a good signal for whether you have practical experience with X.

This should be vetted out well in advance of an interview, especially for a developer. If you don't have at least a half dozen repos somewhere with code examples of sites or apps you've built, then there's a very high chance you're not going to get an interview. I've only been coding for 7-8 years and I have an extensive GitHub page, can point to close to 200 public sites I've built (both dynamic and static) and have a portfolio full of images from other projects I've worked on.

If you can't ascertain whether a person has practical experience with a tool, software, or language then you're not doing your due diligence.

<comment><USER23> Not everyone has or needs an extensive GitHub page. I'll use myself as an example. I've got over a decade of experience working in large teams to ship commercial products. As a general rule, you won't ever see my code unless you also work for the same company. The kind of companies I work for want me for the experience from my day job. I can easily prove I worked on the projects I worked on but any company interviewing me would have nothing beyond my word for what exactly I contributed to each project. It's totally reasonable for them to ask questions that can confirm I know how to do things I claim to have done.

</comment></comment></comment></comment></comment><comment><USER24> After doing a lot of interviewing, particularly when asking the same question over and over again, I've noticed the quality of what an interviewee decides to Google varies greatly and can give a lot of insight that just solving the problem alone can't. I've been amazed by some of the incomprehensible things people Google, even among those with the supposed same credentials, skillsets, and backgrounds.

Aside from whether or not they can do the actual problem, it seems to be a good proxy for skill. You can quickly distinguish between those that copy- paste their way to a solution and those that thoughtfully attempt to solve the underlying problem. Seeing what they choose to research, and sometimes having to step in and after a while and say "it seems like this is talking about X, which doesn't have much to do with this problem," speaks volumes about the candidate.

<comment><USER25> Would love to know more about what you noticed from seeing the choice of what to search for. Care to share some examples?

<comment><USER24> I saw a candidate, when working on a problem involving writing a simple TCP server, Google the phrase "osx port 11211". He was wondering why his tcp server was getting a connection refused message when he tried to start it. Turns out, he had copied and pasted client code from an example rather than server code.

I saw another candidate Google "socket get command line arguments" and then stare at a stack overflow answer for a few minutes that had absolutely nothing to do with the problem. What they were _attempting_ to do was just read data from a socket. Some people just seem to throw things at the wall to see what sticks.

</comment></comment></comment><comment><USER26> Yes, Google is actually crucial.

I didn't realize how uniquely good Google's programming results were until I tried Bing or DuckDuckGo and was left confused because their top results didn't even mention some pretty significant page on a target subject.

I am however noticing a _trend_ that I don't like in Google results: they are trying to interpret pages more and more instead of just being a proxy. (No thanks, Google, I don't want your attempt at a pretty _summary_ of a Wikipedia page or StackOverflow post; the link will do nicely. Besides, it is just a _little_ obnoxious to lift content from other sites that may prevent people from visiting those sites entirely.)

Google is not my sole search tool though. I still find it faster to search offline for a lot of things; for instance, if you have a Mac and haven't tried something like Dash for quick access to API documentation, you are _really_ missing a potential productivity boost. And, offline search helps a lot on airplanes.

<comment><USER27> The "interpreting", as you put it, can be really odd at times. I tend to think that in the majority of cases, it works perfectly and you do in fact get your answer without even having to click through to the site. Whether this is a Good Thing™ or a Bad Thing™ is left to each individual's discretion.

It's a little funny when the interpretation doesn't show anything useful. I've noticed this is often the case when they rip an html table out of the document and show partial rows/columns in the result set. They'll frequently display the column that contains your search term (the "key" so to speak), but exclude the column that contains the matching information you're looking for (the "value"). Other times, though less frequently, there are "answers" to your search query that just make absolutely no sense.

</comment></comment><comment><USER28> I've been finding Google less useful in the last little while.

It taunts me and tells me that I'm sorry Daniel, I've decided to exclude the most important keyword from your query.

Domain-specific search tools - e.g. for programming, Dash.app - have become an increased part of my workflow partially because Google simply isn't giving me the results I am looking for.

<comment><USER29> Put keywords in quotes and Google will not exclude them.

<comment><USER30> Essential, but inexplicably strips non alphanumerics.

<comment><USER27> Not so much _inexplicably_. This is common to nearly every indexing system intended to support text search. You won't see punctuation characters being indexed by most systems. Tokenization, lexeme normalization, and all that. It does make certain searches nearly impossible to perform, but the case is rare enough that the average person - even amongst developers - doesn't get stuck all that often.

</comment></comment></comment></comment><comment><USER31> Google is certainly a 100% essential tool for programming. I use it constantly, every day, and I am sure basically every single developer does the same. The most essential point in the post, imo, is that on any given project you have to wade through the details of dozens of components and tools. There's only so much room in the average brain.

<comment><USER32> Google? No. A search engine? I'd say the vast majority of developers use one for some part of their job, yes

<comment><USER25> May I ask you what other search engines are you referring to?

<comment><USER32> Personally, I use DDG. Others may use bing, my point was to buck the Kleenex- ation of Google.

I don't Google things, or DDG things. I search for things

<comment><USER33> I use DDG on my non-work machines. Google is better at finding stuff for programming, particularly the random error messages.

<comment><USER34> I've tried to use DDG for programming but I've found that Google's efficiency is just too good to make DDG worthwhile. I guess I've decided to take the privacy hit in regards to developing activities.

<comment><USER32> What are up searching for that ddg doesn't work? I find myself usually knowing sort of where to look, and often using !bangs or the site: limiter

</comment></comment></comment></comment></comment></comment></comment><comment><USER35> For programmers that were coding before good search engines: what did you do when you wanted to look up an error, etc back then? Crack open a tome for the language? Just curious as I can't imagine it was easy.

<comment><USER36> There are at least two periods 'before good search engines'.

I guess there was a time in the 1950s/1960s when you asked the guy sitting in the next room, who wrote the software, what the error meant, or where you simply read the source code or disassembled the code to figure it out.

When computers became more common, but weren't powerful enough yet for storing electronic documentation, you didn't crack open the tome; you already had it open (and it was more often a tome on the OS than one on the language) You also typically had a printed list of error codes on your desk.

When memory became less scarce, you would see header files with extensive (for the time) documentation, and there were tools to look up API calls, error codes, etc. (I think Windows or Visual Studio still ship with one)

When CD-ROMs became common, you had documentation on CD. Later, when hard disks outgrew CD-ROMs, that data moved to hard disk, because that was faster, and multi-CD setups became common-place.

Those CDs later moved to the web. That often made searches even faster (for example, I remember searching Apple's or Microsoft's site being faster than searching a locally installed MSDN (yes, MSDN was an application before it became a web site) or Apple's documentation for a while)

Also, I read release notes front to back, and used to read almost all API documentation. I think that was fairly common. Without the likes of HN to distract you, there was plenty of time to do that :-)

Since search engines weren't that good, it also was useful. If you didn't know the name of an API call or at least that of a technology, it was almost impossible to find it.

<comment><USER34> _shudders_

</comment></comment></comment><comment><USER37> Google lets you prune already-solved parts of the search space. I have a deep understanding of the technologies I work with, but that doesn't mean I remember the three lines of code that you use to slurp a file into an STL string, for example. Stuff like that isn't worth the brain space.

I guess I'm just restating the Einstein quote more verbosely, but it's absolutely true.

</comment><comment><USER38> This small post is spot on. The search queries could have been typed by me. One of the important things a developer has to learn is how to actually use Google for software investigation. Especially with the acronyms and very short names that we use all the time, its important to know how to structure your Google queries. Writing Google queries to quickly find the correct solutions is a skill on its own.

<comment><USER39> >> Writing Google queries to quickly find the correct solutions is a skill on its own.

This is so true, and yet I haven't ever heard of anyone asking about this in an interview. It would be an interesting skill to try and assess, not sure how it would be done though.

<comment><USER40> I've been involved in interview processes where candidates were presented with a problem, given a computer and asked to solve it. Usually just by searching for an error message.

<comment><USER39> Cool. In many cases that sounds like a much more realistic test than a whiteboard exercise.

</comment></comment></comment></comment><comment><USER41> It's amazing how much productivity is killed when you have to work in an environment, such as a SCIF, where you have zero internet access nor can you use any devices that could connect to the internet. It's certainly made me more resourceful but I don't think it's something a developer should put themselves through if they don't have to.

I must use Google dozens of times a day :)

</comment><comment><USER40> Knowing how to search is an extremely useful skill.

I think we have gotten to the stage where an intelligent and determined individual can teach themselves pretty much anything by researching a subject on Google.

Hold key concepts in your head, Google for everything else :-)

</comment><comment><USER42> I wonder if maybe some geniuses could parse out all of the code on Stack Overflow and connect it to some knowledge graph, connect that with Google's knowledge graph, and integrate everything into a giant programming problem solving deep learning system with Deep Mind/Tensor Flow. Or something.

It just seems like people are googling, landing on Stack Overflow, and solving the same problems so many times.. especially if you could somehow follow through from the code on the screen, the google searches, pages landed on, and then the code or commands that got entered in.. I think that a lot of these recurring questions or problems could almost be solved/programmed by an AI.

Maybe if you could get a web extension running on thousands of developers computers.. maybe for Chromebooks if it could read the code out of crosh.. then monitor all of the searches and coding/terminal commands and create a giant deep learning/reinforcement learning network thing out of that.

Or maybe for monitoring the terminal code and commands some kind of background terminal program would be needed. Maybe ttylog or screen or tailing a tty device or something.

</comment><comment><USER43> I route 90% of my searches through duckduckgo: "%term !g"

</comment><comment><USER44> Let's say tomorrow there was some major catastrophy in which every disk drive or tape drive was wiped, and every computer had reset. How would we fare in rebuilding society?

I guess it would be similar if in 1950, all of books lost their ink or all of scientists/engineers had amnesia. I'm not trying to make a point other than it is interesting to think about it.

<comment><USER45> Humanity would have to come together to reconstruct Angular and Bootstrap from the ground up.

<comment><USER21> Thus the end of humanity.

</comment></comment></comment><comment><USER46> Experienced programmers probably also have a good feel for whether the problem they're having is _truly_ unique (and not worth searching for), whether others will be able to articulate the problem, and how long it might take to solve the issue from first principles, hence how much effort is worth investing in the Google excavation.

<comment><USER47> Most experienced programmers also have a good feel for how much harder it is to write a solid, tested, scalable module yourself than integrate a open source solution, even if it's not perfect.

<comment><USER48> Yet all I remember is the times that third party code has failed me. It is a strange quirk of human memory.

It's not just me, either - one example was a failure in STL map that was as old as the product. It was a known defect but nobody had the heart to face it. When I showed them the defect, people got rather angry with me.

<comment><USER47> I find having a requirements.txt file really helps with this. When you struggle with a plugin and new to replace or rewrite it, removing the entry in the requirements reminds you of all the plugins you are happily using right now.

</comment></comment></comment></comment><comment><USER49> 1\. Google if someone had the same problem and fixed it.

2\. Hope you're using OSS software and simply browse the source to find answers.

The second approach is a bit slower at first, but after you dismantled a bunch of repos it becomes natural, you get faster and the answers you find are more reliable.

<comment><USER50> Having done enough of the second approach, I find it hard to understand why people do the first -- why see what people wrote about what something does when you can just see what it does. Even man pages are some amount of here say, versus inspecting the code.

That said, I do web search some specific terms frequently to get to certain documentation that I trust, SMS search is the easiest way to get there consistently.

<comment><USER49> Well, people think if they're using libs they couldn't write themselves, they don't think they could understand the code.

For example, when I used Leaflet, I had no idea how this whole geo stuff worked, so I assumed that the code would be like higher math to me.

<comment><USER50> There's plenty of things that I can't write that I can understand. Even if I can't understand it, I can look and see what it's expecting for arguments and figure out why it doesn't like what ever thing I sent that was probably dumb.

</comment></comment></comment></comment><comment><USER47> One of the more frustrating parts of my job is dealing with junior and intermediate programmers who spin their wheels try to figure it out themselves rather than google it.

Things like spending several hours on a problem where copy/pasting the error into google yields a github issue complete with a work around or writing a boat load of code when there already exists a package or plugin that does exactly that.

The worst is when a google search would have revealed that our chosen framework already built in the desired feature they just spent the afternoon writing.

<comment><USER48> FWIW, even in the 1980s, people on the team had CompuServe accounts and we raided those mercilessly.

Where do you find junior programmers who don't Google with impunity?

<comment><USER47> They were hired by my client(s) :-P

</comment></comment></comment><comment><USER51> 1 query for every 10 lines of code? 12 years in, and I'm closer to 10 query for every 1 line I write.

</comment><comment><USER52> Like others here, I depend heavily on Google searches while programming.

Sometimes it's useful just to see how Google tries to autocomplete a search phrase I've started to type.

<comment><USER53> More often than not I will very deliberately type my search phrase one character at a time paying careful attention to all the autocompleted results. Very useful habit to get into as I have solved quite a few problems much faster than had I gone down the rabbit hole of my original query.

<comment><USER52> Really cool. I'll try that.

</comment></comment></comment><comment><USER39> >> carefully evaluating the results and consciously separating the wheat from the chaff; they don't blindly follow or copy-paste any solution they come across

As well as writing the correct search query, this is the other important aspect of the skill of using Google. A good programmer can look at an answer on StackOverflow and quickly determine whether or not it looks "about right" and how it can be integrated into their code.

</comment><comment><USER54> Back before decent search engines, there was gopher or ftp search. I used to search for function names or some part of some API in gopher (or ftp search), and find source code in projects where the code was already in use. Then use that to get hints about where I was going wrong.

Google and StackOverflow fill a much wider niche however.

</comment><comment><USER55> I'm not exactly an experienced programmer by any means, but I definitely use Google frequently. Sometimes with that 'site:stackexchange.com' or 'site:stackoverflow.com' operator added in because I know Stack Overflow usually tends to have a lot of the answers to these queries.

And then there's the CMS/framework search that might actually be more common than looking for Stack Overflow/forum/social media answers to questions. You know, where you're working with WordPress/Drupal/Joomla and can't remember what that one function or class is called that you need to use for some use case or another. Cue more Google searching, usually in conjunction with the wiki/documentation/codex/whatever it's called.

</comment><comment><USER56> My take on the same topic: [http://jcooney.net/post/2013/08/29/Good-Developer- Good-Googl...](http://jcooney.net/post/2013/08/29/Good-Developer-Good- Googler.aspx)

I'm in 100% agreement.

</comment><comment><USER57> I probably Google more for questions about Netty than I do for anything else in Java. I've never seen such a useful library with such terrible documentation

<comment><USER58> The Netty documentation really is terrible. Have you read Netty In Action? That book made the framework much clearer.

</comment></comment><comment><USER59> new series from 'O RLY':

[https://m.imgur.com/gallery/vqUQ5](https://m.imgur.com/gallery/vqUQ5)

</comment><comment><USER60> GDD - Google Driven Development

<comment><USER61> You mean Google Aided Development (GAD) with AutoGAD as the promised culmination/nirvana of our field.

</comment></comment><comment><USER62> I really hope people don't think this is a surprise. Before the web, Mac programmers relied on a set of HyperCard stacks from Apple to look up function calls and all kinds of obscure info. It was awesome. Every programmer I've ever known since the 1980s has always had reference materials within easy reach. That's just smart.

</comment><comment><USER63> The only issue is the need to solve captchas because Google thinks you are scraping them.

I don't know if I am experienced or not (beyond the numbers of years programming) but I am sure "search engine oriented programming" give you a lot of advantages and connect dots that take years if you follow other routes.

</comment><comment><USER64> I use DuckDuckGo frequently (´꒳`)

</comment><comment><USER65> Oh, I predict dozens of programmers coming here in the comments section to confess.

</comment><comment><USER66> When trying to find things in MSDN, it's often faster to Google it than it is to use the internal search. I can load and read a StackOverflow page before an MSDN page has even loaded.

</comment><comment><USER52> How many IDEs _lack_ a context menu containing a "Search" or "Search with Google" item nowadays?

</comment><comment><USER67> Sort of related... is google case sensitive for things like this? Of course, CASE MATTERS often in programming.

</comment><comment><USER68> I use Google all the time when programming. It is just so true... good to know it is similar with others.

</comment><comment><USER69> No. We use DuckDuckGo. !sp if we want to see Google results.

</comment><comment><USER70> I use Bing. Mostly for Bing Rewards, which essentially gives me a free Starbucks ~every month. But now I'm finding their search engine isn't that terrible.

</comment><comment><USER71> I would go so far as to say anyone who brags about not using Google to look for answers (or looks down on someone who does so readily) is worse off for it. Nobody can know all the answers to every problem they will run into (this goes for any profession, not just programming) -- the first step if you don't have a quick answer yourself should be to search the internet for answers others have come up with, or at least more information.

That doesn't mean you just copy and paste whatever you find. But it means you are now more informed than you were before and can come to a better, faster solution.

</comment><comment><USER72> It's especially good for hangups on some new library that needs to be used.

</comment><comment><USER73> if you search "1\. netty tutorial" i think you arent a experienced programmer, you are a experienced googler

<comment><USER74> I wouldn't be so sure ...In fact, Google recruits people who search for certain programming languages/terms. Pretty cool actually - a "secret invitation" suddenly appears within the search results and the candidate has to accept (and pass) a programming "challenge" to further qualify. [http://thehustle.co/the-secret-google-interview-that- landed-...](http://thehustle.co/the-secret-google-interview-that-landed-me-a- job)</comment></comment>