hacker news with inline top comments    .. more ..    1 Feb 2014 News
home   ask   best   5 years ago   
Microsoft please clean your store from junk postach.io
25 points by sardorbek  26 minutes ago   4 comments top 2
mcormier 6 minutes ago 1 reply      
As much as Apple's review process and curating can be a pain in the ass. This definitely shows the other end of the spectrum and what happens if you don't have any reviewing.
legulere 3 minutes ago 1 reply      
Sounds like cases where the owners of the trademarks (Faceboook, Google and Mozilla) should get active.
Mystery signal from a helicopter windytan.com
715 points by schappim  13 hours ago   49 comments top 26
jgrahamc 11 hours ago 2 replies      
I love Oona Risnen's blog. She's my hero. She combines a love of figuring stuff out with lots of fun hacks. And when I read her blog it makes me happy to see someone with that joy of uncovering mysteries.
habosa 7 hours ago 0 replies      
Wow. People on HN do a lot of cool things but that really blew me away. It all sounded so casual too.

This is real Hacker News.

GauntletWizard 12 hours ago 3 replies      
Nice bit of reverse-engineering, and an impressive hack from whoever built the system.
xradionut 1 hour ago 0 replies      
While I love the blog and the very clear explanations, none of this is new nor amazing to the experienced RF engineer, enthusiast, or practitioner. What's awesome is that the hardware and software are currently cheap enough that more people can discover and enjoy the larger spectrum around them. Welcome!

Now go build some antennas! :)

nl 8 hours ago 1 reply      
I love this:

Several people in the restaurant were waiting for orders with their similar devices, which suggested to me this could be a pager system of some sort. Turning the receiver over, we see stickers with interesting information, including a UHF carrier frequency. For this kind of situations I often carry my RTL2832U-based television receiver dongle with me (the so-called rtl-sdr).

I knew I was forgetting something.


salgernon 9 hours ago 1 reply      
I'd had a copy of her dialup decoded poster on my wall for a while; forgot where I found it but it was immediately something I wanted to hang up... glad to see its being monetized via poster sales, its quite a lovely work of art.

Of course, I also find chip tape outs beautiful, much to my wife's dismay.


zenocon 12 hours ago 0 replies      
This is the kind of article that makes HN worth coming back for.
werner34 12 hours ago 1 reply      
Oona's work is always amazing. Loads of interesting hardware stuff in her blog. I wish I would be better at some mechanical engineering/electrical engineering stuff, my work is mostly web-related or big data stuff, never really get my hands dirty :(
sehugg 8 hours ago 0 replies      
Another cool thing is that the author of Redis made a decoder for ADS-B to decode aircraft transponder signals: https://github.com/antirez/dump1090
quackerhacker 11 hours ago 2 replies      
Amazing!!! I would have just dismissed it as static interference, and not even think twice.

Hmmm, makes me think twice about the beeping sounds I hear when my phone is right next to my radio. I know it's data being transmitted/received, but I wonder if it can be deciphered in this manner.

vhost- 7 hours ago 0 replies      
The thing I love most about her work is it's witty, but to the point and I can always understand it.

I'm not a big fan of the tl;dr movement, but I also don't like dauntingly long blog posts. Nails it every time. Hats off!

throwwit 12 hours ago 1 reply      
I wonder how much audio compression the signal can go through before getting lost, and if joint-stereo affected it. Might have to check out the data myself :) Props to Oona.
sebastianconcpt 20 minutes ago 0 replies      
amcnett 12 hours ago 0 replies      
It'd be interesting to scrape videos for this kind of information in order to map them en-masse. Great post!
logicallee 3 hours ago 0 replies      
I didn't get how she can get so much sense out of what is basically line noise - until the comment that asked what tools she uses, and she says Perl. Ah, just a day in the life :)
fellytone84 10 hours ago 1 reply      
Can someone explain how she plotted the car's position? Did she manually reconstruct it based on the video and the information she derived from the helicopter's noise?
sown 7 hours ago 0 replies      
I need to learn HW.

Could someone detail more information about the tools she used?

mangeletti 9 hours ago 0 replies      
Anyone else see the cop hit him @ https://www.youtube.com/watch?v=TCKRe4jJ0Qk#t=1140 19min)?
c7b0rg 3 hours ago 0 replies      
Suddenly, my telecom courses in CS now seem a lot more fun than they really were. It's like magic.
lucb1e 11 hours ago 0 replies      
And here I always consider myself paranoid when wondering whether odd patterns in anything mean anything. Guess I'm just too noob and inpersistent to find anything.
rikacomet 12 hours ago 2 replies      
can this become/or is/ part of forensic science? if its possible to do the same on a mobile phone, and merely speaking into the phone, you give away your travel trajectory?
nolite 11 hours ago 0 replies      
wow.. this girl is superhuman...
inanov 4 hours ago 0 replies      
hackers rule!
cdelsolar 9 hours ago 0 replies      
codr 9 hours ago 0 replies      
this is rad.
mablae 12 hours ago 0 replies      
Confessions of an ex-TSA agent politico.com
607 points by dsr12  18 hours ago   166 comments top 21
nostromo 17 hours ago 1 reply      
On The Media has been running an initiative to get lawmakers to answer basic questions about TSA and DHS policy. The agency has been stonewalling reporters so they've asked that citizens call lawmakers directly and ask a series of questions.


avalaunch 8 hours ago 0 replies      
One of my favorite stories came from one of the linked articles that he wrote while still on the job.


I recall one time I did a bag check on a man from Detroit, once the auto-making capital of the world. Having been informed by the x-ray operator that there was a bottle of water in the bag, I pulled it out and quickly sensed that something was slightly off. Then, I realized what it was: there was an enormous dildo rubber-banded to it. I then had an epiphany, spreading over me like a sunrise, beautiful and exhilarating: he wanted me to have to deal with the dildo. He did it on purpose. In rubber-banding that dildo to the water bottle he knew we would target, he seemed to say:

Yes, I have a dildo, federal officer. Even after the horrors of 9/11, I am still alive; full of vitality, love, sex and, later tonight, that large dildo rubber-banded to the water you are about to confiscate from me. That bottle of water, bought with hard-earned American dollars to relinquish my bodily fluids, so as to make me strong and keep the wheels of commerce of this great nation turning. In taking my water, I want you, federal officer, to know that the terrorists have won, and that you are complicit. I want you to see my dildo. To hold it in your hand; to know that I, as well as my fellow passengers and countrymen, are strong and resilient.

That we, the people of this great nation, can, and will, snap back, like that rubber band.

rosser 17 hours ago 7 replies      
Im not trying to tread upon your First Amendment rights, she said. All Im saying is: Couldnt you have run those First Amendment rights past the legal department first?

Welcome to modern America.

beloch 4 hours ago 0 replies      
The bit about racial profiling is spot on, but heavily understated. People who are clearly U.S. citizens are merely inconvenienced and embarrassed by the TSA's shenanigans. If you know somebody from either the middle-east or a country noted for supplying narcotics (e.g. Mexico) who has flown through the U.S., even just to transfer to a connecting flight, ask them what their experience was like. The TSA treats U.S. citizens like Hollywood celebrities by comparison! The stories I've heard frequently cross the line into what any reasonable person would define as outright abuse. Obviously, few victims stand up for themselves.

The terrorists didn't win. The TSA became the terrorists.

jarrett 17 hours ago 1 reply      
Do government employees enjoy full protection from the First Amendment? It's not a simple yes or no answer. Whether a given utterance is protected depends on a variety of factors, but probably the most important one for low-ranking TSA employees is that the speech must be of public concern to be protected. I suspect that a front-lines TSA officer who writes a letter to the editor about the TSA would be entitled to First Amendment protection, per Pickering v Board of Education.

Here's a bit more info, with summaries of relevant cases:


EpicEng 17 hours ago 14 replies      
Why we don't take a page out of the Israeli's book is beyond me. They have been dealing with this for much longer, have made the mistakes we are currently making, and have learned from them.

Their airports don't have long lines and pat downs by ill-trained employees (lines of course exist, but they are shorter and not what we in the US are used to). Instead they hire fewer, educated and skilled persons, many of whom are, behaviorists to determine potential threats. It works; the last successful airport attack in Israel was in 1986, and they have prevented many since.

I remember reading about this in an interview with an ex Israeli defense minister years ago, but I couldn't find that article. This one sums it up though: http://www.cnn.com/2010/OPINION/01/11/yeffet.air.security.is...

ck2 17 hours ago 4 replies      
It's interesting how they mostly got a pass this past holiday travel season.

Barely saw anything about them. So even the media is looking the other way now.

smsm42 4 hours ago 0 replies      
I always opt out from the body scanners, and I have yet to see another person do it (which implies very small number do, otherwise by pure chance I'd see somebody do it by now). Looks like most of the Americans just don't care. BTW, never took me excessive time and I've never been harassed or inconvenienced in any unusual (as opposed to usual for TSA) ways for opting out.

Also, from this article, next time TSA employee tries to feel my ass looking for a bomb, it would be interesting to think about him as an aspiring satire writer. I wonder if that would change the experience.

malandrew 17 hours ago 0 replies      
I really wish more people in government had the gumption that this agent has to speak out about how public trust is being abused.

On a different not, I'm certain that I'm not the only one who read the Selectee Passport List in the voice of Yakko, Wakko and Dot.

lucb1e 10 hours ago 1 reply      
Thought this was a great website with great content, reading this interesting article without annoying pagination (though the option was there if I had wanted it) at a comfortable font size.

Clicking through to the homepage, it turns out they also feature a call to censor Snowden: http://www.politico.com/magazine/story/2014/01/edward-snowde...

Never mind. This makes me doubt what I just read.

pstack 11 hours ago 1 reply      
All you need to know about those performing the TSA roles can be learned from one trip through a security line, where some fat obnoxious woman screams at paying customers and american citizens like they're children and berate and segregate (for further humiliation or harassment) anyone who dares question anything or do anything but be blindly and unwaveringly obedient.
thorntonbf 17 hours ago 0 replies      
This quote has had me thinking all morning:

"The thought nagged at me that I was enabling the same government-sanctioned bigotry my father had fought so hard to escape."

nowigetit 14 hours ago 1 reply      
Anyone else think "Rapiscan" is a perfect name for those machines?
dror 11 hours ago 0 replies      
In a funny way I find this reassuring.

After all the worries, posting from various places, TOR, and in the end from home, no one went after him even though he clearly ridiculed the TSA. It's kind of sad that we even have to consider that, but in these days of NSA abuses it's nice to see democracy at work.

stretchwithme 11 hours ago 0 replies      
Its all been lies all along. What a shock.

Our government does so much propaganda in collusion with the media. Every time anything happens, we are treated to news stories about how security is being beefed up. The reality is that there reality isn't much they can do except show more security on TV and hope you'll conclude "ah, they are on top of things."

rmchugh 17 hours ago 1 reply      
new hero! and his book seems like it will be good: http://playbooknovel.com/
dmourati 5 hours ago 0 replies      
This reads as if the author considers himself in league with Edward Snowden.
deadfall 12 hours ago 4 replies      
I started questioning all the TSA security after I recently watched a demonstration on how you could make dangerous weapons with items you can purchase after you go through security. It is quite scary. The people that want to cause harm will always find a way.

I have not been outside the US, I am curious on the security around the world. Namely, flights headed towards US airports. Do they have to go through body scanners?

siculars 16 hours ago 0 replies      
From the why-anonymity-is-important department.

Truth will out.

yogo 16 hours ago 1 reply      
Code red alfalfa. Ok that was a little redundant :
Intlrnt 14 hours ago 0 replies      
I wasn't a bit surprised to read any of this. Even the candor with which the author shows himself to actively and tacitly promote and sustain the unprofessional and compromising conduct in which he and his colleagues engaged.

I'm not sure if that transparency is due to his arrogance, or ignorance of how much he contributed to the problems we all deal with. No matter. Business as usual.

Ballsy? Maybe. 'Hey everybody! I'm a self-identified slacker, unqualified to be entrusted with responsibility. Here's my name. Here's my picture.'

Still, very disappointing.

Objective Smalltalk github.com
8 points by jcla1  59 minutes ago   2 comments top 2
mseepgood 8 minutes ago 0 replies      
What's next? "Functional lambda calculus"?
weddpros 28 minutes ago 0 replies      
As a long time Smalltalk lover, I can only UP this project !I'll have no use for it immediately, but it's good to know where it can be found.
Video conversations with up to 8 people for free. No login no installs appear.in
50 points by ecthiender  5 hours ago   25 comments top 13
sillysaurus2 4 hours ago 2 replies      
This is pretty cool. Would it be possible to get basic text chat in there? Some people have no mic but could benefit from this anyway. Thanks for your hard work!

By the way, it works fine for me in Chrome.

rlongstaff 1 hour ago 0 replies      
Looks good, and seems simple to get going.

Two comments:

- I set the background image but it didn't appear (the dialog box for that seems to have no 'OK' or 'Save' button)

- It would be good to have a microphone level indicator, so I can see whether my microphone has been properly detected and working. There is one in Google Hangout but is rather small and not very good IMHO.

tsudot 3 hours ago 0 replies      
This is a pretty interesting app to have conversations with friends.

Business calls, I've had a problem with video. It's often too cumbersome and gives too much info about the visual aspect of myself when it's not necessary and when I don't want it to happen. (e.g., getting on a call with a stranger or clients.) Using the "voice" call, I won't worry over washing my face at 9am in the morning.

Which is the reason I created http://voicechatapi.com shameless plug)

phaer 55 minutes ago 1 reply      
Is there some sort of end to end encryption available for this or any other WebRTC-based VOIP app?
vhffm 3 hours ago 0 replies      
This is great, thanks!

Fyi, there's also screen-sharing (hover the mouse over your own window for the option), which works nicely (Chrome).

scottydelta 3 hours ago 0 replies      
How is this app different from the WebRTC demo available at https://apprtc.appspot.com since a long time?
calineczka 4 hours ago 2 replies      
Do you know any app which allows up to 15 participants for free or by issuing one time payment? My company is mostly ok with voice standups and meetings but from time to time we want to experiment with video ones. We are still not sure about them so we want to play around a little bit before deciding to switch to a video tool. The problem is, most of the tools have a limitation for a number of allowed participants so small that we cannot give them a try during our weekly meeting because not all team members can join. Is there anything that allows higher number? Or something that can be used once without recurring payments? Must work on mac os, linux and windows. Preferably without using browser plugins or java solution but if that's not possible then we can go with them. So far hangout with their 10ppl limit and good compatibility across platforms seems best. Webrtc solutions worked for us in technical terms but were limited to 8 participants usually. Why always 8? I really hope there is something out there that we could use.
hughhopkins 1 hour ago 0 replies      
So frictionless, really impressive work. Well done.
avodonosov 3 hours ago 1 reply      
Check also Google Hangouts, allows 10 people. Although requires google login. I don't remember whether I installed anything for it.
jaksmit 4 hours ago 3 replies      
and no video for me. just a blank grey screen. screenshot: http://www.webpagescreenshot.info/img/52ecb7fe4992f4-1130851...
cindywu123 3 hours ago 1 reply      
https://appear.in/microryza can we get to 8 people?
cindywu123 4 hours ago 0 replies      
this is awesome it reminds me of how much i loved meetings.io before they sold
Show HN: We just open-sourced a Skype replacement with HTML5 voicechatapi.com
206 points by dhfromkorea  14 hours ago   82 comments top 28
nathancahill 14 hours ago 3 replies      
Mandatum, if you see this, you're hellbanned. Since I can't reply to your comment about many apps like this not working in Firefox, this particular tool does work for me in the latest build.

I agree that many cutting-edge browser apps work in Chrome and not Firefox. Is it a case of browser specific syntax that people default to webkit for?

chrissnell 6 hours ago 3 replies      
So, this tool is OSS but appears to be dependent on a commercial service. Is there any chance that Plivo will open source the necessary bits to enable true standalone operation? There's a lot of potential for an application like this in parts of the world where open communication is restricted.
Mandatum 14 hours ago 3 replies      
Doesn't appear to be working in Firefox (a lot of things don't seem to work it Firefox anymore..) however it's working perfectly in Chrome and IE (latest).

Looking really good, I'd add Chat to it as well for people who are having issues with their mic or prefer to just listen. Actually.. Might have a crack at that this weekend.


songzme 13 hours ago 2 replies      
Good job Kunal and team Plivio!

If anyone is looking for a audio+video demo that works similarly, I built http://OpenTokRTC.com and the code is on github at https://github.com/opentok/OpenTokRTC

One feature I included is dynamic frame rate so that in cases where there are many people streaming video, a user can type "/focus" in the chatroom and everybody's video quality will degrade to save bandwidth and stream the optimum quality for the focused person's video.

It's also available on iOS, although I believe the iOS app needs alot more work. I apologize ahead of time if you experience bugs on the iOS app. The app name is OpenTokRTC and source code is here: https://github.com/opentok/OpenTokRTC-iOS

Hope someone finds this useful, if you have any questions please email me song@tokbox.com

brongondwana 13 hours ago 1 reply      
Have you checked out https://appear.in/ ? Looks like you're not the only people playing in this space right now. I've used appear.in sucessfully with a 6 person teleconference on opposite sides of the world - two of us at home in Australia and the others in two different offices in Norway.

I'm sure there will be tons of competitors in this space until a bunch of them drop out and a couple succeed big. Open source is great though - good luck with it all!

brongondwana 13 hours ago 3 replies      
Oh - flash. No thanks.
tsudot 13 hours ago 1 reply      
I built this. Happy to take any questions. Code is hosted here - http://github.com/plivo/voicechat/
hendry 7 hours ago 0 replies      
This is hardly a Skype replacement.

I'd be impressed when someone gets VOIP working on WebRTC. i.e. supporting SIP logins. I tried Doubango Telecom and it didn't work.

russell_h 13 hours ago 1 reply      
I just saw a presentation by tsudot about this, where he mentioned a pretty cool use case for this: they've got Hubot in their team's channel set up so they can just say "conference", and it'll generate a link for everyone to jump in and talk about things. I'm not sure if its quite a Skype replacement, but it could replace a lot of the way I use Skype or G+ today.
nkcmr 10 hours ago 0 replies      
I've created and been maintaining an open source video chat platform for years. and it's peer-to-peer and html5.

Your Second Phonehttps://yoursecondphone.co

pjmlp 7 hours ago 0 replies      
For something to replace Skype, the respective users have to be convinced to move other to the Skype replacement of the month.

For my contacts list, I am sure it won't happen unless they are forced to move away.

easy_rider 14 hours ago 1 reply      
Mmm, actually I Happen to use Skype actually much more for chatting, with the occasional voice chat. Much like MSN, but more professional.

I wish Skype wouldn't be so integrated into the professional world, and be forced to use it. But hey as a freelancer, I'm not going to be shy about using Skype if all my clients use it :/

bowlofpetunias 5 hours ago 1 reply      
Flash and voice only.

This is really extremely misleading. I do not understand where the upvotes come from. The project may be interesting, but the headline is borderline sleazy.

Also, "allow s3.amazonaws.com to access your camera and microphone"? Yeah, I don't think so.

imtu80 13 hours ago 0 replies      
Here is my open source WebRTC project. https://github.com/imomin/videoChat
BorisMelnik 11 hours ago 1 reply      
Love it, UX is beautifully elegant (only thing that ruins it is the Adobe Flash permission popup which looks like it is from Windows 3.1)

This is something I feel as though I will actually use, and is easy enough for my own mother to use.

vezzy-fnord 14 hours ago 1 reply      
That's nice and all, but it's hardly a "Skype replacement".

I'm waiting for Tox to get ready for a public release. There hasn't been much word on it, but development is slowly continuing by the day. There's also something like six GUIs by now.

_Soulou 12 hours ago 0 replies      
http://meet.jit.si is alive since last year it's open source. It works well! Give it a try
homakov 10 hours ago 1 reply      
1. how to know who's talking?

2. when you add video?

dclara 7 hours ago 0 replies      
Very nice tool, talk anonymously and in conference. But my IE 11 does not pop up the flash screen.
nej 10 hours ago 0 replies      
arcameron 14 hours ago 1 reply      
If you're interested in this, please also check out https://echoplex.us :
known 7 hours ago 0 replies      
b0z0 7 hours ago 0 replies      
It's about time! This Skype is terrible, and WebRTC is amazing.
__xtrimsky 14 hours ago 2 replies      
I use skype for two things:

- chat

- videochat

I never just use audio chat. I video chat even with my coworkers.

rwaldron 12 hours ago 1 reply      
Open Wash.
ycmike 12 hours ago 0 replies      
This looks fantastic. Will play with it this weekend.
Collizo4sky 7 hours ago 0 replies      
Nice app
Why Bloom filters work the way they do michaelnielsen.org
39 points by BIackSwan  6 hours ago   discuss
The Only Interview Question That Matters inc.com
3 points by engassa  34 minutes ago   2 comments top
rocky1138 2 minutes ago 1 reply      
Can you do the job?
Ask HN: Best IRC channels?
61 points by dakrisht  4 hours ago   51 comments top 30
StevePerkins 0 minutes ago 0 replies      
I don't know that there are too many interesting "abstract" IRC communities, beyond that Freenode channels specific to a given programming language or technology.

I leave a connection to Freenode running while I'm at work, in a few channels related to my job... so that during builds, or other short bursts of idle time, I can glace over and see if there are any questions I can answer. Likewise, I throw out a quick question of my own every now and then, when I'm afraid it's too subjective in nature to avoid being closed by StackOverflow-lawyers.

I've lost interest in general chat, outside of specific questions and answers. From what I've seen, the nicer communities are the newer channels... ironically, they degrade over time as their underlying technology matures. You would think that channels like #clojure and #go-nuts would be populated by immature hipsters, while ##java would be made up of 40-something corporate types. However, I've found that those first two channels are welcoming and thoughtful, with interesting discussion always taking place... whereas ##java (even its mods) frequently sound like XBox Live.

yuvipanda 17 minutes ago 0 replies      
#wikipedia-en is a channel where english wikipedia editors and admins hang out, and it is fun watching their discussions. #wikimedia-dev is where most of Mediawiki development happens these days, so that is nice too. #wikimedia-opearations is fun too once you ignore the icinga bot spam - not often do you get to see a world class ops team operate that transparently :)
dserban 3 hours ago 2 replies      
There is one particular use of IRC channels that is insanely useful, that I'd like to share.

On various programming language channels, there are ad-hoc expression evaluation bots that experienced people use to guide newcomers through the intricacies of the language. If you're new to Haskell, for example, what you can do is grab the logs for the past 3 years, grep for "> " (used to invoke the evaluator) and you have instant insight into how an experienced Haskeller's mind works. It can speed up your learning by a factor of 10 compared to reading papers / blogs / formal tutorials. I know because it did this for me.

rmc 2 hours ago 0 replies      
Tangentally related: #gaygeeks on FreeNodes. Tired of being the old LGBT person amoung you geeky friends? Tired of being the only geeky person amoung your LGBT friends?
uniclaude 3 hours ago 1 reply      
This is going to be borderline off-topic as it's not general for developers.

I have to mention #clojure on freenode for being an incredibly welcoming IRC channel. The discussions you will see can be very interesting, and the community is more than often willing to help. Living in Japan, I was worried about the timezones being an issue, but there seems to be people from different parts of the world on the channel, making it very nice.

hernan604 1 minute ago 0 replies      
HACKED! Now i know where to find all of you bwahaha
girvo 3 hours ago 0 replies      
I hang out on Freenode, in #nimrod, ##php, #elementary-dev and a couple of others.

I'd love to know some good security ones to idle in; I've got a bit of experience in it and am trying to expand it some more, and would love a place to ask questions regarding web security and the like.

diminoten 39 minutes ago 0 replies      
##programming on freenode is terrible. Don't go there.
Tenoke 2 hours ago 0 replies      
Nowadays, I mainly hang out on irc because of the #lesswrong channel on freenode. There is plenty of intelligent discussion, HN readers and no real topic.
frankwiles 1 hour ago 1 reply      
I've recently been using SaltStack and have found #saltstack on Freenode to be very welcoming and helpful which is nice. Often you go into a channel and it's a ghost town or out right hostile to relatively simple questions. I think OSS projects in general could learn a bit of "marketing" in this regard, if your IRC channels are toxic, I immediately think your community as a whole may be toxic.
emhart 1 hour ago 0 replies      
#lp101 on ...I think?...EFNet was the hotbed of locksport/mechanical security discussion and research for quite a while. I was amazed by some of the results of IRC-based collaboration in that community.
level09 3 hours ago 0 replies      
Usually I join topic-specific channels, got tons of answers in #django , #javascript, #drupal, #flask, #python, #celery, #nodejs etc ..

Those are on freenode, there are channels for software users (e.g: photoshop) but on a different servers.

flexd 2 hours ago 1 reply      
I have always found a bunch of nice people with a lot of knowledge in the various programming and tech channels on Freenode, like #twisted and #pocoo

#debian on EFNet also has a great bunch of people.

john2x 2 hours ago 1 reply      
I've found #bash to be full of very helpful people. They don't get tired at all of being asked common bash questions. On most channels, if you ask a common question, they tell you to RTFM. But not on #bash. They still tell you to RTFM, but nicely, and usually after they give you an actual answer. Especially that greybot guy.
Kudos 3 hours ago 2 replies      
#startups on Freenode was mentioned here before, I think.
Zolomon 1 hour ago 0 replies      
I hang out on #gamedev@irc.afternet.org, very talented people help each other out there.
loser777 3 hours ago 0 replies      
An approach that seems to work well for me is to use IRC as a way to communicate with groups people that mostly I know in person and share a common interest with. That way, I'm able to avoid a social pecking order or having to be "initiated" into a group. You may already be in one of these groups already, though the medium isn't necessarily always IRC--think Skype (text) chats groups with a subset of regulars.

Remember, you can always drag others along with you and start your own channel.

d99kris 1 hour ago 0 replies      
Is there a #hn or #hackernews?
jokoon 2 hours ago 2 replies      
just connect to some popular network like freenode, and retrieve the channel list, and sort by users.

#ubuntu 1701 #archlinux 1695 #bitcoin 1602 #debian 1492 ##linux 1360 #python 1349 #freenode 1304 #haskell 1200 #Node.js 1186 #dogecoin 1120 #gentoo 1091 #git 1047 #puppet 956 ##javascript 941 #vim 936 #python-unregistered#go-nuts 893 #android 889 #bash 858 #ruby 847 #jquery 750 #postgresql 747 #litecoin 711 ##math 701 #bitcoin-otc 700 #emacs 700 #openstack 697 #docker 693 #clojure 679 #perl 653 #mysql 646 ##networking 642 #angularjs 621 ##security 611 #defocus 599 ##php 596 ##electronics 595 #nginx 584 #cisco 582 #digitalocean 569

xsquare 44 minutes ago 0 replies      
#programming-language-you-really-like and #distro-you-really-like on Freenode I guess...
spacemanmatt 2 hours ago 1 reply      
The #postgresql community on freenode has won me over many times for being mature, and absolutely competent over their domain. Solid stuff.
hedwall 1 hour ago 0 replies      
I really enjou #infra-talk on FreeNode, sysadminy stuff without ties to any specific product or tool.
brihat 2 hours ago 0 replies      
Freenode #emacs, ##linux, #nimrod, #julia and #d.

Nimrod's gang (including Araq) are very friendly and welcoming.

#julia and #d are very quiet though (except for the bots).

And #emacs -- well, that one channel which is lenient towards off-topic chats!

chadfowler 29 minutes ago 0 replies      
#shitfire!!! (on freenode). ;)
maqr 3 hours ago 0 replies      
I'd recommend #iphonedev on Freenode for anything iOS.
unpointfulness 3 hours ago 4 replies      
Personally, I never found IRC to be a helpful tool for learning new things from unfamiliar people.

To me, IRC has always been a "grapevine" tool, where etiquette, social pecking orders and gossip are shared amongst a smallish close-knit social circle. IRC always feels more like a social scene, and a distraction.

If anything, perhaps an IRC channel is useful for managing fluid, rapidly changing situations, where you might need an up-to-date, live information source, to use in immediate decision making (hence, why bot net command and control tends to be integrated into IRC programs), but, otherwise, chat logs from IRC usually read like a disorganized array of participant's various scattered streams of consciousness.

Are you looking for reading material, or a hangout?

incidence 43 minutes ago 0 replies      
#defocus / ##defocus
Hoozt 3 hours ago 1 reply      
#linux, #ruby, #rubyonrails, #bitcoin, #javascript, #nginx, #ubuntu, #rubymotion ... to name a few I visit. They are all on the Freenode network.
MileyCyrax 3 hours ago 0 replies      
#wizardchan on irc.rizon.net
dogepro 2 hours ago 0 replies      
Quantum vacuum plasma thruster wikipedia.org
4 points by lelf  39 minutes ago   discuss
Breaking Madden: The Super Bowl, in which the machine bleeds to death sbnation.com
186 points by edavis  17 hours ago   49 comments top 12
ChuckMcM 14 hours ago 4 replies      
Oh god I laughed hard on that one. FWIW, and I am not making this up, this is Don Knuth's[1] favorite way of playing video games. I had set up an experiment with an xbox, a copy of Halo (fighting aliens game) and a copy of Dead or Alive (fighting boobs game)[2], Don came by and wanted to see the games, he dismissed DoA pretty quickly but Halo2 we played for about an hour and a half. Don loved to have the character do things the developers probably had not thought they would try to do (like fall through a crack in the geometry and walkaround in "space" underneath the ship) He was really creative, we sat for a while with six aliens who wanted desparately to kill us but would not cross a door threshold which if we stepped through the door would close. It was very entertaining. Much like this Madden game. The color commentary though was really priceless.

[1] Yes the "Art of Programming" Don Knuth.

[2] It was a simple experiment at a conference, first half the console sat there, play either game, mid conference announced that we were tracking hours played on each game and compare second half ratio to first half ratio.

nostromo 16 hours ago 2 replies      
This is my favorite thing about simulators: using them in unconventional ways.

It reminds me of being a kid and trying to build a city in SimCity without roads.

jmduke 16 hours ago 1 reply      
Wouldn't have expected this to show up on HN, but this entire 'season' is hilarious if you have even a cursory interest in sports video games -- there's a lot of (hilarious) frayed edges that get exposed when Jon pushes Madden to its limits.
raldi 15 hours ago 2 replies      
He wonders why the score shows up as 266 when it should be 262.

Well, 262 % 256 = 6. So if you have very old scoring code that expects the score to fit in an unsigned byte, it's going to think the score is 6.

So that explains the 6 in the ones column. The 6 in the tens column, well, that I can't explain.

cllns 15 hours ago 3 replies      
Jeez, firebug shows this site as being 64.7MB for me. And 'onload' occurred after 36 seconds.
doktrin 15 hours ago 0 replies      
> I was pretty amused that a computer could attempt the most basic of tasks -- addition -- and come up with two kinds of wrong.

It's a bit ironic that addition is kinda the quintessential thing computers get wrong. Admittedly, not much of an issue these days - but the comment was amusing :)

davidw 16 hours ago 4 replies      
Interesting how the game score counter can't go over 255. Sounds like premature optimization at work.
lmm 15 hours ago 1 reply      
I know how whiny this sounds, but please deinterlace before you upload to youtube. I get a headache just looking at this video.
mistermcgruff 14 hours ago 0 replies      
This had me crying I was laughing so hard. In an airport bar. People were staring.
jboggan 14 hours ago 0 replies      
I love these kinds of glitches, always makes me laugh until I cry.

Reminds me of the best one: https://www.youtube.com/watch?v=4Zs4yxkRI6U

habosa 6 hours ago 0 replies      
Damn that was too funny. I would love to see something similar with other games.
blinktink 7 hours ago 1 reply      
To those who suspect old code or premature optimization, if you read the comments all EA sports games apparent cap out at 255 points. It's an intentional throwback. When he did it in one quarter he triggered an Easter egg, a "false start".
OpenHatch -- find open source projects to contribute to; find mentors openhatch.org
29 points by sedeki  7 hours ago   7 comments top 7
Blahah 2 hours ago 0 replies      
This is excellent, particularly the mentoring aspect of it. There is some really nice work to do in iPython and with Mozilla. Given the heavy Mozilla involvement I'm surprised they haven't gone with openbadges.

We're working on something similar, but to match developers up with scientific, conservation and charitable projects that need help. I'm not interested in hijacking this thread, but if anyone wants to be kept informed, my email is in my profile.

dwaltrip 37 minutes ago 0 replies      
Saving this to check out later, the idea sounds pretty cool!
perlgeek 4 hours ago 0 replies      
I'm now signing up there.

It would be really nice to be able to log in with github, since many project owners already have a github account.

mburns 4 hours ago 0 replies      
Training Missions would be a great use for OpenBadges.


jpatel3 14 minutes ago 0 replies      
It seems down.
jamhan 3 hours ago 0 replies      
Perhaps consider changing that font (Tuffy) to something that renders half-decently on Windows. It's just an eyesore in Firefox and Chrome. It does look OK on Linux though.
f_salmon 5 hours ago 0 replies      
Making the world a better place => Awesome people!
Reinventing Explanation michaelnielsen.org
42 points by bentoner  8 hours ago   4 comments top 3
ivan_ah 4 hours ago 0 replies      
This is an excellent essay which all EdTech people should read. We're all down with more Tech in the Ed, but more interesting is getting the Ed into Tech, i.e., not stupid arithmetic math and puzzles in computer games, but real math reasoning.

> Over the long run, humanity will no doubt build more powerful new patterns of explanation into our media platforms, permanently changing and expanding what we mean by explanation. We're only just beginning to explore these possibilities, but it will be exciting to see what happens in the decades ahead as we reinvent explanation.


> A second problem with educational games lies in the word "educational". The most important fact about compulsory schooling is that students do not -- indeed, cannot -- choose to attend. Instead, they are required to attend, for what society deems "their own good". This is true even in the most enlightened schools. A student in such a coercive environment does not have full responsibility for their own learning. And, in my opinion, it is not possible to do serious intellectual work without full responsibility for your own learning. Put another way, I believe that compulsory schools, by their nature, are places where serious intellectual work cannot occur.

True. For many students, schools are prisons. Given this context, the quality of the teaching material is more important. If I were in prison, I'd wish for good books...

> what would happen if we put the resources and talent of a major video game or movie studio toward creating great explanations, rather than pure entertainment products?

It's called the Khan Academy ;)


My take on this is that we should aim for lowest common denominator: a system based around HTML (like standalone .html files or .epub) with JavaScript enabled (for MathJax and scripting canvas/svg interactives). Content written in this system will be renderable on most pixel-based devices (for interactive exploratory learning) and with a toLaTeX() method should also be printable (for analytical learning).


Here's my attempt at the kidney studies' Simpson paradox in text. For large kidney stones Treatment A helped 55 people out of 80,while Treatment B helped 192 out of 263, in two separate studies.For small kidney stones treatment A helped 234 people out of 270,while Treatment B helped 81 out of 87, in the same two studies.

We shouldn't really compare the statistics from the two trials since they were performed on different patients. Nevertheless, since both studies had 350 patients in total, we can say that Treatment A is better since it helped a total of 289 patients on that trial which is > than the 273 saved by Treatment B.

                        Treatment A       Treatment B   Large kidney stones69% (55 / 80)  73% (192 / 263)   Small kidney stones87% (234 / 270)  93% (81 / 87)   All patients        83% (289 / 350)  78% (273 / 350)

duncanawoods 5 hours ago 1 reply      
An interesting read. I don't think I agree with the argument that emotional involvement is the foundation for understanding. I see the author conflating memory and understanding where the emotional connection he discusses are just associative memory triggers. We can use associative memory tricks to recall many things we do not understand.

IMHO what unlocks understanding is use not emotion. I can "kind of" understand a mathematical or programming concept by reading or demonstration but only through active use in dozens of exercises or practical experience do I really come to understand it. This is what matters about the Brett Victor example he shows - it proposes environments for people to use and play with concepts which IMHO is much more significant factor in understanding.

Maybe the author is only talking about the motivation to understand. To take his example of topics with the depth of QM then such an investment of time and effort is just so vast that there has to be something self-motivating about the topic itself for someone to excel.

Its the reward of the topic in-itself that has sustained abstract topics like math and I find "ways to make the topic more appealing" almost always doomed to failure. If people are not inclined to substantial abstract thought then putting it in a frilly dress isn't going to change much. What makes these topics special to me is the loss of self as your mind becomes infused with abstract concepts. Its the elegance that becomes exciting and takes you deeper from curiosity and wonder. I don't need a game to understand a programming concept, programming itself is already my preferred game.

Finally, I would say that emotional connections are a distraction from achieving such flow mental states of understanding. If I feel I have something to lose by not understanding, if I might be shamed or under some other emotional pressure, it will interfere, not encourage my understanding.

auggierose 3 hours ago 0 replies      
I didn't know what Simpson's Paradox was, but I didn't find it surprising at all. After all, the numbers showed that these were two different experiments with two different distributions of large and small kidney stones.

Stopped reading the article afterwards, because if it already overhypes greatly at this early point in the article, what am I to expect at later points?

The Magic of strace chadfowler.com
474 points by chadfowler  1 day ago   96 comments top 28
rosser 1 day ago 5 replies      
Small, somewhat nit-picky critique: the man pages for system calls are in section 2. If you want to see the docs for the "read()" syscall, and not the bash builtin "read", saying "man read" won't may not (see follow-up) do what you expect. Instead, you should say

  man 2 read
This should probably be mentioned somewhere.

Otherwise, great writeup. Thanks for sharing!


tedivm 1 day ago 3 replies      
So what happened with the Lotus system, and how did strace help?
Argorak 1 day ago 1 reply      
Thanks for the writeup! strace should definitely be in your toolbox. There is also systemtap, which I like a lot as well. It has some problem on Linux though, especially only being widely supported of Linux > 3.5 if the distro you are using does not ship with patches. Custom userspace probes are a real strong point.

I wrote a short article about stap using Rubys probes as an example: http://www.asquera.de/blog/2014-01-26/stap-and-ruby-2

leoh 1 day ago 1 reply      
Mac OS X has a suite of tools built on a similar package called dtraceopensnoop and execsnoop. Gives really nice real time lists of all files opened on the system and all binaries executed, respectively.
yread 1 day ago 3 replies      
You can use Process monitorhttp://technet.microsoft.com/en-us/sysinternals/bb896645.asp...to see a similar overview of low level activity. You won't see all the system calls, you can't pipe the output directly, but there is a UI and you don't have to look up file descriptors
dave1010uk 5 hours ago 1 reply      
Quick strace command that I use all the time to see what files a process is opening:

    strace -f <command> 2>&1 | grep ^open
Really useful to see what config files something is reading (and the order) or to see what PHP (or similar) files are being included.

There's normally other ways to do this (eg using a debugger) but sending strace's stderr to stdout and piping through grep is useful in so many cases it's become a command I use every day or 2.

kev009 1 day ago 5 replies      
If you think strace is useful, wait until you try dtrace.
gopalv 1 day ago 1 reply      
"perf top -e syscalls:statfs"

particularly when you don't know which process is calling all the syscalls.

Mix "perf record" and "perf trace" & you have the next generation of strace tools.

mrfusion 1 day ago 2 replies      
Has anyone heard of a program that will take strace (or dtrace) output and create a pretty diagram showing which commands call which commands and which files they read or create?

We've got a fairly complicated bioinformatics pipeline that calls about 100 other programs, and creates or reads about 100 different files. I'd love a way to create a picture of what's going on. Which files each program uses, etc.

If such a program doesn't exist, would that be worth building? Could it be something I could potentially sell?

MiWCryptohn 1 day ago 3 replies      
Don't forget it's userspace equiv (strace is syscalls), ltrace. This tracks all lib calls made by process.

Under windows, strace is an SSL/TLS monitoring tool (also hella useful). It shows payloads passed to CryptoAPI/CNG libs so you can easily troubleshoot explicitly encrypted protocols like ldaps. Especially useful if you use client authenticated TLS where is is not possible to use a TLS mitm proxy to snoop the layer 7 data.

eldavido 20 hours ago 2 replies      
I use strace all the time doing ops at Crittercism. Some of the random things it's helped with/taught me:

- allowed exploring forking behavior of daemons, in particular the nitty-gritty of gunicorn's prefork behavior, and understanding the rationale behind single- and double-fork daemons generally (very important to understand for job control e.g. writing upstart/init.d jobs)

- isolated hot reads to memcache in situ, by identifying the socket associated with the memcache connection, and finding which key was read the most by a process (we built better logging after the fact, but sometimes there's no substitute for instrumenting prod during tough perf/stress problems)

- let me explore the behavior of node.js's several threads, and find one of them sending "X" over a socket to the other (still not quite sure what this is, some kind of heartbeat/clock tick?)

- helped understanding "primordial processes" and the exact details of how forking/reparenting work on linux

It's a great tool and one that every ops/infrastructure engineer should be familiar with.

dicroce 19 hours ago 0 replies      
Also check out ltrace... Shows the calls to other libraries the process is making...

I'd also like to point out that a key to using strace successfully is the result column... Programs that fail often make system calls that fail right before they exit... You can often tell what the program is trying and failing to accomplish...

justincormack 1 day ago 1 reply      
For OSX you need to use dtruss, for NetBSD and FreeBSD ktrace is what you need.
np422 1 day ago 0 replies      
Strace is easy to use, commonly available, and very useful in many situations.

More modern tools such as dtrace for the solaris and systemtap for linux addresses similar problems but with a broader coverage.

csmithuk 1 day ago 0 replies      
strace taught me that glibc never does what you think it does behind the scenes!
davyjones 1 day ago 0 replies      
Just a few hours ago, a newly minted Ubuntu binary was crashing due a library version mismatch. I thought I had updated the shared libraries to point to the new versions. But definitely something was still hooked to the old version. I just couldn't figure out how/where. ldd wasn't of much help because everything was OK according to it. "If only I can get a bit more info when the binary is running and spit out everything before the crash."

Tried my luck with gdb. Sure enough...there was libQt5DBus pointing to the old libs leading to the crash. If you are feeling particularly adventurous, you can step one instruction at a time after starting. Even without debug symbols, there is quite a lot of info that be used while troubleshooting.

memracom 1 day ago 0 replies      
Totally agree that strace is an awesome tool. I've even used it with Java apps that were behaving wierdly, just attach and see what it is saying to the kernel.
kyaghmour 1 day ago 0 replies      
In case you're curious, this is how ltrace (strace's library equivalent) works: http://www.opersys.com/blog/ltrace-internals-140120
peterwwillis 22 hours ago 0 replies      
There's a lot of fun to be had with strace. I wrote a tiny perl script that spies on the file descriptors of another process and outputs it to your terminal: https://github.com/psypete/public-bin/blob/public-bin/src/sy...
mwcampbell 23 hours ago 0 replies      
It's instructive to see how much simpler the strace output for a simple program is when the program is statically linked. Especially if you use an alternative libc like musl (http://musl-libc.org/).
Anthony-G 18 hours ago 0 replies      
Ive used strace before to help diagnose issues with buggy software I was using and I thought this was a great article.

I just thought Id let people know that it can be a lot easier to read straces output if you read the output log file using Vim as it contains a syntax file which can highlight PIDs, function names, constants, strings, etc. Alternatively, if you dont want to create an strace log file, you could pipe the output to Vim and it will automatically detect it as being strace output, e.g.

  strace program_name 2>&1 | vim  -

kylequest 1 day ago 1 reply      
Even in the 90s Java decompilers existed, so the "We had no source code" excuse sounds a bit strange :-)
alinspired 17 hours ago 0 replies      
my favorite use of strace to learn which files (especially config files) are being open by a new daemon/tool:strace -f -s1024 2>&1|grep open

also remember also useful 'ltrace' - libraries tracing

alexnewman 20 hours ago 0 replies      
The first level up on java is being able to tell useful things about it via simply straceing it. Once again another win for dtrace.
Derpdiherp 1 day ago 0 replies      
Useful article. But the background of the blog flickers rather badly, it's pretty migraine inducing.
arca_vorago 19 hours ago 0 replies      
Don't forget that sometimes strace is overkill, and similar more easily parsed things can be used instead, for example, /usr/bin/time (vs bash time) has been coming in more and more handy for me.
LinuxIsNotUniX 23 hours ago 0 replies      
Unix tools? You mean Linux....
CrispEditor 1 day ago 2 replies      
Please see

This is a tool called ptrace - which does everything that strace does and a lot more. You have working binaries in there, and most of the source - I havent extricated the full build dependencies so it all builds, but this includes extra facilities like reporting summaries of process trees, showing only connections or files, and shlib injection into a target process.

If people are interested more on this, contact me at CrispEditor-a.t-gmail.c-o-m

Inspiring videos that made me a better designer aenism.com
8 points by aen  3 hours ago   1 comment top
Shinkei 2 hours ago 0 replies      
I think "Jiro Dreams of Sushi" is streaming on Netflix and is an excellent documentary worth your time. It's not some glamorous, deifying depiction of Jiro himself--it actually balances his success with the personal cost he paid for his sushi mastery.
Got Hit by Not Provided? Grab Your Organic Keyword Data While you still can searchenginejournal.com
6 points by krswlr  2 hours ago   discuss
New YC Partner Investment Policy ycombinator.com
200 points by jamesjyu  20 hours ago   96 comments top 26
pbiggar 20 hours ago 4 replies      
"This should fix the problem. If it doesn't we'll try something else."

That's an interesting phrase. This should really be implicit in everything we say or do. It stands to reason, if something doesn't work, you try something different.

But when you're famous and have thousands of people who constantly try to undermine you or misquote you or take something out of context, you start to need to be explicit in calling this out. Otherwise next month's tech rag headline says "YC partner recants failed investment policy".

mattmaroon 19 hours ago 2 replies      
That's smart. When we did it (Summer 2007) investors we talked to still didn't even know you guys did that. A couple asked, most didn't. I won't lie, we used it to our advantage.

I'm sure it only took a couple rounds before people started noticing you (and some alums) in the cap tables and realizing what's going on. Word spread. I have no doubt that now it is considered a signal.

Investing is like dating. You need to be right for them, and they need to be right for you. Just because you don't want to invest in someone doesn't mean they're a bad investment. Smarter angels & VCs probably realize this, but there's plenty of perfectly good money that would not go to companies who might be a good fit amongst the less savvy.

amirmc 2 hours ago 0 replies      
Impressed that this issue is recognised and a mechanism created to mitigate it. However, doesn't this merely delay the signal (which is mentioned) so it may simply defer the problem down the line. If after $500k you haven't had a YC partner join, raising more becomes difficult (assuming you were trying to raise more than that to begin with).

Curious whether this will actually matter in the long run but I guess they'll adjust if needed.

United857 19 hours ago 3 replies      
Is this a common policy in the VC world in general (prohibiting personal investments by general partners in the firm's companies)?
mjmahone17 18 hours ago 2 replies      
This is interesting, and actually similar to a policy that a lot of elite high schools in the US follow: not ranking their students. If you have good unis accepting 50% of your class, ranking your students unnecessarily makes your 50th percentile weaker candidates than the 95th percentile at schools that rank (often even if those schools only have 2-3% getting into top-flight unis).

However, the downside of not ranking is that your top 1-5% of students are not clear to the extreme elite (Harvard, Stanford, MIT) schools, meaning there is no one who is "guaranteed" those positions, as even your top 5% has to compete with students in the top 20 or 30% for admittance. For high schools that couldn't hope to admit more than 5% of their class in top tier unis, it makes sense to rank (as then you get to showcase your top students as being exceptional). If you expect 20% or more to be competitive candidates though, it's usually better to stay quiet on relative success.

pjg 19 hours ago 1 reply      
I am assuming that "YC partners not able to invest till the start has raised atleast $500K or 3 weeks after demo day" will mean YC founders follow the rule in letter and spirit i.e. no pre-discussions with YC partners leading to pitching claims like "One of the YC partners has committed to investing after first $500K" ...
aelaguiz 18 hours ago 1 reply      
Kudos. This was an issue in my batch. If you didn't have YC partner money you weren't necessarily a black sheep, but you definitely weren't awesome.
borski 19 hours ago 1 reply      
For what it's worth, 500startups has done this for long time. They don't tell companies whether they are going to provide follow-on funding (even though it's in the original terms as an option) until significantly after Demo Day, for the same reason.
kirpekar 20 hours ago 1 reply      
Interesting snippet: "... a startup's fundraising trajectory is almost always established, one way or another, by 3 weeks after Demo Day..."

I never knew fund raising worked so quickly.

codex 19 hours ago 1 reply      
It sounds like YC serves as a vehicle to bring deals to YC partners, who make a killing funding the most promising candidates from the YC batch. This has made so much money for YC partners that they still want to continue to pick winners, but they don't want to kill the golden goose, so they withhold their blessings for three weeks. YC companies will still prefer the partners for funding over some random VC, so they still get the deals, but now the relative losers from the YC batch will get more funding from the more clueless VCs.
lbr 19 hours ago 1 reply      
I think the most interesting bit is that it decreases a sort of self fulfilling prophecy.

Investors "treat investment by YC partners as an accurate sign of how promising we thought a startup was." So then, the company raises more money - and appears to look more promising.

Sure, partners may have less incentive immediately (as mathattack said) - but the real winners will be more clear to the partners after demo day (and three weeks).

They will have a list of winners (in their mind) before demo day. Then, investors at demo day will pick a list of winners (who they invest in). And YC partners will see the overlap - those who are picked as winners by YC Partners and independent investors.

bluishgreen 18 hours ago 1 reply      
It looks to me like this is going to put pressure on the window size (currently 3 weeks). Folks can now wait for 3 weeks if they really want the YC signal to kick in, unless other forces are working to counter act the waiting.

Think of it as a star which is trying to explode because of all those gases burning away, and gravity is keeping it together. The size of the star is the equilibrium point of the differential equations describing this dynamic.

One of the signals that was keeping the 3 week window to 3 weeks could have been the YC investments (gravity), but now that gravity has been set to a lower level, the 3 week window will expand..to account for this.

mathattack 20 hours ago 2 replies      
This seems to solve one problem, but does it create another? Does it diminish the incentive for partners? Or wind up penalizing the winners (better firms coming out of demo day) by reducing their exposure to firms most likely to invest in them?

My sense is net this is positive.

nhangen 18 hours ago 0 replies      
Why not just prevent partners from individually investing?
kartikkumar 18 hours ago 4 replies      
Maybe I have the wrong end of the stick but this seems unnecessarily forced. Surely, given time, the system should equilibrate. If YC partners investing in startups is treated as a signal of winners, investors will be able to derive their own conclusions in time about whether this is a trustworthy metric.

If it is trustworthy, then surely this would mean that great startups prosper faster and those that aren't that great know it even earlier, meaning that they can pivot after spending much less time on building their business.

If it is not trustworthy, the numbers will show that to be the case, with investors being able to directly assess which companies backed by YC-partners actually make it big. In this case, surely investors will wise up and not go by YC-partner investments as a signal of success.

If I'm missing something, I'd appreciate it if someone could point out where my logic falls short. Otherwise, I stand by my conclusion that this seems unnecessary.

blazespin 19 hours ago 1 reply      
Question for PG: Do the partners commit to fund companies in secret immediately on demo day or do they now make decisions based on how well external funding goes? In some ways, it sort of seems we have the same problem, but now the partners are the ones to take advantage of 'signals'.
markhelo 13 hours ago 1 reply      
YC company approaches VC and says we have a soft commit from a YC partner. VC calls the YC partner and invests. I am not saying there is anything wrong in the old world. It is what it is. When its your company and there is money involved people get creative and work around rules. Some companies raise successfully and some others dont. If VC's (with all their resources) are taking their cues from YC Partners then something else is broken not the entrepreneur.
Skywing 18 hours ago 0 replies      
But then isn't this just the other way around? Now will YC invest in the company if they see that they're not raising much from outside investors?
drp4929 19 hours ago 0 replies      
This might impact startup fundraising trajectory. Investors may prefer to wait out for 3 weeks if VC partner's investment is a strong enough signal for them.
melindajb 17 hours ago 1 reply      
Seems like a great idea, PG. Are the partners prohibited from signalling to favored investors their intentions? What's to stop someone from giving a wink to a friend?
aaronchriscohen 8 hours ago 0 replies      
I wager the % of the YC companies that raise $500k within three weeks of demo day is <10% making this rule effectively meaningless.
EGreg 14 hours ago 0 replies      
You think this might cause startups to close their funding later as investors all wait around to see who pg chose? :)
larrys 18 hours ago 0 replies      
" Which meant we were now making it harder for the startups that partners didn't invest in to raise money."

An analogy to this is what happened during the financial crisis when they got all banks to agree to take money so as not to send a signal showing what banks were the weaker ones.

dsugarman 19 hours ago 1 reply      
this seems really smart, although I worry that it could affect many startups ability to raise the initial $500k.
lyime 18 hours ago 0 replies      
Seems good.
williamle8300 18 hours ago 1 reply      
What's wrong with being a 'signal' to investors? There are multiform reasons why YC chooses to invests or not.

Those startups that join demo day realize that they're putting themselves on a public platform to be assessed, etc. If they don't get funded by YC, that's their problem; not YCs.

There's a problem with PGs policy since it rules out the possibility of YC being a first rounder. Which is a huge reason why VCs exist in the first place.

Why Dart should learn JSON while its still young maxhorstmann.net
90 points by Max_Horstmann  14 hours ago   43 comments top 14
skybrian 13 hours ago 3 replies      
This is more complicated than it seems.

First, how does it work with minimization? In Dart, string constants are not minimizable (will be included as-is in the source code). Symbol constants will be minimized. This includes all method names, field names, and things like named parameters. You can see this in the arguments to noSuchMethod; the named parameters map has Symbol keys, not strings.

Probably something could be worked out, though. Maybe put an annotation on the customer class to tell the compiler to save the original field names?

But a second issue is how it works with inheritance, including mixins. If a class is serializable, does that make all the superclasses and subclasses serializable as well? JSON doesn't have a standard way to represent a type tag, so does that mean we should invent one? If we do that, what happens to JSON interop with other languages?

Also keep in mind that Dart supports types that don't interop with JavaScript like unlimited precision integers. (Well, okay, that only works with the Dart VM, not dart2js...)

It gets worse. What if your class has a field type like List<dynamic>, which could contain any object? Does that mean the Dart compiler now has to preserve all symbols because any class could be serialized? And keep in mind that with optional types, all lists should behave the same when not in checked mode.

Having seen the mess that resulted in GWT-RPC, I would recommend just saying no to default serialization. Serialization and object inheritance don't really mix well which is why specs like JSON and protobufs don't support it.

(And now you know why language designers don't throw things into a language just because it seems like a good idea at the time.)

deathanatos 12 hours ago 1 reply      
It's the type data that makes this hard: JSON has no support for encoding new types into the serialization. This is a blessing and a curse: it makes JSON simple, but also inflexible.

Take this parting remark:

> So, heres another thing I wanna add to my suggestion: consider adapting ISO 8601 for a default JSON serialization of DateTime, so the following just works:

> var dt = DateTime.parse("2014-01-26T11:38:17");

> print(JSON.encode(dt));

Ignoring the fact that it's a simple value you're attempting to encode to JSON, let's say this works. Do you get:

Now do to the reverse: what does that decode to? Either it decodes to a string, and you've lost the type information, or it decodes to a date, in which case, what does `JSON.encode("2014-01-26T11:38:17")` decode to? i.e., do strings sometimes decode to dates? What if someone uses what should be a string to cause the decoder to decode it as a date? Now anywhere you have a string, it might decode to a date!

YAML has support for this sort of thing, with a syntax like `!!date "2014-01-26T11:38:17"`. (If you want a literal `!!`, it's always `"!!"`.) Notably, the Python library for YAML can do what the author asks: encode and decode arbitrary objects. (but it turns out to be a security risk to do so on untrusted data.)

> The Dart editor should be able to display a JSON serialization of anything the mouse pointer touches.

If my class contains a file handle, what's the JSON representation of a file handle? Further, if I send that serialization across the wire, how do you deserialize it? I mention this because you can't, at least, not really. Python's `repr` is a good example here. When it can, it gives you close-to Python syntax for the object, such as strings (`"hello world"`), ints (`1`), decimals (`Decimal(3)`), etc. Perfect for debugging. For things it can't, you get something like `<file object "~/foo.txt" at 0xdeadbeef>` which doesn't parse (on purpose) as Python.

I'd venture to say that what you really want is the ability to introspect. Take your customer example: if you could introspect it, and see what member variables were present, you could build a function that might output:

  {"type": "Customer", {"Id": 1, "Name": "Joe Bob"}}
Again, note the explicit serialization of the type here, in JSON. This is something I made up, of course, and not JSON. Of course, some language feature can make introspection interesting. (Can you even get a list of members? Some languages allow objects to make up members on-the-fly.)

Hopefully, I've convinced you language design is hard. :-)

grimlck 13 hours ago 0 replies      
What's wrong with just using a library?

Scala learnt XML while it was still young, when XML was just as popular as JSON is now, yet incorporating XML into the language is now considered a mistake.

floitsch 12 hours ago 1 reply      
I was the TL of the libraries for almost a year, and there are good reasons we didn't go this route:

- it adds overhead. Being able to write JSON.encode(customer) would mean that every class needs to retain its field names. Minification could still work if this information is stored on the side, but it would add overhead.

- it doesn't make sense to automatically encode elements that cannot be decoded. You should have: x =~= JSON.decode(JSON.encode(x)). (where x =~= y means that the two objects are Json-equivalent).

- The Dart-Editor already provides a quick-fix to write a toJson for you. To be honest I'm not really a fan of it, since I believe that serialization information should be outside the object, and not in the object (that's what "toEncodable" is for), but that's another story.

- It's extremely easy to get the behavior you want. Just use (or write, if none exists yet) a package that has your intended behavior. This is really a one-line change... This way you pay the price when you want to, and don't force it on all users.

oscargrouch 13 hours ago 1 reply      
Is there still people willing to use Dart instead of Javascript for web now? (no irony)
tyleregeto 11 hours ago 1 reply      
Golang has great JSON support that I think could translate to Dart. Any overhead could be minimized through compiler support so we don't have to rely on the current mirror functionality. I think that would be a nice balance between what the author of this article is asking for and dart2js performance.
daurnimator 13 hours ago 1 reply      
You don't just want ISO 8601, but more exactly: RFC 3339 (a subset)
TillE 13 hours ago 1 reply      
The lack of easy serialization is pretty strange. Even on stodgy old non-dynamic versions of C#, YamlDotNet does a really good job of translating arbitrary objects to and from YAML/JSON just using reflection.
gwbas1c 11 hours ago 0 replies      
The problem with magic serializers is that they tend to be brittle in practice. This is because the assumptions they make don't work across languages.

For example, if you use a magic serializer, your properties might have to follow a different capitalization format than what's normal for your language.

Recently, I ported some Java code to C#. It was written with a magic JSON serializer. When I got to test my port, nothing worked! It turns out that Java's serializer used lowercase names in JSON, but my serializer used uppercase names! The magic, unfortunately, didn't work, because assumptions that were valid in Java did not carry over to C#.

I think it's best to think of magic serializers as rapid prototyping tools that work well when both ends are the same languages. Thus, while might be useful for Dart to include one very simple quick-and-dirty serializer to JSON, any production code of merit will most likely outgrow it.

cwp 13 hours ago 0 replies      
Yes, it would be great if everything always just worked, and libraries always had your desired behavior as the default. Google should implement that right away.
pjmlp 7 hours ago 1 reply      
Personally I only care about JavaScript and am looking forward to ES6.

I don't care about transpilers and still looking for a use case worthwhile for Dart.

Unless Google pushes it, for example as Android language, ChromeOS or whatever might be the language killer application.

outside1234 11 hours ago 1 reply      
Dart should be JavaScript. Seriously, what's the point of Dart again?
munro 8 hours ago 1 reply      
Dart is actually trying to teach the web about static typing.
r0man 11 hours ago 0 replies      
We should all support EDN
Optimize your JS with IRHydra 2 for V8 googlecode.com
13 points by bolshchikov  4 hours ago   5 comments top 2
girvo 2 hours ago 1 reply      
So, I think this is pretty cool, and I've been looking at things like this but for PHP (opcodes). I'm really curious about taking the "compile-to-x" transpilers, and instead of compiling to another high-level language, targeting the IR of these various VMs instead. Basically, a poor-man's JVM or CLR, if you will. I wonder how feasible it actually is when you're dealing with dynamic language VMs, like V8, Zend, etc.? I have a feeling that to get the speeds V8 has, a lot of implementation details from the source lang would probably leak into the IR? Anyone have experience trying these sorts of things?
kevingadd 2 hours ago 0 replies      
Finally! It used to be incredibly complicated to get any information on how V8 compiles/optimizes JS - and there was basically zero documentation. This should be super useful for performance tuning, and it makes a nice counterpart to Mozilla's JIT Inspector and SPS profiler.
You might not need jQuery youmightnotneedjquery.com
904 points by sfeng  1 day ago   341 comments top 93
efuquen 1 day ago 20 replies      
No, please no. If size is an issue for some reason or you want to have no dependencies you can use something like http://zeptojs.com/ and just embed everything in one minified file. If you do things right only the functions you are actually using will get placed in there as well.

Do not reinvent the wheel to solve problems that can't be solved in much cleaner and nicer ways. Managing dependencies can be annoying, but we all bite the bullet for a very good reason, because reusing solid well tested code is a good thing.

chavesn 1 day ago 3 replies      
The Bad:

The premise of the examples list seems a bit disingenuous.

Very few of these things take into account the full convenience of jQuery. It's much more than saving a couple lines of code or knowing the native way to accomplish the most basic version of a task. jQuery's real benefit is preserving simplicity as your needs grow more complex.

Right off the bat I feel like the getJSON[1] example is a bit simplistic. Almost anyone using ajax needs to serialize data, handle errors, prevent caching, etc. jQuery has thought about all this[2].

Don't get me wrong -- most of my work has been without jQuery, but that means I know exactly how much work it is.

The Good:

The format is a nice way to show people (who really don't know otherwise) the native JS plumbing.

"The number of people who don't know that jQuery != Javascript is too damn high". So to help combat that, I really appreciate the idea behind this site.

It's great to show side-by-side how jQuery isn't "magic", since many people seem to learn jQuery these days without even knowing the first thing about Javascript, but I just think it should be presented with a slightly different premise.

[1]: http://youmightnotneedjquery.com/#json -- side note, why did they set the handler after the `send`? It seems like that could cause problems if the result was returnable quickly, such as from cache, though I haven't tested it.

[2]: http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings

DigitalSea 1 day ago 6 replies      
I implore all developers to learn native Javascript methods, because I strongly believe jQuery has created a generation of developers who know the library but not the language. You'd be surprised how many developers I've come across think iterating over an object or array requires Javascript and how many people don't know how to write a simple for or while loop in Javascript. jQuery is a fantastic library, but it is by no means a cure-all for Javascript problems.

Now about this site itself. This is a great idea getting people to use and understand native methods, but please also understand that native methods aren't always necessarily the most efficient choice. There are a few of parts of this site I think send the wrong message. Don't get me wrong, I think this is great, but sometimes native methods are no better than jQuery's.

The first one being jQuery's each method. It is a known fact that jQuery's each method is extremely slow, it works, but from a optimisation perspective native ways of looping an array are always the fastest and most efficient.

The alternative given for a jQuery.each statement is the IE9+ supported Array.prototype.forEach now you'd think this would be faster right? It's actually still not as performant as it could be. As this jsPerf set of benchmarks shows is that a for loop is the most performant option: http://jsperf.com/foreach-vs-jquery-each/38 it might not be as pretty as jQuery.each or Array.prototype.forEach, but heck, it's a whole lot faster than the alternatives.

The second being the use of querySelectorAll (which is awesome btw). It has similar capabilities to that of jQuery's native wrapper for querying, it looks just as nice, but once again the performance isn't all that great. Looking through multiple jsPerf benchmarks, querySelectorAll is rarely the best option to use in most cases. This is an example of one: http://jsperf.com/queryselectorall-vs-getelementsbytagname/4... if your selector is extremely complicated, think to yourself, how can I make this easier to write? Do I need to query a chain of five classes and use CSS3 selectors, or can I just add an ID to the element I want and query it using document.getElementById instead.

Sometimes jQuery is needed though. It saves considerable amounts of time, especially when the budget of a project is tight and timeline is even tighter and you just need to get something out the door as soon as possible. If you have the time to properly build whatever it is you are building, consider spending that extra 15 seconds writing a for loop to iterate over that array or object.

And to those who understand and have taken a look into the internals of how some jQuery methods work like document.ready, you'll appreciate and know just how many different browser quirks the jQuery team have solved for us. There are quite a few methods where jQuery hides the gory details of a sometimes difficult to get right across all browsers feature.

Personally my favourite thing about Javascript is the power of documentFragment: https://developer.mozilla.org/en/docs/Web/API/DocumentFragme... this is something all developers who use Javascript need to know about. It helps prevent reflowing and redrawing as well as being extremely efficient and fast for modifying and inserting elements into a page.

Over all of this I think we all need to reflect on the state of Javascript. It's a whole lot more powerful and better than it was 10 years ago, but I think because of the likes of jQuery and others, people have become obsessed with pretty code and methods. I know for loops and prototype methods might not be as nice as your one line of jQuery code, but don't take the easy way out, because you'll soon find the longer your Javascript grows in your app/site, the slower it will become.

iagooar 1 day ago 3 replies      
I would like to add a thought about the dispute about the need of using jQuery.

Let's say we know a consultant, let's call him Bob, who works on client projects. He needs to implement new features fast, and does not want to worry about low level stuff. Once he's done with a project, he moves on to another.

Then, we meet a JS-framework developer, let's call her Alice. She has to weight every line of code she writes because her decision can have have a huge impact on thousand of developers using her stuff. She needs to understand a lot of low-level details in order to make good decisions and ship rock solid stuff.

Now, both Bob and Alice have to decide whether they need to include jQuery in their projects or not. Heck, they need to justify their decisions to their teams / managers.

What's Bob going to say? He will start thinking about what will happen if he does not include jQuery to his project. Well, he will have to implement some of the low-level stuff by himself, and later maintain the code. Probably, in a month he's going to be working on another project and will have to copy & paste the same stuff over. And if there was a bug? Is he going to update all the previous projects he is not getting paid for anymore? If he's smart, he's going to say: we'll take jQuery, as it provides a nice, stable, robust and battle-hardened API. We're going to move faster if we use it, as we don't want to reinvent the wheel.

What about Alice? She will probably have to consider introducing a new dependency to her framework. Is it OK to add those additional hundreds of lines of jQuery code to an already large codebase? Is she going to be able to provide a consistent experience between different (and future) versions of jQuery? Is the core of her application going to rely on an external tool, even if it is rock-solid and lose the potential to make low-level optimizations and have full control? Maybe, she's going to say: well, I'm going to identify the elements that need some of jQuery's stuff and implement it by myself. She will be taking the time and effort needed to test it well and be sure that it works across different platforms.

At the end of the day, both will have made the right decision, even if in absolute terms they took the exact opposite action.

Software engineering is about making decisions, in a given context and moment, for a given purpose. As software engineers, we should not generalize about some of the decisions people have to make. There is no one single truth, it all depends on a variety of variables and factors. Let's be Bob and Alice, be smart and make the best decisions for our projects.

ivanca 1 day ago 1 reply      
>post-IE8, browsers are pretty easy to deal with on their own.


- CSS browser prefixes are automatically inserted by jQuery

- Many jQuery selectors don't exist in the CSS selector specification

- Looks really really ugly and that makes it hard to read for you and other coders.

    var pairs = $(".form").not(".old").serialize();    /* without jQuery */    var pairs = [].slice.call(document.querySelectorAll(".form"));    var data = forms.filter(function(ele){      return /\bold\b/.test(ele.className);    }).map(function(ele){       var form = ele.querySelectorAll("select, input, textarea");      var pairs = [].slice.call(form).map(function(subele){        // maybe if subele.type === "select"        // but I got tired of writing this example        // but that's the point anyway        return subele.name + ":" + (subele.value || "") + ";";      });      return pairs    }).join("").replace(/;$/, "");
So be kind with your co-workers, use jQuery. Even my 5 year old android can run jQuery without freezing the built-in browser.

bitwarrior 1 day ago 8 replies      
I understand the desire for people to make pages like this (this isn't the first), but the examples are not completely honest with themselves, in my opinion.

One of the biggest benefits jQuery introduces is the concept of treating single selections and multiple selections identically. While using jQuery, I can emit a $(".class").hide() call, which will apply to all elements with the matching class. Simple and elegant.

However, using native JS as the page suggests, I will need to construct a loop within my function, especially if I'm using the DOM supported getElementsByClassName method, returns a pseudo-array of DOM nodes which don't have the style method available on them. You'll notice the examples already assume a selected element and leave much of this heavy lifting out.

Furthermore, jQuery offers the selection simplicities of Sizzle (ie: "#div .container .item). To do the same selection process in vanilla JS, I'll need to nest 2 getElementsByClassName functions in a getElementByID function, and return the concatenated results from each potential .container. That is to say nothing of more complex selectors.

So yes, if you're addressing the absolute simplest form of selection, this works, but otherwise I don't think it's really presenting the situation honestly.

sheetjs 1 day ago 2 replies      
Greenspun's Tenth, updated for 2014: "Any sufficiently complicated website contains an ad-hoc, informally-specified bug-ridden slow implementation of half of jQuery"

I understand the visceral opposition, but once you start writing a fallback to support some browser (something to support IE or FF or Safari or Chrome ...) you might as well use the battle-tested solution (and write your own thing if you find performance to be unacceptable and trace the bottleneck to jQuery)

polemic 1 day ago 2 replies      
This be right on a purist level, but on every practical level there is little reason not to use [library of your choice]. If you're loading from the google/jQuery CDN (with suitable fallback, obvs.) you've got a good chance of a cache hit, and even if it misses it's a tiny one-off penalty.

And ultimately, why not? jQuery works, has a wide base of users, etc. Sure your trivial Js might not need jQuery features now, but as you add more dynamic behaviour, at some point you'll wish you had just used it to begin with.

A better message might be: make sure you know what the underlying javascript looks like, because there are a lot of people helpless without jQuery.

PLUG: if you're bored of jQuery, try Dojo. Far more power, in a less intrusive form, IMO.

nostrademons 1 day ago 2 replies      
Couple improvements to some of the modern-browser code examples:


  element.style.transition = 'opacity 400ms ease-in-out';  element.style.opacity = 1;
Each & filter (this also applies to people's complaints about browser methods not working on collections):

  [].forEach.call(document.querySelectorAll(selector), function(el) { ... })
The native versions also usually run several times faster than the JQuery versions, which is the main reason to use them. This meme that you can't build performant, jank-free HTML5 mobile apps? It's largely because of JS libraries and developers that don't know which operations are fast and which are slow.

I'll also plug my colleague's autogenerated index of the HTML5 APIs:


notJim 1 day ago 1 reply      
I recently did a project that didn't use jQuery in order to keep my code smaller. It was an embedded 3rd-party widget, so keeping the code as small as possible was a key requirement. The code I wrote supports down to IE7, but IE7 wasn't really the biggest issue.

The real problem with not using jQuery is that all of the collective knowledge we have about browser inconsistencies is encapsulated in jQuery. When you run into this, and Google it, you'll find a million StackOverflow answers telling you to use jQuery, and if you get lucky a blog post from 2007 that actually answers your question. The result is that you end up spending time reverse-engineering jQuery to get your thing working.

To be clear, in my case the tradeoff was worth it (the code for my entire widget including the bits of library I had to write is smaller than jQuery), but it's not a tradeoff I would make unless I had a good reason.

phaed 1 day ago 5 replies      
You had me convinced until I scrolled down to read the code examples and realized why I actually do need jQuery. If its between adding yet another collection of utility functions to approximate the functionality jQuery would give me vs just adding jQuery. I'd rather go with jQuery.
_greim_ 1 day ago 0 replies      
It isn't that these rebuttals are unsound, it's the sheer volume of them. A tidal wave of irritation and defensiveness always seems to accompany posts that dare question jQuery.

Unless the headline was changed by the mods, there's no hyperbole or sensationalism here. You might not need jQuery. Obviously. But many of these reactions don't belong here, they belong in a post titled You don't need jQuery, which would of course deserve to be downvoted to hell.

Obviously you don't need to pull in jQuery for every little twenty-line gizmo you publish on github. But don't you dare brag about this or you'll offend the sensibilities of those who've invested all their mental energy into learning jQuery and therefore remained ignorant of how browsers actually work.

hawkharris 1 day ago 0 replies      
You can count on one hand the number of jQuery features that most developers incorporate into their projects. E.g.:

- Setting or getting css attributes- Querying the DOM- Manipulating and walking through arrays

Each of these features can be replicated with fewer than 10 lines of code.

exizt88 1 day ago 1 reply      
So, uh, what will I gain by ditching jQuery?

I will lose a beautiful API with a simple, terse and familiar syntax. I will have to work with an ugly, inconsistent and loquacious API, which has no guarantee of being cross-browser (or accounting for various browser quirks).

And for what? I doubt 81 KB would make much difference to 99.9% of my visitors.

As for performance -- it makes sense to rewrite bottlenecks in pure highly-optimized JS. But to write vanilla JS from scratch, without even knowing whether you'd need that performance boost is a pure waste of time.

UPD: it has been pointed out that this webpage is directed at developers of JS libraries. In this case, all these points are valid, but the title, then, seems to be either misleading (as in "link-bait" misleading) or a plain truism.

hamburglar 1 day ago 2 replies      
It's hard to tell if this site is advocating for ditching this type of js library altogether and writing all those replacements inline (ick for some of those) or simply replacing jQuery with a thinner (and narrower) library.

I could be convinced of the latter but not the former.

jsnk 1 day ago 4 replies      
"You might not need Ruby on Rails. Use C to rewrite tons of shit you need."

Use jQuery please.

Rewriting jQuery methods with vanilla js usually turns out to be a hack job that is buggy and ugly. Just use jQuery.

Arnor 1 day ago 0 replies      
I don't understand why so many comments here seem to have skipped over the word "might" and the entire introduction. The point isn't stop using jQuery. The point isn't even don't ever use jQuery for plugins. It's simply that if you're only using a couple features of jQuery, consider eliminating the dependency. Why is there so much backlash to that?
windsurfer 1 day ago 0 replies      
drawkbox 1 day ago 0 replies      
Indeed you don't need jQuery. Though, there are standards and there are market/industry standards. jQuery has become a market standard wrapper. If jQuery isn't used, developers will still write a wrapper to ease some of these methods. It is better if that is a common market standard like jQuery than everyone doing it.

The amazing part of jQuery still to this day, beyond the selectors (which can now be replaced yes), is the plugin system. Just like Python, there is a plugin for everything and if you don't like them or there isn't one, developers can easily make one and share it with the world and it just works (tm). It is the most easily pluggable javascript library. It creates a baseplane that developers can be more efficient in. Everybody tries to replace the jQuery selectors, animation etc but they miss that jQuery is a platform and a pluggable one at that. It is responsible for tons of productivity.

at-fates-hands 1 day ago 0 replies      
This is fascinating to me since I'm already moving away from jQuery. I'm always looking for other ways to do what many people use jQuery for. For example, I'm now using CSS3 animations and transitions instead of jQuery.

I've also started using Angular.js quite a bit and have found most of the time, it requires less code than jQuery. It also has its own subset of jQuery "jqLite" which has a much smaller footprint so your app doesn't need to rely on that jQuery dependency.

justinph 1 day ago 0 replies      
You might not need jQuery 1.x.

You might be able to use jQuery 2.x instead, which is smaller, faster, and drops support for IE8 and below.

eli 1 day ago 1 reply      
> in truth, post-IE8, browsers are pretty easy to deal with on their own

I totally agree, but not everyone lives in a post-IE8 world. It's as much as 10% of our traffic on some sites and several big clients use it.

elclanrs 1 day ago 0 replies      
"You might not need jQuery" -- But you have to cope with ugly syntax, browser compatibility hacks, and disconnected pieces of code. By the time you re-factor all of this, make it user friendly and lower the cognitive load, you're already re-inventing the wheel by building your own jQuery replacement, with the parts that you need.

The beauty of jQuery is working with the DOM as collections. I don't see how it's better to have all these helpers like `nextSibling`, `matches`, or `filter` thrown in the global scope or having to remember is this a real array? jQuery already built solutions for these common problems and exposes a nice API.

If all I need is querying the DOM and I don't have to support IE8 then I may consider using vanilla JavaScript, or building my own simple jQuery-esque library. But you'd start with some structure, and expose your own API. I re-invented the DOM wheel many times, and from my experience, although the code is smaller, I end up going back to jQuery because it covers some edge case or provides something else I need, like AJAX, or nice events, etc.

But building your own DOM library is a good educational challenge. Querying the DOM is all about collections, and if you don't need IE8 then you can use all the ES5 arrays methods, like map and filter. It all boils down to four functions to work with collections: toArray, unique, flatten and query. And four functions to work with the DOM: compose, join, dot, loop. See here for an example http://jsbin.com/EgIkega/1/edit. The article is more about techniques to build your own jQuery-like library; I wouldn't use "el.nextElementSibling || nextElementSibling(el)" when I can use "$(el).next()". C'mon!

Conclusion, you are probably going to use jQuery anyway.

lowglow 1 day ago 1 reply      
Makes me think of: http://vanilla-js.com/
hartator 1 day ago 1 reply      
It's odd, but after reading everything and the examples at the end, I feel we need jQuery more than ever. Kind the opposite of the OP is stating. Great post though.
lhorie 19 hours ago 0 replies      
I'm a little sad to see that nowadays there's a strong sentiment of "just use the pre-packaged tool", whereas when jQuery was still in its infancy, there was a lot of lively hacker-minded chatter on the down-and-dirty of getting things to be cross browser.

It's as if there are now two "levels" of people - "regular developers" and "framework designers", and only the latter are really supposed to know about the nitty-gritty. The excitement of finding out about standard, cross-browser gems like insertAdjacentHtml is all but gone :(

I get it that people are focusing more on the entrepreneurial side of things now, but I miss the banter of aspiring tinkerers.

rralian 12 hours ago 0 replies      
FWIW, I was on a jQuery-hating kick before I read this article, which explains some of the beauty behind the jQuery api.


I agree that you probably only want to use a small subset of jQuery (e.g., none of the UI, none of the transitions), and zeptojs is actually a really good alternative. But it really does provide some convenience.

mortenjorck 1 day ago 0 replies      
document.title.replace(You,Your JS library);
leobelle 1 day ago 0 replies      
querySelector and querySelectorAll have bugs in IE8. Checkout the jQuery source code and search for these functions and see the comments and workarounds if you want to be sure:


Notice the rbuggyQSA variable.

Also check out Quirksmode:


chrislomax 1 day ago 0 replies      
You might not need [Insert Library Here].

Although this is true, you don't really need any library. The problem comes when you start to need that library. You make a decision to not use it at the start of the project and then the dependency of lower level JS functions grow and it turns out you do need it. What do you do then? Go and get a copy of jQuery and start to rewrite all your functions?

Hindsight is the problem here, I'd rather make the decision to use the (relatively) low sized jQuery library and not have to worry about how the project grows.

As the old saying goes, "It's better to have it and not need it, than need it and not have it".

padseeker 1 day ago 1 reply      
I use jQuery because the DOM API for javascript sucks, and writing jQuery is fun.

You're average web app perhaps doesn't need the latest Ruby/Python/PHP framework, or perhaps it you can write it without the framework. Or perhaps you can a compiled as opposed to interpreted language because that would be faster. OR maybe you can use something that is even faster, like perhaps Assembler! Fuck it write machine code if speed is the most important thing.

Do you know why you don't? Cause writing Assembler or machine code sucks. You lose very little in load time by including a minified version of jQuery, while you gain an enormous amount of ease of use and readability. Also it'll be more fun.

Just include the jQuery and be done with it.

deliminator 1 day ago 0 replies      
My colleagues and I learnt that lesson the hard way. We are working on a WYSIWYG editor (Aloha-Editor) and the first version did depend on jQuery (and jQuery UI for that matter). That caused a lot of trouble for people integrating the editor in their websites, especially if they were already using jQuery. For our particular case we really didn't need it, as it's just as easy to say .getAttribute() instead of .attr(), and we didn't use selectors much, if at all. Effort is underway to get rid of the dependency from the core library in the next major release.
hesselink 1 day ago 0 replies      
One thing I haven't seen mentioned in this thread, is that you can create custom builds of jQuery that only include some of the functionality: https://github.com/jquery/jquery#how-to-build-your-own-jquer...
dewiz 1 day ago 0 replies      
Apart from size and many functions that translate 1:1, where it really doesn't make sense to use Jquery (time to learn ?) there are two extra factors:1. the extra http call to load a library, that can be optimized2. licensing, some company cares about that and avoid the the hassle of having yet another license to understand and manage, there are costs involved

I've seen thousands of js snippets using jquery just because the developer doesn't the pure js syntax, or because he is used to start from adding jquery.

very good page indeed, thanks for spreading the knowledge.

fredsters_s 11 hours ago 0 replies      
[Component](https://github.com/component/component). That is all.
Bahamut 1 day ago 0 replies      
Some of the examples are flawed. The ajax one for IE8+ is a big red flag, it's not as easy as that.

However, operating in the world without jQuery is scary for a new developer. I think it has its utility.

Note: I tend to prefer not to use jQuery, especially with AngularJS around. YMMV

hugofirth 1 day ago 0 replies      
I see a lot of people in both camps on this one.

It seems to me that if you are making a library, and therefore do not want to make assumptions about the availability of jQuery, one potential solution would be to go the route of AngularJS[1] and have a 'soft' dependency on jQuery.

In this instance you would use jQuery if it was present, but fall back on the code found in this submission if it wasn't.

Are there potential downsides to this solution that I am missing?

[1]: http://docs.angularjs.org/api/angular.element

sdegutis 1 day ago 0 replies      
I wondered to myself, why did he create a custom website just to present this? It seems like a great way to position yourself as a skilled front-end developer and advertise your services to potential clients. I suppose it could also have been done out of some kind of altruism, but I'm guessing the former.

Either way, this is pretty neat, and I'll probably be bookmarking it. We're using ClojureScript now and migrating away from jQuery, so this may prove handy.

coldcode 1 day ago 0 replies      
Sometimes doing it yourself makes sense. But most often using a well tested battle hardened tool is better. I rarely if ever build my own car.
um304 1 day ago 0 replies      
I would still stick with jQuery because it lets me achieve more by writing less. Out of many things, just see triggering custom events. It'd be horrible if I'll have to write that piece of code again and again and make sure it's bug-free. And if I contain that long logic into a function for re-use, and use this approach for everything listed on the page, I'll end up writing my own library that I'll be including in each of my projects. Wait, why don't I use jQuery instead which is battle proven and better tested than my library ever will be?
maresca 1 day ago 1 reply      
There are many things you don't need to do. I'll take the time saved in development over cutting out an extra framework.
jchrisa 1 day ago 0 replies      
This is a great resource, even though it's not really about jQuery, it's about the success of HTML5. The fact that we have a working DOM, XHR, and a better understanding of polyfills in general does tip the balance away from depending on a "fix it" library.

I can see myself reaching for this page a lot. And the author has a point as the only reason I used Zepto on my last project was one of the libraries I needed used it.

If I am gonna use a fix it library today, it's more about nodejs/browser compatibility than worrying about browser issues.

acconrad 1 day ago 0 replies      
I'm psyched by the idea that you don't need a bloated framework, but between using Zepto as an alternative, as well as the fact that some of this information is just plain wrong (e.g. they claim that the classList API is supported by IE8+, when in fact it is only supported by IE10+), this won't get you too far.
pacomerh 1 day ago 0 replies      
I think many commenters are misunderstanding the main idea here. This page makes a strong case if you're just using jQuery for a few things in your site. I can see people complaining "why would I write all that code again? if jQuery offers a beautiful API?" if you're just using jQuery to do a few simple things (Which I've seen all over the place among peers) then why not just write the native version? it's only a few lines and you're saving a whole library in your load process
mike-- 1 day ago 0 replies      
In my opinion jquery is a hell. Because jquery is only abstraction for browser features level (events, styles, dom), but it's ugly for writen complete code, for this need some like prototype.js or mootools, because it's have oop-style level for browser.
isawczuk 1 day ago 0 replies      
It's plain stupid. Your code may work for IE8+, but there is no warranty that M$ will not do something stupid in IE16, and your code will be broken. jQuery is unified bridge between all major browsers, so you don't need to support all of them by yourself. "Support for all" is why we shift from compiled to VM languages, even though at the begin they were slower.
Gonzih 1 day ago 0 replies      
Well... I don't like this trend. I saw project once where main frontend guy decided to do stuff without jquery and etc. He said that vanilla.js is nice and people just don't get it. After project was done it worked only in firefox properly. Lot of time was spend after that to implement fixes for different browsers. So don't do that. Don't use vanilla js. Size of jquery is issues? Well you are trying to solve problem that does not exist.
JacksonGariety 1 day ago 0 replies      
The important part of ditching jQuery isn't the load time, it's aiding the transition from monolithic libraries to loosely-bound components.
trevorhartman 1 day ago 1 reply      
jQuery or <jQuery-compatible substitute> is one of the few things I don't have to think twice about before including in EVERY WEB PROJECT I EVER WORK ON before doing anything else.

Next up: you might not need <insert abstraction>.

Really?! What does "need" mean? Go write assembly.

tlrobinson 1 day ago 0 replies      
The worst are things packaged as jQuery plugins that don't actually need to be a plugin, or even use much of jQuery at all.
emehrkay 1 day ago 1 reply      
I've never liked jQuery. I use it because I am forced to. However, I will not write my own animation library, selector engine, and other helper utilities it provides.
dudus 1 day ago 0 replies      
DOMContentLoaded doesn't even get close to the jQuery counterpart $(document).ready. To start if the DOM is already loaded DOMContentLoaded won't fire and won't call the callback. On the other hand ready will notice that the DOM is loaded and fire the CB right away.
superlupo 1 day ago 0 replies      
Recently, I have developed a small page where I wanted not to use jQuery on purpose and code against the DOM APIs instead. For IE8 compatibility I have used [1] (so I could use addEventListener and DOMContentLoaded for example), and also shims for ES5 [2] (e.g. Array.prototype.forEach) and classList [3].While I did not run in any troubles, I don't think it is worth the effort, alone just because jQuery has a much nicer and shorter API (cp. ".on()" vs. ".addEventListener()").

But I still support the case that not every plugin/library developer should depend on jQuery by default, even if it is not necessary.

[1] https://github.com/WebReflection/ie8[2] https://github.com/es-shims/es5-shim[3] https://github.com/eligrey/classList.js

zertosh 1 day ago 1 reply      
Articles like this miss the _true_ genius of jQuery that it basically wraps all DOM operations in a maybe monad. You get null safety for free.
cozuya 1 day ago 1 reply      
Thanks for traversing the bounds of space and time and posting this blog post from the year 2018 when IE8 is no longer supported for enterprise.
Yaggo 1 day ago 0 replies      
In my personal projects (and clients' too unless paid extra), I target for modern browsers + IE10 and haven't used jQuery for long time. Native APIs are good enough once you get used to them. Actually jQuery starts to feel cumbersome (this binding in .each() etc).
kmfrk 1 day ago 1 reply      
What's a good resource to read up on how browsers handle unsupported JS, if I want to write a fall-back?

I've already got fall-back for people who've turned off JS, but I've yet to write anything for unsupported JS.

exizt88 1 day ago 1 reply      

> $('<div>').append($(el).clone()).html()


> el.outerHTML

Why not $(el)[0].outerHTML?

achairapart 1 day ago 1 reply      
I feel empathy for the OP, for two main reasons:

1) The fact that some people don't realize that JavaScript != jQuery scares me.

2) jQuery born when cross-browser compatibility was a mess and today it still carries that weight. I think nowadays it needs to be more modular and less monolithic.

npongracic 1 day ago 0 replies      
I think this is great, i was also thinking of replacing jquery functionality in some of my scripts with native methods and this helps me alot.

One question though, what is the pure javascript equivalent of $(document).on('click', '.selector', function() { // do something });

This is the new jquery .live() replacement and i need it because normal events stop working after async postbacks (eg. from an asp.net UpdatePanel).

Will this code do the trick if i attach it to the document element? Also i need IE8+ support :)

function addEventListener(el, eventName, handler) { if (el.addEventListener) el.addEventListener(eventName, handler) else el.attachEvent('on' + eventName, handler)}

addEventListener(el, eventName, handler)

chenster 1 day ago 0 replies      
If you only care about IE such as inside corporate intranet, and never had to worry about cross browser compatibility, knock yourself out. On the other hand, the scalablity and performance on the intranet usually are not a high priority. Why not just learn jQuery rather than tight yourself up to vender specific, proprietary technology?
dsego 1 day ago 0 replies      
Shouldn't you set request.onload before calling request.send?
abus 1 day ago 0 replies      
Please can we embed jQuery in browsers instead of the standard being to use Google's hosted copy.
hipsters_unite 1 day ago 0 replies      
It's probably better to have it than not if you're going to be using AJAX, as at least jQuery implements promises (after a fashion).
enscr 1 day ago 0 replies      
I'd love to use a jQuery 'lite' version, just for the convenience and brevity of expressions. Some of it should be baked into javascript.
caiob 1 day ago 0 replies      
https://cloudup.com/cSLcmVC5F9h <--- Def not a good example. heheGreat website, though.
hacknat 1 day ago 0 replies      
Man, the front-end developers really came out of the wood-works for this one.
shittyanalogy 1 day ago 1 reply      
Chaining and implicit iterators.
puppetmaster3 1 day ago 0 replies      
Most CSS Frameworks require jQuery.Most designers are familiar w/ jQuery.If you use CDN, some other app likely downloaded jQuery already.

People that are not fans of jQuery are people that are are only familiar w/ MVC on client side and are not using APIs (ex: Parse, Kinvey, etc.)

Fizzadar 1 day ago 0 replies      
jQuery still has it's uses... like when it's essential to have consistent support across browsers old & new. However I much prefer to tell users who insist on using out-of-date/poorly-built browsers to upgrade or fuck off, hopefully gently encouraging them to do so.
julie1 1 day ago 1 reply      
I may not need jquery for compatibility, I need it because it makes code in a language I find unesthetic and unconsitent more readable.Yes I can do vanilla JS, but my productivity and readability in jquery is better. And this site proves my claim: all their vanillaJS exemple are less expressive and more error prone.
6thSigma 1 day ago 0 replies      
I don't get it. From the examples it seems that the jquery way of implementing things is much easier and more concise. Isn't that the entire point of a library?
ateevchopra 1 day ago 1 reply      
I don't know if i need jQuery or not But your page is seriously a great "Cheat Sheet" for all jQuery Learners out there ! Thanks
ahahah 1 day ago 0 replies      
My contribution here is that we have a possible acronym troll on our hands.

"You're [the] man now, ninja!"?

As in: Code ninja?

Re-use is fun. See?

k_bx 1 day ago 0 replies      
In first example:

> data = JSON.parse(request.responseText)

Maybe "var data = ..."?

LukeHoersten 1 day ago 0 replies      
It'd be cool if you could search a URL and it would analyse whether you need JQuery or not.
neduma 1 day ago 0 replies      
Awesome site with clear message. +1
fatiherikli 1 day ago 0 replies      
There is a mistake in Matches section. The `is` method is not equal to `===` operator.
ricket 1 day ago 0 replies      
Boy, these snippets are really cool! Some of them are a bit longer in vanilla JS, though, so I think I'll wrap them in a utility of helper functions.

Oh wait -- that's what jQuery is!

scotty79 1 day ago 0 replies      
Next up: You might not need warm water.
kirbyk 1 day ago 0 replies      
jQuery's overhead is so minimal. Also, virtually every example of pure js was more verbose. jQueries selectors alone is such a great selling point.
_zen 1 day ago 0 replies      
Why code with Rails instead of raw Ruby?Why code C++ instead of C?Why use Boostrap?

Choose one:

- Performance

- Rapid development

finalight 1 day ago 0 replies      
forget it, i rather just use the jQuery

i have better things to do than merely writing my own dependency

hizldizl 1 day ago 0 replies      
Seeing how many of these hand-picked trivial code examples are still made easier by jQuery just makes me want to use it all the more.
nfoz 1 day ago 0 replies      
I should probably register pleasedontusejavascript.com
sbilstein 1 day ago 0 replies      
drop jquery and repeat yourself everywhere
westoque 1 day ago 0 replies      
Actually, you just showed me why I DO need jQuery. Thanks. :)
wnevets 1 day ago 0 replies      
the dom traversal/chaining in jquery is a big reason why I use it. The native API simply isnt as nice.
BigBalli 19 hours ago 0 replies      
no one "needs" jQuery.
leterter 1 day ago 1 reply      
AngularJS is all you need.
ests 1 day ago 0 replies      
Or in other words: YMNNJQ
jbeja 1 day ago 0 replies      
I would glad to see a youmightneedclojurescript.com.
Patent troll CEO explains why company wants names of EFF donors arstechnica.com
103 points by paulgb  16 hours ago   22 comments top 9
throwawaykf03 11 hours ago 3 replies      
This is why I hate Internet reporting of patent cases:

> Given that there's no question Internet broadcasting pre-dated Logan's business, Ars asked if Liddle and his colleagues at Personal Audio felt that it was justifiable to keep pursuing small podcasters for royalty payments. "I'm not going to comment on that," he said.

1) The patents are not on "Internet broadcasting". They are, effectively, despite claim oversimplification being the primary sin in discussing patents, on skipping episodes of audio content. That is it. If you want to find relevant prior art, you don't go about looking for "Internet broadcasting", you look for things that involve audio content that is episodic and can be skipped from episode to episode with a user command. Yes, really.

2) The prior art that EFF dug up, if it is indeed on "Internet broadcasting", is probably not relevant to this patent.

3) Personal Audio is arguing Estoppel. Estoppel, overly simplified, means what you say and do can be used against you.

4) If you consider 2) and 3) it's highly ironic then, that Ars asks the lawyer a question that would effectively do nothing other than create estoppel for himself. Conveniently, the article gets to present that as a shady response. But consider this: whatever he may say offhand about the prior art Ars mentioned can work against him. This is the same principle as "Don't talk to the police" that gets parroted so often around here: Don't say anything without having thoroughly thought it through beforehand. As an oversimplified example: The lawyer may have said something like "That is just Internet broadcasting. This patent covers something else like skipping episodes". An opposing lawyer can then argue, "Defendant does Internet broadcasting, but plaintiff's lawyer just implied these patents don't cover Internet broadcasting."

5) Askpatents.com is much better for this work, because dedicated users (shoutout to Micah Siegel) take efforts to describe in plain english and as precisely as possible, the claims and what prior art should contain. Anything less than that devolves (as it does on HN or Slashdot) to discussions of completely irrelevant prior art.

6) Relevant prior art may actually lie in the domain of simple digital audio players, because those have had skipping of content for, like, ever. Problem is, these claims use "means for doing XYZ" in their language. This, while sounding extremely broad, is paradoxically narrow, because "means for" is now interpreted to cover only exactly the methods described in the specification. But anything that skipped episodes of content is what we want.

While I am strongly pro-patent, I completely accept there are flaws in the system. The article implies the patents are overbroad, but the reality is they are narrow enough to be literally inconsequential, but impart an over-inflated worth because of the legal environment.

However, reporting like this twists the issues and actually impedes progress. If, for example, you called your Congress-people (hah!) and complained saying "How can there be a patent on Internet broadcasting?!", they would consult with someone who actually knows how patents worked, who would then say, "Well, it's not really a patent on Internet broadcasting per se...", and that's all the politician needs to bucket you in along with the old lady who keeps calling up about the UFOs in her backyard.

OK, I'm stretching it with the politician scenario and have no experience with politics. But am I far off?

latj 14 hours ago 0 replies      
That reminds me, its been a while since I've donated to EFF.


droithomme 11 hours ago 0 replies      
Here is the text of the patent:


Here is a summary of the patent and a discussion of prior art:


rdl 12 hours ago 0 replies      
I'm kind of amazed people like Ian Samuels (who represented Lavabit at the recent hearing) and Brad Liddle (this patent troll) exist in the same profession. And depressingly, I suspect Liddle makes a lot more money.
jrockway 13 hours ago 1 reply      
Is there any way I can donate specifically to appear on this list? I enjoy trolling trolls, and if the EFF gets some extra money, I'm certainly not going to complain.
linuxhansl 8 hours ago 0 replies      
Patent troll and lawyer parasitic scum. What else is new?

This will go until patent law is changed to make this no longer economically viable.

plink 11 hours ago 0 replies      
Is there any organization encouraging Texas' secession from the Union? If there is, maybe we should just make donations to them.
rhizome 11 hours ago 0 replies      
Interesting, they apparently want to force this case to be considered a class-action WRT EFF's donors?
HeroesGrave 13 hours ago 0 replies      
If they refuse to comment on something without a proper reason, anything else they've said is BS.
The Horrifying Apple Super Bowl Ad That Time Forgot, 1985 wired.com
31 points by MarkTee  9 hours ago   16 comments top 11
barrkel 1 hour ago 0 replies      
It shows the deep roots smugness has in Apple culture.
jkaljundi 33 minutes ago 0 replies      
Both this one and 1984 ad could be made into great spoof ads about Mac and iPhone users today. How the world has changed.
bsaul 2 hours ago 1 reply      
I can't imagine what it feels like to witness first row a whole stadium being dead silent by an ad that you designed ( or at least were involved with). Even for someone like steve jobs, that must have been really painfull.
Theodores 3 hours ago 1 reply      
The tone of this advert was not that different to the big government advertising campaigns of the era, whether they be warnings about AIDS, drink driving, not locking up your house or buying shares in a once government owned utility.

When viewed in that context it is not that out of the ordinary, and it was probably put together by the same fear-mongering creatives that worked on the government campaigns.

I was wondering what the Mapple Office product was, wondering if it meant Word was out on a Mac, but no, they meant the fileserver plus printer. Wasn't it Canon that actually made the printer?

userbinator 3 hours ago 0 replies      
Those ads are a little ironic, considering Apple's design philosophy now.
JacobIrwin 2 hours ago 1 reply      
Who has forgotten about this?? It's probably in the top three of all-time most memorable Super Bowl commercials. Not a fan of this luring/phishy title..
angkec 6 hours ago 0 replies      
Reminds me of the Pink Floyd MTV The Wall. Where lines of students followed each other into a meat process machine.
hcarvalhoalves 1 hour ago 1 reply      
Very dystopian and moody. I've never seen an ad so dark.
kayoone 3 hours ago 1 reply      
it might be controversial, but horrifying ?
csmithuk 3 hours ago 0 replies      
Well they got the office market share projected right!

(yes this is sarcastic).

unpointfulness 4 hours ago 0 replies      
I don't understand. In what way was that ad "horrifying"?
Who wants competition? Big cable tries outlawing municipal broadband in Kansas arstechnica.com
139 points by jseliger  20 hours ago   67 comments top 15
minimax 16 hours ago 9 replies      
The title is sort of misleading. A municipality offering broadband service isn't really an economic actor since it can use tax receipts to subsidize the service. Offering a choice between service provided by local government and a private business isn't really the kind of competition most people have in mind when they think of healthy markets. The laws should incentivize competition between multiple telcos not between telcos and government.

Also, generally speaking, running big telco networks is hard, capital intensive, and requires a lot of expertise that municipalities don't really have. I've never used a municipal internet service that was any good.

jbuzbee 17 hours ago 2 replies      
I recall reading an article a while back about a neighborhood that had a fiber network that was put in when the community was built as a selling point. Every single house had fiber in place for TV, Phone and Internet. Sounds great! Right? In theory yeah, but not so much in practice. Every house had a network fee added as part of their homeowner's due. This fee went to an external company that ran the network. This company didn't have much or any incentive to properly manage, update or keep the network running. They had a captive audience. Everybody pays every month whether they use the network or not. Network down? They'll get to it in a bit after they take care of their competitive neighborhoods. And though fiber sounded great, the speeds they were getting weren't much different than other areas near-by on cable modems. So want to forget it and go with Comcast? Sorry, they don't serve the neighborhood as they can't be competitive when everybody in the neighborhood is already paying for the fiber network. I recall the neighborhood association had gone through a couple of different management companies, with pretty much the same result. In short - beware of turning over your network to someone without an incentive to make you happy. Of course, in many areas (like mine) there is no real competition for high-speed Internet. It's Comcast or nothing...
SourPatch 12 hours ago 0 replies      
Maybe this is a stupid question, but why is it so bad to let people provide for themselves? Kansans should be prevented from running their own ISP? Why? Doesn't that idea seem contrary to self-governance? It's really depressing that people cannot legally say "screw you" to big telco/big cable and do their own thing. Somebody enlighten me, please.
rayiner 17 hours ago 3 replies      
Ars' coverage isn't very good on this issue. There is a tremendous amount of context Ars ignores, namely all the franchise agreements between municipalities and cable companies whether these sorts of proposals run afoul of those agreements. Also, consider the Kansas City example, where the city gave a single favored company massive regulatory concessions to install fiber. I know "Google can do no evil," but it isn't good precedent.

Cheering on the municipalities is boneheaded. The municipalities and their franchising agreements are a major part of the reason we're in this mess to begin with: http://www.cato.org/pubs/pas/pa034.html note the article is from 1984).

crazy1van 13 hours ago 0 replies      
The government giveth and the government taketh.

They gave many of these companies near-monopolies by blocking competition from laying cable or accessing the telephone poles.

Now the government has decided to crush the telco's industry by running their own service at prices impossible to compete with because they are tax payer subsidized.

Live by the sword. Die by the sword. Personally, I'd rather shrink the sword down to around a steak knife.

YZF 9 hours ago 0 replies      
I'm not from the US but it seems like there's nothing stopping the big telcos from partnering with those same municipalities and offering a sweeter deal than Google does, is there?

If anything, their existing infrastructure, from the age of the telegraph, gives them a huge competitive advantage over anyone coming in, with or without municipal involvement...

IMO government's role should not be the protection of some specific business, it should be about improving the lives of the citizens, partly through improving infrastructure. If big company X goes broke while this happens why should we care? So billionaire Y will make more while billionaire Z makes less?

hippiehippo 5 hours ago 1 reply      
Instead of becoming an ISP, wouldn't it make more sense for the town to wire up each house with fiber optics and then let ANY company provide services over those cables?

The ISPs will have to pay the town a flat fee per subscriber for using the municipal fiber optics network, or they could roll out (or keep) their own (existing) infrastructure. This way companies will still be able to compete, but the "last mile" will become an utility like the sewage system.

eitally 15 hours ago 0 replies      
Sounds like the story that transpired in Wilson, NC a couple of years ago with their Project Greenlight, an attempt to offer municipal fiber to the home. TWC wasn't happy and lobbied hard against it.


jonaldomo 18 hours ago 2 replies      
TIL that you can submit bills and not be a politician.
balloot 7 hours ago 0 replies      
The government is so evil and incompetent that it should never be allowed to provide broadband, because it will do so with such low rates and great service that it will put cable companies out of business!

Did I get that right?

VladRussian2 15 hours ago 0 replies      
in the movie "Aviator" there is a scene where PanAm almost successfully gets monopoly on international flights. Watching it i could feel only "WTF?". The same way we'd be feeling couple decades later about monopolies that weak [in particular to the influence of industry] governments at all levels have been granting to telcos.
mgirdley 17 hours ago 1 reply      
Texas already has these laws. Thank you, ATT.
bdb 10 hours ago 0 replies      
Wonder if an electric pole counts as a "facility."
izzydata 17 hours ago 0 replies      
Screw this. I'm only a few miles away from where Google Fiber is supposedly in construction. I just want my fiber in a couple years or less. Is that too much to ask?
moocowduckquack 16 hours ago 0 replies      
I think the argument goes something along the lines of:

Public enterprise, as we all know, is of course highly inefficient, massively expensive and badly organised. Which is why it is absolutely vital to ban it from entering industry as it would be unfair competition.

Nightwatch.js nightwatchjs.org
210 points by Lazare  1 day ago   46 comments top 19
tlrobinson 18 hours ago 0 replies      
I'm curious why they didn't build on the "wd" implementation of the WebDriver protocol for Node.js: https://github.com/admc/wd

Personally I like just using "wd" along with a promise helper library or two.

Here's an example using q-proxy (https://npmjs.org/package/q-proxy) and q-step (https://npmjs.org/package/q-step). The result is a pretty nice syntax (admittedly nicer in CoffeeScript than JavaScript) and a lot more flexibility to do other logic:

    browser = QProxy(wd.promiseRemote("localhost", 4444))    QStep(      -> browser.init(browserName: "firefox")      -> browser.get("https://www.facebook.com/")      -> browser.elementById("email").type(credentials.email)      -> browser.elementById("pass").type(credentials.password)      -> browser.elementById("u_0_b").click()    )
Or wd's own built-in promise chaining is pretty similar to Nightwatch.js as well:

  browser    .init({browserName:'chrome'})    .get("http://admc.io/wd/test-pages/guinea-pig.html")    .title()      .should.become('WD Tests')    .elementById('i am a link')    .click()    .eval("window.location.href")      .should.eventually.include('guinea-pig2')    .back()    .elementByCss('#comments').type('Bonjour!')    .getValue().should.become('Bonjour!')    .fin(function() { return browser.quit(); })    .done();

hpaavola 20 hours ago 2 replies      

    pip install robotframework-selenium2library    test.txt:    *** Settings ***    Library           Selenium2Library    *** Test Cases ***    Google The Night Watch        [Setup]    Open Browser    https://google.com        Title Should Be    Google        Input Text    q    nightwatch        Click Button    Google Search        Wait Until Page Contains    The Night Watch        [Teardown]    Close All Browsers    pybot test.txt
Still haven't found anything that beats Robotframework when it comes to test automation. It's not just for web testing, it has many ready made libraries and creating your own is really easy.

Check it out http://robotframework.org/

daleharvey 1 day ago 1 reply      
This looks nice, but there are a lot of sugar libraries over the webdriver protocol, its the smallest part of the problem of real browser testing but it has lots of solutions, the real problems have almost 0 choice.

What I really want is a selenium server 30MB, firefox speaks the webdriver protocol natively, I dont see why a proxy server to a browser needs to be 30MB (40 including chromedriver?, it pretty much needs to launch browsers and proxy requests, the project that launches the browsers should probably be its own project for that matter.

If anyone can point me to a project working on that, I would highly appreciate it :)

bryanlarsen 1 day ago 0 replies      
We're having great success doing our integration tests without using Selenium.

At http://clara.io, our app is a fairly typical client-side Backbone.js app, so our integration tests can use standard backbone, mocha and jQuery constructs. Instead of using selenium, we use contructs like on('show').

The only thing that we actually use selenium for is for starting the browser from the command line.

malandrew 20 hours ago 0 replies      
So I'm about to get into building a large scale browser-based app testing solution, but the testing I'm doing isn't one of correctness, but of performance. This is a particularly persnickety problem since I need a solution where the probing itself doesn't introduce side effects that invalidate the test results. For example, many of the solutions I've seen use iFrames to isolate the test environment, but that introduces an entirely new and significant layer of redirection, especially when your results rely on GPU-related functions like CSS transforms.

Can anyone who has done lots of browser based testing shed light on what solutions out there introduce the fewest or no side effects when probing?

mcantelon 20 hours ago 0 replies      
So similar to Soda (https://github.com/LearnBoost/soda) by the looks of it, but with Selenium server management and CI support.
sh1989 1 day ago 1 reply      
For the codebase is dark and full of terrors.
joemaller1 1 day ago 1 reply      
Looks similar to Angular's Protractor, but with more conventional (and easier to understand) syntax. Seems too easy not to try.


stirno 23 hours ago 0 replies      
Good to see enough people interested in automation providers to make the front page.

After a few years building/maintaining a similar library I've found the key is simplifying peoples lives but making sure they can still do 'everything'.

Does Nightwatch implement the entire WebDriver JsonWire protocol or just the bits needed for the provided actions?

Cool stuff

briantakita 23 hours ago 0 replies      
I've created a similar project that uses jasmine and formats the test cases into general purpose flows.

The motivation is to economically (both in test suite run time and development time) test the system's many edge cases, including race conditions.


It's only dependency is jasmine. I use it with jsdom, so I can test all > 95% client's edge cases in a reasonable amount of time and confidence of the software working. This allows me to run the entire test suite before commits on mature projects.

jlipps 20 hours ago 0 replies      
I'm surprised there's yet another JS implementation of the webdriver protocol. I wonder what was lacking in the existing frameworks from the author's perspective?

disclaimer: I work on https://github.com/admc/wd and https://github.com/jlipps/yiewd, which are other webdriver clients for Node

j_s 21 hours ago 1 reply      
Can anyone point me to a list of the various tools that automate web browsing (typically for automated testing) and the various layers of abstraction built on top of them?
ChrisAntaki 20 hours ago 0 replies      
The API looks sweet. Looking forward to trying it out this weekend.
JungleGymSam 16 hours ago 0 replies      
Is there anything like this for an RDP connection?
pkmishra 1 day ago 3 replies      
what benefit does it have in comparison to casperjs?
lun4r 18 hours ago 0 replies      
Awesome! I wonder how easy it would be to integrate http://galenframework.com with this
hesslau_ 23 hours ago 1 reply      

the line

> .waitForElementVisible("button[name=btnG]", 1000)

in the demo test caught my attention - what is a good way to achieve this in production code? i.e. execute a function when a certain element which matches the query becomes visible?

atm i'm using the DOMNodeInserted event (debounced)

> $(document).on('DOMNodeInserted', _.debounce(function(e, ui) {}, 100);

bevacqua 1 day ago 0 replies      
How is it any different from wd.js?
junto 1 day ago 1 reply      
What other names have you used then?
Heres Why Bill Gates Would Step Down as Chairman of Microsoft recode.net
15 points by pmcpinto  5 hours ago   6 comments top 4
sytelus 1 hour ago 1 reply      
TL;DR: linkbait saying Gates would step down as Chairman and more involved in to tech and design.

I don't think so. Being involved in tech/design of these products is very consuming and Gates has made clear many times he doesn't want to work in "this space".

My bet is Ballmer is going to get in board, likely going to fight for chairman position and may even get it. He had given strong indication of this in Company Meeting 2013 video that Microsoft had released.

nhebb 3 hours ago 0 replies      
That was a difficult article for me to follow. I kept getting sidetracked by the feeling that it was just speculation built on speculation, and then confirmed by speculation. Besides, even if Gates did step down, I have to wonder how much influence he's actually had over the direction of Microsoft as COTB. Despite being profitable, they don't seem like they have a clear direction.
jokoon 2 hours ago 0 replies      
at least hire somebody who understand a little bit of code.
higherpurpose 2 hours ago 1 reply      
Hiring an enterprise guy as CEO seems like an admission of defeat in the consumer market for Microsoft to me. Yes, Ballmer wasn't a "consumer" guy either, which is precisely why they've missed so many consumer waves already since he's been at the helm. I don't know if they can afford another "Ballmer" in the consumer space.

I think Nadella will do what "feels natural" to him, and will move Microsoft "up-market" from the consumer space, which will probably become increasingly less profitable for them, so moving "where the profits are" (i.e. not in the consumer market) will start to make a lot of sense to them.

America is no less socially mobile than it was a generation ago economist.com
35 points by hansy  11 hours ago   22 comments top 7
jandrewrogers 9 hours ago 4 replies      
One thing to be aware of is that the range of incomes in many countries is much more compact than the US. If you define social mobility by the ability to move from the bottom segment to the top, it requires a much smaller change in income in most industrialized countries than in the US.

For example, for the average person in Denmark to go from the bottom 10% to the top 10% of income requires earning a mere $40k more income. In the US, you would have to earn $90k more income. Consequently, it takes considerably more effort in the US to increase one's income in the US to the point where it would count as "social mobility" than in many countries even though you would be much better off in the lesser quintiles in absolute terms.

In short, there are many countries where moving from $20k to $40k is considered "socially mobile" but also others where moving from $20k to $60k income is not because the top bracket is $80k. Most people would probably prefer to live in the latter country. It may be a little harder to reach the $80k than $40k to meet the definition of "socially mobile", but in absolute terms they are far better off with $60k of income regardless of the definition of social mobility.

scarmig 9 hours ago 0 replies      
Big takeaway: the USA is about as socially mobile as it was a generation ago. But that's only because the USA has never been as socially mobile as it imagines itself: some or most European countries have exceeded it in mobility for a long period of time.
lostcolony 10 hours ago 1 reply      
"Most likely...The correlation between vast wealth accruing to a tiny elite and the ability of people to move between the rest of the rungs of the income ladder may be smallat least for now."

And there's the crux of the matter. Even if that correlation remains small, the top rung of that ladder is so far out of reach of everyone else, -and- incorporates an insanely disproportionate amount of money, power, and influence, that it will likely remain forever out of reach, while allowing for policies that markedly worsen the lives of those on lower rungs.

spikels 10 hours ago 0 replies      
djillionsmix 9 hours ago 0 replies      
"A generation ago" was gen x, which isn't the group that anyone thought was economically mobile.

If they're not going to include the boomers this is sort of a stupid waste of time.

daniel-cussen 11 hours ago 1 reply      
If you've read past your limit and want to read this article anyway, delete your cookies.
Dataset: Ten Years of NFL Plays Analyzed, Visualized, Quizzified statwing.com
61 points by glaugh  15 hours ago   31 comments top 10
burntsushi 15 hours ago 7 replies      
If you're willing to limit yourself to the last five years, you can avoid the pain of parsing those free-form text descriptions with nflgame[1] or nfldb[2]. Disclaimer: I am the author of those tools. We've been slowly building up a small community of people using it. In fact, I'm currently in a small fantasy playoff league that's running off nflgame.

They also include live updates while games are playing.

I'd be curious to see if you get any substantially different results using structured data (nflgame gets it from NFL.com's JSON feed) as opposed to parsing the text descriptions.

[1] - https://github.com/BurntSushi/nflgame

[2] - https://github.com/BurntSushi/nfldb

jib 15 hours ago 2 replies      
The 4th and 2 on the 2 argument bothers me every time someone brings it up. To me it feels like its an incorrect use of statistics. EV isn't the end all - kicking the field goal has way lower variance. If your goal is winning consistently then giving up high variance high EV plays for low variance slightly lower EV plays is often the right choice, as a football season is made up of a very low number of discrete events.

About 45% of all games finish with a spread of 7 or less according to a quick search. Making a play that has a close to 50% chance of making you be down 3 points is costing you a lot of the margin if you think you are a close favorite.

You can't win more in football but you can lose a sure win, so if you believe you are say a 3-4 point favorite then the right play is to take the field goal every time - giving up the safe points means you take half the games and make them a crap shoot.

socrates1998 9 hours ago 1 reply      
This sounds really good and NFL teams would definitely want something like this, but even coaches would wary about using mostly data.

For example, let's say you are the coach of the Patriots and you have been running the ball very successfully the past few games, even winning games because of your running game.

And it's 4th down and 2 yards to go against the Broncos.

The data says, run the ball. Especially since you have done it well in the past. However, you forgot to take into account the stud defensive tackle that has just started playing really well for the Broncos. So, you try to run the ball and you lose the game.

This is just one example of the inability of data to deal with match-ups and schemes.

As both a person who likes data and coached football, I would love the integration of the two, but football has too many variables.

If you have all this data, you are actually going to make the wrong decision because the matchup is bad for your team.

Matchups and schemes trump data.

MengYuanLong 7 hours ago 0 replies      
I am going to a group discussion tomorrow about first-refusal rights in the NFL and happened to do a brief naive analysis of extra point vs 2 point conversions earlier today. In brief, the EV of a 2 point conversion was .91 while an extra point was .99. That said, for every 19 extra point attempts there was only one two point conversion attempt. Frankly, I am all for variance so I am rooting for the more ambitious two-point attempt.
jackschultz 9 hours ago 0 replies      
Hey guys, I did this a few months ago. At least attempted to organize the data from the descriptions on Advanced NFL Stats. (https://github.com/jackschultz/nfl-data). Turns out there were tons of special cases. Just curious as to how you decided to organize the data.
vacri 11 hours ago 0 replies      
5/5. Looks like I choose the right thing to do each time... except... which run should I be calling :
gojomo 14 hours ago 0 replies      
Fun stuff!

You might want to make it clear you want the decisions most likely to succeed, not the decision most common among professional coaches (who are presumably optimizing some other form of career-stability-against-criticism).

neovive 11 hours ago 1 reply      
Do coaches have access to real-time data on the field or in the cooridnator's box? If so, if they followed the datasets exactly, would the results reverse themselves over time due to adjustments by offense or vice versa?
cubecul 15 hours ago 2 replies      
"You got 2 out of 5 answers correct. When you try this quiz with a sorry quiz-taker like you, thats the result youre going to get."

Sassy. Jesus Christ.

viveksodera 8 hours ago 0 replies      
Numberfire (www.numberfire.com) may have this data, if not more, for their fantasy football tool.
Damn Vulnerable IOS Application damnvulnerableiosapp.com
23 points by danielrm26  8 hours ago   2 comments top
aaronbrethorst 5 hours ago 1 reply      
Nifty, andI thinklooks worthwhile. But, I'd be far more convinced if it used the word "you" more often, and better explained what's actually going on and why I might want to pay money for what's being offered.
Show HN: Why sign a NDA when you can just pinky swear instead? pinky-swear.herokuapp.com
48 points by mjhea0  13 hours ago   26 comments top 9
cfinke 11 hours ago 0 replies      

"WHEREAS I possess a bright idea that I am choosing to disclose to you, The Advisor, with the mutual understanding that you are my friend and that you will not screw me."

gourneau 10 hours ago 0 replies      
My friend and I made almost exactly the same thing in Python about 2 years ago.



bertil 11 hours ago 1 reply      
It is funny, but I doubt is resolves the main issue with NDAs: they tend to be enforced by people who put too much value on ideas, will over-associate future successes to the extended memories of their ideas, and who underestimate how unoriginal they ideas actually are.

Even being an hermit in the middle of the Lapland forest, I have seen too many unrelated people suggest to me similar ideas within weeks far too many times not to see any NDA on anything not fully developed as too high a liability to sign.

optimiz3 3 hours ago 1 reply      
Turned down an "opportunity" to interview at Amazon once because of their particularly onerous NDAs.

I worked for a competing company, and Amazon's recruiter couldn't get it through her head that if I signed their NDA, my current employer would be exposed to potentially false but hard to disprove claims that Amazon's trade secrets had been leaked.

They kept trying to get me to sign, so I told them that as a professional my obligation was still to my current employer, and respectfully declined to continue.

If you have super secret stuff, don't tell it to people.

bulatb 11 hours ago 3 replies      
Grammar nits: "A NDA" should say "an NDA." The ellipsis should be three dots, and there shouldn't be a space before it.
judk 9 hours ago 0 replies      
I don't get it. It is just a form where you can write your own NDA.
ntumlin 11 hours ago 2 replies      
How enforceable is this? I like the idea and I remember reading something (possibly written by pg) about binding text messages, but if I wanted to actually use this how would I convince someone intent on me signing an NDA.

I hope I'm not over-analyzing something potentially made in jest, but I'm fascinated on what it takes to make your word legally binding.

ramigb 6 hours ago 1 reply      
So the point of this is ... "Ideas are not important"?
ycmike 12 hours ago 0 replies      
I got a kick out of this. Great project.
Boeing #12 flightaware.com
328 points by beef3333  1 day ago   107 comments top 24
nostromo 1 day ago 1 reply      
Yes, this was a real flight.

Here are some progress pics from earlier today:



More info for the curious: http://www.geekwire.com/2014/boeings-new-seahawks-themed-747...

ars 1 day ago 7 replies      
How do they manage to make the lines so straight? Isn't the earth round? Do they know the exact projection flightaware uses and can match it?

Isn't it hard to constantly fly a slightly curved route?

davidw 1 day ago 1 reply      
Always happy to see these guys in the news. The site is powered by Apache Rivet, which I helped work on. It never saw wide adoption, so the one big user always makes me pleased that it did take off somewhere.
optimiz3 1 day ago 1 reply      
Not normally a sports fan, but living in Seattle while the Seahawks go to the Superbowl is tons of fun just because of all small ways the various techie industries are coming together.

E.g. seismic monitoring of CenturyLink Stadium (which is engineered to be one of the loudest), Boeing putting on this stunt, office buildings with "12" spelled out over multiple floors, 12-cent Starbucks.

Seattle is just a fun city to live in.

terpua 1 day ago 0 replies      
This is dedicated to the Seahawks' 12th man :)


kilroy123 1 day ago 4 replies      
A non-sports-fan-geek, I have no idea what the #12 means.
amaks 1 day ago 1 reply      
What an awesome gesture. Go Seahawks!
mynameishere 9 hours ago 0 replies      
So anyway, if there's anyone else here who doesn't give the slightest fuck about football, and was wondering what this references:


...yep, total rubbish. But at least the Climate Change (LLC, TM, Patents Pending) we've been hearing about gets a boost from it. One plus is that it gives all of us non-interested people an interest: Whoever is playing against Seattle (Denver, I think) really needs to win this one.

alecsmart1 1 day ago 2 replies      
Never thought companies would do such things. Expedia did something as well-


joshmlewis 7 hours ago 0 replies      
For everyone who's trying to say this was a waste of fuel please think about the purpose of test flights. In this instance they were testing a new freighter variant. How else do you expect to test and tune new aircraft/parts? Besides it's Boeings money to waste even if it was.
jessaustin 11 hours ago 0 replies      
I realize it's the high desert, so few people live there, but I'm surprised all that airspace was open for such a flight. Aren't there any military installations around?
staunch 1 day ago 1 reply      
Curious what that flight would cost.
kartikkumar 1 day ago 0 replies      
Brilliant advertising for Boeing. In the true spirit of what the Super Bowl is really about.
zw123456 16 hours ago 0 replies      
It reminds me of the old Tex Johnson 737 Barrel role.http://www.youtube.com/watch?v=Ra_khhzuFlE
gtani 12 hours ago 0 replies      
I can confirm that #12 is still flying aimlessly around Snohomish County (or was, a couple hours ago)
c141charlie 11 hours ago 0 replies      
Boeing should have flown this route this over Denver, Colorado.
yawz 1 day ago 0 replies      
Go Broncos!!! :)
era86 1 day ago 0 replies      
Go Hawks!
middleclick 1 day ago 2 replies      
karrog 18 hours ago 0 replies      
Did they actually pay people to do this ?
throwaway98 1 day ago 1 reply      
what a waste of fossil fuels
catmanjan 1 day ago 0 replies      
Haha, troll pilot/navigator?
fnayr 1 day ago 3 replies      
When you have a cheating team, you having nothing else to hold onto but the 12.
       cached 1 February 2014 14:02:01 GMT