Inequality in America, summed up by one heartbreaking paragraph - <AUTHOR> http://i100.independent.co.uk/article/inequality-in-america-summed-up-by-one-heartbreaking-paragraph--ZJeIsLDkhhg <comment><USER2> > They also found that 69 percent of black children under the age of six (2.2 > million total) lived in low-income families

American ancestors fucked the African American community so bad. They are left in this perpetual cycle of poverty, where they grow up poor, can't afford education, end up poor adults, and have children who also end up growing up in poverty.

<comment><USER3> Should we blame the vikings? They terrorized Europe and took many slaves. How about the Mongols? They killed millions of people.

There are now more opportunities and less racism than there ever has been in the history of the US and things don't seem to be getting better.

The point is that this abhorrent behavior is no longer accepted and we have progressed into a civilized society. At some point, we need to stop blaming our ancestors.

Many immigrants from decades ago were treated just as poorly (and some..even worse) as the African American community and they are now flourishing. Mostly because many of these immigrants instilled a culture of education onto their kids, which translates to generations of successful people.

If this happened more in the African american community, we would see more success and less poverty. The problem is that not only is this accepted, the real root of the problem is denied and anyone that even attempts to talk about it is deemed a 'racist'.

I have a feeling we will be having this same conversation in a decade.

I know I had this same conversation a decade ago..and a decade before that when having a black president wasn't even a thought in anyone's head.

</comment></comment><comment><USER4> I don't believe this thirdhand quote for a second: ""My daddy's in jail and he said he gets three meals a day. And sometimes my mom can't make me food and I'm hungry." I went home and I cried that night. This is a kindergartner. Teachers told him he was going to jail."

First of all, Palo Alto is among the best and highest-resourced public school districts around. Secondly, I can't imagine any PAUSD teacher saying such a thing to _any_ student under any circumstances.

Beyond, that, Kindergarten is a _single-teacher_ class for a given kid, so for this to be true, other teachers would have had to volunteer this unbelievable criticism to him clear out of the blue.</comment>


Startup Recruiting is like SEO  - <AUTHOR> http://blog.kera.io/post/41955670118/recruiting-is-like-seo

<comment><USER2> Recruiting is inbound marketing. Blog posts, podcasts, meetups, social media, newsletters, comments, Youtube, Slideshare, Github, etc is how you find customers. It also happens to be the way to find a cofounder or employees.

<comment><AUTHOR> Totally agree. I suppose that many founders just don't see recruiting that way immediately?</comment></comment>


Gov.uk isn't finished - <AUTHOR> https://gds.blog.gov.uk/2015/03/06/gov-uk-isnt-finished/

<comment><USER2> I've met some of the guys working for gov.uk and they know the challenge is huge. A government is probably the worst sort of institution to try and change at a fundamental level using technology. They're good people trying their best.

This said, I don't see the point of such a puff-piece unless it's a combination of 1) recent bad press from The Register and 2) national election being in full swing. There is a very high chance that voters will not return the same government to power, so I guess GDS are trying to preempt an inevitable wave of "spoil system", considering they were appointed directly from the cabinet.

<comment><USER3> > 1) recent bad press from The Register

The Register is scum. I'm amazed anyone pays them any attention. It's kind of weird that the Register isn't one of the auto-blocked domains on HN. Their stories are mangled half-truths and misunderstandings.

It's got a lot worse since Guy Kewney died, but even when he was alive they just weren't very good.

<comment><USER4> " _The Register is scum._ "

How so? I find it quite useful in staying on top of IT news in the UK. Their reporting is harsh, but to date, from what I know of the industry, appears to be accurate.

If it's not some examples would help?

<comment><USER5> I'm not a fan of the gov.uk project (see my other comment on this thread) but the Register is a pretty awful site, and Andrew Orlowski in particular is a total crackpot. For example he writes crazy climate change denial articles. To be fair, it's the same kind of crackpottery that you can find in papers like The Telegraph most weeks. The Telegraph is trash too, but some people still take it seriously. I'd put The Register in the same bracket: it still can product ok coverage of some stories but there are a bunch of topics where their politics or petty personal feuds leads them to write terrible articles full of factual inaccuracies.

</comment></comment></comment></comment><comment><USER6> I must admit, I had a dim view of what would come out of GOV.UK 3-or-so years ago. But I have to admit that I've been pleasantly surprised; the task they've set for themselves is gigantic in proportion, and so far the product has been pretty impressive.

So this is good, and I hope they continue to improve digital infrastructure in the UK. I like to think the current projects are the most important step — general improvements to accessibility, discoverability and usability of government documentation. But I expect we'll see progressive implementation of government departments' tools on top of the gov.uk platform as it comes time to renew them — and so far, it feels like that's a much better option than what we saw in the past.

</comment><comment><USER7> I think it's interesting to see how well they've done. I think that if the US were also to employ programmers directly we'd see better products than with the current system.

<comment><USER8> Have you seen 18F ([https://18f.gsa.gov/](https://18f.gsa.gov/))? That's exactly what they're trying to do.

<comment><USER9> They've chosen just about the worst imaginable name...

<comment><USER10> Does 18F mean anything special?

<comment><USER11> I found this in an article:

> The name 18F refers to GSA headquarters building, which is located on 18th > and F streets in Washington.

I agree that 18F is a bad name. They should have just called it "Government Digital Service" like the UK version of the same.

</comment></comment></comment></comment></comment><comment><USER12> I really admire the commitment to openness and transparency displayed by the team on this project. Even though that may be common in the startup world or open source community, it's still somewhat rare in lots of other types of projects.

</comment><comment><USER13> This blog post is worryingly vague about anything of concrete value for users. It suggests a large reengineering effort without any idea of what they really want to achieve. For example, one of the blog posts it links to, they introduce the new VAT manual

[https://www.gov.uk/hmrc-internal-manuals/vat-government- and-...](https://www.gov.uk/hmrc-internal-manuals/vat-government-and-public- bodies)

vs old

[http://www.hmrc.gov.uk/manuals/vatgpbmanual/index.htm](http://www.hmrc.gov.uk/manuals/vatgpbmanual/index.htm)

It's identical, except for a modified stylesheet. This may be 'unapologetically unifying and simplifying the experience of interacting with government', but this is not very much to show for all the time that has been spent on GDS.

<comment><USER11> > It's identical, except for a modified stylesheet.

They're taking legacy sites and modernising them. They aren't re-writing HMRC's VAT manual and never claimed they were.

You call it identical, but they've altered the underlying HTML layout and change the stylesheet to make it work better in modern browsers and made it easier to interact with using touch devices.

That was their entire spec. That is their job. They've done their job. And while the content is "identical" by design, they fixed the part that was broken: bad markup and poor styling.

PS - The old site looks absolutely terrible in Chrome 40. It "works" but I need to zoom to 200%, and with a touch device I keep hitting the wrong link because they're so close together.

<comment><USER4> " _That was their entire spec. That is their job. They 've done their job._"

The 25 exemplars say otherwise. They're about process re-engineering, technology modernisation and legacy integration. And they're also nowhere near complete (only 9 are live[1]).

[1] [https://www.gov.uk/transformation](https://www.gov.uk/transformation)

<comment><USER11> I could have worded that quoted section better.

People have been complaining that some legacy documents and manuals weren't available on the new gov.uk site. So now they've started bringing them over, updating them to work in modern browsers and on touch devices, so in this context their only spec was to make that content available on the new site.

In the larger context, yes, they've been doing some actual redevelopment. But how do you re-develop a HMRC manual? Heck up until a few years ago it was only available as a PDF(!). Even the old site was a marked improvement, and this one just keeps that document pleasantly available for the future.

</comment></comment></comment></comment><comment><USER14> A contrary opinion: [http://www.theregister.co.uk/2015/02/18/the_inside_story_of_...](http://www.theregister.co.uk/2015/02/18/the_inside_story_of_govuk/)

<comment><USER15> I'm afraid I have to agree. gov.uk has been a reversion to the mean. It's not nearly as good as direct.gov that preceded it. On the other hand it replaces many cruddy government websites that had impossible navigation.

So it replaces variance with consistent mediocrity: the McDonalds of websites.

<comment><USER15> To those downvoting, let me illustrate:

This was the old directgov site: [https://i.imgur.com/s7lHXGD.png](https://i.imgur.com/s7lHXGD.png)

This is the new gov.uk site: [https://i.imgur.com/IgyTCLL.png](https://i.imgur.com/IgyTCLL.png)

Which do you think does a better job of presenting the information?

</comment></comment></comment><comment><USER16> I was using the job search[1] on the gov.uk domain yesterday, and the UX is extremely poor!

If the job site was a for-profit, it would probably be put out of business by competitors! But, since the government can jail people for not handing over their resources, products aren't held accountable by the Market (big 'M').

I wouldn't even mind if it had an API[2], so I could make a more useful tool[3]. But instead I have to manually go through a ton of jobs each day so I can get unemployment handouts from daddy government (if there was no such thing as VAT, I probably wouldn't need these! Anyway).

Gov.uk looks a bit nice with its san serif typeface[4] and minimalist design; but it's varnish on a clunky turd.

\---

[1] [https://www.gov.uk/jobsearch](https://www.gov.uk/jobsearch)

[2] I couldn't find one yesterday. I'm going to have another look.

[3] Currently learning Python and looking for a little side project.

[4] Looking at the CSS, the particular font is 'nta'—and is presumably custom.

<comment> jon-wood To be fair to the gov.uk team, Universal Job Search appears not to be run by them. They have a form on gov.uk which submits to the job search application from direct.gov (the organisation that was bad enough to convince government to give gov.uk a go in the first place).

<comment><USER16> > They have a form on gov.uk which submits to the job search application from > direct.gov (the organisation that was bad enough to convince government to > give gov.uk a go in the first place).

That validates my concern about quality.

<comment> vertex-four Would you prefer that gov.uk didn't give you any way to access Universal Jobmatch at all? It's a legacy system that people still need to access. I assume the Job Centre have contracts that they need to fulfil that would prevent gov.uk from replacing it.

<comment><USER16> The marginal benefit—above and beyond other options—of Universal Jobmatch is so low (and probably negative) that it doesn't matter either way. Being mandated to use a suboptimal tool results in a net loss. Taking that into consideration, my answer is 'yes! Please'.

<comment> vertex-four You would be mandated to use it whether or not gov.uk linked to it. gov.uk isn't in control of that - the DWP is. Maybe, once the DWP's contract with Monster expires in a few years, gov.uk will be able to make a case that they should be running it.

<comment><USER16> So your question relates to whether it makes a difference to me if the job search app is available via gov.uk?

No it doesn't. From the outside it's all bullshit branding. As a user I want to be able to find jobs, refine searches, use categories, and other activities based around getting-the-job-done.

Edit: URLs for unique resources works fine. The gov.uk as a namespace doesn't help usability. I'm happy to be corrected with _evidence_.

<comment> vertex-four > No it doesn't. From the outside it's all bullshit branding. As a user I want > to be able to find jobs, refine searches, use categories, and other > activities based around getting-the-job-done.

It's not gov.uk's fault that you have a shitty experience doing that. The Government Digital Service (most well-known as "gov.uk") have never been involved in the Universal Jobmatch site that was contracted out by the DWP to Monster without consulting the GDS. I have no idea why you're attacking gov.uk for it - I repeat, they had literally nothing to do with it.

> URLs for unique resources works fine. The gov.uk as a namespace doesn't help > usability. I'm happy to be corrected with evidence.

gov.uk is a platform developed by the GDS, not simply a namespace. It covers everything on the "gov.uk" main website, and a selection of subdomains, but not all (anything that existed while DirectGov was still a thing is not maintained by the GDS, essentially).

The majority of gov.uk revolves around a CMS that can manage many types of content. It provides a consistent interface for the people who create the content - people from every single Government department - to publish it, and a consistent backend that allows the developers to build new services that utilise the existing infrastructure.

Before, we had a pile of independent websites built and maintained by each Government department with no integrated search or organisation, a _lot_ of duplicated technical effort as everyone had to maintain their own CMS, and an extremely poor user experience.

<comment><USER16> > I have no idea why you're attacking gov.uk for it - I repeat, they had > literally nothing to do with it.

I'm answering your questions as frankly as I can. The questions involve gov.uk, and so the answers involve gov.uk.

> gov.uk is a platform developed by the GDS, not simply a namespace.

From the outside it's difficult to make the distinction. I'm talking from the perspective of a user.

> Before, we had a pile of independent websites built and maintained by each > Government department with no integrated search or organisation, a lot of > duplicated technical effort as everyone had to maintain their own CMS, and > an extremely poor user experience.

For the scope of gov.uk, I can appreciate how that's beneficial. The dynamic I've seen is there's a bad solution to something which isn't even a problem—as there are already better job sites around. If my premise is correct, then even if gov.uk solved the UX problem for Universal Jobmatch, it's still solving a problem which doesn't really need to be solved (a clone of a job website isn't very valuable). And that government fixes problems which _it_ creates, and then pats itself on the back. What I've said goes outside of the specific points I've been making, but that's how I see the context.

I'm not even anti-government, necessarily. I'm still making my mind up. Maybe the need for inequality is more important than efficiency and maximum wealth? Some of the things governments do are egregious; but so are some of the things individuals do. Knowing the answer wouldn't be of much benefit, anyway: the government isn't going anywhere any time soon, regardless!

<comment> vertex-four > The dynamic I've seen is there's a bad solution to something which isn't > even a problem—as there are already better job sites around.

gov.uk did not build Universal Jobmatch. gov.uk did not build Universal Jobmatch. Universal Jobmatch is not part of gov.uk. Universal Jobmatch is not part of gov.uk. It is a separate site, operated by separate people, under an entirely separate Government department, which happens to be linked from the gov.uk website.

I'm not entirely sure what part of this isn't getting to you. The DWP is to blame for outsourcing Universal Jobmatch to Monster, gov.uk has absolutely nothing to do with it any more than, say, the passport office does. What you are saying is equivalent to blaming the passport office for Universal Jobmatch - it's crazy, they had nothing to do with it.

If you're angry that Universal Jobmatch exists at all, that's _still_ the DWP's fault, not gov.uk's. gov.uk doesn't get to decide other departments' policies for them, it is in charge of developing digital services to fulfil those policies - and Universal Jobmatch is a legacy system, so gov.uk didn't even do _that_ for the DWP.

<comment><USER16> > Maybe, once the DWP's contract with Monster expires in a few years, gov.uk > will be able to make a case that they should be running it.

I'm talking about a hypothetical situation based on what you said previously.

If you read what I've said with that in mind, it should make sense! Why wouldn't I take account of what's already been talked about?</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: Why can't I find HN on tapatalk? - <AUTHOR>

Is it just not offered or do I need to do something to add it to my app? <comment><USER2> It just doesn't implement the tapatalk API.</comment>


Ask HN: How do you assess teamwork skills during interview? - <AUTHOR> The standard technical interview process: 4 technical interviews that cover data structures, algorithms, system design, etc., with perhaps a conversation over food, is not enough to assess how well a candidate would fit into a team.
Do you disagree with this premise? If so, why?
How do you gauge team skills during your interview process? What do you look for? How has it worked for you? <comment><USER3> We used to have a two-person team provide a standardized programming exercise, clearly telling the candidate that they could choose how to do it: preferably discussing their approach with us, get help/feedback as they progressed, -or- completely silently if they were more comfortable, or anywhere in between. Generally we'd spend about 5 minutes just explaining how it could work, assuaging their nervousness, etc.

Most people opted to do the exercises while thinking out loud. If they paused for a few minutes or seemed lost, we'd offer hints or ask questions, etc. Let them take the discussion where ever they wanted.

All in all worked very well. Candidates seemed more comfortable than just doing whiteboard exercises and we got a really good feel for how they worked with others. We didn't really care much about the code; we wanted to see _how_ they approached problem solving, how well they responded to feedback or questions about potential optimizations or offers of help. Or what happened if they were shown that their approach was a dead-end, but they still doggedly kept pursuing it.

It revealed personality issues very quickly. Nervousness was normal. Some people were hostile when bugs were pointed out, some simply couldn't get started even with extensive help, and others went heads down for half an hour and then came back up with the answer.

It wasn't perfect, but of all the interview techniques we used over the years, it was the one tool that we never got rid of because it proved to be so useful.

<comment><USER4> _others went heads down for half an hour and then came back up with the answer_

How did people who took this approach fare in your scheme? Thumbs up for solving the problem or penalised for "not a team player?"

<comment><USER3> Thumbs up of course.

We're hiring them to be developers first and foremost, so if that's how they work best, so be it. Then we move on to discussing their solution and if they thought it could be improved in any way. The rationale for this phase of interviewing was mainly to accomplish the following:

1) Can you take a problem statement and show progress in writing code in the language of your choice to solve it? You don't have to complete the entire exercise, but you do need to show us that given enough time, you'd probably get the right answer and that you can explain your logic.

2) Attempt to weed out the personalities who can't take negative feedback or refuse to accept guidance when they're wrong.

</comment></comment></comment><comment><USER5> A bit out of topic and not really an answer to your question.

Once in an interview for a startup company(~10 people), when I got into the office they had an uncompleted coat hunger from IKEA and there was a person trying to assemble it. They intentionally let me wait for a bit next to him and he started to look confused with the manual so naturally, I offered to help him and got on my knees and started to read the manual.

They told me much later that that was a test and I had successfully passed it.

I am not sure about the validity of such a test and maybe someone else can verify it.

<comment><USER6> I love to help other people to fix there coding problems. But in this situation I may withdraw unless I really feel person needs help. As per my experience, sometimes offering help hurts ego ( particularly senior brogrammer )

<comment><USER5> Sensitive egos isn't quite a proof of healthy teamwork players, right?

</comment></comment></comment><comment> core-questions For me, this kind of assessment is based on a number of factors:

1\. Personality and language skills - are they sufficiently outgoing and conversant to be able to interface well with others? Introversion is common in our profession but in order to work on a team you've got to be able to talk to people in person. Panel interviews are good for this; anyone who can keep up decently, seems personable, not stressed by the situation, and manages to leave an imprint is likely a good candidate by this measure.

2\. Written communication skills - while arranging the interview, you're going to be emailing back and forth a few times. Ask some questions and see how they respond.

3\. Asking about previous teams and their views on team composition, dynamics, and work distribution; handling large workloads, dealing with absence due to vacation/sickness/etc. This is a good kind of question because unlike asking about what their previous teams _did_, which someone can embellish, asking about the actual process of dealing with different scenarios shows their own understanding. Present a few scenarios and ask the candidate what they think a team lead / manager should do in that situation.

It's going to be hard to get a quantitative metric for this, you have to rely on your intuition.

<comment><AUTHOR> > ...anyone who can keep up decently, seems personable, not stressed by the > situation, and manages to leave an imprint is likely a good candidate by > this measure.

I'm not sure high stress environment test is a good measure. I've worked with some amazing teammates before that might have been nervous if in such a situation.

>Present a few scenarios and ask the candidate what they think a team lead / manager should do in that situation.

I like this approach.

Regarding the question examples you gave, do you look mostly for how they reason through those situations, and their ability to put themselves in their teammates' / managers' shoes, or do you also have a spectrum of [right --> wrong] answers for those questions.

<comment> core-questions > I'm not sure high stress environment test is a good measure.

Talking with a few of your future coworkers in a room where nothing is on fire shouldn't be "high stress" \- interviews are always a bit of a stress inducing thing, but ultimately if you're hiring someone who may have to deal with tough situations from time to time on a team, this sort of situation should be easy enough for them to handle.

If they're not in so much of an ops role and won't be dealing with things that are on fire, you can always reduce this stress by starting 1 on 1, and then adding people as the interview goes along in order to give them a more comfortable base.

> Regarding the question examples you gave, do you look mostly for how they > reason through those situations, and their ability to put themselves in > their teammates' / managers' shoes, or do you also have a spectrum of [right > --> wrong] answers for those questions.

For me, it's more of a matter of determining whether they've just worked on a team as a member, or if they've actually thought about the dynamics of teams and have their own opinions and ideas about what makes for a high performance team vs. a dysfunctional one. Getting a feeling for what sorts of business processes they like, how they like to communicate, what level of tracking artifacts they require/feel comfortable with, how they think work should be broken down, etc. is a good way to understand if they're going to be someone who works well with the way your team is already composed, and if they're going to be someone who is going to help evolve the team in a better direction.

If they say something that makes you bristle, pay attention to your intuition. If you think, "gee, person X on my team isn't going to like that", consider it, because you want person X to be happy and productive and introducing a new team member who is going to potentially have conflict with them may not be worth it. Every aspect of your evaluation forms a heuristic in your mind that you can use to decide if they're the right blend of worker for your particular team.

I really like trusting a lot of this sort of thing to my hindbrain. There's a lot of magic happening back there that combines things in a big-data sort of way that we don't consciously understand, but when it comes to interactions with other humans, we evolved to be good at this kind of judgement - <USER2> it's life or death, in the state of nature - and we should trust our instincts, provided we've tuned them to not be irrationally prejudiced.

</comment></comment></comment><comment><USER7> Why not simultaneously ditch the weak proxy for capability and ditch the weak proxy for what working with them would be like all at the same time?

Instead, just work with them. Have them pair with 1 or 2 people for a few hours. Maybe even engage them in a small team meeting if one comes up naturally. There's no assessment as good as actually doing the things they'd be doing and working with the people they'd actually be working with.

It's a better, more accurate assessment in both directions. For them to want to join your team and for you to want to have them on it. Its also a ton easier to train your team how to execute this method effectively. The standard alternatives are spurious generally, and what little value can be derived from them requires well-prepared, expertly-trained assessors.

Why contrive a weird edifice?

Disclaimer: am currently a person responsible for reforming and building a high-performing team in a very demanding field across hardware and software (both internal and external) disciplines.

<comment><AUTHOR> I agree that working with the candidate is the greatest signal for competence and team fit.

My concern is that oftentimes, there's a lot of context to absorb before being able to contribute, and a few hours wouldn't be enough. Don't want to extend interviews to multiple days --> biases against candidates that have packed interview schedules.

I'm thinking we could structure a problem to take a few hours, and pair program with them, with the interviewers swapping out every hour and half (which would also help test how well the candidate brings someone who doesn't have context, up to speed).

Or perhaps, have multiple candidates work together to solve a problem, and observe how they work together.

<comment><USER8> >> My concern is that oftentimes, there's a lot of context to absorb before being able to contribute,

And that exactly is the problem with interviews where we can't measure what we should really measuring, so despite these marathons and what not, ending up with misfits. I can't explain it better than below: source [0]:

Your scenarios are different, the normal scenario inside a company is: a) Your boss tells the new problem to the team at Monday morning. b) You have your first approach in your mind to the problem. c) The team discuss the problem for 50 minutes. You still don't have a clear idea about the problem and for sure you don't have any idea about how to solve it. But who cares? Is pancake day ! d) Lunch, you think about the problem by your own, for first time in a "serious" way. e) One day later you write an email to clear some doubts about the problem. f) You talk with another member of the team. He notices some potential problems with your approach but also you realize that, after all, your approach is better than his. You walk in the supermarket alley with your wife thinking about how to explain why your approach is better using a metaphor and trying to foresee objections from other team members. g) Thursday you finish those TDD pending upgrades, do the pull request and then you think an hour about the problem meanwhile you are still in the "zone". You have those beautiful "I got it! " moments. h) Friday you "play" with some library that you find googling and you read some code from github from a guy who did something similar. You then notice that there is a part or a step that you didn't consider before, that could change your design to solve the problem in a deep or shallow way. i) After redditing for an hour, yo do a minimal code that solve the functionality. At this time the problem has been processed in your mind for a week from different angles and using different tools. j) Monday at lunch time you take the marker and you write in the whiteboard trying to explain to the team your solution. The team decides to follow your approach. The other scenario is: a) The interviewer tells you an isolated and descontextualized problem. b) Ten seconds later you have a marker in your hand in front of a empty whiteboard. My problem is: how the real cognitive process can be replicated in an interview? Notice that in the real scenario is not the most smart developer but the best "architect" who gets the best solution after many trails and error experiments and dead-ends paths. Of course companies must have a selection process, but the whiteboard kind is just producing a lot of false negatives.

[0]: [https://www.reddit.com/r/programming/comments/4h15a1/why_is_...](https://www.reddit.com/r/programming/comments/4h15a1/why_is_hiring_broken_it_starts_at_the_whiteboard/)

</comment></comment></comment><comment><USER9> So we just went through the process of interviewing candidates for summer internships. Our interview process is far less technical than most and is almost all about determining how the candidate will fit into the team.

I believe it's called Behavior Based Interviews. But basically the interviewing team looks at a list of qualities and picks a few (~3 per person) that they think are valuable for someone joining the team. For example, I chose to look for: Priority Setting, Compassion, and Self Development. Once we have some qualities chosen, we develop questions that are specifically meant to test for those qualities.

Overall I really enjoy this kind of interview process. I feel like these qualities are more important than technical ability, so it's nice to put more emphasis on them during the interview process (We still do assess technical ability of course). And for us, it results in new team members that I'm excited to work with!

<comment><AUTHOR> Nice!

> I chose to look for: Priority Setting, Compassion, and Self Development. > Once we have some qualities chosen, we develop questions that are > specifically meant to test for those qualities.

What are some questions that you used?

<comment><USER9> So all of the questions had some kind of context/primer that I'd talk about before asking them, but the actual questions were:

Priority Setting - Have you ever felt overwhelmed by the work you've been given? How do you manage the work so that it gets done on time?

Self Development - How do go about seeking feedback from those around you to facilitate your personal growth? What is something that you've learned about yourself recently that you found helpful?

Compassion - Tell me about a time where you worked with someone who was struggling, for whatever reason. What were some of the challenges? How did you go about helping them deal with their struggle?

</comment></comment></comment><comment><USER10> I spoke to guy once who was researching what makes a high functioning team for some large (unarmed) company. His insight over the various studies he'd looked at was as follows.

1\. High functioning teams are in the order of 5–10 people 2\. Everyone in the team is respected for what they bring to the group regardless of experience.

If you've 20 years experience you're valued for your knowledge of pitfalls etc. If you've 2 years you might be valued for your enthusiasm. Or if your a fresh graduate you could be valued on your ability to question conventions that others do not.

My question is: given this, how would an interview ever hope to sift out a potential candidate. Especially when the qualities of the final aren't (could never?) be properly specified relative to the team they were due to go into.

<comment><AUTHOR> > 2\. Everyone in the team is respected for what they bring to the group > regardless of experience.

I agree with this.

I think there are ways to notice this during interviews. I'm a fan of a junior engineer interviewing a candidate for a senior position - as a way to see how well they interact. Perhaps the question could be more open ended (e.g. explain x,y,z concepts - maybe oven ones that the interviewer doesn't know but wants to learn). If the junior feels like they had a good interaction, were able to learn, and felt respected through the process, great. If the candidate seemed offended by the lack of experience of the interviewer, then not great.

A highly subjective signal though.

<comment><USER10> That might be a start. But there's even more subtle things going on.

What about the person who can resolve conflict. The person who always takes on a task to the bitter end regardless how bad it smells. The person who thinks ahead. The developer who loves process and documentation. The developer who can code you out of a tricky situation. The person who's always trying new things.

Personally I think it's a lottery. Like putting together a football team but we don't even know the positions yet. We just know they can play football

</comment></comment></comment><comment><USER11> Should the candidate fit into the team, or should the team fit into the candidate? Given that most companies want to have a as diverse workforce as possible, it seem reasonable to argue that the _least fitting_ person should get the job. :)

<comment><AUTHOR> I think you're talking about culture fit. Even when striving for diversity, I want to ensure competency in the role they'll perform at the company, which I feel depends on a combination of technical experience, understanding, ability as well as communication skills, and ability to function well in a team.

I'm trying to think through how to assess team skills well that would also fit into the constraints of an interview.

</comment></comment><comment><USER12> Code pairing rounds usually give a good picture. How they respond to disagreement from someone lesser in experience than them? How they deal with conflicting ideas etc.</comment>


Ask Hackers: How to become the best JavaScript programmer? (q by 12yr old) - <AUTHOR>

I love everything about the web and web 2.0 and I would love to become the best JavaScript programmer ever!
Can you give me hints and tips to become one?
PS. I am 12 years old <comment><USER3> The way to become a good programmer is to have projects that drive you. So build stuff. You'll find you learn very fast when there is something specific you want to do and you don't know how. So you should read books, certainly, but don't just work your way through books.

It doesn't matter super much what language you learn initially. So if you have some friend who is an expert in another language, you might be better off learning that, then switching to Javascript once you know the basics of programming.

<comment><USER4> I'd reiterate that you it doesn't matter what language you learn first.

You wont _really_ understand any language until you've learned a couple of others and are able to see programming from several perspectives.

</comment></comment><comment><USER5> Get Firebug and play with it. (You probably know this, but just in case...) Firebug is a Firefox plugin with a Console tab that lets you enter any Javascript you want and shows you what it evaluates to. If you type 2+2, it will say 4, and so on. It will also let you explore the internals of web pages and fiddle with them to learn how they work.

The best way, in fact the only way, to learn programming is to read and write a lot of code. An interactive environment like Firebug makes that easy. If I were you, I'd get myself a good Javascript book and type in the examples as I read them. Then I'd try modifying them to do cool things. Good luck!

Edit: when you get stuck, ask questions. I taught myself programming when I was your age and my biggest obstacle was not having anyone around who could help me when I got stuck. Nowadays that's not a problem since there are lots of people on the web who are happy to help.

<comment><USER6> +1 for Firebug. Getting out of my Python comfort zone and writing Javascript used to be scary. But now that I have an awesome debugger and the ability to experiment at runtime (and jQuery) I feel comfortable writing enough Javascript to make my applications suck less.

<comment><USER7> +2 for Firebug. Firebug should be your number 1 priority to get familiar with.

jQuery... I have mixed feelings about it.

On the one hand, its very good for high level thinking and writing good, readable code. On the other hand, it slows down your javascript code by at least 2x, which is particularly noticeable if you're doing a javascript intensive application. Then again, the future of browsers is speeding up javascript, so this may not be an issue in a couple of years.

My experience with Prototype is that it handles the speed issue much better - however, it is a bloated monster of a framework.

<comment><USER8> I usually approach JavaScript frameworks the same way I approach high-level languages: write the app in whatever way is most convenient, then profile and rewrite the performance-critical sections without the framework. I've never had performance problems with JQuery, because I usually just write my mouseMove handlers so that they operate on the raw DOM without it.

(I wrote something to this effect on Proggit once, and John Resig reply was something like, "Of course. JQuery's not intended for performance-critical code - usually you don't want to be using _any_ framework for that. JQuery's meant to make the _other_ 90% of JavaScript development go faster.)

BTW, I won't go near Prototype (after having used it pretty extensively at a past employer) because it messes with Object.prototype. When libraries do that, you have no way of knowing which libraries are compatible, which means that you'll suddenly get bitten by very odd, hard-to-track-down bugs.

<comment><USER9> I should say that /any/ framework is not intended for performance-critical code. A framework is designed to be an abstraction - abstractions implicitly remove you from what you're trying to do, causing a performance hit of some sort. If performance is your #1 priority then you should be writing everything from scratch.

Now if development time is a greater priority over performance then I think the choice is pretty obvious.

</comment></comment></comment></comment></comment><comment><USER10> 1\. Become a great programmer: <http://norvig.com/21-days.html>

2\. Then learn Javascript.

</comment><comment><USER11> 1) Work on challenging problems. Try to do something you're not sure you can.

2) Find a good mentor - it could be a prof at a local university, family friend who is a hacker

3) Practice, practice, practice - write javascript to make stuff for fun.

4) Go to websites you like and de-construct their javascript code and figure out what it's doing.

5) Don't be shy to reach out for advice, like you're doing now.

<comment><USER12> 6) Go to school, even when you are not going to learn Javascript there, you are going to learn a lot of things that are very important for your projects too.

<comment><USER13> > Go to school... you are going to learn...

The learning will not come to you, you need to go out and get it. Don't just go to school, attack school, suck the juice out of the fruit, and have fun doing it. Make it fun and hard.

</comment></comment></comment><comment><USER14> 1) The #1 secret to good JS is mastering crazy-yet-delicious object-orientated prototype madness. You won't get anywhere just learning how to write functions, but learning how to use prototyping well is a esoteric skill, so that's where Crockford comes in:

2) Check out the videos on <http://developer.yahoo.com/yui/theater/> There's 2.2gigs of them for you to digest. Crockfords are especially good, and will teach you good practices.

3) Use a framework like mootools to save you time on real projects. However, I advise against assuming these frameworks are "perfect"; they all have faults.

4) Don't copy other people too much - many JS devs, including me, are terrible programmers :-P

5) Learn JS by creating AJAX projects as it's so important to web apps. "Professional Ajax" by Zakas is a decent place to start.

6) Enjoy it! JS is a fantastic language, and the quick returns can be incredibly rewarding. It has its faults, but it is amazingly powerful and quite unique.

<comment><USER15> _Don't copy other people too much - many JS devs, including me, are terrible programmers_

One of the biggest problems with JavaScript is its community. I'm not talking about N.YC readers who _think_ they are bad programmers. No, I'm talking about the fact that there are reams and reams of plain old bad advice on JavaScript out there that still outrank the good stuff in most search engines.

99% of the time a Google search on a JavaScript problem will score you pages of hits with antiquated, non-standard, buggy or IE-only approaches.

<comment><USER16> SO TRUE.

</comment></comment></comment><comment><USER17> Hi javascripter. First of all, welcome to news.yc!

There's at least one thing you're already doing right: you're starting out with a problem that interests you. However, I don't think you have quite the right goal. You don't want to be the best Javascript programmer ever. You want to be the best programmer ever. Javascript should just be one weapon in your arsenal, and a rather specialized one at that.

That said, you have to start somewhere. Usually I recommend that people start with Scheme and read SICP (online at <http://mitpress.mit.edu/sicp/full- text/book/book-Z-H-4.html>), but since you've indicated that you're interested in web programming, that's probably not the right first step for you. The trouble with web programming is that it's _messy_. Any non-trivial website requires you to understand a whole alphabet soup of different programming languages and markup languages, some of which were designed for each other and some of which weren't, and then to top that off you get to worry about Internet Explorer dain bramage. If you're just programming for an audience of you and nobody else and you choose carefully what to work on, then you can ignore some of these issues, but sooner or later they'll leak in and it's going to seem overwhelming. (This isn't necessarily bad; coping with information overload is one of the most valuable skills a hacker can learn.)

So, here's what I suggest. Start by learning Python. It's a clean, reasonably powerful, easy-to-learn language, and it's very good for web programming. I assume you already know HTML; if not, learn that first -- it'll take you a couple days max. You can make a pretty capable website using just Python and HTML. You could almost write news.yc, except for the AJAX up-arrows which require Javascript. A site like this would be pretty big as a first project, though.

I'll let someone else recommend a Python tutorial. I just learned it from the reference manual, so I don't know a good one.

Once you feel confident making web pages using Python and HTML, then it's time to start learning Javascript. It might also be a good time to go back and learn to write standards-compliant XHTML-strict and CSS, since this will make working with the Javascript DOM a bit less of a headache, but this is optional and you can do it in parallel with learning Javascript if you do it at all.

Finally, here are some bits of non-technical reading I recommend:

<http://www.catb.org/~esr/faqs/hacker-howto.html>

<http://www.catb.org/~esr/faqs/smart-questions.html>

<http://paulgraham.com/gh.html>

</comment><comment><USER18> I know there's some redundancy in this advice but I thought I'd mention it to support the great tips already here.

Practice. Read and write a lot of code. You might try to work your way through set problems like Project Euler or the Ruby Quiz or other competitions.

Learn the "laws of physics" of programming - some things are harder to do than others. all programming is an interplay between making a tiny, trivial and deterministic step on one hand and managing complexity through abstraction on the other.

it's most instructive to try things for yourself - even if you fail - but on the other hand make sure you attempt things you will definitely succeed at too because the feeling of success will fuel your passion. you will never be a great developer without passion!

Watch Douglas Crockford's JavaScript videos.

use Flanagan's Rhino book.

Try and use different programming patterns and styles in javascript: imperative, functional, object oriented, continuation-passing, dependency injection, fluent interface.

Always use var and semicolon.

Never use "with" or "eval".

Plan to learn another programming language (which smart people recommend you) and it will also greatly assist your javascript programming - you should not be too tied to a single language that you can't change. If you really like web 2.0 you should learn a good server side language as well. As a second to JavaScript for a youngster I would recommend Ruby or Python, (or PHP if you must). Other languages are really great for that purpose but these will be easier to learn first and will be readily available on cheap hosting providers. Those others may include: Lisp/Scheme, Smalltalk, Java, C#, Scala etc. Do not learn VB.

Get firebug.

Read "The Pragmatic Programmer".

Reuse code.

Write automated tests. You can use a unit test framework.

Write lots of cranky cryptic puzzle code right now. Get it out of your system. Then seek to write clean comprehensible code forever more.

Port code from another language.

Recognise that lots of people in professional development have absolutely no idea what they're talking about. Others are absolute genius gurus who's words you should memorise and meditate on. Good luck telling the difference!

Use the force.

</comment><comment><USER19> Read a good book about Javascript, like "Head First Javascript".

After you've finished reading it, learn what can Javascript libraries like Mootolols or JQuery can offer.

And of course: practice, practice and practice. Working in your own challenging projects is the best way to do that.

Enjoy it.

</comment><comment><USER20> I've been learning JavaScript myself, and I've been finding Douglas Crockford's site useful:

<http://www.crockford.com/>

(Note that to become the best JavaScript programmer ever, you'll probably have to pick up some other languages along the way. But JavaScript is both a good language to learn and a good language for learning, so it's not a bad idea to learn JavaScript really well first before learning others. Keep an open mind.)

<comment><USER21> "some other languages" a.k.a. Lisp, really

</comment></comment><comment><USER22> _JavaScript: The Definitive Guide_ (a.k.a. the Rhino Book, published by O'Reilly) is a great place to start as well as a great reference.

In fact, Douglas Crockford (mentioned elsewhere in this topic) says it's the only JavaScript book he can recommend.

<comment><USER23> Another great place to start is Jeremy Keith's DOM Scripting book (published by Friends of ED), it's really well written and a great introduction to unobtrusive, clean Javascript. There's a sample chapter on his site: <http://domscripting.com/book/>

On a side note, don't learn a library as the first thing you do as you'll be learning how to code in jQuery, Prototype, etc, rather than in Javascript.

</comment></comment><comment><USER24> I started learning programming at 12 years old. An ideal year in my opinion. Experiment with everything you have the time to learn about. You may be surprised at what you can do with an otherwise bland tool or function.

</comment><comment><USER25> Ignore what others say about your interests, put your head down, do a bit of hard work (but mostly play,); get involved in communities (eg, your favourite javascript library's community), get recognised for your work, learn from the masters, but don't ask for answers, ask for tips.

That's all I could say, I'm 16, and currently working along side some very cool people. I've been in it about 3 years.

</comment><comment><USER26> Congratulations on picking a great language to learn with.

Lots of people have recommended the definitive guide, David Flannagan's book.

I recommend, also, John Resig's book, Pro JavaScript Techniques, and also take a look at his website.

If you'd like to learn some functional programming, and write some of the coolest code possible, take a look at Oliver Steele's website.

</comment><comment><USER27> To become the 'best' Javascript programmer you'd probably need to know everything about Javascript. Also you'll need to know its limits. To know its limits you should probably learn about other things that aren't Javascript but closely related to it eg other programming languages, web browsers, HTML, DOM etc.

Good luck!

Let us know how it works out.

</comment><comment><USER28> I hope you understand that while javascript has its uses, most web applications are built on server side scripting languages. Much to the chagrin of the hackers here at YC, I personally would recommend learning PHP or Python. Probably PHP though. (Cue Ruby fanboys and anti-php lynch mobs). Really, it is the place to start if you're interested in Web 2.0 application development. Javascript is a tool you can pick up later that allows you to do cool things with your site. But I mean, wouldn't you rather jump right into doing things right? Starting with javascript will end up being sort of like...taking a class in school; you have to learn a bunch of things first, figure out something to make, embed with HTML and toy around and in the end, do you even get anything functional? How bland is that?! Now, if you start with a server side scripting language, you get your "hello world" experience and you jump right in.

Just my 2 cents...

</comment><comment><USER29> (make sure you know HTML)(heres a good cheat sheet <http://www.webmonkey.com/reference/HTML_Cheatsheet> ) im 13, i know it. the best way is to learn it here <http://www.yourhtmlsource.com/javascript/> go thru it all then think up ideas for scripts and try them.

these are wat i did (you may not know enof from that site) -a personal greeter- a form that lets people write thier name is a box clik a button and it displays a greeting w/ thier name included in it \- a coin flip script.- that displays a RANDOM heads or tails alert -a dice roll script- that display a RANDOM number 1-6 -any of your ideas

Simple as that =] ___Jasello___

</comment><comment><USER30> In addition to all those other things that people mentioned, write a JavaScript interpreter.

You can't truly master a language until you know it inside and out. Implementing the language is a great way to do that. That's how I learned ML and Haskell. That's how I'm learning Lisp.

</comment><comment><USER31> First of all, do NOT start by using a javascript library (prototype, jquery, etc). Learning a library isn't half as useful as learning the language.

So, get a copy of O'Reily Definitive guide, Start working through that. Watch the Douglas Crockford lectures from Yahoo.

Install firebug and start messing around.

"Hrm I've read about the arguments.callee property. Lets play with that for a few minutes and see how it works" etc etc

The main thing is just to explore, get down to the nuts and bolts, see how it all really works. Try things out, and see if they work or not.

</comment><comment><USER32> One of the most difficult parts of JavaScript and web 2.0 is getting things to work on all the different browsers. Install the most recent versions of the most widely used browsers: <http://www.w3schools.com/browsers/browsers_stats.asp>

Quirksmode.org has some really good compatibility tables as well: <http://www.quirksmode.org/dom/compatibility.html>

</comment><comment><USER33> Good luck man. I've been programming all my life and _still_ love it. Javascript is a great language to dive into.

Always be working on a project. Come up with an idea, like tic-tac-toe and start hacking on it, until you are finished. Then cook up another idea and hack on it. Without an idea, you'll just float around. Get Firebug and learn to love jQuery, it's magic.

And if you want to be great, you don't want to be a programmer, you want to be a hacker. :)

</comment><comment><USER34> This might help Best Practices in Javascript Library Design <http://www.youtube.com/watch?v=0LKDImgRfrg>

</comment><comment><USER35> Much respect to you, young coder! I avoided Javascript for far too long, but when I needed to learn it, the o'Reilly Javascript & DHTML cookbook was a great resource.

Firebug is nice, but Venkman's Javascript Debugger for FireFox is my favorite. The interface is a bit weird, but your mind should be flexible enough to figure it out. :)

Good luck!

</comment><comment><USER36> I'd suggest learning Flex. For the longterm, I think this is the true winner.

If you are absolutely determined to learn Javascript \- I agree with others read the articles by Crockford and watch the Yahoo UI videos \- Read the code for dojo. Alex is one sharp javascript guy. \- For ajax frameworks look at DWR

Good luck... and have fun !!

</comment><comment><USER37> You've already got the atitude to be an excellent programmer. Your success is assured if you learn more than one programming language. For you purposes, learn Pascal, learn C, learn Perl, learn JavaScript. This will minimise your learning curve and risk of failure while giving you increasing power and understanding.

<comment><USER17> Ugh. Pascal? What for?

<comment><USER37> A langauge with strong typing and bound checking is ideal when you're learning algorithms. A newbie coding a bubble sort in Pascal encounters less mysterious failure modes than a newbie coding a bubble sort in C. (Consider the off-by- one gotcha at the end of the inner loop.) I know that strongly typed languages are unpopular on this forum and I've been downmodded for mentioning one. However, consider the suggested progression of languages to be like riding a bicycle and then having the training wheels removed.

<comment><USER17> I like static typing, but Pascal seems like a weird choice. Why not ML, or even Java?

<comment><USER37> I don't have direct experience of ML but I'd definitely recommend against Java because there's a tsumani of information. It is overwhelming for a newbie. Pascal is small and concise. The grammar is unambiguous. You know when you've outgrown it and you'll move on. When you master Pascal then C looks trivial. When you master C then Perl looks positively slack. This can be done while minimising information overload.

</comment></comment></comment></comment></comment><comment><USER38> You're 12, you want to be the best javascript programmer ever, and you post on hacker news.

You're my hero...

</comment><comment><USER39> I just realized that I have about 10 years to do all the hacking I want, and then the current crop of 12-year-olds will hit the market and annihilate us old guys.

</comment><comment><USER40> Has anybody here compared different JavaScript techniques for drag and drop? What works best?

</comment><comment><USER41> i'm 15 and i want to become the geatest hacker ever for those who read this e-mail me at firstname.lastname@example.com thanks

ps.can you give me some programs

</comment><comment><USER42> give jquery a try:

<http://jquery.com>

Most fun javascript library ever.

<comment><USER43> Learning a library is not the way I would recommend learning a language. At 12 years old, javascripter has no time constraint to build a product fast.

javascripter, learn about Javascript's language features. Learn about nested function and function passing. Learn about object-oriented Javascript and prototypes. Learn the difference between Javascript the language, and DOM, the thing within the language you use to add functionality to web pages. If you find that you are repeating things, write your own library.

Is this the first programming language you are learning? If so, it will give you a leg up when you learn a more conventional language like C or Java, because it will give your mind flexibility. If you already know a programming language, understand that different programming languages have different ideas about how programs can or should be expressed. (That's why there are so many languages.) It will sometimes be helpful to see how something in a new language is similar to a language you already know, but other times you have to just say to yourself, this is different, and I have to think a new way.

<comment><USER9> I don't believe this, at all. A JavaScript library abstracts away frustrating details that aren't related to the JavaScript language: like insane browser bugs.

Instead choosing a good library can give you free range to explore the advanced programming concepts in JavaScript, instead. jQuery, for example, is highly functional. It makes heavy use of lambdas and closures - <USER2> encouraging newbie programmers to use them.

If you want to get better at programming, through programming JavaScript, then a library is the only way that you'll be able to keep your sanity and make that a reality.

</comment></comment></comment><comment><USER44> Am I the only one who suspects spam?

<comment><USER17> I think so. Why do you suspect that?

<comment><USER44> His alias is "Javascripter"... he wants to be the "best in the world"... he's 12 years old... just the overall wording taunts me with a hint of spam.

I don't think a 12 yr old would have that enthusiasm for pure javascript.. would definitely ask about HTML (if he knows html he knows how to find out about javascript?)...

what 12 year old knows about YC.news?

Seriously... I'm calling this one out... spam.

<comment><USER17> Well, I assume you really mean "troll" rather than "spam", and given the earnest and constructive answers he's gotten so far, I'd say that if he's a troll he's the least successful one ever :-).

<comment><USER45> When I was 14 (1995), I'd been doing shoddy programming for a couple years and read an article in Newsweek about genetic algorithms and somewhat naïvely decided to look up the guy interviewed (on compuserve) and drop him a mail (David E. Goldberg). He went to the trouble to not only answer me, but run off a huge packet of copies of articles and snail-mailed them to me. That seriously changed my life. That's when I learned what computer science really was. Answering questions like this is important, in my opinion, even if you get duped once in a while.

Whoa, just found it again: <http://www.newsweek.com/id/103827/output/print>

</comment></comment></comment></comment></comment><comment><USER46> Build a flash game in javascript.

</comment><comment><USER47> A little dated, but the site I originally learned Javascript:

[http://www.jalix.org/ressources/internet/dhtml/_dynduo/dyndu...](http://www.jalix.org/ressources/internet/dhtml/_dynduo/dynduo/)

Have fun.

</comment><comment><USER48> My very first language ever was javascript. I completed Thau's javascript tutorial and the advanced version (both at webmonkey.com), and from there I got a really nice start (without knowing it).

If you combine a simple introduction like that with plenty of exploration with Firebug, and have a strong motivation -like making a kick-ass webpage for yourself-, you are on your way,</comment>


SocialMod - automatically moderate the "idiots that rule" - <AUTHOR> http://www.socialmod.com/

<comment><USER2> Now the site make sense. A lot better than last time it was on HN. <http://news.ycombinator.com/item?id=628257>

Kudos.

</comment><comment><AUTHOR> Thought this might be interesting to mention as a solution to the Trent Reznor problem.

</comment><comment><USER3> A cool idea, way overpriced in my opinion, though. $24-$149 a month for "you moderate" packages? I could roll my own in almost any programming language in 1/10th the time it would take me to integrate with their service.

The MTurk services are a little more reasonably priced, 2.9 cents a comment is about what I'd offer the users directly.

<comment><USER4> I have my doubts about whether the Mturk payments are going to attract moderators capable of handling more than the 'LOL I TROLLED U' comments, though. It seems like more of an anti-spam/swearing tool than anything likely to elevate the quality of discourse; that's useful enough in and of itself for quite a few sites though.

I do think it's fairly pricey. 15k messages/mo ain't much on a busy site. Some political blogs rack that up in a couple of days, but I don't see them putting down several thousand a month for crowd moderation.

</comment></comment><comment><USER5> It is quite sad that we have to use actual people (Mechnical Turk) to simply filter out the garbage.

We've more or less figured out how to train spam prevention systems. How is "troll prevention" a fundamentally different problem?

<comment><USER6> Spam is automated, trolling isn't. So it makes sense that spam detection is easier to automate than troll detection.

A different way to say just about the same thing: Trolling can be customized to a specific context, it can rely on sarcasm or social references, etc. I don't think there exists any NLP system that can pick up e.g. written sarcasm.

<comment><USER7> Spam is not automated anymore. Automated spam doesn't get through modern countermeasures such as human-detection and bayesian filtering, so it is not worth considering. The spam that you actually see today on most sites is hand- pasted by real human beings (at least the stuff that makes it onto my site is. I'm sure you can still find plenty of phpbb sites that are overrun with the old sort).

It's hard to do anything about because they'll simply strip the content of an article that would fit well on your site, and stick a link at the bottom. Or maybe they'll skip the link for the first dozen blog entries until they think they've gained your trust.

Real spam (versus the wikispam v1agra stuff that gets automatically swatted down) is tricky. And these people are a lot more motivated than trolls, since they get paid when they get a working link on your site.

<comment><USER6> > Real spam...is tricky

Okay, fair enough, but then it's not the spam pacemkr was talking about.

<comment><USER5> I've actually seen my share of this type of spam as well. Lucky for us all of it came through Indian IPs, while our users were all from the US.

They are really getting creative. They WILL post several messages to "gain your trust" before they throw in a link. I can't believe all this effort is really worth it for whomever is sponsoring this "human spam".

</comment></comment></comment></comment></comment><comment><USER8> The biggest risk in this is the stick situation you come to when somebody who feels that a legitimate comment was moderated and feels the need to make a fuss about it. It's a little hard to come up with a thoughtful response to that. "Well, my moderators made the decision." "Who are they?" "I don't know them."

</comment><comment><USER9> What if this service were used to moderate the administration of Adsense bans by Google?

"Independently verified enforcement of TOS brought to you by SocialMod"</comment>


Can entrepreneurs revive Motor City? - <AUTHOR> http://www.economist.com/news/united-states/21646755-can-entrepreneurs-revive-motor-city-green-shoots?zid=311&ah=308cac674cccf554ce65cf926868bbc2

<comment><USER2> I wonder if Dan Gilbert paid for this piece, as I suspect he did for many of the 'Webward Ave' articles that popped up when he bought a bunch of properties on that street.

As the opinion of someone who grew up in Michigan and still lives not too far away, tech can't solve the problem. Tech (and tech money) can revitalize downtown, but the problem will have to be shipped somewhere else. It's not just going to go away.

Everyone knows what happened in Detroit and Milwaukee and St Louis and other blighted cities, but do people actually stop and think about what _really happened?_ You had a massive amount of low-skilled workers. Millions in these cities. The low-skill jobs went away, and as they did, the workers had no where else to turn. The jobs were gone. As the cities accumulated more homeless and jobless, they got more crime and more tensions. More crime and more tensions means that the owners and managers and skilled labor that was around (mostly white) left the city. This meant more low-skill jobs disappeared, the jobs that were supporting the higher-skilled workers. Grocery stores, gas stations, etc.

The buildings aren't all abandoned because no one wants to live there. Some of the buildings are abandoned because no one can afford to have their name legally associated with living there. People still live there, but they don't own the building, they just squat in it.

You can't bring in high-skill tech jobs and expect Detroit to be fixed. You can't expect to hire from the local population because there are so many who didn't go to college, didn't finish high school, and are only focused on making ends meet (because so often they can't). You _can_ get a small bump from shipping in higher-skilled workers, as the supporting infrastructure will bring some low-skilled jobs. But it's not enough. It won't revitalize Detroit or Milwaukee or St Louis or a dozen other Rust Belt cities around the country.

It'll be very hard for private industry to fix this without pumping a lot of money into it without expectation of making that money back. And if I learned anything in my economics class in college, it's that you can't rely on the private sector to put money into public goods or things with immaterial gains. Even if tech "revitalizes" Detroit, it will look more like San Francisco, with Oakland looming just across the bay. You'll have thousands of skilled workers driving up the price of things and calling it a success, while ignoring crime waves and homelessness because it's not happening in _their_ city. They'll just push the problem to Saginaw or Flint.

<comment><USER3> > Everyone knows what happened in Detroit and Milwaukee and > St Louis and > other blighted cities, but do people actually > stop and think about what > really happened?

I don't think it's limited to those areas, that's just where it's just really obvious because they were hit the hardest. There are so many areas of the country where manufacturing was a good, steady job.

On a positive note, I work for a startup that's been sitting at two different tech incubators in the past year, and it's clear to me that advancements in technology will continue to create jobs.

Many of the jobs in factories weren't low-skilled. I think our perception is skewed because we have more power in our pockets than a Cray in 1994. The knowledge worker is the new machinist. Machinists were the skilled workers who could fix machines. Knowledge workers can write software to keep business processes running, administer systems and networks to keep them running.

What is the next wave of highly skilled worker going to be? Will the rise in MOOCs redefine what a highly skilled worker is?

<comment><USER2> You're right that many of the jobs were skilled labor. But like I mentioned, when the factories closed down, skilled labor moved out of town. They had the ability to do that because they had money and their skills were not readily available in the marketplace. Unskilled labor doesn't have that advantage.

The idea is that blighted cities, no matter where they are, need to fix the unskilled labor problem before they can truly solve the downward slump.

</comment></comment></comment><comment><USER4> The Detroit that existed for most of the 20th Century likely can't exist again in the US unless the whole nation's economy changes. You'll never have a large population of low (formal) skilled workers making good money because their experience and a general shortage of reliable labor. The corporation has figured out for the most part how to move the know-how from the worker's brain to a corporate training manual, and unskilled labor is no longer scarce anywhere for long since relocation is a lot easier than it was 50 years ago. If Detroit is going to turn around, it is going to look like most of the other American cities. Lots of young creatives move in, followed by trendy bars & restaurants, followed by young white collar workers who want to live in the new trendy area. The white collar workers price everyone else out, and the process starts again in a new neighborhood. The white collar workers could come from startups, but the area already has plenty of them working for established businesses like the auto companies. Downtown Detroit at that point would just be a bigger Royal Oak or Ferndale with some high rises and old money sprinkled in.</comment>


The Atlas of Drowned Cities - <AUTHOR> http://spatialities.com/

<comment><USER2> Nice. The 40m map needs a fix on the title though.</comment>


So you want to be a freelance developer - <AUTHOR> http://alicki.me/blog/so-you-want-to-be-a-freelance-developer/ <comment><USER2> This article teaches little about freelancing as a swdev.

Seriously, "use git", "get paid" etc ?</comment>


Optimizing for happiness - <AUTHOR> http://speakerdeck.com/u/mojombo/p/optimizing-for-happiness

<comment><AUTHOR> Seems like github is doing it right by following the motto of "investing in humans [...] to build the best company".</comment>


Microdosing Penganum Harmala (harmine, harmaline) improves affect - <AUTHOR> https://www.researchgate.net/publication/322234580_Microdosing_Peganum_harmala <comment><USER2> Sample size of one:

 _Study constraints, such as potential adverse effects and accessibility to EEG hardware limited the study to two participants, the researcher and one other participant. Due to time constraints, the other participant elected to discontinue participation and dropped out on study day 3. The researcher is a 34-year old male, graduate educated_

<comment><AUTHOR> Ha oh snap - I missed that :P I've been reading a lot about harmine and suspected people would have clued into it being basically a wonder drug.</comment></comment>


I'm a linux noob, that thought he knew something, got destroyed in an interview. - <AUTHOR> http://bsdpunk.blogspot.com/2011/03/linux-job-interview-from-hell.html

<comment> X-Istence Honestly, from the sound of it you just hadn't been paying attention over the years as you were learning all of the commands, it seems like Google is your go to tool of choice.

I've been there, and I had to stop myself. The fastest way to learn something is the hard way using the man pages, as looking up the same argument to a program over and over is going to get it stuck in your head much faster than anything else. At least for me, I will qualify the previous statement with that.

I too have written countless of scripts to do meaningless tasks, it is one of the reasons why I became a computer programmer, I'd rather spend 2 hours writing a script that works in all corner and edge cases and never have to do the same menial task again than spend the 30 minutes it would normally take to just finish the problem (knowing that it would most likely come up again, and it would once again take me 30 minutes ...).

The thing is that certain things should start to sink in even while using scripts. I have scripts to set up an entire FreeBSD system in under 30 minutes with custom software deployed, configured and running, but if it ever doesn't work right I know exactly how to fix it because I know all of the steps in that script.

\--

It comes down to some rote memorisation and the rest becomes ingrained to the point that you can yell the commands across a cubicle to your colleague. I recently learned git inside and out, and now have no problem while standing next to a co-worker dictating exactly what they need to type to get it to do what needs to be done. I'm the same way with FreeBSD system administration (Linux not so much, but I can find my way around an Debian and Ubuntu box).

I started playing with Linux and FreeBSD when FreeBSD 4.6.2 was released (I ran an open email relay on my home cable box at age 13 (I am now 22), by mistake). Some of the things you have mentioned in your blog post are some of the simplest concepts of Linux.

</comment><comment><USER2> This post would be so much more useful if it had a list of the questions asked, what the wrong answers given were, and an explanation of why the answers were wrong, along with links to the information needed to come up with the right answer.

<comment><AUTHOR> I tried to put as many of them up here: [http://bsdpunk.blogspot.com/2011/03/questions-and- aftermath....](http://bsdpunk.blogspot.com/2011/03/questions-and- aftermath.html)

<comment><USER3> Here is some trivia for you, seeing as how your blog name is bsdpunk:

"shutdown -r" on FreeBSD runs the rc.shutdown script{s}, whereas "reboot" does not.

See this thread:

[http://lists.freebsd.org/pipermail/freebsd- stable/2010-Decem...](http://lists.freebsd.org/pipermail/freebsd- stable/2010-December/060537.html)

</comment></comment></comment><comment><USER4> I dislike interview questions that sound like they were pulled from some industry certification test. What's the point in asking people questions that test their memory?

Today the fact is that we DO have Google and other tools at our fingertips. If it means that we have fewer definitions and facts committed to memory, so be it. It's not a bad thing to look up information on an as-needed basis. The information will be fresher and likely accompanied by recent developments. Even doctors do this when they're about to perform an operation they haven't done in a while.... they'll look up the procedure beforehand and refresh their memory to ensure that they follow the current standard of care.

Interview questions should focus on exposing problem-solving ability and getting to know the person to determine whether he/she is a good fit for your existing team.

<comment><USER5> Wanted to come here and say this! It seems to me a lot of this is to inflate the ego of the interviewer almost.

</comment></comment><comment><USER6> I've definitely been in that awesome "hopelessly incapable of answering an 'easy' interview question" situation before. The worst time was when I was interviewing with RethinkDB, and one of their guys asked me a dynamic programming question. Did I know that dynamic programming was fair game for any technical interview? Absolutely. Did I prepare for it at all? Nope (which is not to claim that I would have aced it with some amount of preparation -- I just know I couldn't have done worse).

I remember thinking as I was leaving "Well it was cool of them to buy me lunch, and the weather's nice." Later that evening my doubts in my interviewing prowess were confirmed :)

Still, awesome guys, hard problems, I encourage you to apply :) <http://rethinkdb.com/jobs/>

</comment><comment><USER7> Start by 'man kill', dude. And let go of the damn attitude - even your 'I was crushed' post is full of it.

</comment><comment> hacker-gene Actually, I was impressed how the OP handle his setback and how he took it as a learning experience.

== Below was a supposedly reply of mine to the top commenter in Reddit, but keep getting an 504 error message ==

Not to disagree with you here since this seems to be the sentiment here, but the questions (ie. boot process/signals) he was asked was broad and would have shown if the candidate have a solid grasp of Linux fundamentals.

Hypothetical situation, say he applied for sysad job in big Linux shop like Google. Describing the boot process would have given the interviewer an idea how well he would recover from a system crashed using a rescue disk. Understanding signals are important for making non-trivial Bash scripts. And describing a symmetric/asymmetric encryption is crucial if one of you job responsibilities is to administer certificates.

Not saying the questions are easy, they're not. But if you're applying for something like a Linux sysadmin job, then these questions are good indicator how strong your skills are in this area.

</comment><comment><USER8> You've been a cloud admin for over five years and working with Linux for over 20, but you don't know the difference between symmetric and asymmetric encryption?

I'm as arrogant as the worst of them, but this sounds borderline ridiculous.

That said, I'm looking forward to see how you're looking to change this.

<comment><AUTHOR> Well, I asked the interviewer if by asymmetric he meant something like PKI, and all I got was a frown. And I was like symmetric encryption is just normal. I think I was more caught off guard, as well as just not thinking much about it. I got all the PAM questions right if that helps. Probably doesn't. I feel genuinely humiliated by the whole situation.

Seriously in the back of my head I heard my Father's voice: "You done fucked up good, boy"

EDIT FOR FATHER QUOTE

<comment> X-Istence The difference is rather simple. (Although I have a feeling that tpatcek will tell me I am wrong on some count)

Asymmetric encryption has two parts, a private key and a public key. One encrypts data with a public key and then the only key that can decrypt it is the private key. The private key, as the name suggests, has to stay private and is a secret, whereas your public key you can hand out as you please.

In symmetric encryption you have a single key, it is used to both encrypt and decrypt the data, and thus if that single key were to fall into the wrong hands that person could then decrypt the data, whereas with a public key that is not the case.

This is a very simplified overview of the differences.

</comment></comment></comment><comment><USER9> "In my walks, every man I meet is my superior in some way, and in that I learn from him." --Ralph Waldo Emerson

Humility my man, humility. Everyone's eaten humble pie before; if you don't eat it on a semi-regular basis you're not pushing yourself hard enough.

</comment><comment><USER10> Don't feel too bad about it. Many of those questions are arcane/trivia rather than practical day to day knowledge you must know. Don't get me wrong, it's important to understand concepts (like the encryption question they asked), but knowing off the top of your head how to rm a file named "-f" is not important, but knowing how to _figure out_ how to unlink it is.

<comment><USER11> You have to run _rm -- -f_ or you can always cheat and use _mc_ (Midnight Commander).

</comment></comment><comment><AUTHOR> Guys I put the questions and my dealing with the situation up here: [http://bsdpunk.blogspot.com/2011/03/questions-and- aftermath....](http://bsdpunk.blogspot.com/2011/03/questions-and- aftermath.html)

If you want to check it out

</comment><comment><USER12> I believe Ctrl+D should send end-of-file to console applications, ending the input stream to the program from the shell, while Ctrl+C kills the application.

<comment><USER13> You're correct. Specifically, Ctrl+d sends EOF, and Ctrl+C sends a signal, SIGINT.

<comment> X-Istence And what does a Ctrl + Z send? ;-)

<comment><USER14> <http://en.wikipedia.org/wiki/SIGTSTP></comment></comment></comment></comment>


Ask HN: Links changed, SEO help - <AUTHOR> Hey all,
I have a small site where I teach people to code by building projects (https://enlight.ml)
Recently, the links for each page changed as I redesigned the site form the ground up. However, Google still isn't re-indexing the pages with the new links. In fact, google indexed the pages with new content - but ignores the new link for the old content. It still has the old links appearing in search results.
How can this be fixed? I tried submitting a sitemap and submitting the new links several times in the Search Console.
Is there a way to do redirects on sites hosted GitHub Pages?
Lastly, I need some SEO help. Aside from providing good content, how do page rankings work? My goal is for anyone to be able to find a project that they would be interested in easily if I was on the frontpage of that search.
Appreciate all your help :) <comment><USER2> Update your .htaccess file to redirect to the new links.

1\. Refer to this guide: [https://mediatemple.net/community/products/grid/204643080/ho...](https://mediatemple.net/community/products/grid/204643080/how- do-i-redirect-my-site-using-a-htaccess-file)

2\. Alternatively, you can use this generator: [http://www.htaccessredirect.net/](http://www.htaccessredirect.net/)</comment>