hacker news with inline top comments    .. more ..    13 Sep 2013 Ask
home   ask   best   6 years ago   
Bruce Schneier has changed his PGP key to 4096 bits
172 points by oktypok  6 hours ago   97 comments top 15
tptacek 6 hours ago 5 replies      

- he really doesn't use his PGP key all that often, had the same one for 16 years on god knows how many computers, and decided that if he's going to generate a new one, he might as well send a message with it.

IgorPartola 6 hours ago 7 replies      
So I have a GPG key. I used it a couple of times. Currently, it's most useful to me to sign my own Debian package repository. However, I can't seem to figure out how to get into the whole Web of Trust thing. Nobody I know has their own GPG/PGP key that they use and have signed by others and tools like BigLumber and other places where I looked for key signing parties have not turned up any results. I not spending all my free time looking for GPG users, but I have spent what I feel is more than a casual amount of time looking for people to exchange key signatures with. What do y'all do for this? Any advice?

Edit: I am located in the North Eastern part of the US.

Edit 2: perhaps we need a geolocation aware social network a la Square but just for notifying you of other nearby PGP users...

elliotanderson 4 hours ago 1 reply      
Bruce's article on staying secure from the NSA[1] talks about using an air gapped computer to avoid being compromised via the network. If he hadn't been keeping his keys on such a machine previously - recent disclosures may have changed his mind and forced him to regenerate his keys.

[1] http://www.theguardian.com/world/2013/sep/05/nsa-how-to-rema...

hannibal5 5 hours ago 1 reply      
There is nothing suspicious with that.

He has worked previously in mostly corporate and private context, so 2048 is just fine. Now he works with people and data NSA wants their hands on and he wants the data to be secure also in the future. It's just reasonable to move to 4096 key sizes.


>Dr Lenstra and Dr Verheul offer their recommendations for keylengths. In their calculation, a 2048 bit key should keep your secrets safe at least until 2020 against very highly funded and knowledgeable adversaries (i.e. you have the NSA working against you). Against lesser adversaries such as mere multinationals your secret should be safe against bruteforce cryptoanalysis much longer, even with 1024 bit keys.

See also: http://www.keylength.com

vabmit 6 hours ago 2 replies      
An interesting thing to note about 4096bit RSA openPGP keys, that's what Snowden was using. His PGP Key was a 4096bit RSA signing key with a 4096bit RSA encryption subkey.
michiel3 5 hours ago 2 replies      
In the post he also describes that he now uses a new process which involves a computer that has never been connected to the internet and its sole purpose is encrypting and decrypting files. Why not use it to encrypt and decrypt emails as well? That'd also potentially involve generating a new key pair.

> 3) Assume that while your computer can be compromised, it would take work and risk on the part of the NSA so it probably isn't. If you have something really important, use an air gap. Since I started working with the Snowden documents, I bought a new computer that has never been connected to the internet. If I want to transfer a file, I encrypt the file on the secure computer and walk it over to my internet computer, using a USB stick. To decrypt something, I reverse the process. This might not be bulletproof, but it's pretty good.

farktronix 5 hours ago 1 reply      
It's curious that he didn't sign his new key with his old key. Does anyone have a good explanation for why he wouldn't want to do that?
rdl 2 hours ago 1 reply      
I wish there were a decent hardware PGP key token available now -- something which could support 4096 RSA and communicated via (ideally) BT but also acceptable USB to a host. The GPF stick is out of stock.
Sami_Lehtinen 46 minutes ago 0 replies      
Yet he prefers aes-256 over twofish-256 or camellia-256.
tomrod 5 hours ago 1 reply      
I know I'm still a cryptographic neophyte, but why doesn't he use four times the bits?
autodidakto 6 hours ago 2 replies      
Anyone know of a good tutorial for revoking and recreating your key as painlessly as possibly?
rbchv 3 hours ago 2 replies      
I know the fundamental idea behind PGP and related technologies. My question is, if bumping his key from 2048 to 4096 bits will keep him safe until around the year 2020 (as stated by a previous reader, and from keylength.com), why not just use a 8192 bit key, or 16384 bit key and be safe for virtually your lifetime?

Does the computing cost to encrypt/decrypt make this impractical?

a--b 2 hours ago 0 replies      
I've been using 16,384 for my SSH key sizes for the past year and am considering using 32,768 a soon as my two year rotation period is up - would there be any problems with my key sizes?
mrjj 5 hours ago 3 replies      
Is he really afraid of 2^n/2 brute power of quantum computers or this is just overkilling of overkill?
betaclass 1 hour ago 0 replies      
Well mine is 4097 bits. Checkmate, Sir.
Ask HN: Paired USB keys for 100% unbreakable encryption?
4 points by heeton  1 hour ago   6 comments top 3
vmarsy 17 minutes ago 1 reply      
In theory yes, but if you're super-paranoid good luck to find "a securely generated amount of random data."
zxcvgm 57 minutes ago 1 reply      
That kinda sounds like iTwin http://www.itwin.com/

It comes in a pair with 2 USB ends and can be mated together to share a key.

TheLoneWolfling 53 minutes ago 1 reply      
You can do this already - just take two flash drives and mirror the same random data to each one. Just make sure you never use the same part of the random data twice.

Of course, I have to ask: why bother? If you're giving them a flash drive anyways, just exchange public keys. Also safer, as if someone loses/etc. a public key it's no big deal whereas if someone loses the OTP then all of the data you sent is trivially decryptable.

Ask HN: How exactly do you get a job interview?
4 points by nelcorn  1 hour ago   3 comments top 3
EllaMentry 20 minutes ago 0 replies      
It is hard to make any judgement or give advice without some data...can you upload your resume to share? Maybe there is something that stands out?
sam66 1 minute ago 0 replies      
Each particular job has its specific keywords words they want to see in your resume. A senior position might make them look at how many people reported to you. A specific job may require technical know-how in a cutting edge project.I will suggest you refresh you resume to remove all cliche phrases and highlight your achievements, one sentence in the right spot may make all the difference.
danso 7 minutes ago 0 replies      
Networking and friend-of-friend is one of the clearest paths.

Next important factor is to have a LinkedIn profile with "Rails" in it

Ask HN: Career advice for a developer with 10+ years experience
10 points by peacemaker  5 hours ago   7 comments top 4
eranation 1 hour ago 0 replies      
I don't know about other places, but I'm almost 36, with about 10 years of Java and web experience, and I keep getting more and more offers (from around the nation) from both enterprises and startups (twitter, amazon, rackspace, apple, google, netflix, Oracle, NCR, banks etc...).

I talked to a friend who works at Twitter (he is 37) and he told me it's not a "college graduate world" as some depict it, he said most people he works with are around his age (which was very encouraging for me).

Here in Atlanta there are tons of Sr. Java jobs, both enterprise and startups, at least based on the recruiter spam I get in LinkedIn.

When you say "too old in this industry" which industry are you talking about? SV? Web Startups (Ruby / Python / Node)? Gaming? Mobile? perhaps for these you are right. But for the companies I listed above, or any enterprise company in the country, your age is just about right, and your experience years are in demand. Again, don't know about C++ specifically, but if you had 10 years of Java, you would have easily landed multiple offers from various good companies around the country, at least this is what me and people I talk to in the Java community seem to experience.

I don't know if it's C++ that is different, but the "if you are 30+ then your career is over" situation is not something I see even close to the reality at least here in Atlanta.

Hope it encourages you a bit.

P.s. If you want to increase your spectrum of possible jobs, I recommend learning "less cool" technologies, like Java EE 7, Spring, Hibernate, or if you need to choose between Haskell / Go or Scala, go with Scala, it will be perhaps less cutting edge, but will give you much more job opportunities. Also learning Hadoop, Storm, MongoDB will make your resume look very attractive. Also you should pick up good github projects that show you are full stack, do some AngularJS projects, write a jQuery plugin, the jobs offers will follow (I got more than a few solely based on some nonsense plugins I wrote in github that look as if I know what I'm doing)

YMMV, all based on my very subjective experience here in Atlanta...

avenger123 1 hour ago 0 replies      
Any thoughts given to moving towards a Solution Architect role? Within the right organization, you could be doing some hands on but mostly involved with designing and leading the solution.

You are definitely not too old to continue to do development but it seems like you would like to move on from that.

mojoe 1 hour ago 1 reply      
If you get to a point where ageism actually becomes an issue for you, I would suggest embedded systems engineering. With your C++ background it should be no problem for you, and in my experience firmware engineers tend to be older and don't have age bias like the rest of the industry. I enjoy firmware because you get to work fairly closely with actual physical things and apply your knowledge to an extremely wide array of real-world applications.
martina56 4 hours ago 2 replies      
30 years is just beginning, don't even bother about itFocus in your goal - BusinessBecome a freelancer, lot of freelancing websites are there - elance,odesk,freelancer etc., etc.,use your skills - php or js or whatever you know, and try to get some work and pay your bills.

if you can't even get one freelancing work, then consider it as you don't have exposure skills

if you can't complete a taken work, then you have to improve your skills

Ask HN: Is there a non-tech community like HN?
6 points by jhuckestein  4 hours ago   5 comments top 4
ericabiz 3 hours ago 0 replies      
I like Reddit's /r/science (http://www.reddit.com/r/science). You'll find some of the same articles as Hacker News, plus some great discussion from smart people who aren't necessarily computer geeks.

For straight computer geekery, there's /r/technology (http://www.reddit.com/r/technology) -- but I like it less than Hacker News since the comments can be more immature. (There also seems to be a large population of gamers on that subreddit, and I'm not a gamer, so I have less in common with the people there than with many people here on HN.)

For marketing and some general startup business advice, I like http://www.inbound.org/ -- they are also starting to do AMAs ("Ask me anything") like Reddit does with well-known startup/marketing folks.

For intelligent interviews with successful entrepreneurs, you can't beat Mixergy (http://mixergy.com/). Disclaimer: I've done two interviews with Andrew. Here's one I did on finding the right business idea, which might be useful to your less-technical-but-still-entrepreneurial friends: http://mixergy.com/course-cheat-sheet-find-your-biz-idea/

I also like http://www.reddit.com/r/IAmA/ and http://www.reddit.com/r/askreddit when I'm just ready to zone out and enjoy some Internet strangeness after a long day running a startup.

platz 45 minutes ago 0 replies      
I would love to hear if you find any good communities out.
egillie 3 hours ago 0 replies      
Maybe check out MetaFilter
j2d3 4 hours ago 1 reply      
Ask HN: Is underestimating a chronic IT project problem?
2 points by antonpug  1 hour ago   4 comments top 4
_sh 2 minutes ago 0 replies      
It used to be for me, until I made two changes to my technique.

1. Give a confidence value: 'this can be completed in x hours with 50% confidence, or y hours with 85% confidence (where y > x)'. If you don't want to work in 'confidence percentages', translate that to a range: 'this can be completed in x/2 - x*1.5 hours'.2. Never, ever quote on something you've never done before. Does the project require using a new API? Write a small, isolated test application that uses the API in similar ways. This will sharpen your confidence value. If you don't have time to exercise all the parts of the project you've never done before, shrink your confidence value but explain why: 'this can be completed in x hours with 20% confidence, but with a little more preparation time, I can get you a more accurate quote'.

Most importantly: be professional with your quotes. Don't take on too much just to be the hero who moved mountains and saved the day. No-one will thank you if you do (after all, you're just doing your job), and your professional image will take a dent when you don't. Also, as soon as you realise you can't make your confidence value, don't keep it to yourself. Yes, you'll piss people off by lagging the project, but the alternative is much worse. Not speaking up when issues arise is an ego problem (similar to being the hero who moved mountains).

Yes quoting is hard, but is required. Don't worry, developers are not the only ones who struggle with it. I work for (real, genuine) engineers who are currently taking a $1.6M+ bath (and rising by the hour) because they botched the quote process. Shit happens all the time.

jaynate 59 minutes ago 0 replies      
Ah, I see. Perhaps you can use Analysis & Design tasks not to estimate the actual work, but further research tasks necessary to get to a more solid answer. Setting the expectation that all issues can be analyze and designed in 6 hours seems arbitrary.

Many times the Analysis and Design of a solution encompasses trying things out and actually experimenting with changes. By the time you're done with Analysis and Design you've virtually implemented the solution. Of course there is the documentation and reviews that you could also estimate separately.

This is a classic human problem - we suck at estimation. And if some pointy haired boss is demanding perfect estimates, you should give him or her good estimates for the next piece of work you can predict rather than the finished task.

antonpug 1 hour ago 0 replies      
Analysis & Design? Looking at the problem at hand, looking at the code we have, what can be done to implement what the business wants, access the impacts to other layers of the application, document everything, set up reviews
jaynate 1 hour ago 0 replies      
Can you clarify what A&D is?
Ask HN: Can someone please write a Chrome Extension to kill new Gmail Compose?
14 points by andrewhillman  9 hours ago   13 comments top 8
seltzered_ 2 hours ago 0 replies      
Merlin Mann made his own 'compose email' app using automator: http://www.kungfugrippe.com/post/45763194525/compose-gmail-m... .

Basically you launch it, it jumps straight to the blank compose window (nothing else), and closes when you hit send. That's it.

I try use it for the times when I don't want to see my email, but need to email something.

jaredsohn 9 hours ago 2 replies      
Just click on the arrow in the bottom right corner and then "Default to full screen". Unless you are looking for something different?


gruseom 9 hours ago 0 replies      
I'd pay for that too, if it worked well.
cprncus 9 hours ago 1 reply      
I'm thinking of going back to Thunderbird and using that for the client (while keeping the Gmail account as the server). Much saner experience. I agree the new compose is all kinds of wrong.
brianchu 7 hours ago 0 replies      
On it.
baconomatic 9 hours ago 0 replies      
How would you want it to work?
bharyms 9 hours ago 0 replies      
There is setting to make the compose window bigger. Did you try that?
neethupriya 6 hours ago 0 replies      
switch back to old version, old is gold
Ask HN: What are the obstacles to learning on your own?
10 points by ph0rque  11 hours ago   13 comments top 10
Q4273j3b 2 hours ago 0 replies      
After an actual desire to learn (which several others here have mentioned), the biggest obstacle to learning is bad teachers. I don't want my teacher to be a vast self-curated backwater of internet tutorials and apps. I don't even want options to customize my learning. I want an opinionated, sassy domain expert who inspires me, pushes me, and clearly delights in the subject.

Examples:http://www.staff.science.uu.nl/~hooft101/theorist.html thanks tokenadult)http://www.thegreatcourses.com/tgc/courses/course_detail.asp...http://how-to-learn-any-language.com/e/index.html

If you had a learning website built around teachers rather than subjects, I would definitely check that out.

makerops 11 hours ago 0 replies      
I can't find resources at my current level of expertise (they are either too hard or too easy)

that's a big one for me. I am in the process of trying this out, and it seems to be working: Practice, every day, for any amount of time, even if it is just for 30 seconds.

beginning French, advanced Javascript, beginning piano, advanced rails, and Im also working my way through the harvard classics.

I made a schedule of daily reading/doing, I shoot for 30 minutes for every subject (not daily, but pretty close), but I will at LEAST put in 1 minute.

One of the pain points was learning, what to learn first. Ie, a resource that said, here is the "must reads" to learn french, or piano would have saved me a bunch of time.

silverlake 8 hours ago 3 replies      
It's the same reason I don't exercise, eat right, pay my bills on time, finish work, plant my garden, and more: Self-Discipline. If you can solve that problem, you will improve humanity more than the wheel & fire together.
agibsonccc 5 hours ago 0 replies      
I don't think there's a technical solution to this problem. I'd love to be proven wrong.

The only thing that makes self learning remotely manageable is to break up your goals in to manageable chunks.

Half the solution to self-motivation is deriving a satisfaction from completing goals.

If you set your goals reasonable, it obviously isn't a silver bullet, but it helps ALOT.

adamzerner 10 hours ago 0 replies      
1) Lack of desire. A lot of people don't have a desire to learn things on their own.

2) Lack of time. A lot of people are students or have jobs, and their free time is already taken up. Also, people need large chunks of time to Download the Task - http://www.collegeanswerz.com/downloading-the-task.

3) Poor resources. See http://www.collegeanswerz.com/rethinking-education for how to make it better. My plan is to make money with that website, and then start to implement these ideas with a Big Push.

satyampujari 9 hours ago 0 replies      
Some thoughts:

Lack of motivation, i.e. Absence of "burning need" to learn the stuff at hand. Also, inability to visualize the end-result/reward.

Trying to look at the task as whole than in smaller parts: i.e. looking at a 720 pages, mostly text-only O'reilly programming book.

Multitasking: Checking news feeds, twitter and trying to learn/code/read simultaneously.

Distractions: people around, location, short attention span.

Not able to get into the zone/flow: This usually happens when,

goals are not clear

feedback is not immediate

lack of balance between opportunity and capacity


Appropriate reward and feedback system is really important in learning.As per some studies, it relates to certain neurotransmitters in the brain i.e. dopamine.

meerita 5 hours ago 0 replies      
Eventually you will need help from someone unless you're a genius who can figure out and have all the time of the world to wonder it.
bharyms 10 hours ago 0 replies      
I dont think there is lack of good resources on internet. If you are learning new thing, you have to struggle a bit initially and if you do not give up during initial struggle, then things become very very easy after that.Internet is wonderful. You can find all kinds of content.
martina56 4 hours ago 0 replies      
The fact is there are no obstacles that prevent self learning, Young generation lacks -passion-creativity-enthusiasm -self motivation

Nowadays you can get any information in micro-seconds, so people don't know the value of information.

Don't ever expect anything happen overnight

Ask HN: What alternatives to floppy disks exist?
5 points by xavel  8 hours ago   11 comments top 3
tjr 8 hours ago 1 reply      
This looks like a possibility: http://www.amazon.com/4GB-Metal-Key-Flash-Drive/dp/B005OP2JQ...

I honestly do not remember how much floppy disks used to cost; it's been... probably over a decade since I bought one. But $1.26 seems pretty reasonable for such a use.

osivertsson 8 hours ago 1 reply      
There are no alternatives, and nothing to be expected in the future, because packet-based networks has made it obsolete as the primary sharing method between people. No market left. No economies of scale.

If you really don't want the information (even encrypted) to travel over networks you don't control, then you probably can afford SD cards or USB sticks or more esoteric special constructions.

Can you elaborate on why you feel a need for such physical media?

zellio 8 hours ago 2 replies      
You can purchase USB keys in bulk for around 1.50 U$D. How is this not a viable solution? Floppy disks today seem to cost only about half that price.
Ask HN: Give a novice dev a dose of reality?
7 points by fooboy  11 hours ago   7 comments top 5
Arjuna 9 hours ago 0 replies      
By my estimation, you have two primary options, but I wanted to first ask you to consider:

Is there any possibility that you could (even if slowly, at first) move toward where you want to be in the current job? The reason I ask is, if they are accommodating about your educational goals, then they value that and they value you. So, think about what is available where you are at. I can't tell from your post, but if the work you are doing is semi-relevant, then it could be that you are currently in a "semi-relevant" area because they are grooming your talent for the future; meaning, they want to get you warmed up before they put you in a starting slot as a wide receiver [1] in The Show [2]. Just a thought that maybe you haven't considered.

Otherwise... you could:

1. Start going on interviews.

If you truly feel that things are going nowhere at your current job, and if you feel confident with the target subject matter, then start interviewing. Even though your current experience is semi-relevant, you can still leverage it, coupled with your education, to demonstrate that you can discuss the subject matter and deliver in the target area. Only you will be able to determine if you are ready to take this step. Sure, you may get rejected on some interviews, but, at some point, we all have to "put ourselves out there" and give it a shot.

2. Stay where you are and "work your craft" until you are ready to move.

If you are unsuccessful in landing any solid interviews (or you simply don't feel ready to start interviewing), then stay the course. Appreciate the situation that you are in as being temporary. Stay focused, keep working on your education and, this part is critical: start developing a portfolio. That is, start working on side projects that are related to the area where you want to be. This will increase your skill-set while simultaneously increasing your ability to talk comfortably about the target topic during an interview. This is, of course, important, because you want to be comfortable with the topic so that you can sell yourself during an interview. A portfolio will also show initiative, interest and experience in the target area to a potential employer.

Wishing you the best.

[1] https://en.wikipedia.org/wiki/Wide_receiver

[2] https://en.wikipedia.org/wiki/National_Football_League

IgorPartola 11 hours ago 1 reply      
Two things. First, what are your career goals? You say you have them, but not knowing what you are trying to do, it's hard to tell whether you are getting ready for it or now. Do you want to build your own startup? Join a large tech company as a developer? A researcher? Do you want to become employee 1 at a startup? Do you want to go into management?

Second, if you are happy with your employer, stick with them, at least until a good opportunity comes along. It's rare to find people you like working with.

In my personal experience, pet projects and general hacking advanced my career much more than any project an employer threw at me. In fact, most of the projects I worked on for an employer were driven by experience I had acquired on my own time: "hey, I think we should build a highly available MySQL cluster over WAN. I have done this before and it'd be perfect for this application" or "hey, I'd can create a small C program to spoof source IP addresses in UDP packets to simplify transitioning from one server to another" or "hey, let's put our entire server configuration into puppet" or "hey, let's package everything into .deb packages". In other words, I play with tech, then bring it to my employer (now client as I am a contractor) and some of it sticks, not the other way around.

jlebron2 8 hours ago 0 replies      
I would suggest to continue working at your current job while still working towards your career goals.

For one you can start researching companies where you see yourself working and that align with your career goals. After you have gathered a decent list of companies you are interested in, check to see if they have entry level jobs you can apply for that fit your skill set. For the jobs requiring more advanced skill sets, find out what those skills are and work at them.

There is a ton of free information available to help you move forward and advance in your career. Take online courses (coursera.org and edx.org are both great resources available for free) and read books at your local library. Continue to build the necessary skills so that when an opportunity in which you are interested in does come up, you are prepared and have the necessary skills and experience.

Hope that helps! Good luck and hope you are able to get where you want to go!

jf22 9 hours ago 0 replies      
Grass isn't always greener.

If you're progressing in school and the job is being accommodating I'd stay for a bit and see what happens.

SnootyMonkey 11 hours ago 1 reply      
I'd leave as of tomorrow, once you found the job that is directly on track to where you want to be.

Life is too short to be on some deferred plan.

Ask HN: Good book/resources on algorithms?
5 points by aberatiu  10 hours ago   10 comments top 7
tubbzor 10 hours ago 0 replies      
Introduction to Algorithms by Cormen is a great. It is set up as a sort of reference and isnt necessarily meant to be read cover to cover. However, you'll need to read/understand the first 4 or so chapters (on asymptotic complexity, recursion, log rules, master theorem, ect) to really be able to grasp anything else in the book. The proofs and explanations can be rather terse, as it assumes you have some working knowledge with algorithmic theory and math. I wouldn't recommend it for starting out _at all_ as it can be very intimidating at first.

I started out with Algorithms by Tardos (you can pretty easily find a copy of the book and solutions online somewhere). It is less terse and goes through all the basics in a much less formal format. In this book I would advise starting at chapter 1 and going straight through to 8 or 9, doing the exercises and programming up most of the algorithms on your way. At this point you'll have a really nice working knowledge and can dive into Cormen and tackle stuff that interests you.

jlebron2 8 hours ago 0 replies      
I've been taking an algorithms course on Coursera and I'm really enjoying it. It's taught by two professors from Princeton, Kevin Wayne and Robert Sedgewick. Heres the link:


I'm sure there are plenty of other online algorithms courses online too.

rch 10 hours ago 1 reply      
What kind of algorithms?

Whatever the answer, check out Numerical Recipes (http://www.nr.com/).

jpau 3 hours ago 0 replies      
How do people view Udacity's algorithms subject?
aberatiu 10 hours ago 0 replies      
Something like this http://bigocheatsheet.com , but more detailed.
bharyms 10 hours ago 0 replies      
Art of Computer Programming by Knuth

Introduction to Algorithms by Cormen

Ask HN: Most difficult programming language?
5 points by redxblood  13 hours ago   15 comments top 6
rustc 13 hours ago 2 replies      
What do you mean by "difficult" here? Do esoteric programming languages like Malbolge[1] count?

"Hello World" in Malbolge:

    ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>a=<M:9[p6tsl1TS/    QlOj)L(I&%$""Z~AA@UZ=RvttT`R5P3m0LEDh,T*?(b&`$#87[}{W
[1]: http://en.wikipedia.org/wiki/Malbolge

wglb 1 hour ago 0 replies      
Here is my nomination, based on the criteria of having spent significant time in it: RPG-III. The opposite of awesome.

I would much rather program in assembler, such as Sigma-7.

But difficulty is kind of a vector, really.

nithinbekal 13 hours ago 1 reply      
I recently read about BANCstar, and it seems like a good contender. 0-9, comma, minus sign and return are the only legal characters in it, and despite that, it's actually used in serious applications.


Here's an article about it:


bulte-rs 10 hours ago 0 replies      
<insert random language> when used in a badly designed project, maintained by 10+ dev's in 15+ different styles using 20+ different external dependencies written in 25 days.

Seriously: I'd go for befunge or malebolge.

joshbaptiste 12 hours ago 1 reply      
Ok, what non esoteric languages would one consider extremely difficult?
Ask HN: What's your opinion abour ridiculous job descriptions these days?
5 points by Cardeck1  15 hours ago   7 comments top 6
mathattack 14 hours ago 0 replies      
I'll name 4 possible explanations of many. I'm not listing these to justify any behavior, just to explain what I've seen.

1) If the company has someone in particular in mind that they want to sponsor for a visa, they need to prove they couldn't find someone local, so they tailor an unattainable or excessively tight job description. This is real, and happens very frequently.

2) Many companies discredit experience gained elsewhere. "2 years with us is worth 5 years anywhere else." So they set the bar high.

3) HR reps get burned by letting unqualified people through. If they can't understand themselves if someone knows Python, but they know the last 3 peoples with 5 years experienced got crushed in the interview, then they ask for 10 years.

4) Most firms know that employee referrals are the highest percentage shot for good hires of both technical and cultural fit. As such, the external barrier is much higher than the internal barrier. At my current and prior employer, I could get anyone an interview for an open position by dropping their resume off at HR. It didn't matter if they fit the credentials as long as I vouched for them. This helps them avoid point 3, because if the interview doesn't go well, they're off the hook.

We can talk about the injustice of this, but there is a simple answer. If there is a place that you want to work, make a friend there. Or make a friend who has a friend there.

hcho 15 hours ago 0 replies      
It's an arms race.

I see a lot of CVs and the fact is most people exaggerate their skills in their CVs. In turn companies exaggerate their needs in their job descriptions.

duiker101 15 hours ago 0 replies      
I don't think this is how it should be, mostly because it's stupid and will backfire. If you want only Ninjas, super developers or those crazy things, expecially if you are not willing to pay for what you ask, you will soon find that it's extremely hard to fill those positions and you will miss people that might be still developing their skills but in future will be brilliant developers. I was lucky enough to get hired from a great company that is not ashamed of picking up "new" developers and grow them. This turned out to be a great strategy and I think that in my case worked out amazingly for both of us!
atticusberg 14 hours ago 0 replies      
Software can be kind of a "fake it till you make it" industry, and when you're starting out, a big part of that is embellishing your resume. You shouldn't put anything on there that you really know nothing about, but if you can talk about it at least a little bit, its often better to include than to not.
codecrusade 14 hours ago 0 replies      
The worst is ads which say Job requirement for X requires Y or more years of experience doing X.

I mean WTF!

ginter 13 hours ago 1 reply      
Even if/when the actual requirements aren't too outlandish, the description is just as ridiculous. I read one on here just the other day that was seeking a RoR force of nature - someone who could move mountains, etc.

Who writes this crap?

Ask HN: Have you ever written for Packt?
7 points by aaronsnoswell  18 hours ago   5 comments top 5
stuntmachine 15 hours ago 0 replies      
I have reviewed for Packt (for free). It was not a bad experience, and the book is now available and getting great reviews (http://www.amazon.com/Git-Version-everyone-Ravishankar-Somas...). After this book was released and doing well, I was asked to write for Packt as well, but let's just say I would have to have done it for virtually no payment. From what I understand however, this is common with most publishers. I had to opt out after doing a cost/benefit analysis on the project. I figured, if I really wanted to write about the things that interest me, I could do so on my blog.

Some of the work I had to do was non-technical. I would often find myself translating and rewording awkwardly written passages so that they sounded better (the author is a non-English speaker).

That said, Packt is pretty hands off and don't micromanage (which I actually really enjoyed). Most communications that I had with them were initiated by me when I felt things needed to be pushed along during the review process. That said, in the end, a book was published, so I suppose even if the process leading up to that moment was not completely optimized on their end, the end result was a successful book.

pmiller2 16 hours ago 0 replies      
I can't speak from personal experience, but the one piece of advice every single person I know who's written a book has given me is don't do it for the money.
zzzzz_ 16 hours ago 0 replies      
Was in a similar position to you actually - I got an offer from Packt to write a book on ElasticSearch. I've learnt that if you write a blog piece about some obscure/hot tech and articulate yourself well enough; you'll get an offer from an author head-hunter from Packt shortly enough as several of my friends had similar offers!

I decided not to go ahead because I'm a perfectionist - I'd want to write a damn good book and the opportunity cost loss of earnings whilst I was writing the book didn't compare to the relative prestige of saying I was a "published" author.

aaronsnoswell 18 hours ago 0 replies      
I've just received (another) cold-call email from Packt Publishing asking me if I'm interested in writing a tech book. I'm actually considering doing this, but want to get some more information first. Has anyone ever worked with them as an author before? What was it like?
ScottWhigham 13 hours ago 0 replies      
Another guy just posted an article - he's just written a book for Packt. Why not ask him?


Ask HN: London developers, where do you get contract work?
7 points by davidshariff  23 hours ago   7 comments top 4
hcho 18 hours ago 1 reply      
Define front end. If you mean designing pixel perfect HTML pages, that market is shrinking quite rapidly. Expect a long time on the bench.

If you mean Backbone/Angular/framework of the day, that one is booming. Uploading your CV to one of the popular job boards will get you over 10 calls a day.

Peroni 18 hours ago 0 replies      
There are a few options here: http://hackerjobs.co.uk/jobs?contract=1
twic 17 hours ago 0 replies      
Every London contractor i speak to says that they get most of their work through their own network. People they've worked with in the past who are working somewhere that's hiring, that sort of thing. No way to run a railway if you ask me, but there you go.

Caveat: these guys are almost all back-end developers, and mostly working for big companies.

contingencies 23 hours ago 0 replies      
Maybe turn up at networking or technical events and meet people? Generally if people first hang out with you socially you are more likely to be considered up front when the need arises.
Ask HN: What are the implications of Apple moving to 64-bit architecture?
10 points by bobbles  1 day ago   6 comments top 3
pearjuice 23 hours ago 1 reply      
Worsened security; they have 32 bits more to secure. I have no doubts it will be a lot easier for developers to jailbreak it with this new architecture.
t0 1 day ago 1 reply      
vmarsy 1 day ago 0 replies      
you might be interested in reading this :https://news.ycombinator.com/item?id=6370230
Ask HN: How to best acquire theoretical computer science knowledge?
156 points by jophde  5 days ago   116 comments top 45
jandrewrogers 5 days ago 3 replies      
There is an alternative approach that inadvertently worked for me that may work well for you, particularly if your goal is to learn things beyond a conventional computer science curriculum. I have been working in high-end theoretical computer science for many years, with significant advances to my credit, but I went to school for chemical engineering. People are often curious as to how I acquired so much esoteric domain expertise in theoretical computer science without spending any time in a computer science class.

Pick an interesting "hard" problem in computer science and attempt to solve it. This works best if either there are no published solutions (e.g. massively parallelizing ad hoc graph search) or the solution space varies widely under the possible parameters (e.g. the design of a unique high-performance database kernel). Iterate, be creative, search the literature for interesting ideas that you can borrow from, and evaluate new designs you come up with. If something does not work, understand how and why and try to fix it. Wash, rinse, repeat.

This sounds like a lot of work, and it is, but there are three unique upsides. First, the challenge of it can be quite a bit of fun in its own right and there is a clear goal of what you are trying to achieve which helps keep you motivated and measures progress. Second, you will cover more of the phase space and explore some tangential theoretical areas while hunting for solutions to narrow sub-problems that you would never be exposed to in a more structured setting. Third, you will invariably explore some unusual or unorthodox ideas that you simply would not be exposed to in a directed, formal program. From the standpoint of being an effective theoretical computer scientist, it will help you develop a unique perspective of the problem space that is different than the perspective that arises from more structured programs.

Also, you might actually solve one of the unsolved theoretical computer science problems you have as your challenge in addition to developing a deep understanding of the surrounding problem space. That happened to me (and then replicated later once I realized it was possible) and it would never happen if I was simply taking courses on the subject matter.

This was an effective way for me to gain in-depth understanding of a diverse range of theoretical computer science areas on an informal basis. One of the downsides is that your rote knowledge will not perfectly overlap what is taught in CS curricula even though what you do know will likely be more valuable (e.g. in spatial indexing some CS courses teach priority trees even though they have no memorable theoretical value).

mahyarm 5 days ago 7 replies      
This is the core of a CS degree, each one is class, sometimes multiple classes that go into more detail. All interview questions will basically only cover these topics.

1. Algorithms & Data Structures <- The biggest one

2. Baremetal Hardware. ASM, goes into the design of a physical cpu with ALUs, etc. Sometimes you make your own basic CPU. I suggest using a course with ARM ASM, simpler than x86 ASM.

3. Operating Systems & Multithreading Theory. You usually do a bunch of C language work here. Maybe combine it with a project on an ardunio or similar.

4. Discrete Mathematics

5. Databases

6. (Optional) Compilers. Write your own compiler, do this after the ASM course.

7. (Optional) Artificial Intelligence. Learn cool things such as machine learning. AI can be very statistical at times, so I suggest adding a Statistics & Probability course to supplement. Statistics is used a lot in business, so it's useful to know for life in general.

8. (Optional) Computer Graphics, using OpenGL!

On top of that I suggest you learn a functional language like Clojure or Haskell. Or both of them. Also learn a language where you have to do memory management and deal with pointers (like C, C++, Objective-C) if you don't include it in your Operating Systems course. After that you can basically do anything in software. Any new language and platform will be just covering concepts you already understand at that point, so you'll be able to learn them extremely quickly.

danieldk 5 days ago 4 replies      
So, what is the best way for a proven and largely self taught developer to take their knowledge to the next level?

It depends on how you learn. Some people will recommend Coursera et al., which are great. I tried some Coursera courses, but found that I found the pace too slow and became bored quickly.

For me, reading always works the best, since I can adjust it to my pace. You could look up a curriculum (as someone else suggests) and compose a reading list from that. Also, there are some works where you really can't go wrong. Some examples:

- Structure and Interpretation of Computer Programs, Abelson and Sussman

- Algorithms, Sedgewick, Wayne

- Introduction to Automata Theory, Languages, and Computation, Hopcroft, Motwani, Ullman

Lesser known, but incredibly fun books:

- Purely Functional Data Structures, Chris Okasaki

- The Reasoned Schemer, Friedman, Byrd, Kiselyov (or a good Prolog book).

After learning the foundations, you could branch out to a subfield that interests you.

(Or as Frank Zappa has bluntly put it: If you want to get laid, go to college. If you want an education, go to the library.)

petercooper 5 days ago 2 replies      
I'm going to keep this reply shallow but my advice is dig up a curriculum and course guide for a CS degree (there are many publicly discoverable with Google), establish what all of the main topics and threads are, grab the best/most recommended textbooks for a couple of topics at a time, work through the books a few pages at a time and for anything you don't understand, Google and learn about it. Take copious notes as you go to refer back to. Read papers that pop up from time to time, get a feel for what you know you don't understand and quickly get up to speed with them (even if it's just reading Wikipedia for 20 minutes).

The above is deliberate practice and learning but also keep an eye out for CS-level posts linked on HN and http://www.reddit.com/r/compsci and relate them to what you're learning. Read a post about AI data structures in Prolog? Don't understand Prolog that sounds interesting? Get a feel for what Prolog is. Write a simple program. Get a feel for implementing the data structure in a language you do understand. Then try and bring both Prolog and the structure together. Rinse and repeat with anything that interests you. Again, be sure to TAKE NOTES or you'll forget things using this scattershot approach.

It'll take a TON of time but if you keep your sessions relatively short, you'll get a shallow knowledge of all of the major CS areas quickly, and then you can use your job or natural interest to drive you into going deep on areas that affect or motivate you.

I'm starting an MSc in software engineering later this year but my own CS knowledge has mostly been learned in the above ways (that is, I don't have a bachelors in CS).

Clarification: As cliveowen got me to realize (below), the above approach might not be for you if you have a very specific target in your career development. My experiences and recommendations are specifically around getting a broad level of experience rather than aiming at a specific role (which, perhaps, you should be doing).

nohuck13 5 days ago 3 replies      
The other responses are great. But one meta point I think is worth making. Don't overestimate how much competency you gain from just getting a CS degree. Lots of people coasted their way through undergrad without internalizing a heck of a lot. The fact that you are motivated to go out and get knowledge puts you, IMO, at a great advantage.

My background: I did a BS in CS/Economics but spent most of my time playing online poker and skipping class. I managed to get a job I love on mostly potential, and I've had a great time re-learning all the stuff I was superficially exposed to but didn't work that hard at.

The most important thing is caring about what you do and taking ownership over your own development.

stiff 5 days ago 4 replies      
Doing a BS in CS would be the best, otherwise you will need a ton of self-discipline to learn even a half of what you would learn in a degree program. If you decide to self study, and have enough "mathematical maturity", you will find everything you need on MIT OpenCourseWare, they have all the core courses available online with video lectures, solved homeworks etc. I would start with going through those two first:

Structure And Interpretation Of Computer Programs:


Mathematics For Computer Science:


The first one is pretty much a master class in software engineering, the other prepares you for studying algorithms, I would consider those the two main more theoretical facets of programming at a professional level. With that background you can try to work on their algorithms course:


It would also be very valuable to eventually take all the core mathematics subjects from OCW: Single+multivariable calculus, linear algebra and probability theory - the profit is less immediate but those things do come very useful. All those six courses on the MIT OCW are top notch.

tel 5 days ago 3 replies      
Read papers.

Read lots of papers. Start with easy ones to learn how to best digest highly academic technical writing then keep pushing.

CS is remarkable in how much of its academic knowledge is online, available, for free. Taking advantage of that resource is beyond key.

If you know roughly what you want to learn, search out a seminal paper in that area. If it's deep CS, you'll probably find a good one from the 80s. Seek out every citation that's proximal to a sentence in that paper that confuses or excites you. Search on Google Scholar for all the recent papers that cite the one you found and begin eating up the chain that direction. When you find a deep topic you want to learn more ofset theory, logic, formal languages, discrete math, matrix analysis, automata theory, geometry, topology, &c.don't be afraid to look for a good book on the topic. There are resources around the internet answering "What's a good introductory book to X" for all kinds of X.

If you don't know the general area you're interested in then I recommend the exact same strategy but with greater emphasis on following citations that make connections to other areas of CS. Additionally, pick a few disjoint topics (Category theory, system architecture, graph theory) and follow them all simultaneously looking for connections.

Formal languages, automata, and process algebras form a really fundamental mathematical course of study that I'd highly recommend to anyone interested in "why" CS works. Optimization, matrix analysis/linear algebra, and diffeq form a great basis for simulation and machine learning.

Generally, for any of these routes, learn to find your boundary of knowledge. Studying source material is very challenging because any given paper will tend to assume many things about your background. Most of those assumptions will be false and lead to density of the paper. You can often power through without them, but you can also take it as an indication of a new place to study.

Finally, see if you can find a study group or journal club. I'm not there, so I don't have firsthand experience, but I'm sure there are many in the bay area.

(Oh, and if you read mathematical papers/books don't skip the proofs and exercises. That'd be like reading the iOS documentation without ever programming anything.)

jkbyc 5 days ago 2 replies      
Theoretical computer science is probably not what you mean. Theoretical computer science are things like complexity theory (up to arithmetical hierarchy and randomized and approximation algorithms), theory of recursion (up to e.g. Gdel's theorems), (various kinds of) logic, algorithms and datastructures (full of hardcore probability and statistics), etc.

Subjects like that give you a firm grounding in the area of computer science but you could study them for ages especially on your own. These subjects are also not very practical in terms of everyday engineering and on top of that before you even get to that level, a top school would require you to study a bunch of mathematics to gain a certain level of rigor of your thinking. My guess is that this is hard to do on your own.

On the other hand, since you have a related degree already and since you know programming, I would heartily recommend you to study on your own combining two approaches: bottom-up to learn the basics and top-down to immediately start increasing your market value and to start opening doors and to keep yourself motivated to go forward with the more tedious study of the basics.

E.g. say you are interested in distributed systems - you can start reading up on them (top-down) while digressing here and there to learn some of the basics.

Make use of online resources like Coursera for the necessary basics (bottom-up): at least some maths heavy on proofs [1], at least some complexity theory, at least some graph theory, ....

I think a purely bottom-up approach (going to a university) could be a waste of time and money in your case. But you need to emulate it a bit because a purely top-down approach could be too superficial and wouldn't teach you some of the more rigorous thinking you might need.

Whatever you do and learn try to do it in-depth. Superficial knowledge of many things will not benefit you much in the long term while in-depth study of many computer science fields will likely lead you through a series of small enlightenments.

[1] My professor of linear algebra used to insist that we as computer scientists have to know all the proofs of the theorems we were learning - in contrast to mathematicians learning the same subject - simply because we have to know how things are done to the last detail and we have to develop that kind of thinking.

beloch 4 days ago 0 replies      
If you can get a decent prof (not necessarily the most famous or well-published) to take you on to do a M.Sc., that beats the hell out of doing another B.Sc.. (Caveat emptor: Choosing a bad prof will bring you nothing but pain! Your supervisor is not just another prof. He will have an insane impact on you!) B.Sc.'s are the Honda Civics of academia. Universities mass produce them because they bring in the most cash per head. Grad school is more like a bespoke roadster or F1 car. The resources universities spend on grad students and research are disproportionate compared to what they spend on undergrads. Also, just as you learn more than just the core knowledge of your major in undergrad, you learn a lot of additional things in grad-school. Teaching, speaking, etc.. Above all, grad students are placed under pressure to actually think instead of just regurgitating. If you do another B.Sc. you'll be repeating a lot of stuff you already know.

A good prof will figure out where your knowledge is lacking and give you the resources to catch up fast. You'll likely be thrown into some grad-level courses that are way outta your league and will have to work like a crazy bastard to catch up with students who have a CS B.Sc., but you'll have great student-teacher ratios and your best teachers will actually be the other students. You'll probably have to TA material you'll be learning the night before, and teaching something is a fantastic way to learn it well. Eventually, you should do some research, and hopefully you'll have chosen a prof doing something you're interested in. Do NOT do a course-based M.Sc., as those are just upgraded Honda Civics!

You'll be under intense pressure to learn a lot fast, but you'll have the resources to do it. A B.Sc. will likely take longer and you'll spend a lot of time slacking off because undergrad courses are pretty damned easy. Also, a M.Sc. is a better credential to have than another B.Sc..

When you're choosing a prof, talk to the other grad-students. DO NOT just choose the guy who was nominated for a nobel prize. As the saying goes, "Happy students never won anyone a Nobel!".

samatman 5 days ago 0 replies      
Read. Focus on foundational texts. I'm talking about texts like K&R, SICP, Lisp In Small Pieces, RFC 791. I'll add Gdel, Escher, Bach, because I genuinely believe it will make anyone a better computer programmer. There are far more than I could mention in a paragraph; L.I.S.P is not as well known as the others I mention, and got added mostly because I'm reading it at present. It's really good.

Also, read actual code. Want to know how diff works? Read diff. Getting better at code forensics is the second-best way for a self-taught programmer to learn real CS.

EDIT: I am a largely self-taught programmer.

kenjackson 5 days ago 0 replies      
At the end of the day I think its a question of what you value more "money" or "time". If money is your main concern, use books and online courses. If time is your main concern, get an MS at a good CS program.

My problem with teaching myself is that it's hard for me to stay motivated after the first couple of weeks. Now this just me -- it's not you. So maybe you don't have this problem at all, but I've found school to be a good motivator.

Plus having a good professor can help get through the tough spots. I studied complexity under Papadimitriou and he was great at explaining things I struggled with.

One problem with school though is you'll have less flexibility to skip things you don't care about, and investigate those things you do. That can be a blessing or a curse.

jclos 5 days ago 0 replies      
Is it theoretical CS as in "CS topics that are more theoretical" (NLP? AI? Search engines? Software engineering?), or as in "Theoretical CS" (the mathematical subdisciplines: combinatorics, type theory, lambda calculus, etc.)?

In any case you first need to investigate what is interesting to you, free resources are far from rare and you can probably build yourself a decent curriculum from MIT OCW, Coursera, Udacity and similar websites which you can then study at your own pace with videos and books. If finding a job is not your concern I wouldn't advise putting yourself into debt. See http://www.saylor.org/majors/computer-science/ for an example of curriculum.

TimPC 5 days ago 0 replies      
I think it's far and away self-study or if you can find a good online course among the free solutions you can start there. The Art of Computer Programming by Knuth has a lot of the theory included and doesn't hold back on the Math. Similarly, Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein is quite good for the basis of Algorithm theory.

That being said, theory plays a small role in everyday development. If your primary goal is to increase your knowledge as it relates to development you don't want to focus on theory until it becomes a pain point. Algorithm theory helps with scalability, but practice is far more useful to programming. Conferences in your field that can expose you to new things to learn and different tool chains in your language are valuable. Learning a new related language can also be valuable you might consider learning iOS and then JavaScript which would let you work on Android, iOS and Cordova (formerly PhoneGap) applications at a level where you'd be comfortable going from JavaScript to native to write unavailable features.

If you're happy and have good opportunities on Android, focus on getting a deeper understanding: what are good open source repos, what coding conventions do they use, what frameworks and approaches could you know better. Are there parts of the OS you haven't worked with and wanted to? For instance, I built a demo app for LG designed for in-store promo devices where we hacked around in the OS to intercept the display of screens that would let the user delete apps from the phone and throw up a password lock that would kick them out to the main screen. Try and get a sense of where your best (however you measure it) opportunities are and focus your learning in that direction.

msg 5 days ago 1 reply      
My story is somewhat similar.

I took a BA in Linguistics, worked for a while, then discovered computers. I spent a year on prerequisites and then did an MS in CS. I got good grades and did a thesis and it opened a lot of doors for me.

Some things that an MS CS degree will teach you that you may not have learned as a seasoned developer are: How to invent solutions to cutting edge problems. How to operate at scale using efficient algorithms and appropriate data structures. How to think about problem spaces. How to research. How to operate at the correct level of abstraction and how to get a level deeper when the abstraction leaks. The intersection between math, stats, and software. How to think like a computer.

To me it sounds like that's exactly what you want to do. One way or another you want these skills.

You may want to separate your desire for these skills from your desire to be credentialed for these skills. It is going to take a while to see how employers react to the Georgia Tech online MS. I believe the vast majority will treat it as second-class for a while. The judgment of HR departments is a lagging indicator. But the top tier employers may not care and just test you to see if you walk the walk.

You don't need a top tier school to get a good job. My MS is from a state university, and I work for Amazon.

jzelinskie 5 days ago 0 replies      
I'm a current senior Design & Development option at Penn State. The degree is basically worthless in terms of teaching you real software development. I did learn a lot about the social aspects of working for clients and working in teams, but I did not learn the proper structure to actually work on software. I literally spend all of my free time studying software development and computer science, because I know going to school will only yield me a piece of paper that will get me taken more seriously.

Here's a list of what I've done:

- Learn more languages. Penn State only teaches Java. I've worked professionally with Python, have open source projects in Go, and have read books on Erlang, Haskell, Scala, Clojure. The more languages you know the more abstract concepts you'll know that you can apply in any language.

- Watch online lectures in your free time. MIT Open Courseware, UC Berekely, Coursera, YouTube, InfoQ are all really good resources.

- Start a reading collection. I have tons of books and white papers downloaded that I read.

- Get an interest. I like distributed systems. I honestly don't know much about them, but I think the problems are interesting and I've read some of the important white papers that establish the field. Establishing an interest will help guide you down the rabbit hole.

- Get out there and do stuff. Find a project on GitHub or make one with a circle of friends. Pick something outside your comfort zone. Even if the project never sees the light of production use, you'll learn from the experience. Having your name in open source projects AUTHORS/CONTRIBUTORS files is also very nice.

I'm getting closer to graduating, so I've been reading up on algorithms and data structures again because I know I need brushing up on it. I'm close to getting a compsci minor and was recently debating just getting a masters in it instead. If you want someone to vent your experiences at PSU, feel free to drop me an email.

shawndrost 5 days ago 0 replies      
You might be interested in my school, http://hackreactor.com. Our course is 50% CS (data structures, algorithm design and analysis) and software engineering (modularity, refactoring) and 50% web fundamentals and writing a lot of app code, and students are constantly working together on extracurricular study. This weekend, they're throwing a machine learning workshop (developed by students; alums invited), and in two weeks we're playing host to a PL design/implementation class (http://proglangmasterclass.com/). You can reach out to me at shawn@hackreactor.com.
evanb 5 days ago 1 reply      
If you're OK learning on your own, you might try buying a book before committing to the cost of tuition, also. If you really mean "theoretical CS" I don't think you can go wrong with Sipser. The latest edition[1] is expensive, but a used copy of the second edition [2] isn't TOO bad, considering the cost of another few years of education.

[1] http://www.amazon.com/Introduction-Theory-Computation-Michae...

[2] http://www.amazon.com/Introduction-Theory-Computation-Michae...

ninh 4 days ago 0 replies      
Universities tbh are more for meeting likeminded people nowadays: most of the stuff taught at CS can be learnt on your own given you're disciplined enough.

Just to underline some of the points others have made, here is a short list of things I found most valuable from my CS degree:

- Algorithms, Datastructures & Computational/space complexity (ADC). <-- This one is huge imo and will allow you to discern efficient code from inefficient ones.

- Discrete Mathematics. It's the lingua franca when talking about CS and you will need it to understand ADC for example. It introduces set theory, graph theory and so forth, which are used in ADC/AI etc... to describe and solve problems.

- Linear Algebra: if you ever want to work with 3d stuff, this one will be essential. It'll also work out nicely for 2d work, and seeing as you mentioned you've got a knack for UI work, you probably will appreciate this one. It'll allow you to get an understanding of for example affine transformations etc... You will need a computer graphics course too, but this is definitely a prerequisite course to do those.

- Probability and statistics. I really hated this course (it's also one of the harder ones coincidentally), but once you "get it", you really do "get it". Ever wondered how gesture recognition works? Or how spam filters work? Well, the math required for this will be addressed here, together with the following subject.

- Artificial Intelligence. Extremely useful if you're interested in game dev, or just want to learn to solve problems in a smart and efficient manner. It combines ADC with discrete mathematics with probability & statistics.

- Calculus. If not for the math, it'll definitely make you look at things in a different way, which imo in turn, contributes to your way of looking at problems. Partial derivation / integrals and how it can relate to 3d surfaces for example. And let's not forget taylor series etc... It'll give you an idea of how mathematical functions such as sin(1) etc... can be implemented etc...

- Operating systems, Computer Architecture/organization. Essential for understanding what happens under the hood. Allows you to reason about what the best code path is for solving a problem. Should you use the GPU for example instead of the CPU etc... and if so, why? etc... It also introduces models such as finite state automatons etc... which are also applicable in language processing for, say, compilers.

And that brings us to the last, but certainly not least subject, my all time favorite:- Compiler construction. Gives you an insight in how languages are being processed, and how to design your own language and build a compiler for it. It should also give you additional insights on how runtimes/virtual machines work.

The software engineering courses were more about processes, philosophies and patterns etc... and even though they're definitely useful, I think most experienced software engineers have already "got this". Either via books, company policy/culture or via experience.

Again, these are my experiences, YMMV :) Good luck!

etler 5 days ago 0 replies      
One of the biggest factors I think you should consider if you want to go the self learning route is if you'll have the time to while juggling a full time job as well. You might be able to take a few courses, but will you be able to dedicate your full attention to it, and really dig into the subjects?

If I were you I wouldn't add on any more debt until I've settled my current one. With a good CS job, that shouldn't take more than 2-3 years, considering you have no dependants and presumably relatively low living costs. In the meantime, maybe take part time courses where you can get class credit, and if you plan it right you might be able to complete your degree in a year or so, considering you already have your basic requirements done. Just do some research into making sure your class credits will be able to transfer. Good luck.

jlees 5 days ago 0 replies      
In answer to the first part of the question (how to get more theoretical CS knowledge), I studied an extremely theoretical degree and the materials are online to dig through - if I were to self-teach now, I'd start at the final year's course list (http://www.cl.cam.ac.uk/teaching/1314/part3.html) and work backwards to chart a path to the modules that sounded most interesting.

In terms of "taking knowledge to the next level", though, it could mean anything from you wish you knew what red-black trees and big-O notation were, to you'd love to be able to design your own programming language and write a compiler, to you wish you could administer a Linux box. I would actually suggest the best approach here is to find someone with the job you want and talk with them 1:1 to figure out where your knowledge could be most improved.

Also, for Coursera, etc, there are local study groups at places like Hacker Dojo you could join to get some of the benefits of college without the expense.

porter 5 days ago 0 replies      
I studied finance in college. A few years later I asked a similar question, ended up enrolling as a post-bac student, and taught myself web development.

First, you need to figure out exactly what you want to learn. By theoretical, what do you mean? If your goal is to be on the same level as other programmers who are CS grads, then you might consider digging into algorithms and data structures and discrete math. This is pretty much the base of anything theoretical you'll do in computer science.

If you're in it to learn, go the udacity route. If, after completing all of their courses, you still feel you have some gaps, then you can go back to school if need be. If, on the other hand, your goal is to go into research, then you'll just have to bone up and go back to grad school to be taken seriously. In research, credentials matter.

rorrr2 5 days ago 0 replies      
Solve any 300 problems of the ACM problemset.


karanbhangui 5 days ago 0 replies      
In addition to all the great advice here, if you want a bit of a more structured approach, check out Scott Young's MIT challenge: http://www.scotthyoung.com/blog/mit-challenge/
lucasrp 5 days ago 0 replies      
I am a law major, who did 1 year of engineering a long time ago. I always been a math geek, but 0 in CS. In my last year of college, i created a startup with some friends. It was a ERP for small lawyers firms. That didnt work out, but turned me on into CS.

Now i work as a product manager in a bigger firm (also law related), and i'm learning how to code through Coursera and Edx. I HIGHLY recommend them.

They are the future. The classes are very good. Way better than a regular class over here (Brazil).

If you are intereste in theoretical CS, here are 2 classes that you may be interested:

Programming Languages (https://www.coursera.org/course/proglang): It focuses on functional programming. The first edition was VERY high recommended. Here you will learn about functional paradigm, and the differences in using it in several languages (some purely functional, like SML, some hybrid, like Ruby)

Automata (https://www.coursera.org/course/automata): It cant get more theoretical than this. The professor is Jeff Ullman. A legend. For free.

Machine Learning: A second version of Andrew Ng just ended. The third edition will be offered soon.

see.stanford.edu is also a very nice place to learn. They are actual stanford classes taped, and offered for free, online. I`m taking the three introdutory classes, and the machine learning classes.

Also, there are several architecture, compilers and algorithms classes too. After my first course (cs50.net), i realized that colleges (at least for CS) are redundant right now. They can be awsome. But, if you are short of money, or are already working, these online classes can fill the gap, easily.

add me on skype if you want to talk about more classes: lucasribeiropereira

See you!

PS. They can be VERY challenge. Take one, at most two at a time. 10-20 hours per week per course is a good rule of thumb

nhamann 5 days ago 0 replies      
Sorry if this is obvious, but: read books. A good place to start is here: http://cstheory.stackexchange.com/questions/3253/what-books-...

There was another reading list that I remember seeing, I think it was from Stanford's TCS website, but I no longer can find it.

Self-teaching is fun because you get to choose your own curriculum, but it's often frustrating too because if you get stuck, there is no professor or TA to unstick you. This issue can somewhat mitigated via the internet.

jiggy2011 5 days ago 1 reply      
It sounds like you're not quite sure what specifically you are interested in. CS is a very broad field and you could probably study it for a lifetime without scratching the surface.

Maybe better to choose a particular hard problem that is interesting and focus on that. Something that would be neat to do but isn't as simple as just calling a few library functions.

skadamat 5 days ago 0 replies      
There are some good suggestions for topics and what all to learn, here are some links to actually go and learn em!




Should have everything you need, they're all free / open-source books!

jypepin 5 days ago 0 replies      
I'm a Devbootcamp alumni, now working in a full time position. Just like you, I wanted to continue my learning and get more knowledge on algorithms, data-structures, and other things DevBootcamp doesn't teach you.

I strongly recommend- Algorithms in a nutshell from O'Reilly (http://www.amazon.com/Algorithms-Nutshell-In-OReilly/dp/0596...)

and- Cracking the Coding interview (http://www.amazon.com/Cracking-Coding-Interview-Programming-...)

Those two books are perfectly concise and straight to the point to understand and learn exactly what you feel you are lacking as a self-taught programmer.

The first one will teach you what you have to know, putting everything into work context, making it really easy to understand why and how this or that algorithm is useful.

Cracking the coding interview then offers really good challenges to practice and master those algorithms. And of course, if you are interested in getting a job, will perfectly prepare you for that ;)

asselinpaul 5 days ago 0 replies      
Coursera, edX and Udacity.

I have myself taken half a course on Udacity(did not finish) and a Startup Engineering Course on Coursera. I've started a new course on Coursera and really enjoy the material on there.

Also, I'd suggest you read a lot, the internet is a treasure trove of information. I've learnt from long blog posts and free online books. Have a go and explore, you'll reach a point where you don't have enough time to study everything you want.


adestefan 5 days ago 0 replies      
Don't forget about the math side, too. Discretet math and linear algebra should be the minimum. Probability and statistics is also useful. Abstract algebra has interesting applications in CS, too.
justinhj 5 days ago 0 replies      
I'm doing the Algorithms course on Coursera. It's fantastic. Interesting and practical, and taught by Princeton's Sedgewick. I have a BSc in AI and 20 years professional experience yet I'm still learning a lot from this course each week.
ahmicro 3 days ago 0 replies      
Grow Beyond with Google: Guide for Technical Development https://docs.google.com/file/d/0B_Y4kz709TVwaVZfdnl3blI3UWs/...
shail 5 days ago 0 replies      
I am suggesting an approach rather than a source. Sources, as someone already said it, are far from rare.

I would say pick up a single system, say database (relational or document) or routing, OS, DNS, Web server, A compiler, Filesystem, NFS, etc. and study the hell out of it.

Once you know how to understand a particular system in depth, everything else will start falling in place.

soora 5 days ago 1 reply      
One way of improving your knowledge is something you have already done.

Get another job that will force you to expand your knowledge. I am sure your job experience with your first start up is serving you better than a CS degree.

Similarly, a job which involves doing low level computer programming would force you to learn a lot of very practice CS, and you would be getting paid for it instead of the other way around.

cipher0 5 days ago 0 replies      
I would also suggest professor Matt Might's blog post "What every CS major should know?" http://matt.might.net/articles/what-cs-majors-should-know/ also, check out his other posts, they're excellent.
poppingtonic 5 days ago 0 replies      
There's a guy called Scott H. Young who, supposedly, did the entire (4 year) MIT EECS curriculum in a year. So, if you'd like to do it the REALLY hard way, try something like this: http://www.scotthyoung.com/blog/mit-challenge/
kabouseng 5 days ago 0 replies      
"I am not really worried about getting a job. This is about gaining knowledge."

Even so you want to be smart about it, and gain the knowledge in such a way such that employers will recognize your expertise. It is for this reason that I would rather recommend the MS. It will at least get you an interview next time you want to change jobs.

dsugarman 5 days ago 0 replies      
honestly? take a grad class in algorithms and sit in in as many relevant seminars as you can. conversation is much stronger for theoretical knowledge than it is for memorization. the idea is to work through the problems yourself with strong mentor support, so there really isn't a shortcut here.
apw 5 days ago 0 replies      
It might be worth your time to look at the course slides for "Gems of Theoretical Computer Science":


MaysonL 5 days ago 0 replies      
The previous suggestions are all good, but here's another tack, possibly better for self-teaching.

Tackle a big project: write an extensible text editor, design and implement a language and runtime, design and implement a new garbage collection system, or the currently quite popular RSS reader and feed provider.

kotakota 5 days ago 0 replies      
Personally I would recommend doing a ms if you can afford it but if you can't I would recommend that you study the following areasAlgorithms and data structures (this is a must)Systems organizations and architectureSystems programmingDiscrete mathMath for cs books (generally proof based descrete and calculus based)Statistics and probabilityThen Start diving into areas that interest you likeMetaheuristicsAiMachine learningComputer visionCompilersDevice driversGraph theoryComputer Graphics (if your working in theoretical computer graphics strong maths skills are recommended)And the list goes on. Also read papers were in areas of interest. Papers are a great way to learn high level theoretical concepts.
ulisesrmzroche 5 days ago 0 replies      
Same way you get good everything else, really. Train, learn, rest.
ExpiredLink 5 days ago 0 replies      
CS or SE? Not clear from you statement.
Ask HN: How do I learn DevOps?
10 points by MichaelAza  1 day ago   6 comments top 6
droopyEyelids 1 day ago 0 replies      
You'll learn naturally by writing, deploying, and supporting your own app or by working in a place that doesn't understand technology and makes you do it all.

Basically, every time you run into something that should be someone else's job, do it.

karlkatzke 1 day ago 0 replies      
Deploy an application with a lot of dependencies using Chef or another configuration tool that requires you to author new scripts. Set up monitoring that alerts you intelligently when someone hammers it. Deploy the Chaos Monkey and point it at what you authored; see if it stands up. If it doesn't, figure out why. Fix it. Wash, rinse, repeat.

The reason that it's called "devops" instead of just "ops" is to create a separation between the type of ops where you don't EVER break anything and you move real slow and no one ever got fired for buying IBM, and the type of ops where everything's virtualized and software-defined, and things can, will, and should break without any penalty to the operation of the system as a whole.

memracom 1 day ago 0 replies      
Google for blogs written by Google's Site Reliability Engineers - SREs. The Visible Ops Handbook is where devops as a movement, seems to have begun. But Devops is really about taking things like ITIL standards more seriously. It is unfortunate that too many people aim for buzzword compliance with any published standard, without looking for the essential meaning of the standard and adapting that to their own environment. Therefore a lot of stuff on the net about ITIL is crap, but the essential principles and practices that ITIL documents, are necessary for any serious Internet service company. And part of that is that software developers have to be involved in engineering how their apps are deployed and operated and CHANGED. No more silos between ops/sysadmins and developers. In the ideal end game of devops, there would be no more ops/sysadmin roles, just software developers, some of whom specialize in maintaining/improving site reliability. If you are in ops then you need to learn professional software development practices (Bob Martin's book Clean Code comes to mind) and if you are a developer, it means that you need to learn more about managed processes (human processes) and about the architecture of the things that run your code. You have heard of cores, but what about L1 cache and false sharing? How much time does your app spend waiting on locks? Why don't you know the answer to that last question? How do you measure/monitor your apps? If you answered Nagios, go back to school. Uptime is irrelevant, it is application health that matters, resource utilization and so on. Send data to Graphite to build up a historical view of your app behavior. If there is too much data being generated then use statsd or metricsd to only send a random sample of the data, because "too much" is a code for "a random sample would be statistically significant therefore I don't need all the data points".
runamok 1 day ago 0 replies      
I am only knowledgeable of the chef world and aws so my advice reflects that. Get a free opscode, github and aws account. (The aws account is pretty limited at the free tier so I would probably just spin up small instances and kill them after I was done "practicing".) Follow along a chef tutorial such as: https://learnchef.opscode.com/starter-use-cases/wordpress/or https://learnchef.opscode.com/starter-use-cases/multi-node-e...

You should definitely have your own servers to play around with. I use digital ocean which is pretty inexpensive but has an API to your account (example: https://www.digitalocean.com/community/articles/how-to-insta...).

I would look into using vagrant to spin up virtual machines associated with a particular software project. I find that helped me quite a bit with thinking of the server as being coupled to the application server software.

AznHisoka 1 day ago 0 replies      
This doesn't answer your question directly, but best way to learn is to build your own non-trivial app and deploy it in your own servers at home, or a dedicated server.
backlash_jack 1 day ago 0 replies      
take everything in essential system administration by aeleen frisch and automate it. done.
Warning: Google Authenticator upgrade loses all accounts
333 points by calvin  8 days ago   discuss
gmac 8 days ago 4 replies      
Too late for me, but a pleasingly fast and pro-active response from AWS (which rather shows Google up) just received by email:

"If you are an AWS customer who uses Google Authenticator for iOS as a multi-factor authentication device to secure your AWS account via AWS MFA (http://aws.amazon.com/mfa/), please read on. We are writing to inform you that Google has recently released an update to the Google Authenticator App in the iOS Store. We've received reports indicating this update is inadvertently deleting all MFA tokens from the smartphone; this could prevent you from authenticating to your AWS account.

At this point, it is our recommendation that you do not update your Google Authenticator App if you're using an iOS Device. If you have already updated your Google Authenticator app and are no longer able to login successfully you can request assistance from our AWS Customer Service team at:


We have posted this as an announcement to our AWS Developer Forums at https://forums.aws.amazon.com/ann.jspa?annID=2091 and will be posting updates if new information becomes available."

cheald 8 days ago 0 replies      
Aside from the screwup here, this is a good chance to check backup mechanisms for your various 2FA accounts. If your phone is broken or stolen, do you have a recovery plan?

I keep backup codes for each of my 2FA services in a Truecrypt container, which is mirrored on Dropbox. Additionally, I keep a copy printed out and kept in a fire safe. Phone backups for personal accounts have my wife's phone on record, and I try to keep printed copies of the QR codes I used to set up the account.

About a year ago, my phone was shattered while on the road, and while I was able to regain access to those accounts due to existing login sessions on my home computer, I'd have been sunk without them. Make sure you have a plan for what you do if your phone authenticator becomes unavailable.

guiambros 8 days ago 5 replies      
Authy (YC W12, [1]) is a nice replacement for the GA app. Besides being more stable, it has also the "benefit" of allowing you to back up your keys, and recover in the case of a lost phone or deleted app.

Thankfully, backing up is entirely optional, and turned off by default. While they claim backups are encrypted with PBKDF2 [3], I still would never ever use something that sends my tokens to a remote server, as it'd defeat the purpose of 2FA in the first place.

Still, I can see the use for casual users that care enough to have 2FA, but not that much to worry about tokens being stolen and decrypted from Authy..

Past discussions on HN here [2], [3], [4].

[1] https://www.authy.com/thefuture[2] https://news.ycombinator.com/item?id=6133648[3] https://news.ycombinator.com/item?id=4916983[4] https://news.ycombinator.com/item?id=4330050

nl 8 days ago 2 replies      
A while ago the Android version was replaced by a new app (instead of just an upgrade), allegedly because the team LOST THE SIGNING KEY FOR THE ORIGINAL APP[1].

If there is one team you'd expect not to lose a signing key I would have thought it would be that one!

Everyone makes mistakes, but it's pretty scary to hear this happening too.

[1] http://www.androidpolice.com/2012/03/22/psa-googles-authenti...

clarkm 8 days ago 4 replies      
For those looking for Google Authenticator alternatives, I recommend either Duo Mobile from Duo Security or Authy. I ditched Google Authenticator a while ago and haven't missed it one bit -- having a single app manage my two-factor tokens / keys is much more convenient.
veidr 8 days ago 2 replies      
What does it mean that it 'loses all accounts'?

I use two factor auth but not this app, so I am not sure why people are going to have such a bad day...

chime 8 days ago 0 replies      
Every time I upgraded to a new iOS 7 beta, it wiped my Google Authenticator account tokens. It wasn't a big deal with Google or Dropbox because both allow me to move. But I can't log in to my CampBX account anymore. I tried Authy today after another comment here on HN and it's been working so far.
orand 8 days ago 2 replies      
If they had released this two weeks later, iOS 7's auto-update feature would have bricked everyone's accounts.

Google Auth 2.0 redefines two-factor auth: something you know + something you DON'T have. Their entire purpose in life is this second part and they completely and absolutely botched it. I can't believe this passed testing at both Google and Apple. There wasn't even a warning in the release notes.

mahyarm 8 days ago 0 replies      
This is why you keep backups of your TOTP authenticator keys. I was really put off by 2 factor until I figured a way to do a backup. Authenticator URLS look like this:


You can save it in some passworded zip archive somewhere or print it out. If you print them I suggest printing them with QR codes to aid in recovery speed. You can easily generate QR codes by putting the text URLs into a QR code generator. If you just have a QR code, use a general QR code scanning app to extract the string.

Also the new google authenticator version has a %100 repo crash bug when you scan two QR codes in a row on iOS 7 phones.

bdcravens 8 days ago 0 replies      
I use Google Authenticator on the 2 AWS accounts I manage. Fortunately, at least on the first, the master account didn't have 2FA on it, so took about 60 seconds to reset it. (remove device, then readd) However, most wouldn't have the master account (the entire purpose of IAM).

I suspect that Google may have an update that restores accounts. I know when I've restored my phone, losing all apps, when I reinstalled an app months later, the settings were still there. Obviously the settings are stored in a file somewhere, so my hope is that this is how Authenticator works, and this buggy release just failed to properly open that file. Of course, not everyone can wait and have to reset like I did.

imkevinxu 8 days ago 0 replies      
Quick solution for Google 2-step auth (do it QUICK so you don't lose access to your Gmail)

1) Go to this page https://accounts.google.com/b/0/SmsAuthSettings

2) Click "Move to a different phone"

3) Re-setup your Google Authenticator

Note: the 10 printed one-time access codes and all the application-specific passwords will still work after this "reset". But you still need to reset your other accounts that use the Google Authenticator

noveltyaccount 8 days ago  replies      
When I add sites to Authenticator, I take a screenshot of the QR code and tuck it away in an encrypted document (OneNote for the record, which uses uses AES to encrypt).
Warning: Reddit is being manipulated concerning the new NSA leak and Israel
19 points by antocv  19 hours ago   11 comments top
mschuster91 19 hours ago 1 reply      
I bet my hairy behind on the fact that this is going to be "water on the mills" for Anti-zionist fools. Prime water, to be exact.
Ask HN: Server under heavy load. Any downside to this hack?
7 points by webvet  1 day ago   31 comments top 8
AznHisoka 1 day ago 1 reply      
I've had load issues in Postgres, not MySQL before and it was due to autovacuum running on tables getting updated/inserted frequently. I'm not sure what the equivalent in MySQL is, but if you have a ton of insert/update queries, consider archiving your tables after a certain period of time, so that your main table doesn't have ton of rows. You can consider sharding of course, but also consider sharding the actual tables in the same database. An insert query on a table with 1000 rows will take much much less time than an insert query on a table with 100 million rows, all things considered.

Also, consider creating a buffer in the application layer that buffers inserts/updates and executes them once as a single transaction, if they don't need to be executed immediately. It puts less stress on the database. Of course, this would require a lot of rewriting in your app, so not sure if you want to go through this route.

Indices are another area. I'm sure plenty of people have told you to optimize your indices, but also consider REMOVING unnecessary indices. Do you have an index on a text column, or multiple varchar columns? Those can be killer after awhile because inserts will slow down. Consider changing indices on varchar columns to indices on an int column by hashing those strings.

A quick suggestion: Install NewRelic (it's free for a certain period), and check out the database transactions that are taking up the most CPU load. Sometimes there's that 1 query you overlooked that is table scanning and could be the main culprit.

Also, are you using Rails by any chance? If so, there are other areas I can suggest.

And please post your server specs. Maybe your VPS just does suck (no offense), and the easiest route is just to upgrade your server.

cpncrunch 1 day ago 1 reply      
Restarting the processes isn't really solving the problem. What is the actual bottleneck? It should be possible to figure this out.

I think your first problem is that you are using a VPS. You should never use a VPS in a high load situation like this - buy a dedicated server! They only cost about $70/month, which you should be able to afford if you have a successful site. Ideally you should get as much RAM as you can afford and/or an SSD drive.

I know you said you didn't want to throw hardware at the problem, but there are limits - you can't run a massive database on crappy hardware and expect it to work smoothly.

joshbaptiste 1 day ago 1 reply      
Crude check but since it's temporary, an hour seems far too long an interval, you check at 10GMT , by 10:05GMT your server is in trouble and has 55 minutes to crap out. I would check every */5 minutes at least.
lutusp 1 day ago 1 reply      
> For now we've found that restarting the httpd and mysqld services brings things back to normal almost immediately.

You need to examine the restart process and analyze why it resolves the issue. If the reason is the abandonment of dead parasitic processes and memory leaks, you need to find out why and correct them. If the reason is that the restart unceremoniously drops all the current transactions, you need to increase capacity.

> Can anyone think of any downside to this (used at least as a temporary measure)?

I certainly can -- a bunch of really irritated visitors, whose transactions are abandoned. But that's only true if that is actually what's going on. Make sure you don't have software issues that are preventing efficient operation. If that's not the issue, you need to grow with your customer base -- increase server capacity.

cbhl 1 day ago 1 reply      
I would be really worried about losing requests in-flight or that take a long time to run.

Is it prohibitively expensive/time consuming to get (or borrow) a bigger machine (on EC2, or in your colo, or what have you) to run MySQL on until you've figured out how to shard / scale out your application?

trevelyan 1 day ago 1 reply      
If you haven't already done this, when the mysql server is having trouble make sure you connect through the terminal and try:


This will show all active queries and the time they have taken to execute. The fact that the server seems to churn to a halt and then work its way through the problem suggests the issues are related to specific queries you can catch this way. Then use the EXPLAIN command on the slow queries to figure out why they are hanging your server and add indexes or tweak that part of your code (avoid joins on large tables, etc.) as necessary.

staunch 1 day ago 1 reply      
It seems pretty clear that you don't have enough experience on your own to resolve this properly, so call in some help. It may be possible to make an architectural change that significantly reduces the resources you need, or perhaps you'll find that you unavoidably need more resources to do what you want. Someone who knows how to diagnose and analyze this properly can tell you that.
motilevy 1 day ago 1 reply      
while the root cause should be fixed ( sound like you're working on it ). consider using monit for the restarts instead of cron :


Tell HN: Change passwords for all your services
2 points by weakwire  17 hours ago   3 comments top 2
tsironakos 17 hours ago 1 reply      
I dig it, but I wonder if this is even possible. I mean, each site has its specific password page and weird configuration.

Will it be possible to build something scalable enough?

Exec Shuts Down Non-Cleaning Service
45 points by nicklovescode  2 days ago   23 comments top 10
s_q_b 2 days ago 2 replies      
That's too bad.

Best of luck as you move forward as a cleaning company.

The biggest issue I see with most on-demand cleaning services is that they don't do the type of cleaning I actually need done. I don't need my surfaces dusted as much as I need laundry picked up, washed, dried, and folded, and trash, like soda cans, the occasional pizza box etc. gathered up and tossed.

Basically I want an on-demand cleaning service I can call when my place is a total mess, without doing any pre-cleanup.

nlh 2 days ago 1 reply      
I'm surprised to hear this. Of course there's always more going on under the hood but I've had nothing but totally positive experiences using Exec Errands.

Curious if anyone has some more insight into what happened. Not enough demand? Money-losing?

flavio87 2 days ago 2 replies      
Aren't they going to have the same problem like Tutorspree, that once you have the contact info of a cleaner that you like, you simply work with him/her directly and bypass the (hefty?) exec transaction fee?
brunorsini 2 days ago 0 replies      
I guess "do things that don't scale" can't really work forever... Sad.

I think it's unfair to compare Exec to TaskRabbit, as the former offered a much more curated experience. I believe the problem lies right there: it's really tough to intermediate supply and demand for broadly define "services", this just doesn't scale... Beyond the initial phase in which you are working really hard to amuse early customers, that is.

I for one have been amused by them in multiple occasions, Execs have helped me do things as diverse as assembling furniture and moving stuff around.

continuations 2 days ago 0 replies      
I thought I read somewhere that their most popular service was furniture assembling. Was that not the case?
zacharycohn 2 days ago 1 reply      
Consider Zarly was originally exploring this model, before they pivoted elsewhere.

I'm interested to see if TaskRabbit and Postmates stick with it, or eventually pivot away.

cmcewen 2 days ago 0 replies      
I think Exec and TaskRabbit share(d) a similar problem in that they are so broad that consumers aren't sure what to use the platform for. Renewed focus on a single service makes sense, but they face competition from Handybook and Homejoy. It's probably also difficult to differentiate in this market since the maids are all likely independent contractors.
woah 2 days ago 0 replies      
Interesting. Seeing more of these startups focus on small niches instead of "we'll find someone to do anything".
ballard 2 days ago 0 replies      
0. HomeJoy was already in this space. HomeJoy was PathJoy, yc iirc.


1. Any big pivot will take time for trust to return.

brackin 2 days ago 0 replies      
What a shame, I've been using Exec for ikea furniture and it was great. The cleaning service is incredibly expensive vs Homejoy which provide an incredible service.
Ask HN: How did you get your first freelance project?
7 points by ajaxguy  1 day ago   10 comments top 8
dirktheman 21 hours ago 0 replies      
Networking is the most important. I built my first website for the small company I was employed. At one point a customer contacted my boss about who built the website, and he referred to me. (Which I'm still grateful for!). The next client: also within my network. Once you've done a few gigs, people will find you for work if you're good at it. Which brings me to the next point:

Underpromise and overdeliver. Always.

Just doing a good job isn't enough for people to reference for you. You have to be better than they expect. Client asks for two designs to choose from within two weeks? You give him three designs in one week, and tell them which one you like the best and why. That kind of stuff. Once you've secured the project, be communicative about progress and (especially) delays. This all may sound simplistic, but it would surprise you how many big shot agencies don't do these things.

Odesk/Elance? It's not working for me. I'd rather make a website for free for someone I know personally, with the intent of building a network and a portfolio, than building a website for a couple of tenners for someone on the other side of the planet.

rnernento 1 day ago 0 replies      
Networking. A friend of a friend needed a website. When you're freelancing everyone is a potential customer. Early freelancing projects are not that hard to get, it's much more difficult to turn a small portfolio into a reliable revenue stream.
bliti 1 day ago 0 replies      
Its all networking. I would setup a good looking portfolio and start emailing other HN members. That will get you a fair amount of initial work. Then its just a matter of more networking. I also had good luck doing cold emails to people on LinkedIn.Just make sure to have a portfolio. People want to see what you have done, not hear about what you can do.

I will warn you: in order to maintain a good volume of work you have to become good at marketing. If you do not look forward sales, and or negotiations, you might be better off working with an agency. Less money, but less hassle.

krisneuharth 1 day ago 0 replies      
I have a IFTTT script that crawls Craigslist for specific keywords and then it emails me the hits. Craigslist generally has a low signal to noise ratio, but I have landed a few things from there.
dsschnau 1 day ago 1 reply      
As a full-timer looking to start freelancing on the side, I'm interested in this as well. I've heard too many horror stories about oDesk and friends. A popular approach I've heard is doing pro-bono work and getting a referral, but I feel like that would fall into the trap of "well you did that guy's stuff for free, what about me?"
terrykohla 23 hours ago 0 replies      
I'm currently working on my first freelance project.

I got it through this guy I worked with at a company. He was my desk neighbor, he liked my work, I told him I was looking for freelance work and he told me he could use some help.

147 1 day ago 0 replies      
I just started freelancing this week. I got lucky and was able to get work from my network which I thought was terrible. And I went on elance and may get a job there. But the rates on elance and similar websites are really low.
ioddly 1 day ago 1 reply      
elance, odesk, etc are fine, it's just that the signal to noise ratio is very bad. Filter through the projects until you find reasonable projects with reasonable budgets.

Post on the seeking freelancer thread. I posted on there for the first time this month and have received a few contacts but unfortunately took on a large job right after doing so, so I haven't been able to take advantage.

Put together a portfolio if you don't have one already.

Network. Go to local events if you can, developer meetups but also things like chamber of commerce meetings. Keep in touch with your clients. Eventually, the bulk of your work should come from your network.

Student Loans Can be Discharged in Bankruptcy
24 points by will_brown  3 days ago   discuss
Ask HN: What is the stupidest startup idea you ever had/heard?
33 points by plaban123  13 hours ago   84 comments top 37
JackFr 12 hours ago 3 replies      
Crowdsourcing vigilantism (or random violent assault) - whoneedsabeating.com - snap a photo with your phone, location is tagged and timestamped, optional tweet with why the subject needs a beating.

For free subscriber's beat-down requests are published only with city, photo and reason. Paid subscribers get street address published with beat-down request.

jasonlotito 13 hours ago 4 replies      
The stupidest idea I have heard was Twitter.

After that, I changed the way I thought.

drharris 13 hours ago 0 replies      
For awhile, it was Twitter. Then someone came out with the idea of a Twitter you pay for (App.net), and since then it's been at the top of my list. Even when they're both making billions, I'll still believe they're stupid.
rpm4321 12 hours ago 2 replies      
Apparently mine, based on the number of upvotes my Show HN is getting right now ;)


damon_c 12 hours ago 3 replies      
My gf wants to make a mobile app that helps homeless/impoverished people share good dumpster eating locations.
jacquesm 13 hours ago 0 replies      
SpinDisp (65)


I should do another one of these, it's been way too long.

kirubakaran 12 hours ago 1 reply      
All ideas that were the seeds for multi-billion dollar companies.

They sounded stupid^W bound to fail at first, especially before seeing the implementation / impact:

Better search engine with no sponsored listings, seamless sync and backups, short status updates blasted to your followers, better social network, animated movies that target adults, online book store (without a book store experience), $4 lattes ...

Some ideas that sounded awesome and turned out to be awesome:

Open source and breakfast bars.

To be fair, many considered open source to be blindingly stupid -- "Anyone can edit the source? That would be madness! And why would anyone just contribute hours and hours of their time? Why do you think Microsoft pays their programmers so much."

But then, "They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown. -Carl Sagan"

workhere-io 13 hours ago 1 reply      
Color (http://en.wikipedia.org/wiki/Color_Labs). The idea behind the app was flawed (as in "why would anyone need this?"), and they made no attempt to hide the fact that the underlying idea was datamining/advertisement.
slig 12 hours ago 1 reply      
Mine: It's based on a Seinfeld episode where George makes up a fake charity and gives cards to people "A donation has been made in your name to Human Fund".

Say you want to gift someone but you don't know what they want / don't want to buy more stuff / etc. So you buy a card that has a message ("Happy Birthday!" or whatever) and a number of credits associated with it and you give it to someone. The person, then, can use the credits to give things to non-profits, like a shirt for the homeless, or some food for a orphanage.

bayesianhorse 12 hours ago 0 replies      
Fish Tank Analyzer:

1) Train fish to swim towards some chemical/compound whatever you want to detect

2) Put valves at different places in the tank, where you can put in the diluted sample

3) Detect the "swarm opinion" via webcam and computer vision

I never found a good application for this...

_blaise_ 13 hours ago 2 replies      
The Socialist Network. Everyone has the same number of comrades.
pjungwir 10 hours ago 1 reply      
1. Automatic goose-plucking machine. I was walking out of work one evening around Christmas and had to cross through a flock of Canada geese on the office park lawn. I thought, "I could just snatch one of these guys, wring his neck, and have him for dinner, if only I had a way to pluck him." It would look like a salad spinner, where you add the goose, attach a lid, then turn a crank. Out comes your plucked goose. Also solves goose overpopulation, so it's good for the environment.

2. Rubber trees. Sell them to commercial real estate developers/contractors. Cheaper than real trees, and less maintenance cost. Just pop them into the ground! We'd also sell accessories, like attachable bird nests or battery-powered hooting owls. Premium customers could buy four "styles" of the same tree, one for each season, and with a support contract we'd swap them out at appropriate times of year.

3. Renewable energy. What is the largest source of untapped energy in the universe? Little children! We'd sell shoes with an integrated battery that recharges as your kids play. The sole of the shoe contains a standard power outlet so you can plug in your TV and watch your shows after the kids are in bed.

xauronx 12 hours ago 0 replies      
This thread is reminding me of how many ideas I've had that I never went through on.

Another one: Sponsor a homeless person. Crowd-sourcing getting someones life back on track. You get 100+ people to pitch in $5 a month to one person they "adopted". These 100 people have full transparency to how that person spends the money, can advise and help in other ways . If you see that they withdrew $50 in cash on a friday night, they have to show a receipt for a valid reason for doing so, or you can drop out as a sponsor.

Anyhow, it was a stupid idea because people are generally selfish, on both the giving and receiving end.

meshko 12 hours ago 0 replies      
"Make a web page where all the students of our college can post their pictures and talk to each other!" (proposed to me by a classmate in May of 2000
xauronx 12 hours ago 0 replies      
Mine: Rate your barista

You would be able to snap a picture of your barista, put in where they work and rate them on things like:SkillSpeedAttractivenessFriendliness

It all started to feel kind of creepy, because I knew the "attractiveness" would become the most important thing, then you'd have guys using it as an excuse to be creepy. Anyhow, there are barista competitions so it seemed like something worth measuring. Also, a lot of times the quality of the coffee in many places is on an even playing field and the person making it starts to become more important. Never went through with it though.

TheMagicHorsey 12 hours ago 0 replies      
App that you use to report empty parking spaces. That earns you karma points. You can then spend the karma points to get reports of nearby parking spots when you need them.
xutopia 12 hours ago 0 replies      
Twitter. I'm not joking either. It is the stupidest startup idea I've ever heard and yet...

Seriously I'm probably the worst person to ask. Almost every startup idea sound ridiculous to me.

johnmacintyre 12 hours ago 1 reply      
I've forgotten my 'stupidest' ideas, but my 'worst' idea was basically to do what PRISM is doing now. I realized you can infer a hell of a lot from the bits of information people post publicly and you could aggregate them into a comprehensive profile. There's obviously a market for this as we all now know, but I realized how evil it was and that even if it was highly successful, how shitty would I feel about selling out humanity. ... however, it does still strike me as a fascinating technical challenge.
krapp 9 hours ago 0 replies      
Years and years ago, I wanted to make an auction site like Ebay, but only for "haunted" items. So, yeah.

Also, services where you pay someone to digitize your mail. And Lockitron... I just... these seem like bad ideas waiting to happen.

But then I was sure Twitter was a terrible idea, and I loved the original format of formspring so what do I know?

telephonetemp 12 hours ago 1 reply      

<existing social network> for <pet>

maxgaudin 12 hours ago 1 reply      
Square for homeless people. You can never again say "No, I don't have any change."
boredprogrammer 12 hours ago 0 replies      
'Lets put qr codes on "welcome to $town" signs than when someone scans them with their phone, its loads a website advertising various things you can do/buy/participate in around town.'
kodablah 12 hours ago 0 replies      
Coveralls/TravisCI for code reviews w/ self-hosting option. I'm sick of Crucible and expensive alternatives that don't even work that well these days.
Mankhool 10 hours ago 0 replies      
They are numerous. Almost daily I see things funded that make me shake my head. Here is the latest http://techcrunch.com/2013/09/10/foodiequest/
trez 12 hours ago 0 replies      
I've got a couple of stupid ideas.mine: http://www.stamplin.com - extract text from PDF,mine again: http://signup.mealthy.com - eat better

and lot's of other ones.

An idea is always stupid. Few iteration later, it starts to be not that bad.

namenotrequired 12 hours ago 0 replies      
Looking for some "ideas that seem bad" here? ;) http://paulgraham.com/swan.html
coldcode 12 hours ago 0 replies      
Back in the dotcom day, yachts.com
LouisSayers 12 hours ago 0 replies      
That guy on Dragons Den that wanted to save his cucumber ends from drying out... WTF


rholdy 12 hours ago 0 replies      
Read about a startup that recently launched that was claiming to be "Netflix for Books." We already have that. Its called a Library.

Either that one, or the guy selling fart scented candles on Shark Tank.

plaban123 13 hours ago 2 replies      
Mine: replacing business cards
joncp 12 hours ago 1 reply      
Some guy wanted to save the whole internet on his computer and index it.
trevordixon 12 hours ago 0 replies      
When I first saw it at McDonalds, RedBox. Now I use it all the time.
speeder 12 hours ago 1 reply      
Since I advise people that want to make new game companies, I hear A LOT of those, ordered by stupidity level (all of them are fairly common, although seemly the most stupid ideas are more popular too).

First place: Make the next World of Warcraft, with only 3 people and no money.

Second place: Make the next Unreal/Quake/Half-Life with 1 programmer, one artist and no money, for console, in 6 months. (yes, this idea is more common than you think).

Third place: Make iOS game and get rich quick, without no idea of how, and hating games in general actually.

Fourth place: Be the idea guy, and makes games only having the idea, and being so awesome with your ideas that programmers and artists will work to you for free and accept only 2% of equity in the end.

Fifth place: The same as above, but when said that he would be just a useless guy, he proposes to be the writer instead, the guy that make the rules (I still do not understood what being the writer has to do with game design... but it is fairly common! Even when the person want to make a soccer game, that has no writing).

Sixth place: the same as the two above, but knowing people won't work for free, want to sell his idea to Activision for 10 million USD, those are usually paranoid with NDAs too, and insist me to sign their NDAs before asking whatever questions they want to ask me.

OafTobark 9 hours ago 0 replies      
Ionic Ear from Shark Tank
neethupriya 6 hours ago 0 replies      
One man started a movement to have peace all over the world and wanted to solve problems without bloodshed in the path of Ahimsa.

This was the stupidest! idea in the whole history of mankind.

I think everyone guessed who it is.

Humans don't need aliens or space creatures to get killed. they will kill themselves.

Long live war! Long live humans!

Ask HN: full-time job or full-time freelancing or both?
9 points by shire  1 day ago   4 comments top 2
ragatskynet 1 day ago 0 replies      
I used to freelance after my full-time job and I have to admit that it is really exhausting. I had less time for my girlfriend and to compensate this I left all my hobbies. I could not even watch a movie or start reading a book because I had to finish my freelance work. It is really hard to predict sometimes how much effort is needed for a freelance job, so if you are not so experienced take my advice: always tell your client that when he changes the requirements the deadline must also change. Always thinking about the deadlines and the work to do - best way to burn out.

One more thing: sure it is a good thing to earn more money by working more. If you have a debt or you are really need to save for something it might be (not sure it is the best) a good approach to boost your income. I had no debts while I was doing this; I just wanted some more money to increase the level of my lifestyle, let's say.. the problem was that I had no time to really spend or use the plus money in a good way.

I hope I could help. Also please notice that I am sure that there are people whose tolerancy for work or their energies let's say are higher than mine.

rkv 1 day ago 1 reply      
With PHP you can enter the wonderful (and lucrative) world of Wordpress templating, plugins and/or maintenance. Like the other post suggested you will be burnt out if you freelance while working full-time so balance your freelance workload such that you still enjoy what you do.
Ask HN: Is RubyMine worth it?
4 points by BWStearns  1 day ago   4 comments top 3
cheyne 1 day ago 1 reply      
I say yes, but I also use both Sublime and RubyMine.

I use Sublime when im mostly working on front end code, but i'll use RubyMine when im working on backend mainly because I get to use object inspectors, break points and step by step debugging.

Of course, if im just working on the front end of my web app, then I prefer Sublime as it has a much lighter footprint.

If you've ever coded in C# and used Visual Studio, then RubyMine will feel more comfortable when you really need to dig deep and debug something.

It's cheap enough, just get it, one day you'll be up to your elbows in spaghetti code and it will save you heaps of time, then you'll be happy you had it.

hkarthik 1 day ago 0 replies      
I've used the Jetbrains products for a few years, and in general they all work well when your codebase is small and manageable.

Unfortunately, if you have a monolithic code base, you'll see the memory consumption climb and it will slow to a crawl pretty quickly. This was true in Visual Studio/C# and I've found it to be true with Ruby/Rails apps too.

andrew_gardener 1 day ago 0 replies      
I haven't used sublime that much so I can't really compare them.

RubyMine has helpful things like auto-complete, cmd+click to see function/class code (works for things like locales and gems too), generators without going to the command line, and a console for autorun unit test results off the top of my head.

On the negative side its a memory hog and costs money (though they seems to have sales every once in a while so you could get it slightly cheaper).

Ask HN: Running a hackathon and someone's laptop got stolen, what should we do?
86 points by pulakm  5 days ago   58 comments top 20
georgemcbay 5 days ago 1 reply      
Unless I was specifically informed that it would be safe to leave my belongings in any area, I would assume that it is not safe to do so, and if I left my laptop unattended and it were stolen under these circumstances I'd be pissed off, but I wouldn't expect the event organizers to take any responsibility for it at all.

The idea being kicked around to take a collection from attendees is okay in theory but I'm not convinced having to file a police report is a sufficient barrier to future attendees claiming lost laptops in the hopes of getting $1000 from random strangers. Also you'd have to be really careful to make sure it was well understood the collection is totally optional, and not set it up in such a way that people who didn't want to participate for whatever reason weren't made to look like asses in public. Put in that situation I'd have no problem dropping $1 or $20 into a collection hat, but expecting everyone (especially students) to have such disposable income isn't fair.

nkurz 5 days ago 1 reply      
I'd suggest a offering a significant reward for information leading to the return of the laptop. This signifies that it's a matter that you take seriously, without claiming responsibility for protecting others' property. Choose an amount that is comparable to the street value of the laptop. Take up a collection to pay it if ends up being paid.

This motivates anyone who has suspicions or inside information to come forward. If it's a theft by a student, it's quite possible that someone besides the thief knows what happened, but doesn't want to appear 'uncool' by expressing their disgust. A monetary reward may overcome this, and potentially makes them into a hero rather than a coward.

I would not offer any sort of amnesty or no-questions-asked policy. If you end up finding the thief, prosecute them. If someone claims to have 'found' the laptop in the the bushes, seems very interested in the reward, and you are suspicious, turn the matter over to the police and let them decide if the story holds up.

Specifically, I don't think you should offer warnings to others to take greater steps to protect their property. This has the appearance of blaming the victim, and potentially helps the thief (and potential friends) justify their actions to themselves as something the victim deserved for their negligence. Making it known the crime occurred is sufficient warning. It's in each individual's interest to protect their personal property, but not in the group's interest to create a 'fend for yourself' attitude.

mindslight 5 days ago 0 replies      
Relying on perimeter security is a folly. Believe it or not, there's an intersection of people who are are interested in both the hackathon and opportunistically stealing laptops. As your event scales, the chance of having these people increases while group-wide empathy decreases.
frostmatthew 5 days ago 1 reply      
As much as it sucks to have a laptop stolen if you're hosting an event with 1000+ people I think you need to adapt the policy of not being responsible for lost or stolen items.

Many of the comments here mention a certain level of trust in the [hacker] community...sorry but not every single developer is a saint who would never consider stealing someone's laptop. The larger the group the more people you'll have willing to steal if the opportunity arises.

Pro_bity 5 days ago 4 replies      
Two choices IMO, 1) if you can afford it, replace the laptop. 2) If you can't afford it, then take up a collection from the attendees. As for adverse incentives, you should always presume that people are honest and good. However, to cover yourself (and it is a good idea anyways), make them fill out a police report. Keep a copy on file for yourself. This would give any would be profiteer pause, as there are real consequences to filing a false police report.
rdl 5 days ago 0 replies      
If it were a company sponsored hackathon, I'd probably just pay for the laptop. Probably wouldn't publicize the whole thing, and if it happened a second time, would seriously re-evaluate security.

A school or community hackathon is a much more ambiguous situation. Get a police report, and see if you have event insurance or something to cover it.

I never leave stuff unattended in public, but things like hackerspaces, YC's office, etc. feel different. I do screenlock always, but I can't say I'd never leave a machine unattended in a semi-public environment.

aroman 5 days ago 0 replies      
As someone currently attending PennApps, I'd be happy to chip in a few bucks to support the person who had their laptop stolen.

Sorry that you have to deal with this Pulak :(

tonywebster 5 days ago 0 replies      
If I was the participant with the stolen laptop, I'd first of all be really bummed out over not having the opportunity to participate in the hackathon because of stolen gear. I'd try to find them a computer they can use to hack on, and hopefully they didn't lose any work.

I don't know what to say about the stolen gear itself. People should take responsibility for protecting their own stuff, but that's a real challenge over a weekend non-stop sort of event, especially of that size. People need to eat, sleep, etc. I guess it's a lesson learned to have clear disclaimers of responsibility for future ones, and I'm not sure what to say about replacing that participant's computer. Not a fun situation, and it's hard to find fault on anyone (except the thief, of course).

shawnreilly 5 days ago 1 reply      
I've never been to a PennApps Hackathon, but from what you describe (1000+ people), I'd imagine that it's pretty much impossible for event organizers to prevent this. I think the key here is the 'left unattended' part of the scenario. The solution would be to tell the teams not to leave the equipment unattended. It's unfortunate, but a reality of life (even at a Hackathon with a great community); There are bad people out there. I've been to quite a few Hackathon / Startup Events (granted, much smaller), but I've never left my equipment unattended. I consider it a part of Teamwork, Communication, and Organization. If someone from the Team isn't there to watch the equipment, then it comes with me or gets packed up and put away somewhere safe.
educating 5 days ago 0 replies      
The appropriate response is to as much as possible help them contact the authorities and/or to keep a lookout for the laptop and the thief. But, you also have a hackathon to run, so you cannot inconvenience others just because someone was thoughless enough not to take their laptop with them when they went to the bathroom without someone they trust watching it for them.
redtexture 5 days ago 1 reply      
On a community-basis, reporting widely and promptly about unfortunate events via your typical channels is important and a strong community-safety-measure, as well as an opportunity for safety-awareness and for participants and others to make-whole and contribute toward the losses that one or more community- or event-participants have had.

It is not so great that the possibility of the difficulty described by the original poster had not been thought of in advance, and that a clue and a policy is now needed after the fact.

Standard cautions to participants as a matter of policy are appropriate for all public events and occasions.

This is because no project or event can afford to suggest or create a culture that implies that the project is able to assume that participating individuals will be made whole from failing to attend to their valuable assets, whether they be computers, mobile phones, wallets, coats, hats or their bodies; further it is appropriate to warn all participants that civil authorities may be called upon to intervene or participate when inappropriate activity is discovered or reported.

A project or event code-of-conduct is appropriate, and having a policy guiding organizers and empowering all volunteers and participants to act against against miscreants with inappropriate behaviors is also a community-building and safety-building experience, in addition to the event's particular mission.

More generally, as a community-empowering project and event, an important measure, towards community-building, safety, and inclusiveness includes noticing populations that are desired and not always well-recognized, and dedicating your event toward providing a harassment-free conference experience (since property-stealing is a harassment) for all individuals, regardless of gender, sexual orientation, gender identity, disability, physical appearance, body size, race, or religion. This invites all participants to act individually when inappropriate behavior occurs.

This is a typical class of policy and notice that universities resort to, in anticipation of an occasion when a member of its population of students, staff, or professors is discovered to be acting beyond social, legal or ethical norms.

picsoung 5 days ago 1 reply      
First thing to install on any devise : Prey.http://preyproject.com

It's great to track your hardware, it can event take screenshot of the screen and pictures with the camera.

stcredzero 5 days ago 2 replies      
What should we as a community do about this? Honeypot Laptops.

Laptops modded specifically as honeypots. They could be modified to maximize battery life, and pass muster as an ordinary laptop under casual observation. However, their real purpose is to sit there in extremely low power mode, waiting for someone to move them, at which point, they fire up their radio and gps, and signal cameras and security personnel on-site to start watching.

Are onboard accelerometers good enough to do dead reckoning positioning of the device within the building, provided they have good data to work from?

shire 5 days ago 1 reply      
Was it a Mac? I'm sure MacBooks have the ability to be tracked if the owner allowed it. I have a MacBook pro and the guest account allows a thief to login and I can track them through the guest account.
larrys 5 days ago 1 reply      
"Someone left a laptop unattended, and it was stolen."

Never been to one of these so could you elaborate as to how a laptop was left (and for how long) so that it was stolen? (I'm curious about the details).

As an example is this like being at an airport terminal with your laptop, turning around for a second, and turning back to see your laptop missing?

Or more like leaving the laptop and going to the bathroom?

Or leaving the laptop for a minute while you go two tables over to chat with someone?

Do you know the exact circumstances?

manarth 5 days ago 0 replies      
Unfortunately, some of the side-effects of experience are distrust and paranoia. These are very effective experiences in software development.

If this theft happened to an experienced pro, then their data is encrypted and backed up, so all they've lost is hardware, and that's probably covered by insurance.

If the theft happened to a student, then maybe they're not the most experienced engineer. They might not have backups, and their data might not have been encrypted. They might not be ensured. The hardware cost is still - comparatively - cheap. But they might have to rewrite their thesis from scratch. Or risk having their personal data exposed to the public.

But at this point, the only help that financial aid can give, is restoration of the physical loss - i.e. a new laptop. In most cases, that wouldn't compare to the loss. But it might help, a little.

dylanhassinger 5 days ago 0 replies      
Tough call.

Definitely add a new section to the promo materials / introduction talk to remind people to watch their stuff, and that you're not responsible.

It's the person's fault for leaving their stuff unattended (everybody should know not to do that in a university building, even during special event). But you might chip in and help/replace it, as long as its just this once.

zrgiu_ 5 days ago 0 replies      
What kind of computer was it ? What OS ?
xdocommer 5 days ago 0 replies      
Collect $2 each from the 1000 participating students... and buy the guy a new laptop. I am sure they would not mind ... and for those who do there will be others who will put in some cash.
ddebernardy 5 days ago 1 reply      
Ask HN: If you have had a FTTN broadband rollout, how is it?
4 points by samuellevy  1 day ago   4 comments top 4
cbhl 1 day ago 0 replies      
My understanding is that a lot of people had bad experience with FTTP/FTTH when it was first rolled out in the US, because the telco would cut the copper cables that lead to the house. This meant that once you switched to FTTP/FTTH, you had no way to switch back to ADSL (or that it was prohibitively expensive to do so).

In my neighbourhood in Canada, FTTN is quite common, and speeds of 25Mbps/10Mbps and 50Mbps/10Mbps are commercially available using VDSL to cover the last mile between the node and the home (and this is well below the theoretical capabilities of VDSL, since the telco is also using VDSL to deliver the TV component of a triple-play package ). While a new modem is still required, since the last mile is still copper, it means that switching from ADSL to FTTN+VDSL and back is easy (alleviating concerns that a FTTH provider might suddenly jack up prices knowing that you can't switch back to ADSL).

I believe the local telco has started rolling out FTTH to select areas, but:

- it's available in far fewer neighbourhoods than FTTN

- the monthly fee is much more expensive (think $150 CAD/month, compared to $40/month for FTTN)

- there's an expensive installation fee for FTTH

- the bandwidth cap on FTTH doesn't increase proportionally with bandwidth compared to FTTN or ADSL; the caps are so low that you're basically on usage-based billing for all usage above the base monthly fee

hkarthik 1 day ago 0 replies      
I live in the US, and I have had both FTTP (via Verizon FIOS) and FTTN (via AT&T U-verse).

FTTP was by far, the best internet service I ever experienced. The latency was super low, download times were always fast, uploads were synchronous, and the service had amazing uptime in the 3 years I had it.

FTTN was by contrast, a miserable experience. The hardware was finicky, the latency was terrible (thanks to a DSL Interleave), the downloads were inconsistent, upload speeds were laughable, and the hardware was total crap and couldn't stay up at all.

Unfortunately, Verizon has halted new development of it's FIOS product even though it was awesome, due to cost. AT&T has pushed forward with it's crappy U-verse solution and has eclipsed FIOS installs in my local area.

My takeaway from this is that fiber optic cable is far and away one of the most stable and solid technologies since the invention of the copper wire. But unfortunately it comes at such a steep price, that it gets sidelined when it comes up against the "Last Mile" problem of getting a connection from the node to the residence.

I would love to see an opt-in option for FTTP where you pay the difference to the service provider to have the fiber optic cable run into the residence. Even if they charged me at cost ($2-3K USD last I checked), I think many would pay for it due to the better experience. Over time, this cost would fall and everyone would opt in.

jameswyse 21 hours ago 0 replies      
I lived in West End, Brisbane for a while and due to the closing of the local ADSL exchange (to build a new childrens' hospital) Telstra upgraded the whole area to FTTP.

Getting it set up was a nightmare but this was entirely the fault of our ISP (DoDo are the worst.) After it was installed I had 3 months of perfect internet access until moving out of the area! Shame I could only order 30mbit at the time.

       cached 13 September 2013 04:05:01 GMT