Ask HN: How do I teach intermediate Python engineering skills? - <AUTHOR> I have several reports with backgrounds in science or ops who can write python to accomplish tasks, but are bad at engineering (i.e. the type of code you would write for a large project).
I feel that much of my own engineering skills were acquired through a time consuming combination of reading lots of well crafted code and getting feedback pointing out my mistakes from more experienced engineers. Are there resources that would be more time efficient to fill some of the gap for these folks?
What do folks on HN suggest? <comment><USER2> Volume 2 here teaches Python optimization [https://foundations-of-applied- mathematics.github.io/](https://foundations-of-applied-mathematics.github.io/) or you could go through a copy of the Pragmatic Programmer with them [https://www.cs.cornell.edu/courses/cs3110/2020sp/reflections...](https://www.cs.cornell.edu/courses/cs3110/2020sp/reflections.html)

All the "engineer"-ry things like constructing testing oracles or understanding code complexity this can all be found in _Programming and Programming Languages_ [https://papl.cs.brown.edu/2020/](https://papl.cs.brown.edu/2020/) that uses Pyret which has similar enough syntax to Python none of your bad engineers will be lost. There are lectures for it too: [https://learnaifromscratch.github.io/software.html#org4eef4d...](https://learnaifromscratch.github.io/software.html#org4eef4d9) you could teach this class to them the lectures really teach you concepts like trees and graphs and how to reason about them.

<comment><USER3> That Foundations of Applied Mathematics series is such a gem! I skimmed it a bit and it covers a huge breadth of topics ranging from from numerical methods to traditional algorithms. All the while being practical about how you would actually apply it in the real world (for example it has code samples for using the networkx library instead of writing your own graph algorithms, and many more code snippets for using numpy/sympy/cvxpy/etc).

Thanks for linking it!

</comment></comment><comment><USER4> Maybe these:

Practical Object Oriented Design (Metz)

Refactoring (Feathers)

Test driven development with Python (Percival)

Missing Semester: [https://missing.csail.mit.edu/](https://missing.csail.mit.edu/)

</comment><comment><USER5> If you're comfortable broadening the scope to _non-language-specific_ engineering skills, check out my Semicolon&Sons screencasts.

The drive behind this project is to demonstrate non-beginner issues facing professional developers. Instead of ephemeral syntax tricks or "how to use library x v5.3", the focus is on skills affecting codebases over decade-long timelines, such as:

\- gaining confidence in code with (non-brittle) integration tests

\- deep understanding of what the OS offers (and fluency in the command line)

\- building excellent monitoring and instrumentation for rapidly diagnosing production issues

\- vetting dependencies so they don't bite you in the ass

\- architecting code for re-use and intuitive navigation for freshly onboarded team members

\- the paramount importance of data integrity (and how to enforce it at the DB level)

etc.

[https://www.semicolonandsons.com/](https://www.semicolonandsons.com/)

</comment><comment><USER6> Introduce them to Rich IDEs and help them set it up with a consistent configuration so they can help each other. Put git hooks in to control for silly errors. Create a style guide that scales with the importance of the project. for understanding the language more deeply, "python cookbook" by David Beasley. ask them to make everything pip installable. introduce code walk throughs to your workflow, with the intention of group peer-review.

When you see an interesting block of code that you see could be refracted, hold a session showing your refactoring of that code. You'll have to do it twice, once to figure it out, second to present. It's very time-consuming but it's the best way for people to learn

</comment><comment><USER7> Hire a Python dev / eng to work with them. Pairing eng with domain is always a good choice

<comment><USER8> I've never done pairing, but this seems like a good suggestion. I've also been looking for an excuse to try [https://tuple.app](https://tuple.app)

<comment><USER7> I'm not saying pair programming, though that is an interesting addition. Just having them collaborate on the code, knowing where their roles lie. You see knowledge transfer happen, which will benefit both sides, because you also want to expose engineers to the theoretical. They'll come back with wild ideas that the domain people refine. It's really quiet beautiful to watch happen, they each make each other better together.

</comment></comment></comment><comment><USER9> I'd suggest letting them dive into your code, and make minor changes. That will increase the chances of them structuring their software the way you do, which makes teaching easier. If they get stuck somewhere, getting help is much easier for them.

</comment><comment><USER10> Just hire better programmers and keep the scientists focused on science. It's just much more efficient. Its like wasting time getting your pitcher to improve his batting skills. Don't mix roles up.

</comment><comment><USER11> The Wikipedia article on Working Memory followed by at least the first four chapters of A Philosophy of Software Design. This is really good for providing an underlying "why" for any other technique.

</comment><comment><USER12> I would start with these:

1\. Commit hooks that lint code (pylint3, flake8, ...). Code must be clean before it is merged.

2\. Introduce testing: code must be covered by tests.

3\. Require documentation: there must exist an independent specification of what the code does, at least from an external point of view: what are the interface contracts.

Once you have code that is specified and covered by tests, only then do you have a proper environment for transforming badly structured code that works into better structured code that _still_ works.

Other than that, organization of programs is a big topic that requires study of theory. For instance, you could probably rediscover the idea that code should be organized into modules such that the content in a module belongs together, and isn't tightly bound to content in another module. You might not have a name for this but an intuitive feeling for it, which is very good. But if you study software engineering, you will learn about cohesion and coupling directly, so you don't have to reinvent or rediscover the wheel. The cumulative effects of learning material directly add up; you can shave years and years from the time it takes to become competent.

I think that the decline in the "Wirthian" languages like Modula 2 has been detrimental. The biggest initial boost that I got in the understanding of structured, modular programming was from programming in Turbo Pascal and Modula 2 in the late 1980's.

In Modula 2, you structure the program in modules which have a clear interface and implementation, declared in separate files. Modules declare their dependencies on other modules. From this, the compiler knows all the dependencies. There is no need for any Makefile or dependency generation; you tell the compiler to build the program, pointing it at the main module and that's it.

Each module has a block of global initialization statements. The compiler/linker, knowing the dependency among the modules, ensure that these statements are executed in module dependency order: if A depends on B, B's global initialization runs first, then A.

When I started coding in C, I realized immediately that this is missing: there is just a _main_ function and after that you're on your own. Moreover, unless you declare your dependencies to the Makefile or IDE system or whatever you're using, or get it to figure them out externally, you will not get correct incremental builds.

So I simulated modules by carefully structuring header files, and giving each module a global initialization function, and then call these in some disciplined way, like from one big init function.

I later saw (thanks in a large part to open source) that other people's big C programs did things like this. I felt that programmers who had exposure to a language supporting modularity had an edge in understanding the issues and motivation for good organization patterns in C programs compared to those who were just getting randomly burned and improving their approach by trial and error.

</comment><comment><USER13> Case studies from interesting and / or hyped domains maybe?</comment>


Apple is hiring engineers to bring WebRTC to Safari - <AUTHOR> https://jobs.apple.com/search?job=43451266#&openJobId=43451266 <comment><USER2> From what I've been told, they are looking to hire 1 engineer. I guess that is better than nothing, but it doesn't look like webrtc is going to be any sort of priority for them. Also, it may not be super valuable in Safari, which has a small market-share. Where it is needed is mobile safari. From what I understand having it in Safari does not mean it gets built into mobile Safari.

Also, note the date of the posting. 4 months ago and still there...

<comment><USER3> iOS Safari has a large marketshare. WebRTC is more than video conferencing. It's also peer to peer networking which is a huge win for certain kinds of apps

<comment><USER4> I would be surprised to see any web standard that makes iOS Safari better for "appy web apps" (web apps that are more like native apps rather than documents and forms) implemented, as that eventually just makes Safari an alternative AppStore without reviews.

Of course I would love it because as a developer this is the dream but I am very skeptical that Apple will do it.

<comment><USER5> > _I would be surprised to see any web standard that makes iOS Safari better > for "appy web apps" (web apps that are more like native apps rather than > documents and forms) implemented, as that eventually just makes Safari an > alternative AppStore without reviews._

This conspiracy thinking has been played again and again.

Few users cares for logging into some website from mobile Safari just to get a subpar experience over a native app (or a hybrid app), and that's not because Safari presents any kind of worse web experience than the desktop.

In fact Safari has often been the best mobile browser, but it still doesn't compete with the AppStore that much, as the most important things -- more than half a billion of credit cards on store, easy monetization, in-app purchases and full access to native APIs are missing from the web-app story.

<comment><USER4> > In fact Safari has often been the best mobile browser

There are no other browsers on iOS. When you are using Chrome it is using UIWebView (in other words, it is _forced_ to be a crippled Safari due to anti- competitive policy). Although recent Chrome will be using WKWebView which means at least it's same as Safari. The UI around the browser is not the browser.

> Few users cares for logging into some website from mobile Safari just to get > a subpar experience over a native app (or a hybrid app),

Few users could tell any difference between native app and web app running in a browser that has modern appy capabilities, provided there is same quality of implementation. The only thing that can make the experience subpar is precisely the lack of capabilities.

<comment><USER5> > _In fact Safari has often been the best mobile browser_

I know. I meant across platforms. It's obviously the best on in iOS.

> _Few users could tell any difference between native app and web app running > in a browser that has modern appy capabilities, provided there is same > quality of implementation. The only thing that can make the experience > subpar is precisely the lack of capabilities._

For one, a web app adds the extra burden of a JS VM and DOM over native code. This rules out all kinds of graphic and CPU intensive apps. Actually, for any app that's not just a glorified content screen / database view, there's not even a comparison between a web and a native implementation.

Even for basically text-based content consumptions apps, like Flipboard, they had to jump through all kinds of hoops to get smooth 60 fps scrolling within a web view.

And of course there's the battery life, that's a real killer with web apps.

A future based on web apps for mobile is a regression over even 2005's state of the art in the desktop. And it's an experience similar to cross-platform apps -- that is, a "lowest common denominator" across mobile platforms.

</comment></comment></comment></comment></comment></comment><comment><USER6> I'm currently integrating the WebRTC interface into a browser-like project by directly calling into their C++ code (when Java is the preferred interface). Most of the process so far has been trial-and-error (especially with hooking up their JNI calls back to Android from C++ land in order to access Android audio device info and state that can't be reached from C++). The code base is quite large and so gaining familiarity with it has been challenging.

I can see how a single engineer's time is necessary for this project, as I've already sunk over a week of work into my own integration, and I've only gotten the peering to work so far (audio is just about there).

Supposedly many years ago, there used to be an example inside the code base of what I am currently trying to pull off, but nevermore.

It is quite challenging to just integrate WebRTC -- one does not simply integrate WebRTC.

<comment><USER7> > especially with hooking up their JNI calls back to Android from C++ land in > order to access Android audio device info and state that can't be reached > from C++

Good luck with that part.

<rant mode="on">

I have been using C++ for hobby coding between Android and WP, and the "friendliness" of the NDK has made be look for solutions that can target Java and .NET instead.

Some of those APIs that one needs JNI wrappers, are actually written in C++, just not exposed to the NDK.

</rant>

<comment><USER6> Currently working through that now, the issue du jour is that the class loader apparently does not find classes in the APK unless it is called from JNI_OnLoad from the application thread so I am going to have to cache references to the three or so WebRTC Java audio classes that it needs.

[http://developer.android.com/training/articles/perf- jni.html...](http://developer.android.com/training/articles/perf- jni.html#faq_FindClass)

Because I'm sure everybody on here cares haha.

</comment></comment></comment><comment><USER8> At last. Where have they been all this time, under a rock? Does it mean they'll start supporting Opus as well?

<comment><USER9> Apple need to move Safari to the App Store. A Browser only being updated with the OS in 2016 is ridiculous.

<comment><USER10> When you get 80%+ of your OS updated within 6 months this isn't so much of a problem.

<comment><USER11> It's interesting to note the unprecedented success Apple has achieved at keeping millions of its users at the very leading edge of Apple OS technologies along with its "difficulties" keeping up with new Web technologies.

And it's amazing how rapidly they are able to invent a whole new programming language, compiler, toolchain, overhaul the OS APIs, add new OS features, and innovate Apple-only "native" technologies on Macs, iPhones, iPads, and even watches, while porting some features from open-source browsers into Safari is so darned "challenging". (I'll bet Apple could get some help from organizations with more resources like, say, Mozilla or Opera, if they just asked.)

I might suspect that they were intentionally impeding the progress of the Web, sabotaging all of us while putting on a great show, if it weren't for the fact that they allow other browsers, such as Chrome, on the iPhone. No, if they wanted to slow the progress of the Web platform, they would slow the development of their own browser as much as they dared and simultaneously cut off all detours around it except the one that goes through their own native apps.

But no, they aren't doing anything like that, because there's Chrome right there in the App Store. As long as it's not some sort of trick, some sort of imposter, there's no reason for suspicion....

<comment><USER6> I don't think you realize this, but Chrome on the App Store is actually just a shell with the Chrome UI around the embedded Safari browser, rather than the actual Chrome browser, due to Apple restrictions.

Stated more plainly: [http://www.howtogeek.com/184283/why-third-party- browsers-wil...](http://www.howtogeek.com/184283/why-third-party-browsers- will-always-be-inferior-to-safari-on-iphone-and-ipad/)

I must say this fact makes reading your last sentence quite humorous.

<comment><USER11> Thank you. ;-)

</comment></comment></comment></comment></comment></comment><comment><USER12> Is there documentation on how the WebRTC protocol works (RFC style)? All I've come across is interface docs. What is actually moving on the wire?

<comment><USER13> Yep: [http://tools.ietf.org/wg/rtcweb/](http://tools.ietf.org/wg/rtcweb/)

edit: also [https://github.com/rtcweb-wg/](https://github.com/rtcweb-wg/)

</comment></comment><comment><USER14> Can't they just use the code from Chromium?

<comment><USER15> Sure but somebody needs to port it and maintain it.

</comment></comment><comment><USER16> It says the job was already posted on 19 october 2015 ?

<comment><AUTHOR> Yes, but nobody really picked it up then (apart from one person who tweeted about it back in October).

</comment></comment><comment><AUTHOR> There also seems to be good progress in the implementation of WebRTC in WebKit:

[https://bugs.webkit.org/show_bug.cgi?id=143211](https://bugs.webkit.org/show_bug.cgi?id=143211)

</comment><comment><USER17> How about the security issue with WebRTC where the browser leaks the IP address? It's part of the way WebRTC works so I can't see how that can be fixed. It's both a security issue and a key enabling feature.

Update:

It looks like Google Chrome (desktop) team has published a plugin that alleviates the problem but can cause performance degradations with apps that use WebRTC. They seem to suggest that a decent fix won't be possible until UDP proxies are in wide use and Chrome adds support for that.

<comment><USER18> I don't have a full understanding of WebRTC, but AFAIK its a browser-to- browser connection library. How would that work _without_ leaking the ip address? The browser at least has to know who to connect to?

<comment><USER19> I don't really know anything about this topic, but the parent comment leads me to believe that you would use a UDP proxy to hide your address. Instead of sending out your address, you'd send out the proxy's address. When the proxy receives data, it would pass it to you. That way the other party doesn't know your address; they only know the proxy address. This is just a guess based on how I assume proxies would work, so I may be wrong.

<comment><USER20> Who is going to pay for the proxy's bandwidth? Apple, Google, Mozilla? Good luck.

The site owner? Well, the site owner now has your IP!

<comment><USER21> People are typically okay with site owners having their IP, because site owners tend to not be malicious. You _could_ only connect with people that you completely trust, but with many applications the users might be complete strangers or merely internet acquaintances. Given the power, there would be malicious users taking advantage of it. This was a big deal with Skype because people weren't aware that adding a contact could reveal their IP to that person, and/or were not aware that revealing their IP could lead to DDOS attacks or other forms of abuse/stalking.

<comment><USER22> If you want this behavior, you have to use WebSockets.

WebRTC is peer-2-peer.

</comment></comment></comment></comment></comment></comment><comment><USER23> The WebRTC spec (as it currently stands) exposes your local IP address. So I hope Apple thinks about the privacy implications of that.

(Right now Tor Browser keeps it click to activate, IIRC)

<comment><USER24> Why is this a thing? Your local ip address can be easily guessed. Also, secrecy is not security. I think 'exposing addresses' is a red herring, in such a small address space.

<comment><USER25> You mean most people leave their routers at default, and have an IP of 192.168.(0|1).1xx? Shocking... shocking I say.

I have to agree... the local IP address really shouldn't be considered a secret, it's also needed for LAN negotiation attempts between localized peers.

<comment><USER24> I think that's exactly why WebRTC "exposes" it. For p2p negotiation.

</comment></comment></comment></comment><comment><USER26> Posted (again) on RTC.news: [http://www.rtc.news/posts/os4JyZWT6iLR2jMua/job- apple-is-sti...](http://www.rtc.news/posts/os4JyZWT6iLR2jMua/job-apple-is- still-hiring-engineers-to-bring-webrtc-to)

</comment><comment><USER27> webrtc is horrible to build and integrate with a native project, even without the quirks of ios or os x to deal with. i feel sorry for whoever gets the job.

<comment><AUTHOR> I had a look at the code a while ago, with the idea of using the AEC functions. However I quickly realised that it would be practically impossible to do that, and it would probably be a lot easier just writing it myself (even though that would be a hell of a job).

</comment></comment><comment><USER28> Waiting for INTL also.Do it work now in latest version safari? [https://developer.mozilla.org/en/docs/Web/JavaScript/Referen...](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Intl).

<comment><USER29> > Do it work now in latest version safari?

The page you've linked says no...

</comment></comment><comment><USER30> I've only ever associated WebRTC with its ability to expose the real IP address when surfing with a VPN. I am unsure if this bug is unique to Firefox, and I hope the bug doesn't show up in Safari.

<comment><USER31> it's not a bug in the direct meaning, but a bug in the specifications.

<comment><USER32> That behavior has been changed in Chrome quite significantly.

[https://groups.google.com/forum/#!topic/discuss- webrtc/_5hL0...](https://groups.google.com/forum/#!topic/discuss- webrtc/_5hL0HeBeEA/discussion)

</comment></comment></comment><comment><USER33> Sorry to sound harsh, but why is this news?

Chrome has had this forever.

</comment><comment><USER34> Maybe in five or six years we'll get serviceworker too.

<comment><USER35> I hope not.

Service workers seems like an incredibly dangerous feature to have in a web browser. If developers need geofencing notifications or assets caching for example then implement a tightly focused API. But to allow any developer (including rogue ones) to slow the browser and computer down will be a nightmare for inexperienced and experienced users alike.

</comment></comment><comment><USER36> Apple should just ship with chrome.

ggwp

<comment><USER37> It would kill their battery life numbers

</comment></comment><comment><USER38> My brother launched a website about a month ago built around WebRTC. The idea is to facilitate meaningful one-on-one videochats between people who share similar interests in life or at the moment.

[https://www.chatben.co/](https://www.chatben.co/)</comment>


How Chinese tech giants like Alibaba are bringing AI to neighborhood stores - <AUTHOR> https://www.axios.com/china-alibaba-tencent-jd-com-artificial-intelligence-corner-store-df90517e-befb-40ca-82d5-f37caa738d54.html <comment><USER2> USA doesn't have a lot of mom and pop shops though. And the chains are trying to find a solution that works for them from what I see. Might just be a difference in market.

That said, it seems like China will out pace USA in application. There are pros and cons to it but difference in how things are regulated will make different countries look different on AI maps.</comment>


Prosecutors defend Gizmodo search in iPhone probe - <AUTHOR> http://news.cnet.com/8301-13579_3-20003615-37.html

<comment><USER2> This is BS.

If theft is the issue and they'd already identified the person who sold the phone they had no reason to search Gizmodo's stuff. Gizmodo very publicly admitted to paying for the phone so if they consider that theft they didn't need to search Gizmodo's stuff because they had a confession.

But this quote drives me CRAZY...

"Initially it's just a theft investigation," Wagstaffe said. "But ultimately could it lead to more? That's going to depend on what they learn. That's why they would like to be able to look at the computer and interview everybody that they can so they can determine the extent of what's involved."

So if you think someone might be guilty of a generic crime that you can't even specify it's ok to seize their stuff? If that's the case can't they just say "That guy looks like a criminal" and then go and search his house for proof that he is? Total BS</comment>


The Scientific Flight of the Falcon - <AUTHOR> http://www.nrel.gov/news/features/feature_detail.cfm/feature_id=16495

<comment><USER2> There has been a huge amount of grousing among falconers and wildlife biologists about wind farms being allowed a certain number of raptors to be killed by turbines without penalty. This is an excellent step in the right direction.

If each individual turbine could detect and shut down when a raptor comes into its vicinity that would save birds and minimize downtime.

<comment><USER3> Your comment reads like an xkcd comic.

<comment><USER2> I'll take that as a compliment.</comment></comment></comment>


Solar power cost down 25% in five months - <AUTHOR> https://electrek.co/2016/09/26/solar-power-cost-down-25-in-five-months-theres-no-reason-why-the-cost-of-solar-will-ever-increase-again/?href= <comment><USER2> This article is from 4 months ago, wonder what the change is since then.</comment>


IdeaTin Podcast Episode 1 - HN-Related Podcast - <AUTHOR> http://ideatin.com/

<comment><USER2> First, good job getting it released and the video issue wasn't really a big deal. I think instead of 45+ minutes though it needs to be like 10 minutes max and be a real fast overview of the past week. As is, I don't really see any value added, as it is basically just like another comment on the article that I can't up/down vote.

Also, one thing I would recommend doing is linking to all the stories so that someone can quickly get access to them.

<comment><AUTHOR> So @ 10 minutes, do you think I should still do co-hosts?

Also...I did link to the stories, on the actual page with the podcast: <http://ideatin.com/2010/05/ideatin-podcast-episode-1/> :)

<comment><USER2> Ah, I never went to that page.

Rather than a co-host, how about more of an interview with HN folks? Find out about their work/projects/ideas. Maybe mix it up some and do different things until you find what people like. If the content is good and worth the time, then it doesn't really matter who is presenting it to me.

<comment><AUTHOR> Hrmm....that's interesting.

Maybe I can have two streams...the news version (with perhaps just me alone) and the interview version discussing what they are working on.

Sounds good.

Would you be interested?

<comment><USER3> I am!

</comment></comment></comment></comment></comment><comment><USER4> Not bad... it's a bit lengthy though.

I'd suggest to cut it to 10 - 15 minutes, and also to distill the core of the discussions on HN instead of chatting about your own opinions. Also cut out the first 70 seconds where you apologize and rather explain what you are going to talk about.

And you might consider to record the audio of both persons on separate tracks and to balance them properly. In this video one speaker is twice as loud as the other.

Good luck and enjoy working on your next ones!

<comment><AUTHOR> Thanks metachris.

I am using pretty trivial software at the moment. Don't think I can separate the tracks like that just yet. Maybe in the future, I will be able to do something like that.

If I cut it to 10 - 15 mins, and distill the core of the discussions, do I need a co-host then?

The idea behind the co-host was to get different perspectives. If we are just distilling it down to the discussion threads on HN alone, then I am struggling to see the point of a co-host there.

Thoughts?

<comment><USER3> I don't see a need for a co-host. I used to produce a half-hour weekly program in a similar interview format. Changing hosts mid-stream would have seemed artificial and disturbing.

<comment><AUTHOR> Fair enough one010101...I am attempting a slightly different format - as you now know :)

So we will see how that turns out.

</comment></comment></comment></comment><comment><AUTHOR> After much work, and haggling with video compression tools and the like...I finally got it up.

Look forward to all the feedback that you guys can give me to make the entire show better.

Also looking for co-hosts for the upcoming weeks (especially this week coming up). You can either email me directly: marc {at} ideatin, or use the contact form on the site.

Thanks.

</comment><comment><USER5> I just wanted to say that both of you guys have wonderful window treatments.

Seriously though, Great Job.

</comment><comment><USER6> Nice job on launching this!</comment>


Ask HN: What is the best way for validating files? - <AUTHOR> Users can upload files into my backend system. Other users can view those files in the client.<p>For example I only allow PDF files. What is the best way to validate that the file uploaded is indeed a PDF file. And not a otherfileformat.pdf? So the files uploaded will be rendered correctly. This is to prevent human errors. <comment><USER2> You'd have to define "best":

* how much do you care about performance?

* how much do you care about safety?

The simplest and fastest would be to check for the "PDF" signature at the start of the file. Refer to the open PDF spec to ensure you are allowing anything that's acceptable (eg. do you care about FDF files?).

If you need to protect against malicious attempts, rather than user errors, it gets much harder quickly (and theoretically impossible, since you can construct files which will be both valid PDFs and something else).

To give another example, if you are aiming to protect yourself from being used as a media-sharing service, PDF allows embedding media as well, so allowing PDFs will not stop that — they are container formats as much as anything else.

The safest would be to reprocess and re-render only the subset you allow: but that's most expensive in terms of implementation and CPU time, and also somewhat limiting — you can't keep digital signatures, for instance.

<comment><AUTHOR> Thanks for your answer.

It is to protect against user errors. Your suggestion to check for a signature sounds what I'm looking for.

<comment><USER2> Sorry, I missed this earlier. PDF spec turned into an ISO standard with 1.7, and became unavailable without paying since 2.0, but 1.7 at Adobe's site is pretty clear about the signatures (nice, simple section on headers :).

(My phone decided not to let me paste the URL, but it's a quick search away — do not be afraid of the spec, it's quite simple, esp the parts you care about)</comment></comment></comment>


Why I still don't use Yarn - <AUTHOR> https://intoli.com/blog/node-package-manager-benchmarks/ <comment><USER2> Disk space and memory are two things most developers don't worry about anymore.</comment>


Snapchat CEO: Ads Are Coming Soon - <AUTHOR> http://www.businessinsider.com/snapchat-ads-2014-10

<comment><USER2> This was expected. Snapchat continues to grow and at a certain point like any fast growing vertical the need for making revenue must happen. It will be interesting to see if they take a model similar to instagram or Facebook when they begin to add in advertising features.</comment>


Venture Capital's Massive, Terrible Idea For The Future Of College - <AUTHOR> http://www.theawl.com/2013/01/venture-capitals-massive-terrible-idea-for-the-future-of-college

<comment><USER2> A very long and interesting article. The drift of it is that online courses are cheap but they dont deliver the value of the class room experience, esp. in higher education. There was some discussion on whether college is expensive because there are so many non-teaching administrators. I guess universities could use less of the corporate model and more of the startup.

I suppose that I would counter with, is a mediocre classroom experience any better than a mediocre online experience? Judging from my girlfriend's experience taking a graphics design course at the local community college, I would say that the classroom experience is better because there are humans to interact with. (She is a former college level math teacher, so she aint dumb.)</comment>


Three charts are all I need - <AUTHOR> http://37signals.com/svn/posts/3388-three-charts-is-all-i-need <comment><USER2> I think I see a Pareto law of data visualisation: most of the data visualisation needs of a _field_ can be satisfied by a small number (hypothesis: N = 3) of visualisations.

Lines for time series, histograms for frequencies, and panels for everything else is a good heuristic for _web analytics_. E.g. in quantitative finance a scatter plot is my go-to visualisation.

</comment><comment><USER3> Paying this forward: <http://www.flickr.com/photos/amit-agarwal/3196386402/>

<comment><USER4> For what it's worth, I disagree with that chart. It breaks conventions, makes assumptions, and has an eclectic selection, so use it only for suggestions.

</comment></comment><comment><USER5> Food for thought, here is a visualization I've made in an app for tracking team mood: <http://i.imgur.com/PUUYGKI.png>

It's pretty easy to spot what days were good, bad, and in between. You can start to see patterns (Every other Tuesday seems to be better, why is that? Oh, that's when we had donuts!).

If you were to apply the Three Chart rule, this would be a line chart since it shows change over time. I find the calendar visualization much easier to interpret than a line chart in this case.

<comment><USER6> No, I think this would fall under the Table category, as it, and most table charts, exhibit the quality of "small multiples"

</comment></comment><comment><USER7> Those three may be fine (and indeed all you really need for representing most data) in some fields. In other fields though, they're entirely unsuitable.

A lot of people have mentioned scatter plots.

I'd quite like to know how you'd represent relationships between things using only a histogram or line chart.

I realise that it's covered somewhat by the "95% of all cases" statistic, but really, as with most things, if all you're doing is visualising relationships, then that statistic is likely way off.

The general point is a good one - use a visualisation that's appropriate for representing your data not one that's appropriate only for looking nice, but I think the message is lost somewhere in amongst the rhetoric.

</comment><comment><USER8> Assuming that you're comfortable with 2d histograms (hexagonal binning is the standard) I completely agree. Otherwise _scatterplots_ are pretty crucial.

<comment><USER9> Unless you are comfortable with tweaking opacity, jitter and point size until you get a graph that is representative, don't use scatterplots. A 2d histogram with a decent color scheme is far more reliable and easy.

For dense data, scatterplots can obscure more than they show:

[http://www.chrisstucchio.com/blog/2012/dont_use_scatterplots...](http://www.chrisstucchio.com/blog/2012/dont_use_scatterplots.html)

Even an author who was well aware of the problem made the same mistake:

[http://garyrubinstein.teachforus.org/2013/01/09/the-50-milli...](http://garyrubinstein.teachforus.org/2013/01/09/the-50-million- dollar-lie/)

<comment><USER10> Using a 2D histogram when there isn't overplotting is just throwing away good data. Why do it unless you need to?

<comment><USER9> Overplotting is common, and "you" (generic internet guy who posted a graph on his blog, not you personally) probably don't even know how to spot it.

Secondly, the data you throw away is usually just sampling noise. Most of the time the interesting object is the underlying probability distribution - individual points are only useful to infer that.

In the cases where individual data points are actually of interest (e.g. <http://cl.ly/GvnM> ), go ahead and use them. But they are terrible default choice.

<comment><USER10> Scatterplots are only a "terrible" choice when the underlying data set is concentrated; in all other cases they are superior. Do you not realize that using a 2D histogram on a sparse data set is every bit as foolish as using a scatterplot on a concentrated one?

Whether scatterplots make a "terrible default choice," then, depends on what you believe about the distribution of data sets out there. Based on your advice, you must believe that most people have data sets that are dense.

For a _lot_ of people, however, that's not true. For them, "plot density, not points" is the terrible default choice. But you're telling them to make it their default anyway.

</comment></comment></comment></comment></comment><comment><USER11> I disagree with this post: there's another use case for visualizations -- consuming data as fast as possible to take action (eg firefighting). I work on tools for engineers, and I've found that a rich, non-standard visualization that people can learn to parse quickly after a tiny bit of initial acclimatization -- but showing them exactly what they need can help a lot.

<comment><USER12> _a rich, non-standard visualization that people can learn to parse quickly ... showing them exactly what they need_

I do a lot of UI work, also mostly for technical users, so I'm interested in both effective visualisations and efficient interactions built around them.

I've found that customised and/or contextual visualisations and interactions can be very effective if, but _only_ if, they fit how the user thinks about the situation better than any of the standard alternatives.

Put another way, if you're dealing with a solved problem, using the solution that everyone already knows usually works best. But if you're dealing with something new and different, and you can't build what you need cleanly using existing tools, then creating a new kind of tool often gets better results than cobbling something together with the wrong tools for the job.

The hard part is that creating more appropriate tools generally requires understanding your users' mental model(s) of the situation and the actions they need to take, and even a seemingly small mismatch between what a user expects and what you actually give them can really hurt when the user doesn't have familiar conventions to fall back on.

In practice, I've had some success building UIs around a small number of specialised visualisations and controls (typically making up a single main screen/page) but using only mainstream presentation like tables and histograms for supporting features, but every project is different.

<comment><USER11> True -- any visualization that doesn't get the message across is just about useless.

Luckily we have very tight feedback loops -- and I can push new versions every couple of hours so I can customize it really fast to suit their needs/mental models.

</comment></comment></comment><comment><USER13> I mostly agree with the article, but disagree with the idea that unusual visualizations are harder to understand. Tuning your chart to your data often makes it easier for your audience to understand. For example, if you want to communicate the detailed difference between how well two models predict the performance of teams in the NFL, an ROC chart showing both models is usually the clearest way to present[0]. If you want to model different scenarios, a segmentation chart may be better. If you just want average conversion rates, bar charts may be more helpful.

That said, I certainly agree with using the same chart for things like weekly updates, etc. Creativity for creativity's sake is pointless-the point of using different types of charts is to communicate a complex message as simply as possible.

[0]: [http://blog.optimalbi.com/wp-content/uploads/2012/12/ROC- cha...](http://blog.optimalbi.com/wp-content/uploads/2012/12/ROC-chart1.png)

</comment><comment><USER14> Interesting thesis, I would like to see a cage match between Noah and Edward Tufte :-) I tend to favor Tufte's thesis that humans can extract more knowledge per millimeter of paper space out of a chart than they can out of text. The trick of course is constructing that visualization. Most folks are facile with words, while fewer can work as effectively with shapes.

I like the notion that if you cannot see at least four things in a chart then the chart isn't doing its job. It makes me ask the question, "What is the context in which this chart is expressing information? Can I show that?"

<comment><USER15> I think Noah is echoing the work of W.S. Cleveland and Edward Tufte—both of whom advocate for using a small number of well-understood methods (e.g. tables, histograms, line plots, scatter plots, and so on).

</comment></comment><comment><USER16> I'm a fan of histograms above nearly all else. When I need to show change over time, I actually prefer heatmaps:

[http://deliveryimages.acm.org/10.1145/1810000/1809426/gregg3...](http://deliveryimages.acm.org/10.1145/1810000/1809426/gregg3.png) <http://queue.acm.org/detail.cfm?id=1809426>

It's like a scatterplot, but a bit better at showing collapsed data (i.e., there's a lot of data at that point on the graph -- is in more or less than that other jumble of Xs?).

<comment><USER10> Histograms are great for visualizing relative density, but they have problems when items don't sort neatly into bins. They also make it hard for viewers to accurately estimate the portion of the distribution that falls within arbitrary ranges, say the percentage of smokers aged 24 thru 35. Plotting the empirical cumulative distribution function solves these problems.

For a numeric random variable _X_ , its CDF _F_ ( _x_ ) gives P( _X_ <= _x_ ). So if _X_ gives the age of smokers, the answer to our earlier question is just F(35) less F(23). Plotting _F_ over all values of _X_ , then, lets us not only "see" the shape of the distribution but also answer range questions: just lookup two points on the graph and subtract.

Some examples:

<http://docs.ggplot2.org/0.9.2.1/stat_ecdf.html>

<comment><USER4> The problem with the ECDF is that it's harder to get a feel for, being cumulative. I spent a few days once playing with N-bin histograms, and still feel those should be the default (with non-compact ends, maybe gamma distributed) over smoothed hacks.

</comment></comment></comment><comment><USER17> And completely missing, the old reliable pie chart. Used when showing attributes (percentage, counts, etc) of a whole.

And then there's the scatterplot. Very useful in regression models for best fit.

Charts and plots are tools. To limit yourself to just three is using a screwdriver for a hammer, or C# for any programming task.

Understand the available tools and use the right one for the job at hand.

<comment><USER18> > the old reliable pie chart.

? Weird. In the past 35 years working in numerical analysis of multitudes of data sources from toilet flushes in a city of a million people to stock movements to multichannel radiometrics, to cloud data from LIDAR, to cot death incidences, etc. I've _never_ once used a pie chart (or, in fact, worked with anyone that's used them).

I understand they are popular when lying with statistics and in power point displays to non technical suits, but they have pretty limited use in understanding data or presenting layered attributes.

Scatter plots are somewhat useful, when combined with a means of indicating densities, such as heatmapping; box and whisker plots that show central densities, means, medians and extents of ranges are useful.

But Pie Charts? Professionally they're the joke setting in Excel . . .

</comment></comment><comment><USER19> Slightly more advanced guide that I like -

[http://giveupinternet.com/2009/01/16/chart-of-the-charts- cha...](http://giveupinternet.com/2009/01/16/chart-of-the-charts-chart- suggestions-a-thought-starter-pic/)

They hit the most important thing about chart making right on the head: What are you trying to communicate?

</comment><comment><USER20> I really hope that the term "Infauxgraphics" gets some more traction.

</comment><comment><USER21> he forgot pie chart. I found that no matter how rational one can be about visualization, single pie chart can make world of a difference to a client.

edit: thanks for downvotes, I really appreciate how people can't recognize sarcasm. I'm very big on Tufte but it's easier to just give client damn pie chart than re-educate him on all aspects of data visualization.

<comment><USER22> Agreed. pie chart is best when the total set will not change in size such as something that totals to 100% will always total 100%.

<comment><USER3> A pie chart is best when you're trying to convey a minimal amount of information, such extremely inexact proportions–like "roughly a third" or "about half"–, within an extremely small dataset, capping at around ten items.

</comment></comment></comment><comment><USER23> boring.

<comment><USER24> What's wrong with being boring?

If I can completely understand it without giving a hint of effort, that's perfection.</comment></comment>


David Pollak's new book, Simply Lift - <AUTHOR> https://github.com/dpp/simply_lift

<comment><AUTHOR> See [http://groups.google.com/group/liftweb/browse_thread/thread/...](http://groups.google.com/group/liftweb/browse_thread/thread/7f6ddb80ccffc3e3) for more info about this upcoming title.</comment>


We(book),grandfather of 1984, banned in Soviet Union for 80 years - <AUTHOR> http://en.wikipedia.org/wiki/We_(novel)

<comment><USER2> The linked article claims it was banned for 67 years, fwiw (1921–1988).

<comment><AUTHOR> Sorry, my bad. Can't alter the title.</comment></comment>


DOS Ain't Done Til Lotus Won't Run? (2005) - <AUTHOR> http://www.proudlyserving.com/archives/2005/08/dos_aint_done_t.html <comment><USER2> The obligatory Joel post ...

"Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here's the amazing part: On beta versions of Windows 95, SimCity wasn't working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn't free memory right away. That's the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95."

[http://www.joelonsoftware.com/articles/fog0000000054.html](http://www.joelonsoftware.com/articles/fog0000000054.html)

<comment><USER3> Changing Windows to work with legacy software is easy to do when you are the unchallenged market leader. That wasn't the case when Lotus running on DOS was something Microsoft (and Lotus) would care about. In that era, Microsoft faced competition from multiple directions. I wouldn't be surprised if there was a decision to sabotage Lotus 123 on some version of DOS, specially if that sabotage could drive the move to Windows and Excel.

In all fairness, that Microsoft (they seem to have somewhat improved, as their power diminished) was known for not playing fair (something later demonstrated in court):

[http://www.theregister.co.uk/1999/11/05/how_ms_played_the_in...](http://www.theregister.co.uk/1999/11/05/how_ms_played_the_incompatibility/)

So, forgive me if I take this piece of history with a grain of salt. I started in this business at a time Microsoft made a BASIC interpreter and little more and I have observed a lot myself.

<comment><USER4> I think what MS did to take on Lotus was to outdo them by being able to read the file formats perfectly.

I seem to recall that after the MS Office file formats was documented as part of a MS-EU settlment, Joel pointed out how the Excel format carried at least two ways to do dates. One of them a replica of how Lotus 123 did it.

</comment></comment></comment><comment><USER5> I been around IT long enough to know that this statement:

"DOS ain't done till Lotus won't run"

Was never a common saying. It is actually:

"DOS ain't done till Lotus runs"

I am not sure how it devolved to the current usage. I suspect it is probably started after the Microsoft-DOJ trials.

<comment><USER6> That's wrong. I started in that era and the saying was "till Lotus _won 't_ run" even back when it was fresh.

Microsoft also put misleading error messages in Win3.1 to sabotage DRI's DR DOS product. There are email snippets of the execs planning their strategy.

It's their standard operating procedure.

They fixed around SimCity because it didn't compete with any of their offerings.

</comment></comment><comment><USER7> While this article is dated, a more appropriate reference would be the Windows/DR-DOS kerfuffle: [https://en.wikipedia.org/wiki/AARD_code](https://en.wikipedia.org/wiki/AARD_code)

<comment><USER8> This. It's damning. I was an attentive nerd when this and the Stacker scandal went down and I was outraged. I've been a staunch open source advocate ever since.

Microsoft's willingness to sabotage competitor's software is an established fact.

"The AARD code was a segment of code in a beta release of Microsoft Windows 3.1 that would determine whether Windows was running on MS-DOS or PC DOS, rather than a competing workalike such as DR-DOS, and would result in a cryptic error message in the latter case."

"The rationale for the AARD code came to light when internal memos were released during the United States v. Microsoft antitrust case in 1999. Internal memos released by Microsoft revealed that the specific focus of these tests was DR-DOS. At one point, Microsoft CEO Bill Gates sent a memo to a number of employees, reading "You never sent me a response on the question of what things an app would do that would make it run with MSDOS and not run with DR-DOS. Is there feature [sic] they have that might get in our way?"

<comment><USER9> Yea, there was a reason why I mentioned DR-DOS when I was discussing the OS/2 2.0 fiasco.

</comment></comment></comment><comment><USER10> I recall story of leaked Win2k source code which was filled with profanity and ugly hacks. Surprising fact was how much effort was put in to make software suites work with windows [1].

Although these are ugly hacks but it is a general reminder that people who will buy the software won't see why some obscure bad pointer in MS Office is causing this but something that used to work perfectly fine in previous Windows doesn't work in the current.

[1]: [http://www.kuro5hin.org/story/2004/2/15/71552/7795](http://www.kuro5hin.org/story/2004/2/15/71552/7795)

<comment><USER11> It's so strange you mentioned the Win2K source leak - I was just thinking about this yesterday. I remember at the time there was warnings about it on Slashdot along the lines of "Don't download/read the source code, else you'll be 'tainted' and won't be able to commit code to Open Source projects!"

Has it been long enough that I dare peek at it now? ;)

<comment><USER12> You're probably fine, unless you ever want to commit to ReactOS. From what I've heard, they're very serious about not letting anyone with exposure to Microsoft's code touch the project, because the clean-room implementation requirements are so strict.

<comment><USER13> I never contributed to Mono because they didn't allow it if you had MS source code access. That was probably prudent, though should be OK now I'd guess.

</comment></comment></comment></comment><comment><USER14> See also the "Halloween Memos": [http://www.groklaw.net/articlebasic.php?story=20070127202224...](http://www.groklaw.net/articlebasic.php?story=20070127202224445)

<comment><USER4> Deity i miss Gorklaw.

</comment></comment><comment><USER15> The author of that article says "I know from personal experience that today [2005] Microsoft takes application compatibility very seriously".

And if you want to install Windows on a computer that already has a Linux distribution installed (dual-boot), then Windows will replace the existing boot manager, making it really difficult to boot Linux. That thing used to happen then, and it still happens now (2015).

<comment><USER16> Yes, it's annoying, but it's not app compat. And dual-boot is pretty far outside the mainstream, I don't blame them for not building out other boot loader detection and integration. Other bootloaders change frequently, and windows install discs come out maybe every two years. It's better to have consistent behavior (windows install WILL wipe your MBR) than sometimes it works and sometimes it doesn't, and when it doesn't work everyone says it worked for me, etc.

<comment><USER17> it's so far out the mainstream, that people have been doing it regularly for 20 years now.

Grub is old enough to attend Junior High. Lilo would be in grad school. they both have windows compatability. Microsoft not reciprocating is evidence of their intent.

<comment><USER18> FreeBSD used to (maybe still does?) clobber the boot loader too. Do they also have mustachios that they evilly twirl?

<comment><USER19> On the other hand, Windows runs on 85 - 90 percent of desktop machines, whereas FreeBSD's market share on the desktop is probably below 1%. (This is not a judgement on FreeBSD's quality as a desktop system, I have used it myself for about two years and was very happy with it. But compared to Windows, its market share _on the desktop_ is tiny.)

For better or worse, there is a difference between a system used by a tiny minority of people (again: on the desktop) and a system that practically has a monopoly on the (corporate) desktop and that is developed and sold by a company that has a history of anti-competitive behavior. (And to be fair, I get the impression that things have begun to change at Microsoft since Nadella became CEO. But that still does not erase history.)

<comment><USER18> That other hand and its callbacks to anti-competitive behavior and whispers of monopolies don't have much bearing on anything unless you are prepared to substantiate exactly how this behavior impacts the market share of other competitors. (I wish you luck on that very, very long row to hoe.)

Meanwhile, even that "good behaving" Linux distro will happily remove Windows's boot record in favor of GRUB's, rendering the system reliant on a component that breaks if you want to remove Linux (and most people are way more likely to want to remove Linux than to remove Windows!). Hardly neighborly behavior in and of itself. And yet, I'm still not seeing a reason to cast aspersions on GRUB or Linux distros, nor am I seeing those twirly mustachios on _their_ faces.

No OS gives much of a damn about anything else running on the computer. Claims to the contrary are literally farcical and the pseudo-damages it could theoretically cause to the easily bruised are silly.

<comment><USER19> > No OS gives much of a damn about anything else running on the computer.

Most Linux distros (the ones I have used, at least) will detect an existing Windows installation and put a corresponding entry into GRUB's menu. Linux has been able to access data on Windows partitions for many, many years.

I agree that the boot loader issue probably has at most negligible impact on the adoption of Linux (or any other OS for that matter). I am just saying that in light of Microsoft's history one may feel inclined to judge them differently.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I remember the phrase from back in the day, but never really paid attention to it. I do remember testing new PCs with Lotus 1-2-3 and Flight Simulator to prove they were actual compatibles that were going to work with all the software.

</comment><comment><USER21> Retrospect is fun;

      When Transmeta unveiled their new CPU, it was the first
      time in a long time that a company that was not Intel
      finally admitted that if you're a CPU, and you want a
      zillion people to buy you, you gotta run x86 code. This
      after Hitachi, Motorola, IBM, MIPS, National
      Semiconductor, and who knows how many other companies
      deceived themselves into thinking that they had the
      right to invent a new instruction set.

Then along came ARM.

<comment><USER22> You mean:

> Then along came smartphones.

Wasn't ARM a relative minor player before smartphones took over?

</comment></comment><comment><USER23> Is the "Well Known Microsoft Blogger" maybe Raymond Chen ([http://blogs.msdn.com/b/oldnewthing](http://blogs.msdn.com/b/oldnewthing))? I can't seem to get to the archives on that site, so I don't know how long it's been around, but he published a compilation in 2007, so might already have been blogging in 2005.

</comment><comment><USER24> Oh man, Andrew Orlowski? I remember that IE7 story, it was absolutely a beat- up and it just confirmed for me he wasn't much of a reporter!

</comment><comment><USER25> If this were true, then it should be easy to reproduce. It's not like the software has disappeared.

Which versions of DOS broke compatibility with which versions of Lotus?

</comment><comment><USER4> Ugh, first time i have really experienced what others have complained about. the text really needs more contrast.

</comment><comment><USER26> Looking at the submitter's background I don't see any professional experience with Microsoft tech. Maybe someone can explain it to me - I don't understand why a guy has avoided Microsoft for his entire career feels the need to dredge up a 10 year old article that talks about events from over 30 years ago.

Too much pro-Microsoft news for you? Honestly - what's your interest here?

<comment><AUTHOR> _I don 't understand why a guy has avoided Microsoft for his entire career feels the need to dredge up a 10 year old article that talks about events from over 30 years ago. Too much pro-Microsoft news for you? Honestly - what's your interest here?_

A comment[1] somebody made yesterday on the "Twitter apologizes" story reminded me of this. I think it's an important story regardless of your opinion on Microsoft specifically, exactly because it highlights the risk inherent in building something on top of a platform you don't control. I wanted to highlight that that particular bit of wisdom isn't exactly something new.

 _Looking at the submitter 's background I don't see any professional experience with Microsoft tech._

FWIW, I have spent plenty of time working with Windows and DOS in my life, I just don't highlight it, because it isn't really relevant to what I do now. I also don't mention OS/2, AS/400, RPG, Visual Basic and a laundry list of other things I've worked with that now seem more or less irrelevant.

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

<comment><USER27> you should highlight some grails. :)

</comment></comment></comment><comment><USER28> No one is going to let facts get in their way of an anti-microsoft circle jerk.</comment>


The dark truth behind wildlife tourism - <AUTHOR> https://www.nationalgeographic.com/magazine/2019/06/global-wildlife-tourism-social-media-causes-animal-suffering/ <comment><USER2> The story about dolphins makes me wonder why domestic horses are viewed as normal. When I compare them to dolphins the same boxes pops up. Horses have evolved to run great distances and live in larger social groups. The area which horses are kept is comparable very small compared to their wild counterpart. Horses are usually kept with only one or a few other horses, but the law do allow them to be isolated. There isn't much strict law dictating how much space they must have.

<comment><USER3> Comments like your's makes me wonder why humans have been turned into zombies sitting in front of a desk most of their lives. Humans also did not evolve for the environment that they have created for themselves with their technology. They evolved as hunter gatherers that often traveled large distances chasing their food source. What they created for themselves in their sedentary lifestyles in no way resembles that.

<comment><USER4> Humans have a choice. Captive animals don't.

<comment><USER5> Perhaps we don't anymore? Not for most of us anyway. In a sense we too are domesticated and brought up in captivity.

Even if we knew how to survive. Between private property, most wildlife being eradicated, the rest being protected, loss of natural ecosystems to farmland (private property) and ranch land (private property), commercial fishing reducing the abundance of fish available, other areas being protected from fishing, rivers being dammed up or polluted, water tables dropping due to the pumping of ground water, and our sheer numbers. Perhaps Living like hunter gatherers is no longer a choice available to us. It is either live as we do now, or perish. I know that is how it would be for me.

It's a sobering thought.

<comment><USER3> We don't and we haven't for thousands of years since farming and the states, empires, and concept of ownership which sprung up as a result of that. It's almost impossible to be a hunter gatherer anymore... and those who still choose to practice this sort of life style are far an between and often prey to other actors who exploit the fact that they have little representation in modern society.

</comment></comment></comment></comment></comment><comment><USER6> When I initially clicked the link, I expected to hear about some bad things that happen when lots of tourists go somewhere to look at wildlife. Wildlife, to me, means animals which are _not_ captive to humans. But the majority of animals described in this article -- tame elephants, dancing bears, trained monkeys and so forth -- are born, raised and abused in captivity.

Now if you told me that _animal performance_ attractions are typically cruel, that would be a much less surprising headline -- the sordid history of circus animals is a long-told story. I guess the Amazon river dolphins are wildlife, but if the punchline of the story were "dolphins hurt each other fighting for bait", I don't think it would arouse quite as much pity in the audience. And I wouldn't be nearly as surprised to hear that there is a "dark secret" lurking behind "exotic animal encounter" tourism.

So I feel a little disappointed in the title.

<comment><USER7> Yes, but a lot of these experiences for tourists are offered in a way that conceals the 'performance' aspect in such a way that people feel they are having a wildlife experience.

</comment></comment><comment><USER8> [https://outline.com/jjGgwW](https://outline.com/jjGgwW)

</comment><comment><USER9> The label itself is a lie -- those animals aren't wildlife any more. They're captives in most brutal imprisonment.

</comment><comment><USER10> Go Vegan. If you already believe animal cruelty is wrong, you already believe in veganism.

<comment><USER11> Just to add a few thoughts to this for those who believe in animal welfare:

If you think it's too hard or impractical, assuming you live in a developed country it's almost certainly quite feasible and can be very cheap.

If you think it's too radical, it probably shouldn't seem any different than any of the other moral conundrums we abstain from. Is it radical to not kill, assault, or rob people?

Of course, the context of social acceptance matters, but to illustrate why this (in my opinion) isn't always appropriate, something more comparable: would you consider it radical to not enslave people if you lived in the US during the era of slavery and had the choice to do so but thought it morally wrong?

<comment><USER12> I've tried to eat at least more vegan and found it quite difficult. I can put some chicken, refried beans, cheese, and a tortilla in the microwave and have a satisfying, high calorie meal in five minutes. I haven't found a vegan equivalent yet.

<comment><USER13> It isn't satisfying without the chicken? The 'high calorie' aspect won't change too much... There are quite a few fake-meat takes on chicken out there, I don't miss meat so I tend to avoid them, but they exist.</comment></comment></comment></comment>


Ask HN: Am I an Object Oriented or Functional programmer? - <AUTHOR>

I've been programming for years but I never studied CS in school so I'm weak on theory.
Lately, I've been seeing a lot of discussion on OO versus Functional programming styles in Python and I'm curious to know which flavor I've been writing in all this time.
Are there any good examples of the same app written both ways so that I can compare and contrast? <comment><USER2> Labels are dumb. Programming's a tool; use whichever style gets the job done...

But if you must categorize yourself, read Structure and Interpretation of Computer Programs, and then read the Gang of Four Design Patterns book. If SICP resonates with you more, you're a functional programmer. If GoF resonates with you more, you're on OO programmer. As a nice side benefit, you'll have read two good books and hopefully expanded your mind.</comment>


UI/UX Patterns You Literally Cannot Design: Design Patents from Tech Companies - <AUTHOR> https://medium.com/@christiet/ui-ux-patterns-you-literally-cannot-design-design-patents-from-tech-companies-21ae9643dc9e <comment><USER2> I was on a team designing for new a form factor of device, solving problems that had never been solved.

In retrospect, much of what we did may have looked obvious, but it wasn't. It was the result of countless hours of design sessions, user studies, and working through multiple on device implementations to see what worked.

Just as much work was put into the design as into any other invention.

When the iPhone came out, people were amazed at how well everything worked, at how obvious everything was. A lot of that was due to the focus on design, making everything just right. Slide to unlock was genius in it's simplicity!

Soon those design elements became "the obvious way to do things" and people then got upset at Apple for "patenting the obvious".

It wasn't obvious. Ask Palm, Blackberry, and Microsoft about it. They all made smartphones for years before iPhone came out.

I get that patents in general irritate people, but I'll argue that if a company has spent a lot of resources researching how to do something properly, that having a way to protect that investment isn't a bad thing for society.

It also helps prevent stagnation, as other ways of accomplishing the same goal now have to be researched.

It can be a bad thing if there is exactly "one true ultimate design" that a single company gets a lock down on, but do any of us think that is really likely given the _incredibly_ narrow scope of design patents?

<comment><USER3> I think there's huge potential for patented ui patterns to follow the same problematic sequence as regular patents - patent trolls, and the "it's like xyz, but on a computer". yes, there were brilliant ideas in the original iphone, but there were also repurposed things from other domains.

If I am a super rich person like the founder of intellectual ventures (world's greatest patent trolls), I could just have a team of 100 people iterate through many different design possibilities (there are some things with only so many solutions) and patent them all, and then they could get a tax on the whole industry. Need a file chooser control, we own all potential ones.

<comment><USER2> IV actually has an interesting methodology where inventors can license their patents out to IV and IV will licence those patents out to larger companies to make actual products.

That, for awhile at least, was their core business model. As part of that agreement, they _have to_ fight to defend the patents of small inventors who have literally entrusted their life's work to Intellectual Ventures.

I went to a public presentation by IV awhile back where they talked about their reputation as a patent troll and how they've tried to back off on the lawsuits and do more and more to work with partners to get products to market.

IV also does a lot of original research in hard sciences. If you remember that mosquito laser thing, they've spent a lot of time trying to make an actual product out of that. Turns out making a death laser that only kills harmful species, and is safe around people is rather hard, and involves a lot of original engineering work, and then a ton of work going through the government regulatory process. (Rather strict rules about lasers and all that!)

One of the coolest things they talked about was putting that laser tech to use on farm lands to zap bugs that harm crops! How they described their bug species recognition tech was incredibly cool! Obviously it doesn't take care of all types of bugs, but it is the coolest way I've ever heard of to reduce pesticide usage, and to do so in a way that is hyper-targeted at only harmful insects!

Anyway, they make cool tech, and if anyone ever gets a chance to see them talk about what they do, I'd recommend it.

tl;dr Hacker News meetups have some cool speakers.

</comment></comment></comment><comment><USER4> > And lastly, if you have something really unique, consider creating a patent > for your company with the help of the legal team.

Ctrl-f ethic... nope

Ctrl-f moral... nope

No critical thinking in sight here.</comment>


Tim Ferriss on his approach to learning [video] - <AUTHOR> http://www.ted.com/index.php/talks/tim_ferriss_smash_fear_learn_anything.html

<comment><USER3> First of all, his Japanese accent would probably be accepted as native which is impressive.

I wish he had discussed his point about learning languages more, because it seemed that he spent more time showing off than getting points across.

<comment><USER4> Unless he started speaking it at the end, he spoke way too little Japanese to be able to judge (I stopped watching after the language part).

He does have more info about language acquisition on his blog, FWIW.

<comment><USER3> Accent? You can't fake an accent easily. You either have it or you don't, and I'm pretty sure he had it even if he spoke 5 sentences. Who knows about the rest of his knowledge about the languages he claims to know -- he talked about Kanji then proceeded to use words written in katakana as examples.

Good to know about his blog.

<comment><USER4> I heard only 2 very short sentences (8時に起こしてください and 8時に犯してください). Even if it's just accent we are considering, you need longer utterances to be able to accurately assess whether it is passable as native. If you listen to a language learner speaking for a significant amount of time in their target language, you will usually notice certain phrases are (hopefully) dead-on native-sounding, but others can of course use improvement.

<comment><USER3> That's not true: I've spoken single sentences and Japanese people would tell me, "when you spoke just now I thought you were Japanese."

And for what's it's worth, he spoke more than the above (e.g. when he was imitating the instructor).

<comment><USER4> That doesn't contradict my assertion that generally some things will sound natural and others won't.

When we was imitating the instructor he was speaking English in a Japanese accent right? I am talking about whether his Japanese is native-sounding.

<comment><USER3> That's the funny thing: he was speaking Japanese but two of the 3 words he used were borrowed from English.

I guess in the end not having been to Japan and knowing few, if any, people who have gone there and seriously studied the language, it simply sounded impressive to me.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Geez this guy should write a self promotion book, I've never seen a guy so good at it.

<comment><USER6> He will, sooner or later. I've been enjoying Tim Ferriss lately - I think some of his claims are a little exaggerated or over-promoted, and I did not take the time to read '4-hour work week'. However, the guy has a natural curiosity, a thirst for knowledge and the ability to promote his own ideas through entertainment. You've got to appreciate that.

</comment></comment><comment><USER7> 4-hour work week is interesting in that it has the annoying too-cocksure attitude Ferriss exudes, but also has lots of interesting and useful nuggets of practical ideas.

A friend showed me the book and I was initially dismissive, but in flipping though it I started seeing enough valuable things I ended up buying it.

</comment><comment><USER8> I question his ability to build strong long-term personal relationships - <USER2> seems his obsession with the self & improvement would likely impede the development of meaningful friendships.

<comment><USER9> Really? From watching a few videos and some blog posts?

Tim is a friend of mine. It's hilarious how many people take public blog posts, video presentations, etc and assign all these deep meanings to them (i.e., he can't "build strong long-term personal relationships").

<comment><USER10> I don't know if there's a "deep meaning" to Tim Ferriss, but on the surface he certainly seems like a douche geyser.

</comment></comment></comment><comment><USER11> I'm actually on his slow-carb diet right now. I'm eating lentils, mostly. Today is day 4 out of 30. It's an exercise in mental fortitude.

<comment><USER12> My wife and I are on our second week of the slow-carb diet, and it's going pretty well. It takes some experimentation, but you can find foods that taste better and still work with the diet (lentils are nasty). Our favorites are edamame, asparagus, mexican black beans (with lime juice!), bean soups, and lots of vinaigrette salads.</comment></comment>


Everything about working with files read/write in PowerShell - <AUTHOR> https://www.nintyzeros.com/2019/09/-powershell-files-read-write-copy-content.html <comment><USER2> Thanks</comment>


Embert: Turnkey EmberJS + Sinatra app - <AUTHOR> http://stevengharms.com/blog/2013/03/27/getting-started-with-ember-1-dot-0-is-easy/ Instead of "Ember is hard!" v. "No it isn't" i built a tool so that you can start writing Ember within seconds after checkout.  Less blogging, more code. <comment><USER2> This will be supremely useful to anyone who finds getting started with emberJS onerous.</comment>


From Launching on HN to Completing over 200,000 Dones - <AUTHOR> http://thenextweb.com/apps/2011/09/22/idonethis-announces-its-first-milestone-200000-completed-tasks/

<comment><AUTHOR> Hi HN! HN'ers rguzman, peng, and I built iDoneThis in January and we got our start by launching it on HN (<http://news.ycombinator.com/item?id=2064038>).

We got some fantastic feedback and enthusiasm for the product. We kept iterating on it for fun on the weekends, before it started to take off and Rodrigo and I moved over full time.

Now we're taking a weekend project and turning it into a real business.</comment>


What Happened After Gravity Payments Set a $70k Minimum Wage - <AUTHOR> http://www.inc.com/magazine/201511/paul-keegan/does-more-pay-mean-more-growth.html <comment><USER2> It's very nice to hear that this story was such a success.</comment>


The Writer Who Couldn't Read - <AUTHOR> http://www.npr.org/templates/story/story.php?storyId=127745750

<comment><USER2> If you've never read it, I love Oliver Sack's book "The Man who Mistook his Wife for a Hat": [http://www.amazon.com/Man-Who-Mistook-His- Wife/dp/0684853949...](http://www.amazon.com/Man-Who-Mistook-His- Wife/dp/0684853949/ref=sr_1_3?ie=UTF8&s=books&qid=1277371133&sr=8-3).

It's an amazing book full of stories just like in this article, about incredibly strange things that sometimes happen to people's brains.

It's also the scariest book I've ever read: it made me realize, more than at any other time, just how much of who I am is determined by my physical body, which is incredibly easy to break. There are stories in there of people who can't understand the idea of "left" anymore. They can see out of their right eye, not their left. They can turn right, _but not left_. They can eat food off their plate, but only on the right side. Freaky as hell.

</comment><comment><USER3> Fascinating.

I had a similar experience while backpacking; sometimes I would get up at night to use the bathroom or drink water and I wouldn't remember what city or country I was in. I would have to retrace my journey from the last place I remember, and mentally arrive at where I am. The hardest part is figuring out the position of the light switch in a dark room.

</comment><comment><USER4> I recall reading of a famous amnesiac who after much instruction, developed muscle memory for drawing mirror images (or something, ironically I forget…). Point being, muscle memory is quite a powerful construct.

I wonder how great of a typist Engel was/is?

</comment><comment><USER5> Engel was able to compensate for the loss of function in one cortex by shifting the work to another.

This probably gets more difficult with age; that he is able to do it at an advanced age is a testament to the plasticity of the brain. Remarkable.

<comment><USER6> Not really. There are two reasons why people tend to change less as they age, none of which has anything to do with the brain:

Old people are just stubborn. There is little that is new for them, and they have habits that covers most, if not all, of what they do.

The older you get, the less time you have (think family and kids) which means you have less time to adopt new habits.

Your brain plasticity actually remains and there is very little physical reason not to improve as you age.

<comment><USER7> What about language acquisition? I think it's quite established that ability goes down with age. My experience seeing retired people (with plenty of free time) taking language classes is that they take quite a bit more time to achieve the same results. Pronunciation is especially hard to fix.

<comment><USER8> Adult language acquisition is a really weird problem.

tl;dr: Plenty of adults actually _can_ learn foreign languages if they put in the hours, though few have sufficient dedication. But maybe not everyone.

First, some background on my own experience: I started learning French a little about 2.5 years ago, past the age of 30. I can read non-fiction books in French, and about half the articles in Le Monde. Right now, I'm only studying French a few minutes a day, to maintain my knowledge while working on my startup. Later on, I'll go back to several hours of study a day. (I'm currently at ~350 hours of cumulative study.)

Here are some of things I've noticed about adult language learning:

1) You can be an enormously gifted language learner with no skill for accents. Alexander Arguelles, for example, has a extremely high degree of fluency in at least 6 languages, a solid command of another 12, and conversational abilities in many more. But his accents are generally terrible. In contrast, I have a decent ear for accents, and some people are amazingly gifted.

2) Learning a foreign language is a beastly amount of work: 250 hours for conversational ability (if you're gifted), 1000 or 2000 for moderate fluency, and several thousand more to get really good. Basically, if you're an adult and you're not fully immersed in the foreign language, it requires the kind of dedication you'd need to run a startup. Most people don't seem to have that kind of dedication.

3) It's possible to gain fluency in a foreign language past the age of 65. Google "Steve Kaufmann, polyglot", for example, who's still going strong. And there's a Japanese guy who picked up Chinese and Korean after 65, and who has started on French around the age of 100.

4) There is _some_ kind of declining neural plasticity, at least for some people. It's a truism that virtually every single 5-year-old gains fluency in the language spoken by their peers. But as people get older, a smaller portion of the population succeeds in learning a foreign language. And past 20, there will almost always be small defects that mark you as a (highly fluent) foreigner and not a native.

So if you're interested, and willing to pay a steep price in time and effort, you might as well go for it. I'd be happy to write up a post explaining how to make best use of your first 250 hours of study, if people are interested.

</comment></comment></comment></comment><comment><USER9> The fact that one of the most famous artistic minds in history was a composer who couldn't hear (for me) somewhat reduces the impact of the title.

Not to downplay his accomplishment in combating the condition- he is, to me, a very impressive man.

<comment><USER10> OK, but Beethoven's hearing problems weren't caused by his brain.</comment></comment>


SGT: A Feature Extraction Function for Sequence Data Mining - <AUTHOR> https://arxiv.org/abs/1608.03533 <comment><USER2> didn't see minhash and/or LSH in the list of existing work. As someone not too familiar with the field. Are they not relevant?

<comment><AUTHOR> Its different information that you can capture in SGT, how all the pairs in your sequence interact, MinHash I believe would help compute the similarity between two sequences based on their union and intersection.</comment></comment>


The Guide for Secret Hiding Places in Your Home - <AUTHOR> https://www.familyhandyman.com/smart-homeowner/the-ultimate-guide-for-secret-hiding-places-in-your-home/ <comment><AUTHOR> [https://hackaday.com/2019/08/25/inventor-and-detective- creat...](https://hackaday.com/2019/08/25/inventor-and-detective-create-range- of-snack-hiding-devices/)

This is three really nice hiding places for Chips. I was looking for something easier and came across the OP article.</comment>


Ultrasonic Signals Transmit Data Through Meat at HD Video Quality - <AUTHOR> http://spectrum.ieee.org/tech-talk/biomedical/devices/ultrasonic-signals-transmit-data-through-meat-at-hd-video-quality <comment><USER2> Kind of off-topic -- but I still remember laughing when I read about how the oil industry was using "IP over mud" between the drill tip and a receiver. Apparently, the temperatures won't allow typical electronics to survive in the environments where a drill tip operates. So they used the drill tip itself to vibrate the mud around the drill. I don't know if they still use anything like that.</comment>


The Least Effective Method for Blocking Web Scraping of a Website - <AUTHOR> http://minimaxir.com/2014/09/buzzscrape/

<comment><USER2> I disagree that it was grayed out to prevent scraping. I don't have a better suggestion, but professional intuition tells me the real reason was something really mundane and dumb that couldn't be figured out by someone unfamiliar with the codebase.

In the end though, I really liked that chart. How many weeks of articles did you scrape to get that data?

<comment><AUTHOR> In that run, I scraped about 10k articles total, mostly from books and celebrities categories. (so 30% of them were listicles, believe it or not)

I would have scraped more, except I got hit with Facebook's rate limit (600 requests / 600 seconds) even though I took explicit steps (1.1s delay between requests) to avoid said rate limit.

Although in this case, more data might not improve the accuracy of the chart.

</comment></comment><comment><USER3> The author tried harvesting the next url from the `Older` button _before_ he tried

        urlFragment = "p=" + i++;

...wut? :)

<comment><AUTHOR> That's how the Kimono Labs scraper works.

The code I use in my actual final parser is:

       bf_url = "http://www.buzzfeed.com/%s?p=%s&z=%s&r=1" % (category, current_page, access_token)

</comment></comment><comment><USER4> Or perhaps they block the Older button because only articles before page 10 are cached.

<comment><USER5> I would hope that any moderately popular site would implement popularity-based caching. Popularity counters with halflives are pretty easy to implement.

</comment></comment><comment><USER6> The author tries desperately to find logic in BuzzFeed, when really it's about as bad of a website, both content and design, as it gets.

<comment><AUTHOR> I'm not a fan of BuzzFeed either, as evident by the sarcasm in the article. But I can't deny that it _works_ , and their engineering and data teams are top-notch.

<comment><USER7> First off you don't actually have any evidence that it's greyed out to stop web scrapers, and secondly it doesn't really work against anything but the bare minimum worst scrapers because you can easily just change the url instead of clicking the actual button.

<comment><AUTHOR> That's the exact point I'm making. I cannot determine any logical reason for BuzzFeed to disable it other than web scraping, which _in itself_ makes no sense because it's easy to workaround.

<comment><USER8> I'm guessing an aggressive new manager came in and demanded it, and he was the type who viewed counterarguments as disrespectful to his authority.

</comment></comment></comment></comment></comment><comment><USER9> It's interesting that there is an apparent discontinuity in views between 9 list items and 10 list items in the last graph.

<comment><AUTHOR> There's a reason for that.

The behavior for listicle size = 9 entries is not a mistake. BuzzFeed, for some reason, always set their redundant Summary listicle article to 9 entries. [https://docs.google.com/spreadsheets/d/1w0GKyDvK9KWaOgjDJxV2...](https://docs.google.com/spreadsheets/d/1w0GKyDvK9KWaOgjDJxV2s4K3pf2pMCxqclkjU3pp6jo/edit?usp=sharing)

</comment></comment><comment><USER10> Maybe the stupid type of bots in particular was causing problems for them.

</comment><comment><USER11> Does Cloudflare works for preventing scrapers?

</comment><comment><USER12> Incrementing the numeric value in url makes web scraping so much more reliable.

Reliability and maintenance is a trade off in scraping. The big pain comes from when websites change designs, imagine Buzzfeed from a few quarters now, it would surely change some parts requiring you to relabel the data fields.

[https://scrape.it](https://scrape.it) automatically adapts to page layout changes and continues scraping without interruption. It requires no maintenance work from the user point of view.

The other thing I'd like to see Scrape.it do is the ability to scrape by incrementing the page url but unlike Kimono, Scrape.it is designed to work on dynamic web pages as the primary goal (sites requiring ajax POST to increment page), it's quite amazing to see how many sites out there simply use page number in their urls.</comment>


MIT Unravels the Secrets Behind Collective Intelligence - <AUTHOR> http://singularityhub.com/2011/08/26/mit-unravels-the-secrets-behind-collective-intelligence-hint-iq-not-so-important/

<comment><USER2> This came up on LW before (<http://lesswrong.com/lw/73w/study_on_group_intelligence/>); I pointed them ([http://lesswrong.com/lw/73w/link_study_on_group_intelligence...](http://lesswrong.com/lw/73w/link_study_on_group_intelligence/4neu)) to a previous comment I had seen dissecting the study: [http://hbr.org/2011/06/defend-your-research-what-makes-a- tea...](http://hbr.org/2011/06/defend-your-research-what-makes-a-team-smarter- more-women/ar/3#comment-238026281)

tl;dr: as one would expect, it's not that great and certainly doesn't justify the title.

</comment><comment><USER3> The study was done in only one perspective, wich is adding women to a group of men. In other words, men perform better in the presence of women. Next should be trying to add women to more women, or maybe adding men to a group of women, in order to have a bigger picture about how the collective intelligence works when mixing genders.

<comment><USER4> Did you read the article?

They studied a number of things and "... when they controlled for the number of women in a group, it was shown that it was the emotional sensitivity scores which won out."

Whatever its merits or flaws, the study was not simply about adding women to groups of men.

<comment><USER3> 1) I read the article 2) Did they try adding women to a women only group ? 3) Did they try adding men to a women only group ? 4) Did they try adding more women to a mixed group ? 5) Did they try adding more men to a mixed group ? 6) Did they try to remove all men from a group and replace them by women ? 6) Does this have to do with women being in a group, or does this just have to do with the group having elements from both genders collaborating ? The conclusions made in the article ,to me, seems more buzz-seeking than enriching.

<comment><USER5> I think you're severely misunderstanding what it is they did in this experiment. The overall emphasis was not at all on the gender of the participants. As the article took pains to point out, they formed the groups based on a variety of intelligence scores - not gender.

Initially, they discovered that the most significant factors were "the high average social sensitivity of group members, a high rate of sharing who gets to communicate, and more females". Then they controlled for the number of females in each group, and discovered that the number of females actually didn't matter so much - the women in the study were just more likely (than the men) to have high social sensitivity, so a team with many women would be more likely to do well. But a team consisting of all men would also do very well, as long as you made sure to pick men with high social sensitivity.

</comment></comment></comment></comment><comment><USER6> These studies always leave out the negative side of social sensitivity: bullying and exclusion. In a task worked on for 5 hours everyone still has on their party manners.

</comment><comment><USER7> This dovetails to some degree with recent studies showing female asset managers both are less risk-tolerant and provide better overall returns than male asset managers, on average.

<comment><USER8> Do you have a citation for this?

If true, it's counterintuitive - one would expect the risk-tolerant investors to have higher returns.

<comment><USER2> The way I remember it, it was simply that men traded more and so the fees (combined with some bad choices) damaged their returns: [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.145...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.145.8230&rep=rep1&type=pdf)

<comment><USER8> This paper is based on retail investors at a discount brokerage, not asset managers.

<comment><USER2> Who we would expect to be immune to the issues of their gender... why? I bet if you look, there are similar results for managers, that those who trade more damage their returns.

<comment><USER8> Because the asset managers who are not immune to the problems of retail investors get fired very quickly.

Just as it is hard to generalize from your average facebook user to programmers, it is hard to generalize from retail investors to professional traders.

</comment></comment></comment></comment></comment></comment><comment><USER9> Recipe for success = just add women.

Mad Men for the win. I knew replacing our secretaries with computers would destroy America. Your team doesn't need more developers, you need a Peggy Olson.

</comment><comment><USER10> Did they try to control for Tea Party members or Christian fundamentalists? I'm not saying this just for snark value; if you don't believe in science or the scientific method, for instance, it would seem a bit hard for you to contribute much in the way of intelligence on such questions. Same thing with "social sensitivity"; I would guess that's not a strength among isolationists or fundamentalists of various types.

<comment><USER11> Wow I'd really like to see some data to back up these assertions.

Did they correct for poor welfare moms, blue collar union workers, or Muslims?

To think that only Tea party members and Christian fundamentalists are the only ones who might not understand or have a problem with the scientific method is absurd. I really doubt your average 20 year old wearing a Che shirt cares any more about the scientific method than your average Tea Partier.

What a ridiculous question.

<comment><USER10> Not ridiculous at all, although very predictable that this would be downvoted and controversial.

I didn't say "only" Tea Party folks or fundies, so I'd appreciate not being misquoted. I also didn't say anything about "understanding" the scientific method. I think a lot of those folks understand it quite well; they just choose to cynically lie about it for political reasons, which is the crucial difference here.

You bringing up Muslims or welfare moms says all we need to know about your particular attitudes. It's really not my fault if you have a problem acknowledging the factual reality here. The facts are, the Tea Party is actively hostile to science, the scientific method, and scientific conclusions in general. This isn't my opinion, it's not controversial, and it involves no tricky judgment calls. It's a fact.

<comment><USER11> This wasn't an argument on whether a Tea Party backed political party would be detrimental to science in general. Your assertion was that we should control for Tea Party members in a particular scientific study.

If what you say is true \--That a certain subset of the population, that you find undesirable, will negatively impact the results of the study \--Then, I will point out another subset of the population who, given you're apparent political leanings you won't find undesirable, that will impact the study in the same way.

I did this so that hopefully you would see the problem with arbitrarily deciding to exclude a group of people who you disagree with from consideration.

Btw I'm certainly not a conservative. I would also ask you to read my response to the comment below.</comment></comment></comment></comment>


Android under New Google - <AUTHOR> http://www.marco.org/2013/03/20/android-under-new-google <comment><USER2> Did everybody forget that Google owns Motorola Mobility?</comment>


AWS OpsWorks Now Supports Chef 11.10 - <AUTHOR> http://aws.typepad.com/aws/2014/03/aws-opsworks-now-supports-chef-1110.html

<comment><USER2> Do they support anything other than chef? puppet for example...</comment>