CoreUtils implemented in pure JavaScript - <AUTHOR> https://www.github.com/dthree/cash <comment><USER2> >Huh? Okay - think Cygwin, except:

Oh boy, another one of these. Cygwin is useful because it provides a POSIX C API on Windows. It is not useful because of its shell and coreutils. And saying it uses "pure ES6" is stretching it - it's using the plain ES5 Node.js require/export patterns instead of ES6 modules.

>1/15th of the size [of Cygwin]

Haha, and 1/100th the functionality

<comment><USER3> Is this indicative of what's going on in the JS world today, with all the churn of packages and libs? Does it boil down to being sucky and not useful if it isn't written in ES6/TypeScript/Whatever and not invented by your team? Why do the other things suck because they're not this?

EDIT: I've said it on other threads- I like the creativity and exuberance in the JS community. I'm not putting it down. There's just a lot of churn/NIHS.

(I didn't seem to be getting downvoted, but I also want to be clear that I'm not putting the community down)

END EDIT

I think it's a cool excercise. Why would I ever want to use this in the way it is saying it should be used? Why would I ever use this period?

<comment><USER4> In instances like this, there's no issue with it being ES5.

However, in the web world, ES6 modules have a _huge_ (pardon the pun) advantage that's just being realized. Because of the static nature of ES6 imports, you can eliminate unused code when you package it all together. The newest Webpack versions and Rollup are both taking advantage of this, and it can result in huge savings in filesize.

For example, lodash is a large library with hundreds of methods, and a lot of the time people only use 3 or 4 imports from it. If you use an ES5 version, you'll get all of those functions in a compiled bundle no matter what. If you use an ES6 version with Webpack 2, all the methods you use will end up being the only ones that are actually included in the final code.

<comment><USER5> I imagine most libraries has some common functions that ones from public API rely on (and of course some exports can be used within module itself).

Let's say you never import `helperX` and `helperY` from a library, but you import `usefulFunction` which relies on `helperX`. How would webpack know to exclude `helperY` but not `helperX`?

Unless it does some kind of code analysis, or lib is split in "module per function" or similar manner, I can't really see a way to achieve it. And if library is common core plus a bunch of modules per function it exports, how is that different in CommonJS versus ES6 modules?

Am I missing something?

<comment><USER6> I believe they are doing code analysis, at least that's what the README for Rollup says:

> Rollup statically analyses your code, and your dependencies, and includes > the bare minimum in your bundle.

<comment><USER7> I don't think that's possible in all cases:

        var mod = {};
        module.foo = function () { return 42; };
        module.bar = function () { return -1; };

        module[Math.random() > 0.5 ? "foo" : "bar"]();

How can `Rollup` determine that I need both functions here?

<comment><USER4> That's why it only works with ES6 imports. ES6 imports must be made at the top of the file, and aren't dynamic. You must explicitly import what you need.

Additionally, this method only works with named imports. So for example, you can have two files:

File a.js

        export a = 5;
        export b = 6;
        export c = 7;
        export d = 8;
        export default {a, b, c, d};

File b.js

        import {a, b} from "./a.js";

        console.log(a);
        console.log(b);

c/d will never be included in the output file, nor will the default export. However, if you do:

        import a from "./a.js";

Then it won't optimize at all, because all of those objects are referenced in the default export.

Note that it's possible I'm wrong as to the specific optimization method, but largely speaking this is how it should work.

<comment><USER7> That much makes sense, but if I understand GGGP's example properly, they are talking about pruning unused internal references within a module, but GGP's response implies that somehow Rollup will prune those out.

<comment><USER4> Ah, I understand the confusion now. I'm not 100% sure how that code works, but I do know it uses estree and that case is tested for, nearly verbatim. Here's a link to the source which handles that sort of stuff.

[https://github.com/rollup/rollup/blob/6fc8631ba1aad718885151...](https://github.com/rollup/rollup/blob/6fc8631ba1aad718885151f4c2eb33596cc6fa45/src/Module.js)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> As far as I can see, what's been implemented is a _shell_ in JavaScript, which emulates a bunch of coreutils by treating them as built-in keywords.

It's kinda cool I guess (I don't use Windows), I just don't get why the tagline is "Cross-platform Linux without the suck". Apart from the phrase "cross-platform Linux" not making sense in this context, I don't see why other implementations inherently "suck".

<comment><USER9> I don't understand this at all. UNIX shells suck. Javascript sucks. How could one implement a UNIX shell in Javascript and have it _not_ suck? Does the result suck so bad that it just wraps around becomes good again?

Is the "way forward" recombining and rehashing the terrible technologies everyone is familiar with already, indefinitely?

<comment><USER8> > UNIX shells suck. Javascript sucks. How could one implement a UNIX shell in > Javascript and have it not suck?

What do you mean by "UNIX shells suck"? I'm fairly sure most people would consider UNIX shells to be one of the bigger revolutions in computing.

<comment><USER10> Perhaps it's my own shortcoming, but for any given script I write, I find that, say, 20% of all my code is productive, and the remaining 80% is massaging the output of one tool into a shape that's compatible with the input of the next tool. Compare with the exprience of using Windows PowerShell where cmdlets return objects and you can grab precisely the fields you want with minimum ceremony.

Things are better now with builtin tests, but god help you if you need to use /bin/[ and you end up with idioms like 'if ["x$foo" = "x$bar"]' so that bad things don't happen if $foo starts with a dash, or either variable is empty.

It gets even more fun when you look at the amount of cruft around terminal emulators themselves, and the support for legacy terminals in the command line. Why do modern versions of OSX still ship with /usr/lib/libtermcap.dylib?

Don't get me wrong -- UNIX shells are amazingly powerful tools, but they're just stuck in the 70s and we can do much better today.

<comment><USER11> I keep wanting to like PowerShell but finding it limited in silly ways. _Text_ output is crippled, and there's no sensible way to save the intermediate value of a pipeline in a file.

The security ceremony required around PS is also an obstacle to getting started. And of course Microsoft have missed the opportunity to fix the path separator.

I admit that Bourne shell is not great for anything over a few lines, and find it better to drop into perl or python where filename-separator issues are mostly eliminated.

<comment><USER12> _and there 's no sensible way to save the intermediate value of a pipeline in a file_

Sounds like you are looking for Tee-Object[0].

"Saves command output in a file or variable and also sends it down the pipeline."

 _And of course Microsoft have missed the opportunity to fix the path separator._

Windows supports both path separators in pretty much all cases (open files, changing directories, etc)

      PS C:\> d:
      PS D:\> cd /projects/node_modules/immutable/node_modules/uglify-js/node_modules
      PS D:\projects\node_modules\immutable\node_modules\uglify-js\node_modules>

_Text output is crippled_

I guess this depends on what you want out of the system. Some options are:

"format-table -auto" which provides a nicely formatted table view of the data

"format-list" which provides each property on a separate line with a blank line between objects

"format-custom" which allows you to create your own views of objects (with a very readable default), which has ultimate flexibility

"converto-csv" which output the object as a CSV (or with custom delimiters such as TSV)

"converto-html" which outputs the object as an html table (with somewhat customizable markup)

"convertto-xml" similar to the above

But really, if it's possible, then it makes sense to use the object pipeline until you're done (so that different parts of the pipeline can use different parts of the object). Then spitting out CSV, TSV, XML, etc should get interop with basically every other tool that's going to process text in some way.

[0] - [https://technet.microsoft.com/en- us/library/hh849937.aspx](https://technet.microsoft.com/en- us/library/hh849937.aspx)

<comment><USER11> Text output is chopped at 80 characters unless you specify otherwise, _even when directed to a file_ ; I'm probably going to try converto-csv next time I want to input it into python, thanks for the tip.

The output of tee-object can't easily be read back in to a new pipeline. I suppose we're supposed to stash it in a variable which will be good enough for 99% of cases.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Apart from this being of questionable usability, why do people feel the need to solve every problem with (Node)JS? I can think about a ton of languages better suited for systems programming at the top of the hat.

<comment><USER14> Because JavaScript is the most widely used language in the world.

As a web developer, I know JavaScript very well. I have already encountered thousands of its idiosyncrasies and I am very good at making it work for me.

Therefore any tool written in JavaScript is _automatically_ easy for me to understand and modify. If that tool could have been more elegantly written in another language, that's awesome for people who know that other language, but it's irrelevant to me. Even if I kind of know my way around the other language, I'm never going to be as effective with it as the language I use every day. And a lot of people use JavaScript every day. This is the reason why people feel the need to solve problems in JavaScript.

<comment><USER15> But JS can't solve every problem, nor can it solve certain problems well.

I understand people feel the need to solve problems in JS because they're scared or inconvenienced by learning a new programming language.

But why not learn a new language? Having a working knowledge of C won't kill you.

edit: could you explain how JS is the most widely used language in the world?

<comment><USER14> > Having a working knowledge of C won't kill you.

I do have some knowledge of C, and I could learn more. But unless I change career, I'll always be faster and more effective in JavaScript because I think in it all day, so I'll almost always choose JS over C. I'm not disparaging anyone who uses C, just answering @faaef's question about why people "feel the need" to make everything in JavaScript – because they can, they happen to know JS very well, and because there's automatically a huge potential contributor base.

> could you explain how JS is the most widely used language in the world?

I don't know, but I assumed it's the most widely used because websites :) Also it's the most popular language on GitHub

<comment><USER15> JS is definitely the wrong language for a number of programming projects. JS lacks a number of features that other languages have... on its own, that doesn't make it a bad language, but it means it's less useful for certain projects.

Like this one. Like the POSIX API that is actually compatible with other applications.

And by that definition of used, C and Java are pretty strong competitors, seeing as every SIM card and Bluray player and so many more run Java... and then there's Linux and its embedded RTOS cousins, etc., etc., that are written in C or C++. I think embedded devices beat out JS pretty well.

</comment></comment></comment></comment></comment><comment><USER16> It's always mind blowing how when someone makes a neat project like this and the comments are nothing but complaining, vitriol, etc.

<comment><USER17> Lots of vitriol because it's yet another "I took something that works and rewrote it to be slower, less functional, and JavaScript"

Making computing worse, one fork at a time.

<comment><USER16> This is the attitude that drives people away from working on open source.

<comment><USER18> It's better to say nothing so people can be happy with what they've just done and continue to make the same mistakes in the future?

<comment><USER16> So I guess no one should write a toy kernel again the future, because it won't be perfect? What kind of logic is that?

<comment><USER17> Toy kernels are usually presented as such.

This is presented as Unix Without the Suck, when in fact it's almost 100% suck.

</comment></comment></comment></comment></comment></comment><comment><USER19> I understand why you'd use Node.js for I/O intensive tasks like web development and scraping, but for a cross-platform program meant to do everything? None of Node.js's benefits shine.

Sure, Node.js has a big community with lots of (mostly linux-only) packages, but you get a mediocre language and pretty crap cross-platform support. This doesn't matter as a web development language, but seriously gets in the way when you're developing a program designed to do literally everything.

A more useful project might be coreutils in rust, which several projects are already doing.

</comment><comment><USER20> I'm sitting here wondering why no one ever talks about PowerShell. It supports .NET reflection, which allows direct .NET API access. It's basically c# shell.

<comment><USER17> Because then I'd have to be running Windows, which is a deal-breaker.

</comment></comment><comment><USER21> how cli tools implemented in node is "without suck" is beyond me. fucken hipsters

<comment><USER22> Absolutely... Replacing a single DLL with Node is "simplifying" it.... Jeez...

</comment></comment><comment><USER23> More validation of the Atwood principle. [http://blog.codinghorror.com/the- principle-of-least-power/](http://blog.codinghorror.com/the-principle-of- least-power/)

</comment><comment><USER24> For what purpose?

<comment><USER25> That would come in handy for cross-platform npm 'run' scripts.

</comment></comment><comment><USER26> Writing cross platform build scripts for web projects can be a pain when you want to rely on commands like cat, rm etc. This looks like it could relieve a lot of that. Nice job.

P.S. I'm constantly amazed by the number of non-JS developers that pile onto JS-related HN threads to tell us how much JS sucks. I'd like there to be less of it, it's getting a bit old. It seems like any amount of familiarity with the web, or the fact that someone once wrote a JS function sometime makes people feel entitled to weigh in on modern JS development. Look after your own communities and let us plough our own furrow ... we think lots of small modules is an interesting approach, and we'd like to see where we can get with it.

</comment><comment><USER22> I never understood the hatred for Cygwin, its a (set of) DLLs that form a POSIX->Windows translation layer.

All the bulk is just the utilities that people want to provide once they've got that layer (i.e. CoreUtils).

</comment><comment><USER27> It is easier to port shell than shell script.

</comment><comment><USER28> I'll wait for GNU/Windows.

<comment><USER29> That's roughly what Cygwin is, with actual GNU instead of pared-down replacements.

</comment></comment><comment><USER30> I was very interested in contributing to this project, but the code quality of some of the commands seems prohibitively low.

</comment><comment><USER31> Mongo(DB) shell interprets JS and it's very useful. Modifying documents, reorganizing scheme, processing queries.

I can see the usefulness in a JS shell mainly because JS is a popular scripting language.

Running this on Linux will be difficult because node runs with a very limited set of permissions.

</comment><comment><USER32> What the fuck I don't even

<comment><USER33> Please post civilly and substantively, or not at all.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

[https://news.ycombinator.com/newswelcome.html](https://news.ycombinator.com/newswelcome.html)

</comment></comment><comment><USER34> I hope the goals are

\- short-term : POSIX compliant

\- long-term : runs *nix binary / programs

p/s: love anything CLI, so I may be biased

<comment><USER35> How would they run *nix binaries in a node.js environment if they call it "Cross-platform Linux without the suck"? You are talking about Cygwin here which is what these guys hate for some reason.

<comment><USER36> Cygwin can't run binaries compiled for non-Windows systems, can it?</comment></comment></comment>


Ask HN: When to upgrade graphics card for best value/price? - <AUTHOR> It's Friday! Help me waste more of my time on games ;-)<p>https://pcpartpicker.com/trends/price/video-card/ <comment><USER2> Right after a new GPU comes out, or perhaps right after AMD drops prices to match NVIDIA. [http://techreport.com/news/30853/amd-drops-prices-on-the- rad...](http://techreport.com/news/30853/amd-drops-prices-on-the-radeon- rx-460-and-rx-470)

</comment><comment><USER3> If you really want to save money, buy them second hand. I snagged a Maxwell Titan X for 400 USD on eBay as a buy it now option.</comment>


Movitz:  A Common Lisp x86 OS - <AUTHOR> http://common-lisp.net/project/movitz/?

<comment><USER2> When I read the first two chapters of PG's Ansi Common Lisp I was so fascinated that I wanted to seat and write an operating system with common lisp. nonetheless. happy to see CL evolves

</comment><comment><USER3> From the website, it looks like this is less an OS in and of itself and more a CL implementation designed to create OSes. Sort of the C of Common Lisps.</comment>


Demonetised (4 Minutes) - <AUTHOR> https://www.youtube.com/watch?v=NtmtFkxOnrg <comment><USER2> Yeah well the IP industry is a gigantic mess. So what can we do about it?</comment>


Three ways to solve hard programming problems - <AUTHOR> http://jvns.ca/blog/2016/05/29/three-ways-to-solve-hard-programming-problems/ <comment><USER2> > Realize that there is awesome existing software that you can repurpose

Every time I see this, I find that the problem of leaky abstractions result in a 3 phase solution. It's awesome in the beginning, everything "just [mostly] works". Then a few months in, you start to feel like a young dutch male with his finger stuck in the earth, holding back the ocean. In the end, you throw it out, having "stolen" the important bits for yourself.

Sometimes, you find yourself stuck at one of the first two phases. I wish it was more frequent.

<comment><USER3> The longer you have to maintain the software, the more of an improbable scenario (in the eyes of past view who made a decision on maintainability) you become. I'm not saying that all software should be implemented in the most quick and hacky way; rather, that you need to strike a balance. And in a lot of situations, you don't actually need to build a well-maintainable, modifiable and extensible solution.

It just feels better to build such a solution as an engineer. Stories about these solutions are much more interesting than "I used a ready box and saved the company two weeks of my time so I can spend it on another feature of a prototype". And usually, the better technical level of a software developer, the more he prefers the long, right, rigid way to do Things That Last.

But from entirely business perspective, this is actually good advice in a surprisingly big share of the situations.

<comment><USER4> The problem is is that outside of startups, anything that works even halfway is going to have a long shelf life. I have seen exactly zero instances where a software solution was end of lifed earlier or at the time it was predicted to be in the enterprise (if an EOL was even defined beyond the implicit one developers set of "if it breaks after I'm gone it ain't my problem"); every single instance either had not hit its predicted end of life time yet, or was well, well passed it. Even stuff that -doesn't work at all- will be funded for refactoring rather than a rewrite.

Given that, it makes sense to, in that environment, default to "let's do this thing correctly". But that's not actually long, right, and rigid. It's often shorter than one might think, and far more flexible, as it usually means "let's do the minimum amount of features that we need, but what ones we do, let's make sure we do well, working with the user to define them, and get feedback/iterate, writing lots of test, documentation, etc along the way". The problem is that businesses tend to prioritize exactly the opposite; give us features, now now now, that have only been defined at a very high level and not actually thought about by anyone, and any time not spent on implementing features is wasted. And with that mentality, using an existing solution seems to make sense. It's only afterwards that you realize that solution brings a lot of unnecessary complexity, doesn't give you the level of control you want, didn't instill the necessary domain knowledge in the developers for proper maintenance and modifications etc, possibly didn't even solve the problem(s), but by then it's too late, you're just told to make it work.

<comment><USER5> I think an important aspect that is often overlooked is how likely are the original developer(s), or people that really understand the purpose, going to be around later if it needs more work or a rewrite.

For example, I often take the approach that my first implementation, which likely will end up in production, is used for learning the interface, service or business need. It satisfies the problem as it currently exists and was defined, and generally has a few hacky parts as the needs were explained in more detail or changed halfway or more through the project. The next time anything more than a bug fix or trivial feature is required, I'll rewrite the most problematic behavior in a more extensible and cleaner way, since I now have a much better understanding of the problem. This is generally quick, as I can re-purpose portions of the original that are perfectly usable, and I have a reference implementation (the original) to compare against to find any bugs in the new version.

I can rely on this because the chances that I will be around at this company in the future are extremely high. This would not be a good approach for a company that sees domain expertise leave, or move to different departments that aren't easily approached for information. I've been on projects where you come in to rewrite on someone else's old code because nobody really understands it well, with little or no information besides the code itself and included comments as to the original design decisions. It's easy to identify the portions of the code that look like they were stupid decisions, and you would _definitely_ never do that. You start writing code, and soon you run into unexpected conditions that require you to make the same or equivalent hacky choices, and you understand a little of the original developer's prior choices. You'll end up with the code rewritten, and possibly a little better and cleaner, but if someone comes along in a few years, they'll have the same problems you did. These are the situations you want to avoid by spending more time up front to make the solution better in the beginning, or at the _bare_ minimum, documenting in the code the hacky abstractions you've been forced to make.

</comment></comment></comment></comment><comment><USER6> Another often practical approach is to change the situation in some way that allows you to solve an easier problem instead. This isn't always possible but can be more often than you might think.

<comment><USER7> I go further and ask myself if the problem needs to be solved at all. A lot of premature optimization falls into this category.

</comment></comment><comment><USER8> The canonical example of employing existing tools might be McIlroy's shell script used as a critique of Knuth's solution to word counting [search for "knuth" here: [https://www.princeton.edu/~hos/mike/transcripts/mcilroy.htm](https://www.princeton.edu/~hos/mike/transcripts/mcilroy.htm)].

In fairness, I think a more intellectually honest critique would have been to write the script using literate programming. Sure it might have required McIlroy to write a tool for literate shell programming -- the will to do so being the magic trick separating Knuth from mortals. The world might have been better for it.

</comment><comment><USER9> Sadly what is needed is usually just a clear understanding of the requirements, careful study of existing code and documentation, new code, writing new automated tests, and careful manual testing.

</comment><comment><USER10> Beg, borrow or steal.</comment>


I have no idea what I'm doing but I'm a programmer - <AUTHOR> https://blog.lelonek.me/i-have-no-idea-what-i-m-doing-but-i-m-a-programmer-d263dbcd024f <comment><USER2> The author is a few years out of college, with work experience that consists of a bunch of short term (3-4 months) projects with wildly different roles (EE java, iOS, Android, Scala, Ruby).

His blog posts all seem to follow a pattern of "bad things" he observes others doing, and what his advice is. His experience level seems a little light to be writing with that kind of tone.

That said, he does seem to have experience with a wide array of different platforms, client companies, etc.

I think he would get more people to pay attention if he would post something based on those experiences. Or, if it's going to be a "this is bad, do this instead" post, use your own experience...something you started doing badly yourself and then recovered from.

<comment><USER3> It may be just that stage in developer's life ;). A mark of a youngster.

I remember when I was 3-4 years into programming, I used to rant about style and best practices too. I now look back at it as evidence of my lack of experience (writing tone, especially, is a good indicator of it), but I did learn hell of a lot by writing those walls of text. There's something about writing things down in a coherent form that solidifies thoughts.

<comment><USER4> Experience cannot replace enthusiasm.

The one junior in our office is _fresh_ out of university. He's in the team that does all the difficult stuff. Most of all, he's incredibly green. However, he's constantly listening, and attempting to contribute, to conversations between the "sages" in the office. In a few months he has become more senior than many of the people who have been working there for _years._

I'd much rather work with someone like Kamil than that vitriolic "expert" on Reddit who claims you need 15+ years before you are able to think about your job.

<comment><USER5> The people I most fondly remember working with somehow managed to become really good while keeping all the good parts of being juniors.

At one company I worked for, there was one guy, a kid, really, the youngest person on the team, who was approached by _everyone_ for help. No matter whether the problem was front-end javascript, back-end python, something to do with algorithms or a difficult regex, he could instantly switch context and help out. And if he couldn't help, he'd come over a few hours later with a better solution than you had thought up in the interim.

And yet, he was ever humble, smiling, and never seemed bothered by being interrupted. He didn't make you feel like you were stupid while at the same time giving you a solution and properly explaining it. Never mind that he was half your age, it never felt humiliating.

He's the kind of programmer I aspire to become, both in skill and attitude, and I wish there were more like him around.

</comment></comment></comment></comment><comment><USER6> The primary emphasis of this article seems to be: "Stop playing with code and start reading books". Reading a book is a great way to get a lot of theoretical knowledge but mapping it to a real problem or solution is what causes the knowledge to stick. Programmers have to balance theory and usage to do well.

You can't learn to be an artist by studying everything about paintbrushes first. Certainly you could, but it won't help you understand the motions to paint. At the same time randomly using any brush that can barely work probably won't get you the results you want. I hope the author someday realizes that almost everything is a continuum. Lamenting that "programmers of today" don't read enough books doesn't really tell you much - only that he wishes the people he see's would think more about theory.

<comment><USER7> A lot of newbies get stuck in what I call a "tutorial loop": They finish some mediocre/hand-holding tutorial, but they don't feel like they can write anything yet, so they go to another one, and another one, etc. They never end up building anything because they preoccupied with being "ready" before doing anything.

I say, stop reading tutorials, hit up the documentation/IRC, and build something. Won't be easy but that's how you learn!

<comment><USER8> I encounter the same thing when people try to learn to study Japanese -- they keep dancing around it by reading about how other people learned/studied, weighing the pros/cons of various approaches and textbooks, etc.

I call it "analysis paralysis."

<comment><USER9> I think it is paradoxically a lot harder now to start than it used to be, way back you had basic on your computer (if you started when I did) or maybe turbo pascal (some years later), and that was it, you wanted something you started to write.

Now say you want to put together a web application, you're going to google and immediately you'll get a billion stack options with very opinionated people in each camp, it's hard to choose what to do.

Having _some_ guidance to start is good, otherwise you end up like I did in my teens, where the second program I started writing was a text adventure game where every room was a separate block of code with if/equals text parsing where I eventually ran out of memory due (64k wasn't much) if I had found that article talking about text parsers and data structures it would have saved me a lot of time :)

Nowadays though it's hard to get only _some_ guidance if you want to start on something, and so analysis-paralysis is a significant risk.

<comment><USER10> I've been a full time developer for 8 or so years now, and I can say, the most complex personal projects I ever finished were when I started in BASIC, before I knew what an array was.

That is partly due to lack of motivation to work outside of work, but partly due to analysis paralysis when I try starting a new project. I get pretty far in, and then realize all the things I should consider and scaffolding I need to build, etc, that I lose interest.

So in other words, I agree.

<comment><USER11> Yep. The more you learn, the more you realised how little you knew. It's pretty bad actually. Not sure how to get out of it.

<comment><USER3> There's a trap hidden there as well, one I realized only recently - you not just realize how little you know, you are also increasingly unable to discern the importance of it.

Say you want to make a homepage. You've learned of Node.js, you've discovered Chef and Ansible, you've heard of Docker and Redis, you've seen Heroku and DigitalOcean. Where should you put it? Which tool should you use for automation? Is Grunt enough, or do you need Gulp? Which Yeoman generator should you use? Is LESS better than Sass?

The answer it: _it doesn 't matter, ignore that stuff_. Grab a random hosting (or VPS, if you know your way around Linux), hand-write some HTML and CSS, sprinkle with JS and that's it. You don't need IT infrastructure management, you don't need build tools, you don't need _any_ stack. Just make that homepage, maintain it for a while, and notice which parts are the most annoying. Then think about how you could make those pain points disappear. _Then_ see if any of those cool tools can help. It's much easier to understand them if you know what problem they're actually solving.

<comment><USER12> Honestly I love this comment. That is _such_ a good way to look at things.

And here I am today. Ostensibly trying to remake my website, but actually dicking around with about 4 different PHP frameworks, switching back and forth every few hours. I think I'm going to go grab the HTML/CSS from it, and go back to basics.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I don't learn through reading a book, I can't apply it to a scenario in my mind. I've tried.

I do learn through playing around with code and deconstructing existing code. There's a crucial second step to this bit though - working out why it works. Without that, you've not really learned anything at all, you just know that if you poke it for a bit, it will eventually work.

People can get negative effects from tutorials, documentation, stack overflow too. Mainly where they see a piece of code that works, copy-paste it, tweak it a little and then leave it there.

I think the article is based around the wrong argument. The most important thing is working out how it works, not how you get to the stage of having code.

Edit: Not running code before committing and seeing that it works sounds horrible, is this a done thing? I feel it really shouldn't be.

<comment><USER14> Sometimes reading does give you an epiphany. Even though most for me too of the time a from scratch bit by bit building is the best way to learn.

<comment><USER13> I still read stuff, but it's usually when I'm in the "how" stage and focused on what I've written rather than just generally reading.

</comment></comment></comment><comment><USER15> I think it's a shame that so few people these days know what a smalltalk development environment looks and feels like. There is no distinction between learning and experimenting. It's all part of the same feedback loop. It's a shame that almost no modern programming language these days provides the same kind of workflow. If they did I think the author would have a different take on learning and experimenting all in one go instead of segmenting things the way he did.

<comment><USER16> Feel free to write an article and tell us about it, I'm interested.

<comment><USER15> It's just a vague recollection now. I wouldn't be able to do it justice. It's one of those things that doesn't translate well into words anyway. The best thing you can do is download Pharo Smalltalk and start playing: [http://pharo.org/](http://pharo.org/).

</comment></comment></comment><comment><USER17> I agree with a lot of the posts here, but noticed one way of learning (specifically about programming, but it applies to most creative endeavors I've enjoyed) that I have not seen mentioned, which is to learn by teaching. I'm self-taught, and there is an enormous segment of things I've learned by trying to help someone with something I had No Idea how to do.

A couple lifetimes ago (say, 99-01) I used to spend a lot of time on a back- then-well-regarded designers forum, and every time a web development question would pop up, I generally didn't know the answer. I was just learning, myself, and the questions always intrigued me. So I'd dig in and start googling and hacking and reading / researching and documenting and finally write up a thorough response. Follow-up questions came with more hacking and research, but always ended in an answer, even if it was "no clue - but here's where I ended up...".

I'd eventually become very well known in that community as an experienced developer, though I was generally answering questions I had no business answering. That turned out to be very lucrative for me over time as those designers got further into their careers - some of whom I've been working with on-and-off for more than a decade.

I did the same in the early days of StackOverflow. I'd see an interesting question pop up that I knew absolutely nothing about. I'd open up my IDE of choice at the time and start hacking away. 50 browser tabs and a few iterations later, and I'd have an answer. Sometimes it was weirdly brilliant. Sometimes it was ridiculous. But I'd learned TONS along the way.

I still do the same when I start new projects. I start with my own questions. I flip everything I've done before upon its forehead, ignoring previous assumptions. I open hundreds of tabs and email myself a whole bunch of links to read after I've slept a bit more. And then I pick a few things that seem reasonable and start running until the project looks like something tangible. I've built quite a few successful things this way, and consistently learn quite a bit more every step of the way.

</comment><comment><USER18> I don't disagree that it's important to really understand the code/system/tech that you work with and change, but I personally only reach that understanding in the first place through trial and error. My preferred way of learning is always to do a little reading to build a mental model of how something works, and then a lot of experimentation to validate or invalidate that model.

</comment><comment><USER19> "Just trying things in production" is a serious problem.

"Trying things in development" is I think a necessary step in learning ... you have to get to that point eventually, and that comes I think before the "change" thing the author is worried about. I am concerned that the author's concern the way it is worded in that article may inhibit this desirable step in the learning process.

"Just trying things in development, if it works, push it down the line, instead of digging deeper" seems the problematic thing to me.

</comment><comment> a-dub I have no idea what I'm doing but I'm writing about what makes a good programmer.

</comment><comment><USER20> And then there are people who like reading and learning about coding more than actually coding. We don't get stuff done because it isn't perfect.

<comment><USER21> Oh yes, I battle with this all the time. Then once you finally finish coding some part, you'll have learned a lot once again, so instead of working on another part, you feel the need to refactor/rewrite the first part instead to get it closer to perfection.

<comment><USER3> In my case it was a phase. In time it switched into "oh shit oh shit I couldn't code my way out of a paper bag if my life depended on it", and then it stabilized.

</comment></comment></comment><comment><USER22> He's got a reasonable argument - to a point. I've done massive quantities of reading myself. But hacking away at the LibreOffice codebase has taught me that for everything I know in theory, I'm not necessarily able to implement straight away in practice.

I've had occassions where I've had to try to work around issues, but it _really_ helps to have experienced and helpful devs around on the Freenode IRC channel. I mean, they expect you to do your own research first, but if you really are stuck and need some pointers they are pretty helpful to have around. And they help you progress with your coding.

So I think theory is great, but mentorship (even informal and sporadic, because getting advise from experienced devs is, IMO, a form of mentorship) is pretty much essential. Not all theoretical ideas are going to work well. For example: design patterns. These are great and I'm a massive fan, but they won't necessarily be useful in all cases. Let's say you decide to implement the Composite Pattern - well, not a bad thing. But if there is a performance critical part of the code then it may not be the best thing to use.

Another issue, of course, is where there are differences in opinion on how to do something. Some people really want to use relational databases, others graph databases. If you read up on the theory behind a graph database, but not on relational databases, then you might decide to use them where they aren't appropriate.

And then there is the issue of the sheer scope of reading about a subject. Often there is so much information that you can get lost. Or it's so advanced that it's hard to get started - though in most areas I'm finding that this is getting much better as information is disseminated more widely on the Web.

</comment><comment><USER23> I'm very thankful for people like this who acknowledge they don't know what they are doing. I've worked with far too many people who are convinced they know exactly what they are doing (and argue with you ad-infinitum) and truly haven't got a clue. It's painful.

<comment><USER2> The article isn't quite what the title implies. The author does, in fact, seem to be convinced he knows exactly what he's doing, all the time :)

</comment></comment><comment><USER24> >Good developers know how things work.

>Great developers know why things work.

I disagree. I don't think anyone who knows the how but not the why ought to be calling themselves a developer at all. Knowing why an application is laid out the way it is a key prerequisite for knowing what parts of the application you can change easily, and which parts will require careful regression testing.

<comment><USER25> That assumes that knowledge is available from some extra-textual source (e.g. other developers.) I think the author means to say that great developers will, _when handed an arbitrary undocumented mess_ , seek to use the code build a mental model of the _intent of its designer_ —whereas regular developers will stop after building a mental model of the code itself.

<comment><USER22> It depends. There are cases where the intent of the designer is bat-shit insane and it's just not worthwhile (after a while) to really get to grips with the code. There are times when it's best to rip out the code and replace it entirely.

Admittedly, this occurs less frequently than when refactoring would be appropriate, but it does occur.

</comment></comment></comment><comment><USER26> The author is right. I met these kind of "programmers". When I started working at my current company, I was promised that I can learn from senior Python developers with 5-10 years of experience. I had 2 years of experience at that time. They couldn't teach me a single thing about Python in 10 months. They write code without any basic knowledge what is happening. They don't even know the tools the other developers wrote.

Example 1: Guy (10 years experience) is running an svn admin command on the main production repository he never tried before, (never read the manual for it) realize it doesn't do what he thought it would do, and press CTRL-C wildly.

Example 2: I set up Jenkins for automating deployment, installed a couple of plugins for it. Guy (5 years experience) made a deployment job using a plugin without reading (or asking me) anything about it FOR THE PRODUCTION ENVIRONMENT. Took hours to find out he thought the field does one thing but it's purpose nowhere near. A couple of minutes reading upfront would have spared 3-4 hours of unnecessary work and frustration for him.

Example 3: Guy (10 years experience) wants to write an XML parser which deals with unicode. Randomly(!) putting encode() and decode() calls and cursing that accented characters doesn't appear correctly. I explained to him how he should approached the problem and he succeeded at the and. I'm not sure he could have made the program work correctly or if he did, he was not able to know WHY.

Example 4: Guy (10 years experience) comes to me asking help about locale switching in Python. I never used that part of the standard library, so I just opened up the Python documentation and worked out the solution in 5-10 minutes (he sitting next to me). He did not even looked up the documentation for the function he was calling. I'm pretty sure he wasted more than 10 minutes trying to solve the problem...

I had an "AHA" moment when I realized if I read upfront much more (documentation, manual, any kind of help page) about the topic I'm about to use, I can finish much-much faster and understand the problem from the first moment much more deeply.

I started learning Python by reading the whole tutorial [0] upfront and learning Django by reading everything in the documentation, like I was learning for an exam. In two years I gained much more knowledge about Python than any of these guys.

[0]: [https://docs.python.org/2/tutorial/](https://docs.python.org/2/tutorial/)

<comment><USER27> Thats an interesting approach to learning. I have used Django for nearly 5 years, more or less full time, and I haven't read every part of the documentation.

I did read through all of the stuff about mixins for generic views, and at the time it didn't make much sense.

A while later I started using some formsets and the django-extra-views package, and using class based views for a small project. After that hands on work, I see how they all fit together.

<comment><USER26> The best for me to read upfront a bit and understand the big picture well, then dig into, do something with it. If I don't understand parts, I read it again and code it again. I rewrite things all the time :) as I learn new concepts.

</comment></comment></comment><comment><USER28> I have a different opinion on this. There are 2 types of programners: 1\. The novice - I have no idea what I'm doing 2\. The experienced one - I am A god It's as simple as that!</comment>


Ask HN: Fun lures to teach a little brother to hack? - <AUTHOR>

I have a brother who has struggled with behaving at school since kindergarten; he is now 15 and, because of recent and increased upheaval on his part (I can't say I blame him) is now being home schooled. He's a very intelligent kid who     loves computers and I'd like to take an active role in his education.
I'm currently a university student studying computer science, so I figured I'd put together a "Hack101" curriculum which we could work though during the course of the year as an elective alongside his core subjects; the class would  serve to lure him into computing via subjects more appealing to his demographic, i.e. mischievous, (somewhat) deprecated tricks that would be exciting for a youngish guy.
Thus far I have a couple of topics in mind, two being buffer overflow and mail spoofing; of course, these two take some working up to---that's how I plan to sneak in some legitimately useful material like x86 familiarity, stack architecture, and maybe some TCP/IP stuff.
I'm seeking other fun, relatively innocuous topics we could cover and possibly some resources on them. Any suggestions? Thanks very much! <comment><USER2> Did I read it right? Do you really want to raise another script kiddie? There are tons of ways to teach him ethical hacking, games are the easiest and the most fun. Show him how to mod a shooter, or download something like Game Maker and show him how to create a simple platform game. Don't teach him the kind of silly trick that can put him in more trouble.

By the way, why you are assuming that, because he likes computers, he will like hacking? Most male teenagers like cars, but very few of them are interested in fixing or modding them. Help him find his own vocation, and support him. He doesn't seem to be the kind of kid you can "shape", anyway.

<comment><AUTHOR> Hey whoa pal, I didn't say I was going to hand him a copy of L0phtCrack and tell him to get to it (note my use of the word 'innocuous'):

First of all, I said that we would be talking about deprecated tricks, just silly things where the exploit environment would have to be set up such that one could use these tricks.

Secondly, more of the citizenry should be aware exactly of how the most common exploits work as to prevent future pieces of software from suffering the same poor design.

Thirdly, I chose security topics because I myself am interested in them; I wanted to choose a topic that I'd be interested in as well because that way I have the tenacity to actually develop lesson plans, lectures and homework throughout the year.

<comment><USER3> "First of all, I said that we would be talking about deprecated tricks, just silly things where the exploit environment would have to be set up such that one could use these tricks."

Even the crusty old stack-based buffer overflow can still be exploitable if the people who wrote the code in question didn't use any mitigations. It's plugging my own work, but the Green Dam censorware vulnerabilities from June (<http://www.cse.umich.edu/~jhalderm/pub/gd>) were stack-based overflows, and I got a remote shell in the lab through Firefox on Windows XP. Apparently, DEP was not properly activated in that build of Firefox. It's even worse with unpatched XP, which, IIRC, has no DEP at all.

</comment></comment></comment><comment><USER3> You may be able to bait him into learning how to program by showing him what the effect of a successful exploit is (i.e., remote shell). However, I think it takes too long to learn how to program alone to attempt to teach someone to program for the first time _and_ teach security at the same time. Nonetheless, the reading list for my advisor's graduate-level security course is on its website at <http://www.eecs.umich.edu/courses/eecs588/>, and there's a new undergraduate security course being taught this semester at <http://www.eecs.umich.edu/courses/eecs398/> . Porting Aleph One's _Smashing the Stack for Fun and Profit_ to AMD64 is a useful exercise.

DSPython is a Python port to the Nintendo DS. If he's into that, you might be able to get him to learn to program with the goal of making DS games. I tried this with my younger cousin, but he's too young (under 10) to have the required attention span. My patches to get DSPython working with newer devKitPro are at <http://github.com/swolchok/dspython/tree/master> .

<comment><AUTHOR> He's not completely new; he's done some C and Lua, so it wouldn't be a dead start. Great information, thanks very much.

</comment></comment><comment><USER4> The way i started hacking, was to thinker game config files, or mess with game mods and see what are they made off. I actually did dis with only one game(Lock on), because i am not much of a gamer. Lock on was a good choice because i was obsessed with russian war planes and aviation, and because it had an active modding community. I regret not actualy learning how to make mods(other than skins for the planes) but i used to thinker a lot with config files and some of the simple mods.

If you're 16, and the most advanced thing you've done with your computer is to reinstall windows, a moddable game and notepad can do you a lot of good.

Plus, the game is really cool, i learned all sorts of stuff about planes, physics, tactics and i got to blow up American tanks with the Su-25's impressive arsenal.</comment>


I hate installers - <AUTHOR> http://unhandledexpression.com/2010/05/17/i-hate-installers/

<comment><USER2> Nice breakdown, but if you ask me, even the article's suggested reduction to "only" 5 screens is ridiculous. There are many things I've always hated about Windows, and this kind of brain-deadness is near the top of the list.

The iPhone App Store model is pretty much perfect: one step, "install the thing" (or two, to authenticate, if you haven't recently). Any progress is asynchronous, and it is completely obvious when the installation is finished. All of the app's files are in one place, which eliminates 99% of the reason an installer/uninstaller seems necessary in the first place.

Granted, the iPhone auto-selects an install location for security reasons, but there's no reason a desktop OS couldn't choose someplace "obvious and reasonable" to save a step for the user. Of course, this also requires that apps be easily relocated after the fact, which is another stupid flaw in many OSes...

<comment> X-Istence Mac OS X did it right: <http://news.ycombinator.com/item?id=1356203>

</comment></comment><comment><USER3> Mac OS X has the best "community norm" for installing software: 1\. Download compressed .dmg from Awesome Software Inc. 2\. OS X unpacks it automatically and mounts the drive on your desktop (with a new Finder window open) 3\. Drag your app to the Applications folders 4\. No step 4.

<comment><AUTHOR> I agree, Mac OS did it right. But I'm not a fan of packaging two different architectures in one installer. It makes the package bloated (which is also a problem with Windows installers).

</comment></comment><comment><USER4> How are you going to improve the user experience by cramming 6 different questions (which make no sense at all to a newbie) in to a one window?

That has an oxymoron feel into it, don't you think?

<comment><USER5> Which is why you hide them behind a screen that lists "Install with Defaults". USA English, Program Files, Simple Install settings. I agree with the author that 95% of people install software this way.

It doesn't really matter. It doesn't get better than DMGs. Oh, unless you use a FOSS system.

</comment></comment><comment><USER6> Installing things is the single greatest improvement when switching to a modern Linux distribution. Click, click, done.

</comment><comment><USER7> I hate installers too, which is why whenever possible I'll pick a no-install program.

Forget all the installer stuff, download an exe and run it and there's the program. At the most, download a group of files, extract them into a folder and run, and there's the program.

Definitely keep the advanced and simple choice when "simple" means "we install the toolbars you would never choose if we asked".

Also dump the freaking download managers (Adobe, Microsoft) and FEAD Systems Optimiser (Adobe) and the download-a-program-which-downloads-the-installer (Microsoft .Net framework).

<comment><AUTHOR> Well, in the article, I especially told to forget about making money with toolbars. But I'm not confident one can easily teach this kind of good manners to developers...</comment></comment>


Iceberg Lettuce Deserves More Than the Wedge Salad - <AUTHOR> https://www.newyorker.com/culture/kitchen-notes/its-time-to-admit-that-iceberg-is-a-superior-lettuce <comment><USER2> I've always preferred iceberg lettuce. It's the fastest to chop into a salad, the outer layer protects the inner layers. It has a better leaf to husk ratio than romaine and the green coloring is more pleasing on the table than any red lettuce varieties imho.</comment>


Presenting iPhone mockups using Dropbox - <AUTHOR> http://www.awayback.com/presenting-iphone-mockups/

<comment><USER2> This is one of those times where I kick myself for not thinking of this myself. Currently my solution for this involves emailing myself PNGs and then opening on the phone phone by one.

Thanks for the tip!

</comment><comment><USER3> HN?</comment>


Google Chrome moving away from 'blacklist' and 'whitelist' - <AUTHOR> https://9to5google.com/2020/06/07/google-chrome-blacklist-blocklist-more-inclusive/ <comment><USER2> This followed after golang project which is supported by them got rid of blacklist/whitelist and also master/salve terminologies.</comment>


2011 MacBook Pros Crash Under Load - <AUTHOR> http://discussions.apple.com/thread.jspa?threadID=2768351

<comment><USER2> I had the same issue. Instantly cured it by disabling the "Automatic graphics switching" option. Hopefully there will be a better fix forthcoming, but for now it's pretty easy to solve. Even with that headache, this is by far the best laptop I've ever owned. Amazingly fast.

<comment><USER3> Same here, it would appear Apple is a bit too aggressive with it's power management and it's confusing the living daylights out of the ATI driver when it's on automatic.

Switching manually works a treat sofar... <http://codykrieger.com/gfxCardStatus/>

<comment><USER4> Good to know, thanks. I'd only ever run it in manual mode anyway. How is the computer supposed to know whether power or speed is more important at any given time?

<comment><USER3> It doesn't really, anything using OpenGL / CoreGraphics triggers discrete graphics.

<comment><USER5> Even silly things like the mail client Sparrow. I had to use gfxCardStatus to get anything more than 2-3hrs of battery life because my mail client is trying to get "fancy" on me.

</comment></comment></comment></comment></comment><comment><USER6> They're STILL replacing the old Macbook Pros with the dodgy Nvidia graphics cards from years ago, for free.

I wouldn't be too worried about this.

<comment><USER7> What particular model of MacBook Pro are you referring to? Those with Nvidia GeForce 9400M ?

<comment><USER8> The early-2008 models, with the NVIDIA GeForce 8600M GT. <http://support.apple.com/kb/ts2377>

<comment><USER9> Mine is still rockin, same vid card... best machine I've ever bought! (first mac)

<comment><USER10> Mine works, doesn't exactly rock, more like generates huge amounts of heat. This after a Powerbook g4 that needed 4 or 5 logic board transplants, and a plastic macBook (core 2 duo) that was dog slow.

</comment></comment></comment></comment></comment><comment><USER11> Somewhat off-topic, but I trust the judgement of those here. I'm in the market to buy one of these. I was wondering whether current owners feel the extra 2MB of L3 cache justifies the price-bump of the 2.3GHz processor.

<comment><USER12> Depends on whether the code you're running will use the extra cache. In some HPC and gaming circumstances, people write in assembler to make sure a code loop or the data structure being worked on fits totally within the L1 or L2 cache of the processor, which can provide a huge performance improvement.

But, for standard use without such specialized workloads, $250 a minor clockspeed and cache improvement doesn't make much sense.

You'd probably get a much bigger boost from adding a SSD or going up to 8GB of RAM in the machine. I'd buy these aftermarket - RAM especially is a good deal as you can get 8GB of DDR3-1333 for less than $90 - [http://www.newegg.com/Product/Product.aspx?Item=N82E16820148...](http://www.newegg.com/Product/Product.aspx?Item=N82E16820148345)

<comment><USER13> Definitely second getting an SSD instead. It's the single biggest upgrade you can do to a PC today, especially for laptops. If you can live with 128gb of storage, a RealSSD C300, the current performance king (although check Anandtech for updates, this is changing all the time) is $264 from Newegg:

[http://www.newegg.com/Product/Product.aspx?Item=N82E16820148...](http://www.newegg.com/Product/Product.aspx?Item=N82E16820148348)

This thing will do 30,000 4k writes a second, which is orders of magnitude more than a 2.5" mechanical.

<comment><USER14> I would actually give the SandForce drives a try. They have better garbage collection. TRIM is coming in Snow Leopard, but it is always nice to have good garbage collection on the hardware.

SandForce wins right now in $/gb, and 4K writes. It loses in anything that is limited by the SATA2 bus, such as sequential transfers.

<comment><USER15> The stories about TRIM coming in Lion also pointed out that so far it was only supported on Apple's own SSDs.

Also, the major problem with Sandforce drives on Macs is that their firmware can only be updated a) under Windows, in Boot Camp, and b) with an MBR- formatted disk. That is bullshit.

[http://eshop.macsales.com/Customized_Pages/Framework.cfm?pag...](http://eshop.macsales.com/Customized_Pages/Framework.cfm?page=sf_firmware.html)

</comment></comment></comment></comment></comment><comment><USER16> Same issue here. Just got a MBP a few days ago, and I've had this happen twice while compiling in Xcode. It's not your average crash though. It's not a kernel panic. iTunes streams keep playing, so I know the wifi card is still working fine. It wouldn't surprise me if it's an ATI issue.

</comment><comment><USER17> My 2010 17" model will get corrupted graphics and eventual a full kernel panic due to issues with automatic graphics switching that are usually triggered by Safari+Flash. Uninstalling Flash, turning off automatic graphics switching, or just using Google Chrome for Flash sites fixed that.

My first-gen 2006 Macbook Pro used to crash under heat/load as well, which was suspected due to misapplication of thermal paste. I sent it into Applecare a couple of years later and they took care of it (even replacing my scuffed up shell).

<comment><USER18> Chrome was causing my 6-core mac pro w/ Nvidia Quadro 4000 to have kernel panics a while back, but it seems to be working fine now.

</comment></comment><comment><USER19> I had the 13" 2010 version and got bumped up for the free exchange since i was in the one month window and got the new 2011 version.

I noticed that when i started Parallels and opened my second windows VM instance everything came to a stand still and i had to restart. I also saw someone in the Apple discussion threads mentioning a similar issue while running Vmware fusion. I will try the 'Automatic graphics switching' and hopefully it gets better, else back to the Apple store!

<comment><USER20> Huh? Since when can the 13" model switch graphic cards ?

</comment></comment><comment><USER21> You used to be able to trust Apple for manufacturing quality. I now build my own for any work machines and only keep an iMac around for casual browsing/music/video. How the hell did this slip past basic TESTING ? This isn't the first manufacturing blunder that has been swept under the table with Apple, and it won't be the last. If you put down over $1000 for a computer, it should work.

<comment><USER22> Obligatory a mac is a pc comment.

</comment></comment><comment><USER23> I have a 13-inch 2011 MBP, i7 Model with 8gb of RAM.

I am running 3 simultaneous video encodes that takes 3 Apple Keynotes and encodes to .mp4, .3gp and .ogv from a terminal + Playing 3 other Keynotes in Quicktime + Random music in iTunes + Playing The Social network all at the same time for the last 35 minutes and I am running fine.

Can I run any test for anyone to help out?

</comment><comment><USER8> Is this just the new MBPs (the ones with Thunderbolt) or does it also apply to the batches of the previous model that shipped in early 2011?

<comment><USER24> I think the ones shipped early this year are referred to as 2010 models.

</comment></comment><comment><USER25> I just got my 2011 15" - opened it up to put a new SSD in it and found that the heatsink/fan combo off to the back corner was missing all the screws that would have secured it. I bet this doesn't help. I have yet to run into any issues but haven't done anything to stressful with it.

Anyone else with issues going to pop theirs open?

</comment><comment><USER26> I already replaced this model once. Got the replacement and and had 1 freeze so far but none after I switch to discrete only

</comment><comment><USER27> They could try downclocking for temp fix.

<comment><USER28> Sounds like its graphics, not cpu

<comment><USER29> Exactly; downclock the graphics.

<comment><USER30> so down-clocking means, losing a bit of its power?

</comment></comment></comment></comment><comment><USER31> Im having the exact same problem though with a 2007 mbp though so it could be a software update that I installed

</comment><comment><USER32> Mine is 2009 model and I have yet to face this issue. Although my Optical drive died this January and it throws out DVDs when inserted but that is the only problem I have faced so far.

EDIT: Was just stating that 2009 MBPs have no such issues IMHO.

<comment><USER33> Seems like all the reports are on the _2011_ version, with isolated incidents on the 2010 version. 2009 is mentioned nowhere.

<comment><USER34> My Fall 2009 model overheats and locks up and crashes when playing games like Starcraft 2 or Left 4 Dead 2. That's not to say every notebook from 2009 had cooling problems, but some certainly do.

<comment><USER35> Why don't you return it? This would be an intolerable problem for me.

I don't expect to see any kind of lockups or grey-screen, ever. It just shouldn't be part of owning any computer, especially a mac.</comment></comment></comment></comment>


Quora Raises Questions - <AUTHOR> http://pogue.blogs.nytimes.com/2011/02/01/quora-raises-questions/ <comment><USER2> The "Ask Question" button is a horrible, horrible UI thing and I'm really surprised it hasn't been fixed yet. The reason it's so bad is because its next to the search bar, and the expected UI for a search box is there is an (optional) button next to the box you can click on to perform the search.

<comment><USER3> This was an intentional choice. It attempts to fight duplicate questions by forcing users to see the search results for their question before asking it.

I don't claim this to be the right design choice, but it is worth noting that there are trade-offs to consider. Optimizing for "ease of asking new questions by new users" is probably not optimal.

<comment><USER2> I suppose I see the tradeoff, but it sounds like an idea to me that went over well in a design meeting but never actually was user tested (I could be wrong?) There are other ways to ensure a user doesn't ask a duplicate question without having to convolute the search box with the "ask question" use case, which is certainly less common.

It was incredibly confusing to me, a software guy, so I can't imagine how confusing it must be to the average user.

<comment><USER4> It's been user tested for many months now and the results are a consistent stream of confused users and duplicate questions. The response: long-timers there moan about how stupid the new users are.

</comment></comment></comment></comment><comment><USER5> Sites like Quora with bad design and all that are very common.

But sites like Quora with all the buzz and publicity they have, NYT writeups and all, that doesn't make a lot of sense.

Interesting that the Quora devs apparently don't believe in HTML templates, all their layouts are hand coded in Python (source: [http://www.quora.com/Why- doesnt-Quora-use-templates-or-an-OR...](http://www.quora.com/Why-doesnt-Quora- use-templates-or-an-ORM)) . It's of course doable, but I think choices like these have a subtle impact on the end result.

disclaimer: I am the author of a popular HTML template system for Python.

</comment><comment><USER6> What designers at Quora (& web designers in general) should know; MOST "normal" or "novice" users are often afraid of "breaking something".

I've seen it in everyone from my Uncles, to my girlfriend to my grandfather.

If there are no guides, or instructions; then users will be afraid they will accidentally click into a irreparable state.

<comment><USER7> For a site like Quora though, I believe that things should be obvious enough that instructions _aren't_ needed. They're not there yet, but that's what they should be aiming for.

<comment><USER4> indeed. Yahoo! Answers accomplishes this. So does Naver in South Korea. It's not rocket science.

</comment></comment></comment><comment><USER8> "Why not make this thing easier for normal people to figure out?"

For me, at least, the value of Qoura is that normal people haven't figured it out yet. Once Eternal September hits I suspect I'll slowly lose interest as noise drowns out the signal (c.f. Slashdot, Reddit, Stackoverflow, ...)

<comment><USER9> HN is pretty easy to figure out and thanks to Techcrunch et al has had ample opportunity to be overrun with junk. So it can be done. In fact it should be easier because here we all share a front page, but Quora can use the social graph to massage results.

<comment><USER10> HN doesn't have to exit at a multiple of $86 million to generate returns for investors and so can _afford_ to be a niche site carefully curated to be uninteresting to the mass market.

<comment><USER9> The curation is mostly done by users voting on others' contributions, not by a user interface that is too hard for dumb people to understand.

</comment></comment></comment></comment><comment><USER11> When someone who has 1.3 million twitter _followers_ can't grasp the concept of _following_ on your site, then there is a clear communication problem that needs to be resolved ASAP.

<comment><USER12> I found Pogue's hyperventilation over Follow a bit bizarre as well. Did he really not understand the concept (which was borrowed) or was he playing Devil's Advocate for mass consumption? Or did he simply find following people in a Q&A site an odd mix? Following questions and topics makes perfect sense to me.

"...the only question I have for Quora is, "Why not make this thing easier for normal people to figure out?""

Other than the Question/Search box (which at first I found confusing because it was, well, rather innovative), maybe he'd like a bit more user messaging each step of the way to put his mind at ease.

I wonder how feels when he opens the box to his new Mac/iPhone/iPod/etc. each year without any instruction manuals?

<comment><USER13> I'll preface this with a mention that I haven't taken the time to check out Quora yet. The only interaction I've had is to read the occasional answer someone links on twitter.

> Following questions and topics makes perfect sense to me.

But he didn't mention questions as a source of confusion. Those would be almost understandable (new message for new answer). As to topics, is it new questions, new answers? What type of events trigger a notification in my Quora stream? As to following users its the same question, what events trigger a notification?

For things like twitter its fairly straight forward to the point that normal people look at you funny. "Why would I want to know what someone had for breakfast?" is a perfect example of great UI (though, perhaps a deficit in marketing). The reason its great is that the entire system is easily and directly communicable to non-techies. The "What are you doing right now?" (which I just noticed is now "What's happening?") is such a simple thing that most people don't realize that its an example of genius UI.

I have just formulated a theory that technical folks are at a disadvantage for identifying and creating a great UI experience. A stereo type of technical folks is that they like to solve puzzles. So a UI that presents tiny puzzles in the form of "What do you suppose this does?" are like tiny injections of happy directly into the blood stream. So if the annoyances are unnoticeable they can be a good thing.

The fact that you switched from "confusing" to "innovative" means that while they may have a good idea hidden in that particular UI device, it is not good UI because it requires the user to figure it out. Good UI is not something you figure out. Good UI is "I know what this is and what it will do without ever having seen or used it before."

</comment></comment></comment><comment><USER14> It amazes me that this site has any users at all! There is no path from the home page to browse the content - its sign up or go away. I think very few people will sign up to a site without seeing its content, I know I won't! Quora marketing must be really good to have overcome this barrier to achieve the success they clearly have had...

<comment><USER15> They initially recruited some really good (especially for social networks) "experts" who made the content a cut well above your run of the mill social Q&A site.

Early adopters were intrigued by this early high-quality community. "Less early" adopters were in turn attracted by the (still) high-quality content; this group was followed by people like me, who have seen the site's quality gradually decline. Heaven help the people who have followed _me_ onto Quora, much less the people who will follow _them_... :)

</comment></comment><comment><USER16> I somewhat hate the fact that websites had to spoonfeed almost everything to the user. Quora does look rudimentary, but it gets the job done. i think the simplicity is not ugly, but rather clean.

I would love to see a site whose part of the user experience is actually experiencing the site first hand on one's own, like the smart people that they are. (or is it a user-filtering system)

</comment><comment><USER17> I love Quora but also agree with David Pogue. I find lots of great answers but there's a lot in the UX that's overwhelming and confusing to the normal user. If I was Quora I would reach out to David Pogue, fly out to NY, meet with him for a couple hours, and pick his brain on how to make Quora easier for the normal user.

<comment><USER18> Or I would do some proper usability testing with new users.

</comment></comment><comment><USER19> I love the Quora UI.

Making the site hard for new users could even be seen as a feature. Keeps youtube/yahoo users away.

</comment><comment><USER20> I tried to find the quora account I signed up for last year, with which I associated my twitter account, and it was pretty much impossible.

</comment><comment><USER21> So the guy's basically asking for a manual when we all know generally, people don't read. Why doesn't he just click around and see what happens?

The entire article baffles me.

<comment><USER22> "Normal" people never just click around and see what happens. They're afraid of breaking something.

The author is not asking for a manual, he's asking for a better design for first time users. I had a similar impression when I tried Quora too. It seems to be mostly designed for power users who have already invested the time to familiarize themselves with the site. However, only tech-savvy people are going to do that, which will make long-term growth difficult for Quora without a design change. On the other hand, it will maintain the overall quality of the site by limiting its appeal and size.

<comment><USER23> This is a really key insight: "They're afraid of breaking something..." is an attitude that Software People never understand but is deeply ingrained in most other people. "Click around until stuff starts to happen and see what sticks" is never a good UI interaction choice and Frontend Software devs need to test all their designs by running it past their (non-computer savvy) grand moms.

</comment></comment></comment><comment><USER24> > The account sign-up process says that Quora can use your Facebook or Twitter > identity to save you time — so why did I have to enter my e-mail address and > make up a password anyway?

This is what annoyed me most when signing up for Quora.

<comment><USER25> Facebook and Twitter just help Quora verify your identity, while also ensuring new users have nice profile pictures. They still have to create their own unique account for you, which is why they want your e-mail.

<comment><USER24> I felt like I got duped into revealing my Facebook account for no reason. The page indicated that I'll 'save time' but as far as I can tell I didn't save any time at all.

<comment><USER26> Quora uses your Facebook friends graph to determine who you'll initially follow on Quora. It's been critical to onboarding new users and showing them relevant content immediately.

<comment><USER27> for me its clearly a reason to not sign up with Quora...</comment></comment></comment></comment></comment>


Show HN: Twicklish, a lightweight HTML5 client-side Twitter summarizer - <AUTHOR> http://www.twicklish.com

<comment><AUTHOR> Twicklish gives you a bird's-eye view of your Twitterverse.

At a glance you can see which of your search channels kick out the most tweets, or better still, log in to Twitter to see which of the people you follow have the most chat!

We built Twicklish to get a quick-and-dirty relative feel for how many people are tweeting about our product, Qiqqa.com, vs. its competitors.

Pure client-side HTML5 – no server side components whatsoever. Login to Twitter is performed directly between your browser and Twitter.

At a glance: \- The bigger the search segment, the more tweets it has. \- Hover over a segment to get its timeline. \- Click near a tweet dot to see the tweet details. \- Tweets by the same author are the same colour and line up to get your attention. \- Add the search segment topics that interest you on the top-right hand side. \- Add your personal Twitter timeline segment by logging in to Twitter on the top-left side.</comment>


ZetaSQL – A SQL Analyzer Framework from Google - <AUTHOR> https://github.com/google/zetasql <comment><USER2> It is somewhat similar to [https://calcite.apache.org/](https://calcite.apache.org/) which I like quite a lot. The calcite documentation is top notch as opposed to a bunch of MDs in a directory providing no coherent flow of information.

<comment><USER3>
        We will also be releasing more documentation over time,
        particular related to developing engines with this framework.

Looks like they intend to resolve that.

<comment><USER4> The intention is always there

</comment></comment></comment><comment><USER5> Direct link to the documentation one-pager: [https://github.com/google/zetasql/blob/master/docs/one- pager...](https://github.com/google/zetasql/blob/master/docs/one-pager.md)

<comment><USER6> > 22365 lines (18045 sloc) 599 KB

That is a truly enormous "one-pager". I thought my scroll bar was bugged!

<comment><USER7> This is an in-joke at Google.

<comment><USER8> To elaborate: The spirit of a one-pager isn't to cram everything onto "one page", but rather to have a "single document" that contains all the context/content you need instead of having hyperlinks to large swaths of other documents (doing a depth-first search in documentation at Google can be a huge time-sink).

Source: Another Googler that wastes time on memegen

<comment><USER9> company whose verb has come to mean "to search" has employees who dislike search

<comment><USER10> Or maybe they just value an easy-to-use CTRL+F search

</comment></comment></comment></comment></comment></comment><comment><USER11> I might be a bit slow but what is this exactly? Is it something I could add to a data layer and get SQL semantics from?

<comment><USER12> SQL parser. Input: text in a standardized SQL dialect, output: a data structure describing what the user wants done.

<comment><USER11> That is really cool. I've been looking for this

</comment></comment></comment><comment><USER13> I have to presume this is in production with the BigQuery web UI. It has brilliant validation and completion, arguably better than Looker. I'd let that framework into my hypothetical SQL UI any old time it likes.

</comment><comment><USER14> This is neat, although the docs don't say which (if any) SQL standard it follows.

<comment><USER15> I'm pretty sure it wouldn't follow any; I can't imagine any significant benefit (if you're not chasing strict compatibility, general SQL should take you more than far enough on the beginner-friendly front) and significant benefit from doing a custom SQL

<comment><USER16> What significant benefit

<comment><USER17> Things like late row lookups in mysql that are not an issue in postgres [https://explainextended.com/2011/02/11/late-row-lookups- inno...](https://explainextended.com/2011/02/11/late-row-lookups-innodb/)

<comment><USER18> aren't both executions (mysqls' and postgresqls') acceptable from an SQL point of view?

I don't think the SQL standard mandates how the DBMS executes the query. In fact, I seem to remember that was on of the purposes of having an high level language.

</comment></comment></comment></comment></comment><comment><USER19> Seeing as this introduces a language, a couple examples on the landing page wouldn't be a bad idea.

</comment><comment><USER20> Does it support Druid as engine? Is it possible to connect it with Metatron Discovery?

[https://github.com/metatron-app/metatron- discovery](https://github.com/metatron-app/metatron-discovery)

</comment><comment><USER21> Wasn't this internally called "GoogleSQL" \- sorry was 2 years back, all I remember was switching one syntax to another, and certain things easier in previous syntax, but not well defined, and vice versa...

<comment><USER22> Still using Dremel SQL occasionally and I tend to agree that certain things are easier in Dremel SQL. But it's a canonical example of continuously applying convenient patches making things worse. While something is easier to write, expressing something else becomes impossible. Examples are complicated Protos with multiple layers of repeated/map/struct stuffs...

With Google SQL, it's really verbose but a conceptually coherent design just gives you less surprises.

I'd say I like the latter more.</comment></comment>


Canada's Decision To Make Public More Clinical Trial Data Puts Pressure On FDA - <AUTHOR> https://www.npr.org/sections/health-shots/2019/10/11/769348119/canadas-decision-to-make-public-more-clinical-trial-data-puts-pressure-on-fda <comment><USER2> Anything measured improves. The more data and metrics, the better safety of drugs can be observed. It is always a good thing to get more insight and information to help harm reduction and safety.

> _Transparency advocates say clinical study reports need to be made public in > order to understand how regulators make decisions and to independently > assess the safety and efficacy of a drug or device. They also say the > reports provide medical societies with more thorough data to establish > guidelines for a treatment 's use, and to determine whether articles about > clinical trials published in medical journals — a key source of information > for clinicians and medical societies — are accurate._

There really is no reason why this data should not be more public at the FDA. Transparency improves safety, and that is their stated mission.

> FDA Mission

> The Food and Drug Administration is responsible for protecting the public > health by ensuring the safety, efficacy, and security of human and > veterinary drugs, biological products, and medical devices; and by ensuring > the safety of our nation's food supply, cosmetics, and products that emit > radiation

<comment><USER3> I suppose one counter-argument might be that if the data is public, drug companies would have more transparency into the FDAs methods, that might allow them to tailor their trials in a way to target the FDA's criteria in a way that would be bad for outcomes? Maybe?

But I come down on the same side, more transparency is probably better, and the FDA really probably only resists transparency here to avoid their own accountability to the public.

<comment><USER4> 'Your account has been banned for violation of policies.

You are not allowed to know why you are banned.

You know what you did.

All your data has been deleted and is no longer accessible to you."

\---Any cloud provider

Is that kind of secrecy useful in any way? No. It, instead serves to cover up abuses and oversights. Transparency, especially in government is essential. People should have privacy as their right, but the government should not.

<comment><USER3> Ya, I agree. Just trying to come up with the strongest possible counter- argument. Which may be that the FDA depends on some level of secrecy in order to prevent drug companies from overly tailoring their trials to their internal criteria. To be clear, I don't find that argument convincing, it's just the best one I could think of.

</comment></comment></comment></comment><comment><USER5> I just skimmed the article but I think this is partly due to a controversy over medical device failures. Investigative journalism TV shows discovered a high rate of failure in medical devices.

A large number of implanted devices like hip joints, pacemakers, insulin pumps,catheters were failing. That information wasn't public and when it was made public people freaked out.

[https://www.cbc.ca/news/health/implant-files- investigation-m...](https://www.cbc.ca/news/health/implant-files- investigation-medical-devices-1.4924384)

<comment><USER2> Keeping this information from the public, even if people freak out, is dangerous. It would be like car companies not telling you about a recall on your vehicle. The main reason they don't want it public is economic/competitive impacts to the companies that lobby to block it.

The medical industry does deal with these cases and let people know when they have the issue. However, if you keep information from everyone, it doesn't always get to the people it affects.

Being more transparent could also lead to better product development iteration on medical devices if feedback is more available.

Hiding information on problems suppresses solutions. Suppression of information can be catastrophic, ask the FAA.

</comment></comment><comment><USER6> Another environment where Canada is tops is aviation incident reporting.

That's why you see a lot of reports on avherald.com from Canada.

<comment><USER6> Here's a link to check the Civil Aviation Daily Occurrence Reports:

[https://wwwapps.tc.gc.ca/Saf-Sec-Sur/2/CADORS- SCREAQ/rs.aspx...](https://wwwapps.tc.gc.ca/Saf-Sec-Sur/2/CADORS- SCREAQ/rs.aspx?rt=NRL)

Just don't choose the default of today, today's not over yet!

Here's 123 from yesterday: [https://wwwapps.tc.gc.ca/Saf-Sec-Sur/2/cadors- screaq/rd.aspx...](https://wwwapps.tc.gc.ca/Saf-Sec-Sur/2/cadors- screaq/rd.aspx?rt=NRL&rd=2019-10-11&fa=&rg=)

It includes a lot because it includes anything that goes in/over Canadian controlled airspace, including a lot of ocean.

</comment></comment><comment><USER7> We really could get more out of this data through international collaboration and through linked data (e.g. URIs for columns). See: "Open, and Linked, FDA data" [https://github.com/FDA/openfda/issues/5#issuecomment-5392966...](https://github.com/FDA/openfda/issues/5#issuecomment-539296649) and "ENH: Adverse Event Count / 'Use' Count Heatmap" [https://github.com/FDA/openfda/issues/49](https://github.com/FDA/openfda/issues/49)

With sales/usage counts, we'd have a denominator with which we could calculate relative hazard.

</comment><comment><USER8> This is a terribly worded title by NPR, should be "Canada's Decision To Make More Clinical Trial Data Public Puts Pressure On FDA."

Having said that I really hope the FDA will follow suit.

</comment><comment><USER9> When I first woke up, the title here matched that of the article. Why change it?

<comment><AUTHOR> I posted the story with the original title. I didn't edit the post title afterwards so it was probably changed by staff.</comment></comment>


Ask HN: Lots of non-traditional work exp – Pimp my CV? - <AUTHOR> CV: http://justus-moeller.rhcloud.com/
I'm doing a pretty bad job of presenting my experience here. I have been "self-employed" my whole life. I simply don't know how to write this in a way that doesn't scream "loser". The question is: How do I improve my CV?
Hidden in my CV are, essentially, roughly 10 years of software development ranging from low level C (and the occasional messing with Assembler) all the way to front-end web dev.
On top of that, we are looking at at least 7 years of data science, some of which predates the very name.
The formal Math/Physics education.
A successful, albeit low, start-up exit.
Please help me pimp my CV. <comment><USER2> At the top, remove the large photo (or make it smaller).

Then write: "10 years of software development experience ranging from low level C all the way to front-end web dev. 7 years of data science experience. Startup founder."

Then write a sentence of the type of work you're looking for. (startup? freelance?)

Then list your experience, with dates, going back those 10 years of experience. Remove rates. (the 80$)

Also, you should put this on LinkedIn (regardless of how much you hate it.)

</comment><comment><USER3> What brotchie and petervandijck said, also:

* Put some effort into the design. Writing plain HTML while also indicating you have run a website and have front-end experience might seem contradictory to a potential employer. A nice font, simple layout and basic responsiveness would go a long way.

* A startup exit, even if small, is a considerable achievement. Consider adding "Acquired by $COMPANY", or if not at liberty to disclose the company name, something like "Acquired by large German corporation".

* Add contact information. If I were to stumble upon your CV online and be interested in hiring you, I should not have to spend time Googling for some way to contact you. Listing your email in the footer is sufficient.

* I assume not getting your degree yet is because of a few pending courses - no need to mention this here. You did the majority of the work and actually completed a thesis project. When you are invited to an interview, disclose it there.

* Some of the stuff you list (machine learning libraries, contributions to poker theory) sound really interesting. Is there anything you could link to here? Blog post, Github, etc.

edit: typo

<comment><AUTHOR> Thanks for the response:

\- This is not meant to be found by potential employers. I just chose the form to show it off here because it seemed to be the easiest way to me. The content is what matters. Additionally, I'd rather not work on front-end anyway :P

\- I got bought out by my partner for a decent sum because it was better for us to part ways.

\- Sure

\- Not getting the degree yet is actually because my health insurance is tied to me being enrolled in university. If I finished the degree, I would be without insurance while requiring treatment, which seemed unfortunate for the time being. All the coursework is done, receiving the degree is practically a formality.

\- Not particularly. Github was obviously not a thing back then and I've lost most of it on past computers. I haven't touched poker in almost 7(?) years.

</comment></comment><comment><USER4> When listing experience, it's best to follow the pattern:

I accomplished X, relative to Y, by doing Z.

For example for SocialInsight.io:

\- Instead of "Instagram Analytics": Helped X customers increase their Instagram revenue / engagement / etc by Y% by building an Instagram analytics Software-as-a-Service.

\- Instead of "Big Data on a small server": Enabled fast in-memory Instagram stream processing by develping an optimized in-memory storage format that brought the per-post in-memory size from 300kb to 30kb. (I have no idea what you did, but actually frame the technical achievement that made it possible.)

What'd I'd like to know if I were assessing your CV as a potential hire:

SocialInsight.io: Is it just you, or a team? How many customers? How much revenue? Did you individually do all the design, coding, marketing? or did you have co-founders / other employees.

Freelance Data Mining: What was the most impressive job that you worked on? How many jobs have you done? I'd drop the $80/hr, and don't mention Upwork. Could get away with replacing Freelance Data Mining with "Data Mining Consultant."

Affiliate Marketing, need things like:

\- Built a successful direct response affiliate marketing business that funnelled insurance leads to brokerages.

\- Developed a custom analytics suite which allowed me to increase conversion rates from x% to x% and decrease traffic acquisition costs by x%.

Professional Online Poker: This is super interesting.

\- Funded my university study through playing Limit Hold'Em poker online.

\- Contributed "blah" to modern poker theory.

\- Ran analytics on opponent data to gain an edge, etc.

Things to remove:

\- Note about girlfriend's death

\- "Machine Learning before it was cool" makes you sound like somebody I wouldn't want to work with. Better to say "Pioneered the application of machine learning to _blah_ aspect of online poker. Built out custom machine learning libraries to implement methods _blah_."

\- "I believe that inbound communication should come to me. I should not have to hunt for it" Wording of this is a red flag for me. Also, no real idea of what Zophoz is.

Echoing petervandijck: Definitely create a LinkedIn profile and create (or list) your Github account.

</comment><comment><USER5> If it's not on LinkedIn, you might even consider this site as your own personal hobby html page. No one will find it, no one will read it. Such is life, make use of professional CV sites to find employment. Put in that one day of effort it takes to make it real good, then relax and watch the interview requests flow like spice.

<comment><AUTHOR> Thanks for the response. This was not meant to be found by anyone though. Just to show it to HN.</comment></comment>


Show HN: Nowy Connect – Ultra-Local LinkedIn meets name tags - <AUTHOR> https://nowyconnect.com <comment><AUTHOR> Nowy Connect ([https://nowyconnect.com](https://nowyconnect.com)) is a smartphone app that helps people be smarter networkers. The app shows users the professional profiles of nearby people. It is designed to be primarily used at events, to help people forge new professional relations, by helping them choose the best chat partner available. Think of it as ultra-local LinkedIn or digital name tags.

There are 3 things that set Nowy Connect apart from other people-discovery apps: proximity, real-time, better privacy. First, proximity. The app focuses on the people who are up to 30 meters away from you. People a mile away do not appear. Second, real-time. The app shows you people who are right there, right now. Not people who were where you are half an hour ago. Third, better privacy. The app uses Bluetooth Low Energy to figure out who is nearby, not GPS or users' checkins - this means they are more accurate w.r.t. who is nearby, protects better users' privacy, and has lower battery consumption.

The app uses IBM Watson to make it even easier for people to find out interesting people to talk to. You just tell it who you'd like to meet, for example, "I'd like to meet mobile application developers," and Nowy Connect will notify you when someone matching your description is nearby. Check out the video: [https://www.youtube.com/watch?v=FTAw5aOHw0o](https://www.youtube.com/watch?v=FTAw5aOHw0o)</comment>


The Pain of Fame - <AUTHOR> http://online.wsj.com/article/SB10001424052748704281204575003570232360564.html?mod=WSJ_newsreel_lifeStyle

<comment><USER2> Reminds me of Dostoevsky's "Idiot". Idle people are a danger to themselves, it'll do you good to have a purpose in life that's not entirely about yourself.

</comment><comment><USER3> Great link, grellas. The New Yorker recently had an interesting article on Andy Warhol. Very Michael Jackson'ish type of guy... It's really simple; when one builds a foundation on weird things, instead of values, weird things are bound to happen.

Here's the New Yorker article: [http://www.newyorker.com/reporting/2010/01/11/100111fa_fact_...](http://www.newyorker.com/reporting/2010/01/11/100111fa_fact_menand)</comment>