Show HN: EmployIQ – A slightly smarter job search engine - <AUTHOR> https://www.employiq.com

<comment><AUTHOR> Creator here. This is a little project I'm working on to apply some better natural language processing to job searching. As it stands now with most job search engines, a search for "software engineer" won't return jobs posted as "software developer" when obviously these jobs should appear in the same results. As such, I'm applying some machine learning/language processing to try and group relevant jobs together. The site currently has about 20,000 jobs and is adding about 3,000 per day - by no means comprehensive, but the list of sources is growing. About 80% of jobs found are tagged with a correct career tag. Take a look at some examples:

* [https://www.employiq.com/jobs/all/programming](https://www.employiq.com/jobs/all/programming) \- contains all jobs relating to software development, even though they have a wide range of titles and descriptions.

* [https://www.employiq.com/jobs/all/mobile-app](https://www.employiq.com/jobs/all/mobile-app) \- dives further into software development for mobile apps, iOS, and Android

* [https://www.employiq.com/jobs/all/culinary](https://www.employiq.com/jobs/all/culinary) \- I'm not just focusing on tech jobs, I'm trying to categorize every common job in the USA.

Lots of little tweaks to make over the coming weeks, but I wanted to share what I've done so far and hear any feedback you all may have.

Edit: Email firstname.lastname@example.com to say hi.

<comment><USER2> Interesting. I like the simplicity. Is there any way to get in touch with you?

<comment><AUTHOR> Sure, it's firstname.lastname@example.com

</comment></comment></comment><comment><USER3> This seems interesting. Just a couple of suggestions:

1\. Perhaps add an autocomplete for all the tags/tracks instead of a drop- down. An additional benefit of this text based search-box would be to see what all are people searching for which they can't get in autocomplete. These terms in descending order of frequency should give you a nice view of demand areas where your listings (or tagging) are not proving to be enough. (This should also address the many comments you are getting for no text-based search

2\. The site looks minimal and nice, but you might also perhaps want to maybe consult a good designer for a nice color palette. The blue color of links to jobs (column "Position") kind of sticks out form rest of the theme of pages. Also with minimal amount of efforts the drop-downs(which you will hopefully soon convert to autocomplete boxes :) ) can be styled to look better. (Just my opinion.)

And I was also curious where are you sourcing these listings from?

Good work! Hope to see this project progress.

</comment><comment><USER4> I like the clean and simple design. A couple of things:

1\. I think some categories should be lumped into one, and be allowed as filters. Eg., I see Node.js, Perl, PHP programming etc, but I think adding a category for each language will make it too noisy. I'd lump all these into 'backend developer' and allow the user to filter by the specific language.

2\. Users should have a way to suggest categories/filters. I do mainly Python and Javascript, and didn't see either on the list. So I searched for web developer, full-stack, backend, frontend, and didn't find any of those either. It'd be nice if users could suggest these.

<comment><AUTHOR> Thank you for your thoughtful feedback.

On point 1, there is currently a category for "programming" which includes all languages ([https://www.employiq.com/jobs/all/programming](https://www.employiq.com/jobs/all/programming)) and on point 2 there is a "Python" category and for front-end JS there is a "UI/UX" category. So I think the bigger issue is how to better display the list of categories. This will be a trade off of specificity vs. simplicity. Ultimately the solution is to allow you to type a search term and then automatically translate that into the appropriate category. Several commentors have complained about not being able to free enter a search term - the reason this isn't there is I simply haven't built the search-term-to-category engine yet.

</comment></comment><comment><USER5> Lacking even a basic keyword search, I'm afraid this product falls well short of its tagline. Can you call it a search engine without a search feature? I do appreciate the ability to see jobs in a given category across all regions, but I was quickly frustrated by not being able to search.

<comment><USER6> I have to second this. In what way is this smarter job search? Selecting a keyphrase from a drop down and a region does not make a job search engine smarter.

</comment></comment><comment><USER7> I'm not in the US so don't have a use for this but I had to post to say I love the design and simplicity - makes a change from the cluttered crap/fluff I have seen in this sector.

</comment><comment><USER8> Could you please add "US-only" in your title? Thanks.

</comment><comment><USER9> Love this. One kinda hard feature suggestion for the future is filtering out recruiters (when/if you implement an 'advanced' search).

</comment><comment><USER10> Housekeeping jobs, but no marketing or SEO related jobs. Looks like a good start though!

</comment><comment><USER11> why won't it let me search for a keyword if it's a search engine?

</comment><comment><USER12> You should let people type their location and maybe their job as well.

</comment><comment><USER13> I searched for jobs in Dallas, TX and it showed me jobs for Virginia

<comment><AUTHOR> Good find. It's confusing Arlington, TX with Arlington, VA. This is happening because "Arlington, VA" was listed as "Arlington, DC" because it's a suburb of DC and thus wasn't matching. Mutli-state regions like this are a tricky. I've updated it so new jobs will be categorized corretly and old jobs will be recategorized tonight.

</comment></comment><comment><USER14> Why there is no 'Python Programming' in 'All Professions' :(

<comment><AUTHOR> Good suggestion, adding that now.

</comment></comment><comment><USER15> can you explain what makes it "smarter" ?</comment>


jQuery Desktop - <AUTHOR> http://sonspring.com/journal/jquery-desktop

<comment><USER2> I want a desktop OS that runs web apps so well that it obviates the need for a browser, not an app that runs in the browser that emulates my current desktop OS.

<comment><USER3> Shades of ActiveDesktop and desktop HTML widget things.

My desktop background used to be a Webcam image. The novelty wears off, though.

<comment><USER4> I really liked ActiveDesktop. I made my desktop a web page with links to common places I went on my computer.

</comment></comment></comment><comment><USER5> Impressive work and I don't want to be discouraging but I think that transferring the Desktop paradigm to the web is probably not the best way of building powerful web interfaces

<comment><USER6> Agreed. It's like making a car that looks like a horse+cart. Fun to do, but no one would use it.

</comment></comment><comment><USER7> Now if only you could run emacs on your desktop in your browser on your desktop.

<comment><USER8> Browser-based X11 implementation?

...

</comment></comment><comment><USER9> I think something like this could be ideal for a hosting company's client interface.

<comment><USER10> I think one of the great things about the web is having client interfaces tailored specifically to the domain being dealt with. I don't think a traditional desktop interface - that is something that is great at handling disparate/undefined domains - is a good choice for something with a finite scope.

</comment></comment><comment><USER11> I was thinking keyboard shortcuts would have been implemented, went to the demo page , opened "my computer", hit Alt+F4 (thinking that itd close the "my computer" modal, boom, my browser closed.

Would be nice to integrate keyboard shortcuts in there as well. Good job though.

</comment><comment><USER12> I'm updating the desktop from proof of concept to full app. <http://www.prototypic.net/rssbus/desktop/desktop.html>

</comment><comment><USER13> Reminds me of <http://robin.sourceforge.net/> which was sort of an all-XUL version of this.

</comment><comment><USER14> I have a question. What about Chrome OS, I think the idea behind it is to build something like this, or?

<comment><USER14> Sorry but can someone explain me why was I downvoted. I thought it was a legit question.

<comment><USER10> I assume you've been down voted because Chrome OS as the name implies will be an operating system (not a web page) and a cursory investigation would have revealed that. Aside from that, the structure of your sentence is awkward and further implies a lack of thought prior to clicking 'reply'.</comment></comment></comment>


UK Ordnance Survey map of Mars - <AUTHOR> https://www.flickr.com/photos/osmapping/25012985956/ <comment><USER2> Anyone know where you could get a physical print of this?

<comment><AUTHOR> It's CC-licenced, so any print shop could do it. Even Staples. I use netprinter.co.uk for printing plans.

<comment><USER3> It looks _gorgeous_ on A0. I almost want to get one done on flimsy paper so I can have trouble folding it, but that's a little too close to Martian rambler cosplay.</comment></comment></comment>


Ageism is forcing many to look outside Silicon Valley - <AUTHOR> https://www.usatoday.com/story/tech/columnist/2017/08/04/ageism-forcing-many-look-outside-silicon-valley-but-tech-hubs-offer-little-respite/479468001/ <comment><USER2> We hear it over and over again and I understand the reluctance to address it (it can be scary to step out from the crowd) but when is an organization with clout, such as YC, going to take a stand on this issue? Until an organization has the desire and courage to step out from the crowd and fund ideas/startups, without regard to age but, on the strength of the idea and the team, then this issue will forever be in the news.

This would also be an opportunity to expand the pool of startups to fund and to analyze growth, ROI, etc. compared to the standard business practice of funding startups with young founders.

How can we say we care about people and on finding solutions for the problems facing people today when we shut the door on a large segment of society simply because they are over 40? i wonder how Bill Gates, Jeff Bezos, Peter Thiel, Sergey Brian, or Eric Schmidt feel about this topic if there was mandatory retirement at the age of 40 in tech. Would they think they still had something to offer? If the answer is they would, why is everyone ignoring this issue?

<comment><USER3> > If the answer is they would, why is everyone ignoring this issue?

Nobody is ignoring it. It's just if you haven't moved up the tech/management/etc ladder by your late 30s/40s, there just isn't a place for you in silicon valley/tech startup scene.

I started at a startup when I was 20. All the devs were in their 20s. Our founder was 29. During milestone/release/go-live times, we'd work 20 hours a day and sleep at our desks and wash in the 1 toilet bathroom the entire week or two prior to get our job ( deliverable ) done. Now that I'm older, that's something I just physically can't do. I just don't have the energy or stamina for it. Also, family responsibilities means I can't do it.

The startup scene is such a raw, all-or-nothing, winner-take-all scene that it'll always be a young man's game.

Also, younger people are viewed as more innovative, more immersed in new tech and quicker to learn. As much as experienced is touted, it's not worth much in the startup scene. Certainly it helps if you are the founder/team lead, but for the regular devs, it just makes sense to bring in the cheaper, hungrier, "quicker", eager college grads or young devs.

Put yourself in their position. Imagine you just founded a startup. Would you really be willing to hire overpaid 40 year olds who have to be home by 5 or 6 PM? Also, would you as a 40 year old be comfortable in a dev team with a bunch of 20 year olds?

This is why as devs grow older, they transition to more established corporations. It's why VCs love to fund younger founders. That's where the innovation/energy/risk-appetite is. 40 year olds have kids college funds to think of, their retirement funds, healthcare, etc to worry about. And as you grow older you get more conservative and set in your ways.

Also, as younger people/devs continue to create winners like google, facebook, snapchat, youtube, reddit, microsoft, etc, that's where the money will go.

Silicon Vally and the VC community isn't about charity or societal good, it's about making money.

<comment><USER4> You understand that the vast majority of jobs in Silicon Valley are not start ups. Google, Apple, Facebook -- these aren't start ups, and people aren't working 20 hour days there.

Moreover it's just not the case that someone can be productive for 20 hours a day for any extended period of time. Maybe you can do that for a few days, max, but then your productivity plummets and you'd be better off working 8 hours. This notion that 20 year olds have amazing concentration ability, rather than just poor time management, is believed only by 20 somethings with poor time management skills.

<comment><USER3> > You understand that the vast majority of jobs in Silicon Valley are not > start ups. Google, Apple, Facebook -- these aren't start ups, and people > aren't working 20 hour days there.

The guy I responded to was talking about startups and VC funding, so that's why I focused on startups.

> Moreover it's just not the case that someone can be productive for 20 hours > a day for any extended period of time. Maybe you can do that for a few days, > max, but then your productivity plummets and you'd be better off working 8 > hours.

Sure. But when you have deliverables and are time constrained, you just don't have much choice. The client has expectations and we had to work extra hard to meet them. 20 hour workdays are definitely not viable over the long term.

> This notion that 20 year olds have amazing concentration ability, rather > than just poor time management, is believed only by 20 somethings with poor > time management skills.

I mostly talked about stamina, energy, quicker to learn, etc. Not sure about concentration ability, but I do tend to think younger people with a passion are better at concentrating and focusing on something. Also, I'm no longer a 20 something. Sadly, I'm one of those heading to 40s rather quickly.

I didn't mean to upset people. I was just talking from experience and trying to explain why VC money goes to younger founders and why startups prefer younger devs.

That formula isn't going to change until older founders and older devs start creating googles, facebooks, apples, microsofts, etc.

It isn't a bias against older people since almost all of the VC investors are older people in their 40s, 50s, etc. It's a matter of what demographic has delivered the 1000000% returns.

It isn't set in stone. Money will go where money is made. Especially in a high risk, high reward environment like the startup sector.

Believe me, as someone who is older now, I would like nothing more than to see things change. Being viewed as over-the-hill when you turn 30 is a difficult pill to swallow.

<comment><USER4> But again, the article was about discrimination in the valley, and the parent was also referring to sv, although they again identified sv as a start up scene when it's really not.

Sure, start ups discriminate against older workers, against women, against blacks, etc. Hell, I've seen them discriminate against people with different musical tastes. Start ups, by definition, are small businesses and we tolerate/have lower standards for small businesses than large corporations. That's why you have restaurants that only hire family members, for example.

Fortunately start ups are kind of irrelevant in terms of total developer employment in the valley. There just aren't that many start ups and they don't survive that long, so they don't account for most employment. They do capture the imagination of the valley, so whenever someone brings up age discrimination in the valley, the come back is always "well, in a start up.."

>That formula isn't going to change until older founders and older devs start creating googles, facebooks, apples, microsofts, etc.

Intel was started by Robert Noyce when he was 41. Gordon Moore was 40. Geschke and Warnock were 45 and 42 when they founded Adobe. Cisco and AMD were founded by 30 somethings. Huang was 39 when he founded NVIDIA. Interestingly in China, Jack Ma was 35 when he founded Ali Baba -- would he have been able to raise capital in SV today?

None of the original companies in SV were founded by someone in their 20s. It just didn't happen. The idea that only 20 somethings can start companies is very new, and whether or not it's a good idea, it's not the case that workers in their 30s and 40s need to "prove" that they are able to found big companies, as we are all living in the shadows of great tech companies founded by people in this age bracket.

</comment></comment></comment></comment></comment><comment><USER5> Depending on the industry, there is a tendency to hire founders of a certain age group. Certain industries like mfg and international trade favor older founders who have acquired knowledge and widespread contacts over decades. Other industries that need the latest college-produced science & tech favor the newest grads from 1st tier universities. It's all about risk reduction and outsized returns. Where energy and time count most, send in the youth. Where widespread personal networks and deep domain knowledge count most, send in the grey hairs.

</comment><comment><USER6> Just another symptom of the oversupply of Talent in this industry.

<comment><USER7> Nail on the head. Cut H1b admission in half and older software engineers will be in demand again.</comment></comment>


One of the most egregious website rips ever.  - <AUTHOR>

Evan Luthra (@evanluthra), who seems to view himself as some sort of design/developer savant, completely ripped of www.thesearethings.com for his personal website www.evanluthra.com. Not only did he copy their beautiful, detailed design (clearly it took them a long time) pixel for pixel, he even copied their nifty little flip-book, which included pictures of THEIR faces. And hes try to promote and profit from his theft. Pretty low. Let the shaming commence <comment><USER2> Did they allegedly rip off your website? Did you originally design the website? If you answered "no" to the last two questions, this definitely does not belong as an HN submission.

If you said "yes" to any of the last two questions, it still doesn't really warrant an HN post.

Inform the affected website owners and be done with it. Quit trying to stir up drama. Flagged.</comment>


Glitch crashes global US passport, visa operations - <AUTHOR> http://bigstory.ap.org/article/glitch-crashes-global-us-passport-visa-operations

<comment><USER2> i had the pleasure of applying for a visa on the month they installed that on my native country one or two years ago.

you can see that it was implement by incompetent people because they do all the mistakes on form validation. e.g. "last name invalid" errors. Not to mention databases resets every couple days while the system was being deployed, because my scheduling disappeared a couple times.

and apparently, it is all down hill from there.

</comment><comment><USER3> What's the bet Microsoft's involved?</comment>


CoffeeScript's Time is Waning For Me - <AUTHOR> http://mattgreer.org/articles/coffeescripts-time-is-waning/ <comment><USER2> "As my project grows in size, significant whitespace becomes more and more of a problem. It's just plain not readable or visually parsable. Your files become a wall of dense text. Damn you Python, damn you to hell!"

I would appreciate an explanation of this paragraph. How exactly does project size compound issues with significant whitespace? Are you indenting five levels or something?

<comment><USER3> Anyone who has maintained Makefiles will have a strong opinion on semantic whitespace.

Maybe not _opinion_ , but _reaction_. Generally involving visceral fear or anger.

It's not that it's always bad, every hour of every day. It's that one time, at 1am, when you shouldn't be working but you are, something doesn't behave properly, and it turns out Bob the Intern re-indented a block of code to use tabs instead of spaces[1], but you couldn't see it because your editor is configured to use four spaces per tab and your coding standards dictate four spaces per level of scope.

[1] Why are you using spaces anyway, you complete and utter savage?

<comment><USER4> Which is why you set your editor to use something other than the same number of spaces as your indent levels. It works especially well if one isn't a multiple of the other - e.g. having the editor display tabs as 5-space width.

</comment></comment></comment><comment><USER5> The author uses CoffeeScript for completely different reasons than I do. While a lot of the convenience features of CoffeeScript are awesome, I use CoffeeScript more to compile JS to standards-compliant, consistent code. Variables are hoisted, commas are automatically inserted, semi-colons are taken care of, and the entire script is put into a lovely self-invoking function that helps fool-proof things.

Furthermore, because CoffeeScript requires (sort of) a compilation step, errors are _caught_ and debugging becomes MUCH easier than it ever was with plain JavaScript. Most text editors now have plugins that will compile selected text to JavaScript so you can preview the end result and make sure that you're getting the output you want.

The better part? When JavaScript best practices evolve, CoffeeScript can evolve with it, but the code can more-or-less stay the same. Awesome!

<comment><USER6> I couldn't agree more.

</comment></comment><comment><USER7> Unlike the author, I love significant whitespace and am enjoying nimrod lately with it.

I'd love to see a CoffeeScript variant for TypeScript. TypeScript has the structural things of CoffeeScript and more (OO paradigms, member visibility, modules, typing, etc) but much more verbose. I have tinkered w/ the CoffeeScript grammar/parser adding in a backslash to denote to type (e.g. "(x\int) -> x * x") and the TypeScript AST and compiler are very easy to work with. I just haven't had the enthusiasm to build a complete project. That would be my dream language. Until then I think scala.js is a great fit.

<comment><USER8> I love CoffeeScript and am excited about nimrod, but I don't see the point of TypeScript. Honestly I am fairly certain that it was largely created by Microsoft as part of the EEE strategy ([http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish](http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish)) since the main advantage of JavaScript is not having to supply types.

<comment><USER7> I disagree. TypeScript not only attempts to be inline w/ upcoming ES/Harmony standards, but it is not pushed on you in any way. It's Apache licensed and it's not like MS is putting a TypeScript VM in their browser. I love TypeScript's typing system, especially type declarations which are based on whether something has something vs on its named type (i.e. duck typing). There are many editors from MS's free VS express to WebStorm plugins to event IDE's written in TypeScript themselves. I find the language work by MS these days (this, f#, etc) to be really community friendly as opposed to locking in.

Re "main advantage of JavaScript is not having to supply types", I am a static typing fanatic so I am just going to disagree here and spare everyone the religious (or as Yegge would say, political) war.

</comment></comment></comment><comment><USER9> I don't do a ton of js programming, but I did poke around with cs a bit. For me, clean iteration seemed like the biggest win. And then I discovered underscore/lodash. So I don't do as much cs anymore.

Essentially, js isn't all that busted. The busted parts can for the most part be worked around with underscore/lodash and sweet.js (for the really ambitious)

sweet.js

[http://sweetjs.org/](http://sweetjs.org/)

pretty neat pattern matching library written with sweet.js

[https://github.com/natefaubion/sparkler](https://github.com/natefaubion/sparkler)

I do most of my work in Python, so the above experiences and biases may be a direct result thereof.

</comment><comment><USER10> I gave CoffeeScript a shot, and frankly I don't like these JS "wrapper" languages.

First of all if you want anyone else to help you with your code its likely that they don't know the wrapper's syntax and will have to waste a bunch of time learning it. My boss got super excited about it when it first came out and it just caused a lot of headache and wasted time. First I (and all my coworkers) had to learn the language, and then port all of our existing code to CoffeScript. And for what? Some syntax sugar?

Honestly, I don't really see any problems with Javascript's _syntax_. It's everything else.

<comment><USER11> > will have to waste a bunch of time learning it.

Please define "bunch of time". I'm having trouble imagining how learning CoffeeScript would require more than a couple of hours for an experienced developer.

<comment><USER10> A couple of hours is a quite a bit of time IMO. Especially if there's alot of people that need to learn the language.

<comment><USER10> I mean, obviously a few hours isn't honestly that much. But in terms of the actual benefit you're getting by learning CS makes it not worth it at all. Workflow improvements are negligible (if anything, it probably worsens your workflow because of the extra compilation step). There's no compelling performance enhancement. You aren't getting any real benefit from learning CoffeeScript other than some feel-good syntactical sugar.

</comment></comment></comment></comment><comment><USER12> > _[tooling] is perfect with JavaScript_

Tooling is terrible with JavaScript. Even if you use something like Tern, it's still really bad.

You can pass arbitrary arguments to functions. Types and arity isn't checked. Optional positional/named arguments (with default values) don't exist. Passing some options object and "foo = foo || 5" is the best you can do. You can't tell, with absolute certainty, that some object doesn't have some particular property. A _string_ might have a "lenght" property (should have been "length", that was a typo).

Your IDE can make some educated guesses and offer some auto-complete suggestions based on that.

There is also type coercion. Maybe you really wanted to create NaN in a very elaborate manner. Multiplying some array with some object is totally legit. No squiggly line for that.

That's a far cry from being perfect.

Never used something like C# or Java? Dart's tooling is also pretty good, for example. Even AS3 offers much better tooling than JS. TypeScript does of course also offer way better tooling.

JavaScript's tooling is terrible, really.

<comment><USER13> My point is JS tools work with JS as intended, and work with CS to varying degrees of success and with a variety of ways they handle CS. I was a C# developer for many years, so I know what I'm missing.

</comment></comment><comment><USER14> Also relevant: a big question is how CoffeeScript is going to deal with ES6 and the overlapping syntax between ES6 and CS, which may involve breaking backwards compatibility or leaving out ES6 features.

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

 _jashkenas_ > So in general, what I'd like to see mainline CoffeeScript do, is adopt useful ES6, ES7, and ES8 features, as soon as they land in enough platforms/browsers to be widely useful (yield may be at this point already, or very soon), and to continue to try and find a pleasing minimalist syntax for writing and reading them. If this means taking the ES* syntax wholesale, that's fine. If it means minting a new (and hopefully, but arguably, nicer) syntax, that's fine too. And if it means breaking backwards compatibility, that's also alright, as the compiled lowest-common-denominator JS output will still be perfectly compatible with the new stuff.

</comment><comment><USER15> > If you're contributing to the JS community, you're better off writing in > JavaScript. More people will contribute and/or adopt your code.

Quality, not quantity. Maybe the higher quality contributors are more likely to get excited about a cs project over js.

<comment><USER16> Initially I got excited about CS, until I discovered that it forbids shadowing and conflates variable declaration with assignment at the same time, leading to random bugs happening all over the place as I introduce a name that I've used somewhere in a deeper scope. No, identifier names are one of the big problems of all languages and CS gives you even less name locality. Bad.

<comment><USER5> I'd argue that that's a feature. You're _asking_ for decreased code comprehension and bugs when you start using identical variable names everywhere.

I have noticed a lot of "Issues" in the CoffeeScript repo from angry hackers that were mad that CoffeeScript forces them to code with some modicum of responsibility (no drop-throughs in switch statements, no var shadowing, etc.). Doesn't make sense to me why people would blast JavaScript for letting you do stupid shit then get butthurt when a solution takes those same problems away.

<comment><USER16> No, I'm not asking for bugs. I'm asking for a basic feature of natural languages: to define a context where I work, where short, concise words have a precise meaning. This is an elementary thing - its the basis behind namespaces, the drive behind object oriented programming. Its a fundamental design mistake to put limits on this.

But its worse, because its also a silent mistake. Shadowing could be forbidden but variable declaration and assignment could still be different things, and then the compiler could warn you when you try to re-use a name. But no, coffee script will give you random bugs instead.

JavaScript has its rough edges. CofeeScript simply has a rot right in its core.

</comment></comment></comment></comment><comment><USER17> Can anybody explain some good use cases of implicit return? When I was doing a project in CoffeeScript last year (the only time I've used it), I found myself just using the return keyword explicitly because it was more readable, and I never ran into the issue the article talks about where it can be bad to accidentally return something from a function that should return null/undefined.

When would implicit return make code better? Maybe I'm answering my own question, but I can see them being more readable to somebody coming from a Haskell or LISP background than to somebody like me who has worked mostly in C, Java, and Python.

<comment><USER18> > I can see them being more readable to somebody coming from a Haskell or LISP > background than to somebody like me who has worked mostly in C, Java, and > Python

Ruby also has explicit returns. The idea is, every statement is an expression, and so has a return value. You don't need to figure out about whether a statement does or not, it just always does. One less thing to have to think about.

Other things, too, but that's one that that sticks out for me.

</comment></comment><comment><USER19> I have similar issues with coffescript, specifically the pain of significant whitespace is noticable whenever I find myself recalling how to write a simple `setTimeout` (or any similarly structured function) calls correctly, which is pretty much every time I use one as I don't find it particularly natural or intuitive.

Personally, though I'm looking at Dart rather than ES6.

<comment><USER8> This is how I do setTimeout:

      delay = (ms, func) -> setTimeout func, ms

So you can write it like this:

      delay 100, -> console.log "100 ms passed"

<comment><USER19> The problem is it isn't the only situation this comes up in, and the fact that this has to be done at all is a testament to the problems with adding significant whitespace to a language not completely designed for it.

</comment></comment></comment><comment><USER20> I hope coffeescript supports generators.

<comment><USER21> coming soon: [https://github.com/jashkenas/coffee- script/pull/3240](https://github.com/jashkenas/coffee-script/pull/3240)

</comment></comment><comment><USER22> CoffeeScript is waning for me as well but not for the same reason: Dart and/or Typescript seem to be superior solutions, both backed by companies that are going to keep their language alive for a very long time.

I'm curious which one will emerge, though.

</comment><comment><USER23> I avoided learning the fashionable thing for so long, now I'm fashionable!

</comment><comment><USER24> the only thing from coffeescript i think i will end up really missing is switch expressions. When used with conditional assignment it makes for code that is far prettier and more concise than nested if-then-else chains.

[1] [https://gist.github.com/Vertice/ac357533da976990dc4d](https://gist.github.com/Vertice/ac357533da976990dc4d)

</comment><comment><USER6> I literally stop reading when he start whi..talking about hate on significant whitespace.

<comment><USER15> I literally hit downvote when he start whi..talking about whi..talking about hate on significant whitespace.

<comment><USER6> Unlike the whitespace in my code, your downvote is insignificant to me.</comment></comment></comment>


Ask HN: Promoted beyond my level of competence? - <AUTHOR>

Throwaway.  September of last year, I had been at my (small, non-engineering focused) company for 6 months as a Lead Engineer.  My boss quit, and as the highest ranking / most qualified, I was offered the position of Director of Engineering, with the promise that a CTO would be hired soon.  Received a 20% raise and a lot more responsibility.  I looked at it as a challenge, but probably would not have applied for the job.  Fast forward, I've now been in charge for 8 months (no CTO hire yet) too stressed, and not really enjoying all of the random troubleshooting, prioritizing, politics, and managing the team.  I don't get to write code too much anymore.<p>Anyone else been in a situation? Is this an example of the Peter Principle? Is it ok that I don't enjoy these challenges as much as I enjoy technical challenges? <comment><USER2> I don't think you've been promoted beyond your level of competence, I think you enjoy coding more than managerial troubleshooting. There are lots of articles on engineers who prefer engineering more than managing.

Not what you're asking for, but you have a pretty strong hand to play right now. If you went to the CEO and listed the issues that you're dealing with that you would expect the CTO to deal with.

Then say, "These are basically executive-level functions. I'm happy to handle them, but if you aren't planning on hiring a CTO, I'd like the title of VP Engineering and another 20% raise."

<comment><AUTHOR> Great point. I think partially I'm extra hard on myself because I feel like this was a blown opportunity get kick ass, take names, and become VPE. But instead, I came to the realization that climbing the managerial ladder isn't what I wanted.

</comment></comment><comment><USER3> I am in the same position.. got recently promoted to manage a ~20 person team (analytics not programming). It sucks not being able to do actual analysis/project work anymore and the politics are infuriating.

That said, the experience is very valuable. I am planning to take off to start a company soon so managerial experience is definitely handy (not to mention the extra pay!)

My advice is to work on a technical side project to keep your soul from getting crushed (either at work or personal) and learn from the job till you figure out what you want to do next.

</comment><comment><USER4> Yes, the situation you describe is classic Peter Principle. Having the skills to manage people, politics, & priorities requires a special (albeit learnt) skill-set. Senior leadership obviously trusted you and more importantly, you were Johnny-on-the-spot. It's OK, only a whack-job actually welcomes those headaches. Now that you've 'enjoyed' the exalted Director status, ideally where do you want to go from here? What would stretch you professionally?

<comment><AUTHOR> Great question! I've been trying to define the metric by which I measure my success. The salary has been good, as has the ability to mentor and grow my team. I think what I would really love is to have the confidence to build my own thing and be the driver of the car rather than an efficient engine.

<comment><USER4> Good-- you've got a huge opportunity to leverage this platform for your next act. Use this time to salt away cash, author your action plan, and gain managerial experience. Think of it as grad school, 24 months up and out.

<comment><AUTHOR> I'm setting this as my desktop background. Thanks!

</comment></comment></comment></comment><comment><USER5> Personally, I don't think so. I'm still young and probably still naive about a lot of things, but I think the best leaders, in my own experience, have been those who didn't want the position, who used to be engineers themselves. You may have an insight someone with an MBA might not, and unless you're performing poorly according to your companies guidelines, I wouldn't say you're incompetent.

while you may have been promoted beyond your skill set, you can always develop more skills, and as I said, you may have insights that someone else might not see, you'll have more rapport with those you manage because you once worked among them, and I think, since you're stressed, you might care more than someone who was hired off the street.

Maybe you're a great leader _because_ you're stressed by important decisions and responsibility?

</comment><comment><USER6> Do you want to keep doing the job if they get the CTO so you're not overloaded? Or do you want to get out of management?

There's nothing wrong with deciding you don't want to climb the management ladder, but getting "un-promoted" is something where you'll probably want to find a new job. Fortunately, almost everyone is trying to hire competent senior developers, so you should be able to find a new gig before too long - and probably get yet another pay raise to go with it.

<comment><USER7> > getting "un-promoted" is something where you'll probably want to find a new > job.

That's an interesting point. Anyone gone through this that could share their experience with taking a promotion and then "giving it back"?</comment></comment>


Aspiring photographer snaps photos for some Rejection Therapy - <AUTHOR> http://sneakylittlefox.tumblr.com/post/2159137019/rejection-therapy-day-11-december-9th

<comment><USER2> I used to do quite a bit of street photography in Istanbul. It is an awesome way of learning to talk to strangers. The more comfortable you become the more comfortable others are with you. Truly the best kind of rejection therapy around.

This guy ended up buying me tea: <http://mustpax.deviantart.com/art/View-from- the-top-34181357>

</comment><comment><USER3> Is anything where there's a possibility of hearing a 'no' rejection therapy? Asking people if you can take their photo before doing so is just being considerate.

<comment><USER4> He was taking portraits. Not really possible to do without the subject cooperating.

</comment></comment><comment><USER5> Look forward to seeing what else he comes up with. He's definitely got the skills.

</comment><comment><USER6> Mamma mia! Nice shot! Shows you you can get when you get out of your comfort zone and ask.</comment>


Show HN: Minimal build system using just /bin/sh - <AUTHOR> https://notabug.org/akkartik/basic-build <comment><USER2> > This repo illustrates a way to manage a project using just plain Bourne sh, > available on all Unix systems since 1977.

No, this code uses functions, which didn't exist in the original Bourne shell. They were introduced only in 1984.

Source: [https://www.in-ulm.de/~mascheck/bourne/#variants](https://www.in- ulm.de/~mascheck/bourne/#variants)

<comment><USER3> It also uses the "local" keyword, which is non-portable.

People like to bash the autotools, but they exist for exactly this reason - they already spent decades working through all these gritty details to ensure the scripts generated are portable. To paraphrase Spencer "Those who do not understand autotools are doomed to re-invent them, poorly."

<comment><USER4> That's the argument for autotools, but I wholeheartedly disagree. Untested code can be assumed not to work, so if a build script doesn't work on a certain platform, what's the likelihood that the C program it's building will work on that platform? When you see a poorly-written autoconf script checking for basic things like size_t, you have to wonder if the program it's building really supports pre-ANSI C. This wastes real time on not-so-uncommon platforms like Cygwin and MSYS2, where spawning subshells is slow and running ./configure can take minutes.

So if you've never tested your program on a platform where /bin/sh doesn't understand _local_ , feel free to use _local_ in the build script. Bashisms like _local_ are safer anyway. Variable scoping is good. (Though I guess the author's claim of it working in a 70s era Bourne shell is still wrong.)

<comment><USER5> > This wastes real time on not-so-uncommon platforms like Cygwin and MSYS2, > where spawning subshells is slow and running ./configure can take minutes.

That's true, but in my case it turned out to be insignificant. While changing all the autoconf junk in > 100 plugins could move the total build time from 50 minutes down to 40, I'd need an order of magnitude decrease in build time to warrant the work. I say order of magnitude because its only at a 5 minute build time that the entire dev process would see a paradigm shift-- at that point I could, with a straight face, stop shipping Linux binaries and just suggest that users compile the software themselves. (Of course that's not great usability for a whole class of Ubuntu users, but at build time == 5 minutes some other dev could easily come along and package things up with ease.)

Also, the extra wasted time under Windows isn't the fault of autoconf. Try doing `git any_subcommand` in msys2 and you'll get latency so high you'd think it were a practical joke.

Edit: added parenthetical

</comment></comment></comment></comment><comment><USER6> I seriously wonder if the author ever worked on a project with more than around 10k LOC, multiple languages and tools, automatic testing, deployment, version control (merging this build script is going to be a huge PITA).

No, you have to realize you're working on one side of the graph (source code), but your build produces something on the other side (your artifact). Without automatic dependency resolution of you DAG, you're constantly traversing from one side to the other, making the build 'work'.

<comment><USER7> There are a lot of projects that don't meet those criteria. Scale is bidirectional. Tools designed for big projects can have features and designs that don't scale _down_ well. Tools designed for big projects often depend on institutional type knowledge where expertise is spread among multiple individuals...at Google, there teams of engineers managing the single code tree is what allows a monorepository.

Alternatives are not replacements.

<comment><USER6> Yes, it's a team of engineers. But interestingly, Google _started_ with a mono-repo. All through their explosive growth they maintained (mostly, except Android and Chromium) their vision of mono-repo. It clearly shows that their vision of mono-repo works both for small companies, as well as large ones.

A build-script without dependency resolution clearly does not scale. It was the reason to design and implement Make, CMake, Maven, SBT and many others.

<comment><USER8> To add to this, Google spent a lot of time and effort on building a custom build system (Bazel) to make this sort of dependency tracking in a mono-repo easy. It's pretty great, and I'd rather write BUILD files than Makefiles/shell scripts any day, but the OP appears to have been focusing on extremely simple projects, where shell scripts are okay.

<comment><USER7> Right, "works for me" doesn't mean "you must do it.".

</comment></comment></comment></comment></comment><comment><USER9> I applaud the effort, but is "pure /bin/sh" really a good feature in today's systems?

To my knowledge, today every Unix system has Python, usually at least 2.7, if not Python 3. Some even replaced most of their system shell scripts with Python scripts. (Formerly, Perl had this status, but never really caught on in that area.)

Python is a much cleaner language than any shell language, especially with regard to error handling. (yes, I'm aware of "set -eu") Also, if you occationally need some more elaborated data structures or algorithms, you can express these in a straight forward way, rather than a series of complicated (and usually very fragile) text processing steps.

<comment><USER10> I'm having a hard time thinking of a use case for complex data structures in a build script. Can you give a real world example?

Array is the only one that I have found lacking, in my experience.

<comment><USER9> If you aim for slightly larger projects and efficiency, you'd need at least a DAG (because that's the fundamental nature of a dependency graph).

You can find a nice explanation in the "tup" build tool, although there are of course many others: [http://gittup.org/tup/](http://gittup.org/tup/)

And yes, you can express DAGs with text and/or filesystem operations (plus symlinks), but not efficiently and writing code that operates on that level is cumbersome.

<comment><USER11> Regarding DAG: tsort (1) sorts input lines by interpreting them as a list of edges. I guess that's what you where referring to when you said "cumbersome" :)

        $ cat > f
        a c
        a d
        b c
        ^D
        $ tsort f
        a
        b
        d
        c

<comment><USER9> The problem is not tsort, it is adding, removing, updating items in such a text file. (not to mention nasty corner cases like filenames containing whitespaces, or the security implications of filenames containing newlines)

</comment></comment></comment></comment></comment><comment><USER12> This leaves the topological sorting of the tasks to the programmer? This is neat, but that's one very useful feature of make that's missing.

<comment><AUTHOR> Yes, that's true. I'm still noodling on that, primarily to enable parallel builds.

Outside of parallel builds, however, I actually prefer an explicit sequence of steps to so-called "declarative syntax". The frequency with which I find bugs in the dependency graph of `Makefile`s [1][2][3] suggests that people are starting from a sequence of commands anyway. And it's better for the reader as well to see the commands laid out in order, when they need to debug breakage on their setup. People should stop pretending to be Vulcans and just write a script for building their project, and then sprinkle in `older_than` directives as an optional optimization. Building from scratch should be _the_ case to optimize for readability, rather than some exceptional situation.

[1] [https://github.com/zetavm/zetavm/commit/4e5e2e9d8b](https://github.com/zetavm/zetavm/commit/4e5e2e9d8b)

[2] [https://github.com/tekknolagi/stackx/commit/5999202423](https://github.com/tekknolagi/stackx/commit/5999202423)

[3] Fun fact: when you try to build OpenBSD's userland from source, the top- level Makefile always unconditionally calls `make clean`. I've seen this pattern a few times: large projects find themselves up shit creek in the build system, and it's difficult enough to test and debug the dependency graph that they give up all performance and retreat to just recompiling everything, just to be safe.

<comment><USER9> _> The frequency with which I find bugs in the dependency graph of `Makefile`s [1][2][3] suggests that people are starting from a sequence of commands anyway_

This is why the more elaborate build systems recognize dependencies automatically. For Makefiles, usually some sub-Makefile is generated automatically and then included. For language-specific build systems like OPAM (OCaml) or Cargo (Rust), this is one of their core features: As a programmer, don't care about maintaining dependency definitions! Whenever a source file is changed, the build system recalculates the relevant part of the dependency graph as well.

</comment></comment></comment><comment><USER13> How does this compare to e.g. @apenwarr's minimal `do`?

</comment><comment><USER14> A true build system really needs to build out a DAG of dependencies to be efficient and fast. Compose this with [https://github.com/ejholmes/walk](https://github.com/ejholmes/walk) and you're good.

<comment><USER15> Thus ninja [https://ninja-build.org/](https://ninja-build.org/)

</comment></comment><comment><USER16> I'm also using (for now) something based on these time checks (also pure posix + local, but local is extremely portable (tests well on 7 shells), though mine's a little more involved (automatic build job timing, controlled concurrency, robust failure/cancellation with autodeletion, fancy logging, filterable implicit dependencies, dependency + counting). It scales well to about 1000 source files. Then the lag starts to feel noticable.

</comment><comment><USER17> One of the benefits I see for this approach is the possibility to handle spaces in filenames (AFAIK very difficult with gnumake). Sadly the provided function does not accept spaces in filenames.

</comment><comment><USER18> Somehow I find it slightly amusing that I see ./a.out in 2017.

</comment><comment><USER19> "notabug.org"... interesting.

Anyway, how does this compare, features-wise, with GNU Make? For example with make you have `./configure` files, do I also have them here?

<comment><USER20> Looking as the sh code, it appears that it will work without tab characters. [https://stackoverflow.com/a/2131227/1144060](https://stackoverflow.com/a/2131227/1144060)

So there's that.

<comment><AUTHOR> As it happens, I was moved to create this standalone repo showing off my current build setup after writing this comment: [https://www.reddit.com/r/vim/comments/6l8z34/vim_betrayed_me...](https://www.reddit.com/r/vim/comments/6l8z34/vim_betrayed_me/djsaxwr/?context=3)

So yes, eliminating tabs (or rather the execrable _requirement_ of using tabs) was absolutely a prime goal.

<comment><USER21> Put this in ~/.editorconfig

        [Makefile]
        indent_style = tab

And install the plugin, which is available for most editors and IDEs.

[http://editorconfig.org/](http://editorconfig.org/)

</comment></comment></comment></comment><comment><USER22> has anyone tried tup? [http://gittup.org/tup/](http://gittup.org/tup/)

</comment><comment><USER23> > The build script is easy to repurpose to your needs

No, it's not. This isn't under a free or open source license. The lack of license means that only an idiot would use it for anything.</comment>


Ask HN: Need some guidance to identify a startup idea - <AUTHOR>

Longtime HN member writing from a throwaway account here. Before you bury this post as yet another frivolous ask HN post, I urge you to read through it.
For the last couple of years, I have had this ambition and itch to do my own startup. To pursue that dream, I left a cushy 9-5 job on the east coast,uprooted my wife and moved to the bay area to join a startup as a Django engineer. Since I did not have any great ideas of my own, I decided to take the next best route possible - to join a startup, learn the ropes, network around and then do my own thing.
Its been almost an year now working at the startup and I feel that things are not that exciting at work as before. And the urge to do my own startup has become even more stronger than before. As with several other folks, startup ideas continue to pop up in my head incessantly.
What I am seeking is some guidance, some direction in terms of how do I go about finding a viable startup idea. The best answer to that would be 'scratch my own itch'. To answer that, I have made several attempts to scratch my own itch. I worked on several ideas:
1) Foodspotting idea - I was midway through coding, when I found that FoodSpotting had already launched successfully (I was way behind in terms of development).
2) Provide phone call support for pingdom alerts - found that pagerduty (YC company) already does this and does this well 3) Chatroulette for lunch - LetsLunch beat me to launch and execution.
I am looking for an idea that has a sustainable, viable business model. A geo / location / checkin / picture / group chat idea does not interest me since I dont use these services myself. Plus, I dont think that most of such services have a viable business model.
I've hit a major roadblock in terms of finding that next 'scratch my own itch' idea. I've even tried applying the lean startup model to a couple of ideas, but there didnt seem to exist a market for them.
Any pointers or suggestions that you can offer will be appreciated. <comment><USER2> > Any pointers or suggestions that you can offer will be appreciated.

Take a break from trying to start things. You said that you've been in your Python job for a year and it's "not as exciting" as before and now you want to jump into something else, but you don't know what. It sounds like you're just getting burnt out.

Forget about startups for a few months. Take your family on a vacation, exercise, or take up some other hobby.

If you're really meant to start your own company, an idea will come to you and you won't be able to get it out of your head until it's complete.

</comment><comment><USER3> Are you doing all of this on your own? Find some people who has the same interest and drive as you. It's much easier to go as a group than alone. Tell everyone about your idea, don't hide it. You proved that ideas are not unique. When you tell people, they see how excited you are and the feed back you get is invaluable. And maybe someone who knows someone also interested in what you're doing. If you run out of idea, keep talking to people. Go to meet ups. There's someone out there who has an idea that you may be interested in and you can team up.

</comment><comment><USER4> Just one suggestion, just because other people are already started doing what you thought was a good idea does't mean you give up on it. if this is the case then none of the following companies existed : Microsoft, Google, Apple, Yahoo, Cisco etc etc.

Just pick what you are mostly interested and start finding a niche which is useful to the users. The most important thing is to develop some thing users want. If you can figure out that then your already won your 50% battle.

just my 2c

<comment><AUTHOR> There's a choice to make between naive optimism and realism. Realistically, I needed to do at least one thing better than FoodSpotting & given that they had like a 4-5 months headstart, I decided to not pursue it further.

<comment><USER4> I think you might already know this but it is worth while repeating. Idea is not important, execution is the most important thing

</comment></comment></comment><comment><USER5> Have any interest in pursuing an app platform in the medical space?

Send me an email and Ill let you know what I am working on.

sam [at] sstave.com</comment>


Hanami v0.9.0 Released - <AUTHOR> http://hanamirb.org/blog/2016/11/15/announcing-hanami-090.html <comment><USER2> I'm glad that there are alternatives to Rails still being developed. I have looked at both projects independently before, and it makes sense for Hanami to adopt ROM as it's ORM.

</comment><comment><USER3> from the guides:

>Hanami components are decoupled each other. This level of separation allows you to use the ORM (data layer) of your choice. [0]

So indeed, one could use a preferred ORM. Yes the ORM looks a bit verbose and the part with the relations being experimental is a show stopper.

Ignoring all that, Hanami is quite nice architecturally speaking [1] it could evolve into the Phoenix of the Ruby ecosystem.

[0] - [http://hanamirb.org/guides/models/use-your-own- orm](http://hanamirb.org/guides/models/use-your-own-orm)

[1] - [https://github.com/hanami/hanami](https://github.com/hanami/hanami)

</comment><comment><AUTHOR> Finally gotten on the front page and a few comment.

It seems the Ruby communities aren't interested in anything but Rails. Especially in US and Japan. I have only seen Hanami mentioned in EU conference.

</comment><comment><USER4> Is it just me, or does this seem like a solution looking for a problem? Especially the verbose way the ORM works... just seems overly complex without actually solving any real problem I had with ActiveRecord.

<comment><USER5> separation of the entities and repositories is useful in many ways.

For example, you can stub the repository and avoid persisting objects in tests, and only test persistence in the appropriate ones.

Or, you always know that operations you call on an entity won't touch the database, so you avoid a whole class of problems (think: accidental N+1 queries in a loop).

Or, by making the query interface private to the repository, you avoid accidental leakage of storage details (think: `default_scope` impacting associations)

I believe Ecto/Phoenix adopts a similar pattern [http://www.phoenixframework.org/docs/models](http://www.phoenixframework.org/docs/models)

</comment></comment><comment><USER6> tldc; an Ruby ORM for PostgreSQL for those who don't want to click.

<comment><USER7> It's actually an entire web framework. RoR for the "modern web".

<comment><USER8> More interestingly, there's a big crossover with dry-rb, which is some of the stuff that makes me think that Ruby (my preferred glue/new-Perl language by a country mile) can actually sanely scale to large projects with large teams. (My experiences with dynamically-typed languages mostly are a shitshow past a certain point, but dry-types and dry-struct are, at least, the starting point of _something_ that's a little less kooky.)

Right now I've been using hanami-validations, which incorporates a bunch of dry-rb, in completely non-web projects and it's _great_. Functional, typed conversions are really comfortable and easy with dry-rb; my main beef is a lack of a good way to dump data back out into an interchange format (like, I'd like my types to be able to JSONify themselves), but that's relatively minor.</comment></comment></comment>


Management Lessons From Jack Donaghy (30 Rock) - <AUTHOR> http://washingtonpost.com/business/management-lessons-from-jack-donaghy/2012/10/05/93cab868-0dad-11e2-a310-2363842b7057_story.html

<comment><USER2> The lessons, for anyone wondering whether or not to read:

1\. Have a career plan, but don't let it stifle you

2\. Innovate whether they like it or not

3\. Take mentorship seriously

4\. Learn from everyone around you

5\. Tolerate idiosyncracy

6\. Personal touches matter</comment>


Twitter is censoring the discussion of #Wikileaks - <AUTHOR> http://bubbloy.wordpress.com/2010/12/05/twitter-is-censoring-the-discussion-of-wikileaks/

<comment><USER2> Twitter is really denying this in no uncertain terms, but there's some pretty interesting statistical analysis here.</comment>


The Mojave Phone Booth - <AUTHOR> https://en.wikipedia.org/wiki/Mojave_phone_booth <comment><USER2> It's amazing how far you can run a telephone line. I wonder where the Central Office was.

</comment><comment><USER3> "Mojave phone booth's number, 760-733-9969, was acquired from the CLEC by phone phreak Lucky225 on July 31, 2013 and now rings using voice over IP.[10] Callers join a conference where strangers can once again connect just like when the phone booth was active.[10] IRC over SMS was added for DEF CON 22, IRC over Signal was added for DEF CON 25 - and both are currently still working.[11][12] One can send a message via SMS or Signal with SUBSCRIBE ALIAS to 760-733-9969 to join the group chat"

<comment><USER4> I can confirm it works via Signal. No response via SMS though.</comment></comment>


Pushing a Trillion Row Database with GPU Acceleration - <AUTHOR> https://www.nextplatform.com/2017/04/26/pushing-trillion-row-database-gpu-acceleration/ <comment><USER2> Meh. Sponsored article with very little news

<comment><USER3> I can very much tell you this was not sponsored.

<comment><AUTHOR> TNP is about the only quality tech reporting left.</comment></comment></comment>


Hiring a coach was the best investment I've ever made - <AUTHOR> https://medium.com/@jenkliu/hiring-a-coach-was-the-best-investment-ive-ever-made-e8f9ac4a7166 <comment><USER2> > Therapy examines your past and helps you diagnose your problems, she told > me. Coaching focuses on the present and future — and helps you get from > where you are to where you want to be.

And this is where I stopped taking it seriously. Modern therapy hardly examines your past. A good therapist these days will quickly find the actual problem you're having (which is generally not the problem you _think_ you're having) and then steer you towards cognitive behavioural therapy(CBT) which is _all_ about the present and the future.

This article smells like new age woo trying to present itself as better than _actual therapy_ , with it meanwhile being strictly less effective.

Please, if you feel like therapy could help you (and basically anyone would be helped by therapy) don't fall for this sort of nonsense, but find an actual good therapist.

<comment><AUTHOR> Thanks for your reply. I admit I oversimplified the distinction in this article for the sake of conciseness.

There is certainly a sizable overlap between coaching and certain types of therapy. Perhaps a bigger distinction I failed to mention is the underlying assumptions:

In therapy, therapist and client traditionally form an expert-subject relationship. The assumption is that the client is somehow "damaged," lower functioning, or in crisis, and the the goal is to "fix" the problem.

In coaching, coach and client form a comutual or cocreative partnership. The assumption is that the client is naturally creative, resourceful and whole, and the goal is to empower the client to take action towards their goals.

(Based on perceptions across professionals in both [1]. I'm sure not all therapists and coaches fall cleanly into these buckets.)

I don't mean to claim that coaching is superior to therapy; each provides its own value for different situations. Anyone experiencing depression or other mental health issues should certainly consult a licensed therapist.

I do believe, however, that coaching is an underrated option for many seeking support on personal growth. I recognize there are plenty of coaches that practice woo out there, but there are also plenty of skilled, trained coaches who make a big difference in people's lives. And I aim to make it easier to find those coaches through Uplevel ([https://uplevel.coach](https://uplevel.coach)).

I'd be curious if you have any evidence to show that coaching is strictly less effective than therapy.

Thanks for calling out the reductive statement!

[1] [https://www.apa.org/pubs/journals/features/cpb-1061-4087-53-...](https://www.apa.org/pubs/journals/features/cpb-1061-4087-53-4-229.pdf)

<comment><USER2> First off let me apologize, I hadn't realised that the author of the piece was the submitter, I'd have been more careful in my wording otherwise (Though it'd probably grace me to be more careful even if the author isn't present)

I do think coaching has a place, in fact I reckon most people would be better served with coaching than with therapy. I think the main stumbling point I have with this article is that it seems to present coaching as better-than while simultaneously misrepresenting therapy making it look worse.

 _If_ you have a brain problem that needs fixing then therapy is the right way to tackle it. That's also why therapy is very much fix-oriented. It doesn't fit everyones needs for sure.

I fully disagree that therapy is an expert-subject relationship. If your therapist treats you as damaged or inferior you need to find a new therapist. I've sure walked out on a _lot_ of therapists before finding one I could get along with. I feel a lot of the same things go for coaches, not every coach is a fit for every person either.

I'm sorry I called coaching "woo", that's a rather blunt way to put it. Something about the article tickled my bullshit detector in a way that made it seem disingenuous to me, but maybe that's just the way Uplevel gets plugged towards the end, I'm not sure.

Honestly probably the only "real" difference between coaching and therapy is the licensing. There's no reason a coach can't apply the same techniques as a therapist, but the same goes the other way, There's no reason a therapist can't apply coaching techniques either!

I'm now thoroughly convinced you're sincere however, and my previous comment was simply the result of a miscommunication. I commend you for trying to make the world a tiny bit better -- even though there's a profit motive involved ;)

I do think it might be a good idea for your company to have either a few therapists on-staff or at least on speed-dial so to speak so if one of your coaches runs into someone who needs problem-fixing instead of coaching you've got somewhere to send them. It'd be rather awful if e.g. heavily depressed people sign up and either don't get the care they need or no care at all.

Anyways I don't really have a good conclusion to this ramble, I wish you the best of luck in your endeavours.

<comment><AUTHOR> A few takeaways here:

\- The line between coaching and therapy can be blurry, especially as many coaches practice therapy techniques and vice versa.

\- It's hard to find both a good therapist and a good coach.

\- There is no official license for coaching, which makes it even harder to find a good coach.

I appreciate the suggestion re: providing a quick referral to a therapist if that's the solution a user requires. Will definitely keep in mind as this expands.

Thank you for the thoughtful, candid feedback and support!</comment></comment></comment></comment>


Everyone should work a crappy job - <AUTHOR> http://christosgoumenos.com/everyone-should-work-a-crappy-job/

<comment><USER2> I don't think you have to work at a crappy job, but working at a job where you actually learn the difficult lessons of interacting directly with customers, or the struggle of selling to them - or the reality of the mindset and motivation of a frontline employee is invaluable.

I'm always shocked, especially in software, at how many people just come out of school (or worse yet grad school) with no sense of trying to understand the edges of their business. Blissfully working away in a 'lab'.</comment>


Grafana, Open Source Metrics Dashboard - <AUTHOR> http://grafana.org

<comment><USER2> I am the creator and main developer of Grafana. I am currently working full time on it, so expect lots of polish and new features in the coming months!

</comment><comment><USER3> If you're looking for a simple way to install it I made a single line command installer with ansible: [https://github.com/gmontard/grafana-graphite-statsd- ansible-...](https://github.com/gmontard/grafana-graphite-statsd-ansible- vagrant)

</comment><comment><USER4> Grafana nearly doesn't get the attention it deserves. It is a compelling alternative to Elasticsearch+Kibana if you are less concerned about search and more concerned about analytic questions supported by Graphite/InfluxDB.</comment>


Ask Stack Overflow for Atom - <AUTHOR> https://atom.io/packages/ask-stack <comment><USER2> i guess the vim, sublime, etc people that don't know it yet are gonna be happy, because it means that they'll find out about howdoi now:

[https://github.com/gleitz/howdoi](https://github.com/gleitz/howdoi)

        pip install howdoi

vim plugin: [https://github.com/laurentgoudet/vim- howdoi](https://github.com/laurentgoudet/vim-howdoi)

one of the emacs plugins: [https://github.com/atykhonov/emacs- howdoi](https://github.com/atykhonov/emacs-howdoi)

one of the sublime plugins: [https://github.com/azac/sublime-howdoi-direct- paste](https://github.com/azac/sublime-howdoi-direct-paste)

<comment><AUTHOR> howdoi uses Google to find results on Stack Overflow while I used the Stack Exchange API for this package. I'm a bit disappointed with the results returned by the API both sorted by relevance and by votes. Down the road I'd like to merge the results from Google and the API to get the best set of answers.

</comment></comment><comment><USER3> I think this is less useful than it looks like.

When editing code, I'm not browsing StackOverflow or switching to StackOverflow so much that the actual Alt+Tab-ing to the browser window is the bottleneck. And when I do Alt+Tab to the browser window, I usually search Google for what I want to achieve, and yes, most of the times I end up on StackOverflow, but sometimes other sites, most notably Wikipedia, can help me better. Periods when I'm on StackOverflow are more of a small research session within a development session. Quick look-ups constitute a smaller fraction of my Google searches, especially when I work in an environment/language I have grokked.

Pasting from the answers I see even less useful. What was the last time you actually pasted verbatim a code snippet from a StackOverflow answer? In 95% of the cases, I read the answer to get an idea and then implement it appropriately in my code. Such copy/paste solutions are most often just hackjobs full of kludges that are worth marginally more than a pile of dog shit.

<comment><USER4> > I'm not browsing StackOverflow or switching to StackOverflow so much that > the actual Alt+Tab-ing to the browser window is the bottleneck.

Ever used multiple monitors? I used to have the exact same issue but multiple monitors save so much minimize maximize time.

<comment><USER3> Perhaps my wording wasn't clear enough—I was actually saying that minimize- maximize time wasn't a bottleneck in my case because I don't switch so much.

But I agree with you, multiple monitors would help tremendously. Even more so when doing some web development work, when changes can be immediately previewed.

</comment></comment></comment><comment><USER5> Genuine question.

Are people actually using Atom in production projects? I found it unusably slow because it's browser-based; a generation behind Sublime Text in speed.

<comment><USER6> I switched to Sublime from Vim because it looked prettier, but Atom looks better out the box. Also, Sublime barely moves on my 09 tiny macbook air, while Atom performs well.

On the 2014 iMac, slowdowns on big files I barely noticed, what I don't like is that if you have the editor open forever, it starts moaning like a dying whale, regardless of the beefiness of your rig.

<comment><USER7> >I switched to Sublime from Vim because it looked prettier

I find this to be a very curious reason to switch from Vim... were you a very experienced Vim user? Ever give MacVim a shot for the different color schemes? Don't get me wrong, I like my editor to look nice also, but Sublime isn't exactly a prettier version of Vim - they have very different strengths and weaknesses.

<comment><USER6> Yeah, about 5 years or so. I'm using the vim plugins for both atom and sublime. I liked the minimap, and the default font. More importantly, it was hard for teamates to get used to when doing pair programming.

Also, it's not really that different, save for the modal editing stuff. Anything else there is either a plugin, or a clone, or better stuff.

</comment></comment></comment></comment><comment><USER8> This is really neat, and it will probably be very useful to some people, but it sets off some very loud warning bells in my head. Is s/o really for copypasta mining? Sometimes, I guess... but still.

<comment><USER9> I agree. I mean, I can see it being useful for things that you "know" how to do but just forgot the syntax... But the chances that a random javascript snippet on SO are right seems pretty damn low to me!

</comment></comment><comment><USER10> Watch out for the license. The source appears to be licensed under CC-BY-SA, which at the very least requires attribution, and might be GPL3-style viral.

[http://meta.stackexchange.com/questions/12527/do-i-have- to-w...](http://meta.stackexchange.com/questions/12527/do-i-have-to-worry- about-copyright-issues-for-code-posted-on-stack-overflow) [http://blog.stackoverflow.com/2009/06/attribution- required/](http://blog.stackoverflow.com/2009/06/attribution-required/) [http://creativecommons.org/licenses/by- sa/2.5/](http://creativecommons.org/licenses/by-sa/2.5/)

</comment><comment><USER11> Same thing for VisualStudio/Bing

[http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-...](http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-4a48-a5fd-504ff4ad1b65)

</comment><comment><USER12> This is neat. I use a similar tool on VS 2013 [0]. MS launched it very recently. It's called Bing code search. Pretty nifty, Although it's lot advanced but I hope tools like this grow to be better and comparable to this one. Anyone using vs 2013, do check this out.

[0] [http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-...](http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-4a48-a5fd-504ff4ad1b65)

</comment><comment><USER13> Personally, I am shocked that everyone applaudes such a thing on HackerNews. Is that what programming means nowadays ? Copy-pasting random code snippets from StackOverflow, gluing them with other code snippets found elsewhere and hoping that it compiles. Anyway, OP seems to have done a good job; he has identified what modern programming means and provided an excellent tool to increase today programmers productivity. Excellent ... and hopeless.

</comment><comment><USER14> Microsoft did it before:

[http://blogs.msdn.com/b/visualstudio/archive/2014/02/17/intr...](http://blogs.msdn.com/b/visualstudio/archive/2014/02/17/introducing- bing-code-search-for-c.aspx)

[http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-...](http://visualstudiogallery.msdn.microsoft.com/a1166718-a2d9-4a48-a5fd-504ff4ad1b65)

</comment><comment><USER15> Copy-Paste, evolved.

</comment><comment><USER16> Dash App also have an offline Stack Overflow access (20gb): [http://blog.kapeli.com/offline-stack- overflow](http://blog.kapeli.com/offline-stack-overflow) (great for developing on the airplane)

</comment><comment><USER17> I see it is a pretty useless package because switching to Stack Overflow once in a while isn't a big productivity hit for me. I would prefer not having anything except my project code on my window.

</comment><comment><USER18> seems to be done atm.

here's a cached version: [http://webcache.googleusercontent.com/search?q=cache:https:/...](http://webcache.googleusercontent.com/search?q=cache:https://atom.io/packages/ask- stack&ion=1&espv=2)

</comment><comment><USER19> This might be an interesting idea for a vim plugin too, need to teach myself vim-script first...

</comment><comment><USER20> plagiarism y/n?

</comment><comment><USER21> Is there a precompiled binary for windows somewhere? Why is it only available for Mac? I think this feature is very useful.

<comment><USER22> You can install it via Chocolatey. If you already have Chocolatey installed, then just run:

      C:\> cinst Atom

[http://chocolatey.org/packages/Atom](http://chocolatey.org/packages/Atom)

<comment><USER21> that is super nice.

</comment></comment></comment><comment><USER23> github, we want atom on linux

<comment><USER24> You can compile it for Linux now that it is open-source, I believe people have made binaries too, e.g: [http://www.webupd8.org/2014/05/install-atom-text- editor-in-u...](http://www.webupd8.org/2014/05/install-atom-text-editor-in- ubuntu-via-ppa.html)</comment></comment>


HN London Meetup this Thursday - <AUTHOR>

The third Hacker News London meetup shall be this Thursday from 18:00 at our usual venue The Waterpoet, 9-11 Folgate St, London E1 6BX.
Geomium, the next-gen geosocial application, as recently featured in The Next Web http://su.pr/2YVHpt will be sponsoring the event. Ben Dowling, CTO/Co-founder of Geomium and HN London co-organiser, will be giving a short presentation introducing Geomium and then will let everyone have a play.  If you would like to request a beta invite in advance you can request one at http://geomium.com or email Ben [@] geomium [dot] com.  For an early preview of the Geomium iPhone app include you UDID and device name in the email.
We look forward to seeing everyone there. Please RSVP at http://www.meetup.com/HNLondon/
PS we will be in the back bar as usual. If you are having difficulty finding us please call me on 0789 11 99 440 or tweet @dmitrigrabov <comment><USER2> This was kind of fun the last time I went but I feel that putting it on Meetup may have been a mistake/premature.

About half the people I met hadn't even heard of HN, let alone read/comment on stories here.

Maybe I was just hanging out in the wrong part of the room. :)

Edit to add: Those people were definitely there for the HN meetup. They'd been notified via Meetup of a new group and decided to turn up.

<comment><USER3> It definitely sounds like you were in the wrong part of the room :)

A problem people have mentioned before is actually finding all of the HNers amongst the other drinkers, so you're not alone. Because of this we started looking for an alternative venue but we couldn't find anything suitable in time.

If you've got any suggestions it'd be great if you could let us know, either here or via the Google Group: [http://groups.google.com/group/hn- london/browse_thread/threa...](http://groups.google.com/group/hn- london/browse_thread/thread/7312f467a1cd4a0d)

For the event this Thursday we'll put up a sign, which should at least help you find the right area of the bar.

<comment><USER4> How about bringing some stickers for people to write their name / HN username on for easy recognition?

<comment><USER5> Nah we should do it like proper spies. "Are you a _friend of PG?_ ".

<comment><AUTHOR> Haha, I remember overhearing some suits asking each other "Who the f is Paul Graham?". I dont think they ever got it.

</comment></comment></comment></comment></comment><comment><USER3> Linked versions of the URLs:

<http://su.pr/2YVHpt> <http://geomium.com> <http://www.meetup.com/HNLondon/>

The last couple of meetups have been great. Hope to see you there!

</comment><comment><USER6> Hi - I'm pretty new to hacking'n'stuff. Would I be welcome/understand what the hell was going on? :)

<comment><USER3> All HN readers are more than welcome! It's a fairly informal event. People drink beer, and chat about things they're interested in, which tend to be the projects their working on, programming, tech, startups etc.

</comment></comment><comment><USER7> Bleh, once again I'll miss you guys by a day.

Any thoughts on doing it one weekend in the future? :D

</comment><comment><USER8> Any demand for a meetup in Manchester?</comment>


Verizon rescinds service to Samsung Chromebook 3G owners - <AUTHOR> https://groups.google.com/forum/#!category-topic/chromebook-central/ip9eVs-p0N0

<comment><USER3> Okay, but the guy says he bought it in Jan of 2013 and waited over a year to try and activate the offer.

Many of these offers are time bombs and sometimes for good reason. I'm not so sure I'm ready to pick up my pitchfork if this is the case.

</comment><comment><USER4> Does anyone know... what _would_ the best-case legal outcome be?

Do you take Verizon to small claims court, calculate the cash value of the service, and have the judge award you that? Can you sue them for false advertising? Can they face any kind of punitive damages? Do you form a class- action suit for everyone who bought a Chromebook and then didn't receive the service? At what point does/would Verizon choose to settle instead, and just provide the service after all?

I mean, this seems like exactly the kind of abuse that laws are designed to prevent, no?

<comment><USER5> You can only sue if you incur any loss due to lack of the free 3G service subjected to terms and conditions of the service. In this case, it's not worth it. Just return the chromebook back to Amazon.

You can probably sue Amazon for false advertising (again, subjected to Amazon's terms and conditions), but good luck proving that you have incurred any loss.

I don't believe you have any ground to sue Verizon.

<comment><USER6> You can sue for any reason whatsoever - does not mean you will win.

I am sure that Verizon was smart enough to put a limitation on the time that one had to activate the service. They have very many lawyers that would never allow a deal with no end date.

But again, you buy something over 1 year ago and only activate now? Did you really need this service?

Anyhow - you should not expect people to have a special offer that never expires, you must activate it to get the benefits.

But honestly, sounds like you are crying over nothing if it is really 1 year ago that you purchased this. You are being unreasonable.

<comment> mark-r Shouldn't said lawyers have made sure there was an expiration date on the original wording of the offer? If not on the packaging then somewhere in the fine print? In the absence of one you might successfully argue that it was open-ended.

</comment></comment></comment></comment><comment><USER7> A little premature to declare that the service has been rescinded based on that conversation, no?

<comment><USER8> I'd like to say I have just been informed by verizon that they have recinded my free 100mb service midway through the 'contract'. they gave me some jargon, that I did not retain because I was fuming. To my knowledge there was no 'expiration date' on the free 100mb THAT CAME WITH THE CHROMEBOOKS.

</comment></comment><comment><USER9> Bummer. I was going to get my nephew one of those because he really wants to learn programming and his family can't really afford Internet service. That amount of data was perfect for his needs.

I hope it's a mix-up or something, but I kind of doubt it is.

<comment><USER10> Worst case, as someone mentioned in that thread, you could get a FreedomPop wifi hotspot for $50-$60 that includes 500MB/month of free usage.

I bought a Samsung Chromebook a year ago so I can't remember what the exact price difference was between the wifi and the 3G model, but I feel like wifi model + hotspot would about be a wash vs the 3G model.

<comment><USER11> Wow, FreedomPop has a terrible site. No coverage map, overly SEO coverage list, everything tries to get you into the funnel rather than giving you helpful info.

<comment><USER12> Tell me about it! I couldn't find how much the service honestly costs because they don't you!

Pro 500MB Data Plan Trial - FREE Freedom Spot Overdrive Pro (Refurbed) - $59.99 1 GB of Bonus Data ($20 Value) - <USER2>

Shipping - $6.99

Due Today - $66.98

First Month Service - $0.00

All I want to know is how much are you going to charge me on a recurring monthly basis? This feels scammy to me... is this a dark pattern?

UPDATE: I finally found were the monthly prices were/are found (they used strike-through on the monthly price on the plan selection page and wrote in larger font behind it 100% FREE Trial)... They're hurting themselves by making it difficult to find.

<comment><USER12> They also hide on the FreedomPop Premier page that after the first month those "free" ($20 value mind you) offerings cost you $9.99 each month after the first one. They make the "Continue" button huge and the "I don't want free stuff" continue link much smaller.

I would definitely say there are Dark Patterns in use by FreedomPop. Caveat Emptor.

</comment></comment></comment></comment></comment><comment><USER13> Note that OP says he purchased in January of 2013, not 2014.

</comment><comment><USER14> From the article, the device was purchased in January 2013 (more than a year ago) and the Verizon plan activation was attempted in January 2014. This puts the device outside the return window of the reseller (Amazon). The only problem is the vendor website still showing the device as being sold with the plan.

</comment><comment><USER15> Lets wait and see what the resolution is. As someone in that thread pointed out Verizon has people specifically for Chromebooks. I'm not a Verizon apologist, but it sounds like this needs to come to some sort of definitive resolution before we turn on the Internet Rage Machine(tm).

<comment><USER16> Just Verizon being a bad citizen again? Nexus 7 LTE not allowed on their network (Even though they were suppose to with the spectrum they leased from all of us who are US Citizens the spectrum we all own to the carriers through the US Government)

I don't give money to Apple and I don't give money to Verizon. I also blocked from my DNS CNET and HuffingtonPost. All Bad Citizens

<comment><USER17> _(Even though they were suppose to with the spectrum they leased from all of us who are US Citizens the spectrum we all own to the carriers through the US Government)_

An important point not to be missed. Repeatedly, these organizations make agreements in order to gain benefits, and then proceed to bald-facedly renege on their portion of the agreement.

And... _no one holds them to account!_

At this point, I think they should be investigated _criminally_ and prosecuted for fraud. If and as it becomes apparently they entered these agreements with ill will and with the intention to renege, this is no longer a civil matter.

</comment></comment></comment><comment><USER18> Perhaps an alternative is T-Mobiles 200MB/m free offer. It works great and is truly free.

<comment><USER19> If you have an account with a Simple Choice plan (their postpaid offering). You can also buy day passes if you need to use it beyond the 200MB. Also worth noting this is for "select devices" only, i.e. some tablets. They may not allow using said device as a hotspot.

</comment></comment><comment><USER20> Chromebook owner here. I haven't been able to convince the data on my machine to function on the free plan yet this month, but I'd chalked it up to the 3g modem being mostly iffy anyway. Looking forward to watching this.

</comment><comment><USER21> Then in three years the Google data charges start. Sigh. I never saw how people think these non-computers are a good deal.

<comment><USER22> Most of these are $200-$400 in price range. These are full computers (just with limited storage). If Google starts charging in a few years, you can convert it over to a full desktop with [Crouton]([http://www.howtogeek.com/162120/how-to-install-ubuntu- linux-...](http://www.howtogeek.com/162120/how-to-install-ubuntu-linux-on- your-chromebook-with-crouton/)).

</comment></comment><comment><USER23> I have the Samsung Chromebook WiFi and it works great!

My thinking is that if I ever needed 3G/4G, I could either a) root my phone and tether on the DL, b) buy one of those USB dongles that the carriers sell that enables it and get the right drivers for my rooted Chromebook.

</comment><comment><USER24> Wow, 100 MB/month for a Chromebook - that's amazing! That's like 30 whole articles from Hacker News or Reddit or Feedly!

But seriously, it's pathetic, even if it's free.

<comment><USER8> Yea 100mb's are a pathetic come on, but I think I need to see the fine print since that is the ONLY reason I bought the chromeb, now I can only call it a crumb.

Some were talking about Amazon. The seller should not be liable. How can they just pull your promised data. A contract is a promise to pay or give a service. They broke a contract. Where is the fine print. I want to see it. I told them I would be calling back.

</comment></comment><comment><USER25> sounds like a telco being a telco....lots of fine print. the free lunch of data plans wasn't going to last forever.

<comment><USER26> +1, sounds like getting a credit card with '0% interest' and believing them

</comment></comment><comment><USER27> Looks like Amazon updated the product details page. It doesn't show the free two year wwan any more.

</comment><comment><USER8> sounds like a class action. I'm in. The only reason I bought TWO chromebooks was for the 3g. I haven't even activated the other one. They owe me about 3gb and they also changed their rates, eliminating 3gb for $35. Now it is 2gb for $30

</comment><comment><USER28> . ]</comment>