Learning C and ASM, what's the way to go? - <AUTHOR> I'd like to learn C and ASM (on x86-64) The documentation I have varies between old books from the 70's, and tutorials from websites with the grammar of 16 year olds, from miserable sites.  I'm not sure how best to attack this problem.  I'd like to learn how to program in C and in ASM, I've read basic things, and understand their usefulness, but I don't know what to read! I have a number of people tell me that they've read near to nothing, but I don't think I have this sort of mindset.
Kind elders of Y, give me guidance.
Thanks <comment><USER2> I'd like to second the K&R book.

In addition, I've found if you're taking an engineering approach, "Applications Programming in ANSI C" by Johnsonbaugh & Kalin was to me a very valuable learning tool.

Do not go without the "C: A Reference Manual" by Harbison & Steele, which to me has been the most valuable reference book to have on my person if I couldn't get or chose not to fancy a good Internet reference.

For Assembly, my coverage has been limited to MIPS, which was in comparison to Intel's version, a lot easier to understand and thus learn from. Check out "Computer Architecture and Design" by Patterson & Hennesy. While of course mostly a book on architecture, it's rooted in learning MIPS to understand architecture and comes with the SPIM simulator software(which I assume could be had online). I also own the book by Bryant & O'Hallaron, "Computer Systems: A Programmer's Perspective" and personally I found that learning MIPS first brought home Intel's ASM a little softer.

<comment><AUTHOR> Lovely note, a question, however -- I er, got "C: A Reference Manual" for my birthday, (which got me into this whole business), but it looks very advanced, shall I read it as my first book anyway? and ask questions where I falter? Or, should I go for something more basic?

Thanks again!

<comment><USER2> My advice is absolutely not. References are just that - to be looked up for something you've lost or just don't have the capacity for in your own memory; they're not made to be read back to back, or at least I could not do that. Question to ask might be, would you read the English dictionary back to back? Kudos to those that can or would. :)

You talked about learning C and ASM, and K&R and the other books (excluding C:ARM and CS:APP) are fine _learning_ tools. So to answer your question, do not read it first, but have it by your side when something isn't clear... think of it like a dictionary to look up functions that were not well addressed (or even talked about at all) in the learning books.

<comment><AUTHOR> Oh, okay -- Well, I'll make sure I have it handy :)

</comment></comment></comment></comment><comment><USER3> If you want to learn x86-64 assembly language, I recommend a historical approach: Start by learning 8086 assembly language, then learn 80386 (i.e., 32-bit x86) assembly language, then learn MMX/SSE assembly language; and only once you've mastered all of those, start on x86-64.

The x86 instruction set is kludges built upon kludges, and you're never going to understand it fully if you try to jump in at the end without seeing how it developed.

<comment><USER4> Agreed, the biggest switch is probably from 286 to 386.

486 and Pentium didn't really do much instruction set wise (sure there were changes), then the next big change is the 64 bit systems.

edit: What do you mean kludges ? It's the most orthogonal instruction set known to man!

<comment><USER5> Forget everything about the code, data, and stack segments.

<comment><AUTHOR> What do you mean?

<comment><USER4> He means that you don't need those anymore.

You used to need them (badly), especially on the smaller CPUs because otherwise you were severely limited in memory.

Check out the 'mixed models' that were pretty common usage in the 80's.

There were lots of them:

      code          data            model name
      under 64KB	under 64KB	Small (-ms) or Tiny (-mt)
      over 64KB	under 64KB	Medium (-mm)
      under 64KB	over 64KB	Compact (-mc)
      over 64KB	over 64KB	Large (-ml)

I was _so_ happy when I finally got out of 'model hell' and could use 'flat' mode using DJGPP. Finally C programming without the headaches.

<http://en.wikipedia.org/wiki/DJGPP>

</comment></comment></comment></comment></comment><comment><USER6> For C, absolutely K&R.

For Asm, I concur with cperciva that the best way to go is to start at 8086 and work your way towards more modern assembly.

For 8086 I highly recommend "The 80x86 IBM PC and Compatible Computers (Volumes I & II): Assembly Language, Design, and Interfacing". I learned from this book and thought it was very helpful.

For more modern stuff I really enjoyed "Computer Systems: A Programmer's Perspective". It will be most beneficial after reading through K&R and being familiar with ASM. It focuses a lot on programming techniques, tips, and tricks so that compiled C/C++ code is turned into efficient assembly.

Finally, if you'd like to build a whole system end to end, the Motorola 68HC11 microcontroller is a fun little piece of hardware to play around with. "MC68HC11: An Introduction to Software and Hardware Interfacing" is a good book for this purpose.

Best wishes on your journey into the low-level programming world!

PS. I'm biased. I have read and own all of the above mentioned books. Thanks for getting me to brush off the dust again ;)

<comment><USER7> The best way to learn assembly is to do it on a risc chip, then work up to a CISC chip.

So pic, mips, etc first, then X86

</comment></comment><comment><USER8> It might help to take a step back and ask why first. Are you working on a project that requires both?

If you just want mercenary ability with C and ASM, you'll have no problem finding the resources - just a matter of finding the _best_ book. I'm sure you'll get plenty of recommendations here.

It sounds you want to enrich your general programming knowledge though. In that case I'd recommend learning computer architecture concepts - once you have that down, learning C and ASM will be a pretty transparent process. In fact, I'd recommend it even if you just need it to hack on something specific. I took an architecture course at uni that used this book, and it was pretty decent: [http://www.amazon.com/Computer-Organization-Design-Fourth- Ar...](http://www.amazon.com/Computer-Organization-Design-Fourth- Architecture/dp/0123744938/ref=sr_1_1?ie=UTF8&s=books&qid=1256345500&sr=1-1)

<comment><AUTHOR> I'll take a look at that, thankyou :)

</comment></comment><comment><USER5> My favorite C book is "C Interfaces and Implementations" (CII) by Hanson. It's an excellent bridge from Perl/Python to C; in particular, it gives you resizeable arrays and hash tables, which are the two things you will miss most from high level languages. My advice is, learn to code C for a couple months using CII, then tackle assembly. When you see how C programs are decomposed into functions, and how arguments are passed to functions, you'll understand much more about how assembly should work as well.

I've taught a couple people basic x86 assembly using a programmable assembler we wrote in Ruby. A really great place to start with assembly is to be able to define a array of instructions and be able to "jump in" to them and see what they do.

<comment><AUTHOR> CII looks like it'll be an amazing book! Shame it's not available online, I wish it were, I wouldn't sleep tonight!

I'll probably make a purchase when I get my paycheck though, thanks!

</comment></comment><comment><USER9> OK. Depending on your programming background you're facing a steep learning curve. That's why I recommend a bottom up approach for you.

First read "Code" by Charles Petzold. This book will get you "in the mood" and in the right frame of mind: [http://www.amazon.com/Code-Language-Computer- Hardware-Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware- Software/dp/0735611319/ref=sr_1_1?ie=UTF8&s=books&qid=1256345283&sr=8-1-spell)

Then I suggest you pick up a good book on Assembler. This might be a good choice: [http://www.amazon.com/Professional-Assembly-Language- Program...](http://www.amazon.com/Professional-Assembly-Language- Programmer/dp/0764579010/ref=pd_sim_b_2)

Start writing some drivers for Linux. Like a memdrive or something. Do it all in Assembler! Oh, you need to read other books on how to do this...

Then pick up the K&R book on C. Now write your memdrive driver in C.

That should get you started. I think it will take you at least up to two years before you're passed the learning curve and to be comfortable with this level of programming.

Oh, you need to be willing to do it for the love of it because it's highly unlikely that you will make a living using these sort of technologies (nowadays).

Good luck!

PS: I miss the old days...

<comment><USER4> I wouldn't start off by writing a driver in assembler, probably better to write it in C first, then use the -S flag to get the intermediate and study that until you drop.

<comment><USER9> I can assure you that if you want to learn C AND Assembler and you start with C, you will never ever get to the Assembler bit. A memdrive isn't that difficult and if you never solve a 'real' problem, you never learn anything because you don't have to push yourself. Just my 2 cents...

<comment><USER4> It really is your two cents, what goes for you does not go for everybody else.

Some people will learn just for the fun of learning.

<comment><USER9> You are obviously missing my point. But that's alright...

</comment></comment></comment></comment></comment><comment><USER10> The K&R book is the classic C reference. I'd also recommend the K.N. King book ... C programming: a modern approach.

</comment><comment><USER11> I recently decided I wanted to learn assembly language. So far I haven't started but I spent an hour or two perusing books on assembly language on Amazon, reading product descriptions and users' reviews, and I decided to start from this one: [http://www.amazon.com/Professional-Assembly-Language- Program...](http://www.amazon.com/Professional-Assembly-Language- Programmer/dp/0764579010/)

The reasons I chose it are

(1) It's introductory, i.e., a good first book for a complete noob. (2) It's very Linux-centric. Most good books on assembly language assume you use Windows or even DOS it seems. (3) One of the reviews says, "you will get a good workout using the gdb debugger." Sounds like fun.

</comment><comment><USER12> I highly, highly recommend the book "Programming from the Ground Up". It is freely available, and full of small asm sample programs to try out yourself.

Here's a link:

<http://savannah.nongnu.org/projects/pgubook/>

<comment><AUTHOR> Oh, I've been missing out, haven't seen this one, thanks!

<comment><USER13> highly, highly recommand +1, I'm reading it, it's better than any other program books I've ever read. It tells you what, how, why, and it tells in an interesting way.

</comment></comment></comment><comment><USER14> The classic C book is The C Programming Language by Kernighan and Ritchie ([http://www.amazon.com/Programming-Language-2nd-Brian- Kernigh...](http://www.amazon.com/Programming-Language-2nd-Brian- Kernighan/dp/0131103628)).

</comment><comment><USER15> I worked through Assembly Language for the PC([http://www.amazon.com/Assembly- Language-Brady-programming-li...](http://www.amazon.com/Assembly-Language- Brady-programming- library/dp/1566860164/ref=sr_1_1?ie=UTF8&s=books&qid=1256402206&sr=1-1)) in highschool. You start with the basics and at then end you have a working hex editor, for DOS anyway. In terms of programming knowledge gained it was more than any college class I took, heck more than most college semesters.

</comment><comment><USER16> I second the choice of K&R for learning C -- where better to learn C than from the authors themselves.

For assembly I've had a good experience with K. Irvine's _Assembly Language for Intel-Based Computers_ , available on Amazon here:

[http://www.amazon.com/gp/product/0132304686?ie=UTF8&tag=...](http://www.amazon.com/gp/product/0132304686?ie=UTF8&tag=begrsucdewe-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0132304686)

</comment><comment><USER7> Do all the projects in K&R, then buy a pic board and pic compiler and get on it.

</comment><comment><USER4> For assembly I can recommend Lance Leventhals books.

80386 Programming Guide

And the intel reference manuals.

</comment><comment><USER17> When I was 18 and decided to first try programming, I picked assembly to start with since I had read somewhere that all other languages could themselves be written in terms of assembly. The book I learned assembly from was Randy Hyde's online version of his textbook Art of Assembly. I used the DOS version, because I didn't know what Unix even was at that time; but here's the newest Linux version: [http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.art...](http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.artofasm.com/Linux/HTML/AoATOC.html)

Like other commentors, K&R would be my best recommendation for the second book. You might as well start off on the right path towards enlightenment.

<comment><AUTHOR> Not trying to rub you the wrong way but I'm not interested in learning HLA, which is what AoA covers, purely LLA.

Thanks!

<comment><USER18> You are exactly right even though Randy won't like you (or me) saying that.</comment></comment></comment>


Windows Server vNext delayed until 2016 - <AUTHOR> http://blogs.technet.com/b/server-cloud/archive/2015/01/30/windows-server-and-system-center-roadmap-update.aspx

<comment><AUTHOR> Anybody else thinks it may have something to do with containers support? E.g. Microsoft a) decided that first-class container support is a must, and b) discovered it is hard / disruptive / intrusive to implement, and/or c) is trying to figure out the right thing to do about Kubernetes?</comment>


Things I Hate About Your Resume (From a Lawyer) - <AUTHOR> https://abovethelaw.com/career-files/10-things-i-hate-about-your-resume/ <comment><USER2> Hyperbole. Orgs peering that deeply into your personable representation can go F themselves.</comment>


The most efficient way to tessellate circles in a square - <AUTHOR> http://www.datagenetics.com/blog/june32014/index.html

<comment><USER2> I think you have a typo, it should be 'loose' not 'lose'

<comment><AUTHOR> Ooops, thanks. I'll correct it in the next couple of minutes.

<comment><AUTHOR> fixed!</comment></comment></comment>


TV networks are purposely misspelling show names to avoid bad Nielsen ratings - <AUTHOR> https://www.theverge.com/2017/7/6/15923722/tv-network-ratings-nielsen-viewership <comment><USER2> Most Nielsen data ties together with a program code, they often don't miss assigning the same program code to the different spellings. Local data arrives with BBTheory, BigBTheory, BBTheory087, etc. All of them will have the same program code. It is often up to the person pulling the raw data how to calculate the program averages. I am not sure who the one entity is in this case that is not including them in the average.

</comment><comment><USER3> This is one of those things that strike me as so pathetic that I have a hard time believing it. Not that The Verge has the highest journalistic standards, but they're non-click-baity enough that I'll take them mostly at their word. And yet I was still reading the article to find out what the catch was. Nope, no catch; it's just as sad as it sounds, with networks thinking Nielsen would _never_ catch on to their clever ruse.

Hmm, what happens when Google catches someone trying to game the system...

<comment><USER4> ...People will find a new way to game Google.

I mean look at how Google blacklisted a bunch of tor exit nodes over the last 1-2 years, making google through tor all but impossible. Then in the past few months. Some people have started doing auto proxy rotation out of their exit boxes to fool Google.</comment></comment>


Would you pay $10 a month for a bi-directional Google - LDAP sync service? - <AUTHOR>

A lot of startups and small businesses are using Google apps as the primary source of their users and groups information. We are building a simple way to keep the Google apps users and groups information in sync with your LDAP service. This is bi-directional, i.e., changes in one is synced to the other.<p>We plan to make this available as a subscription service. If this seems something useful, would you be willing to pay $10 a month for an organization under 50 users? <comment><USER2> +1 for hosted LDAP as a service (maybe even backed by GApps).

New startups typically tend to go with Google Apps for their email needs. Google exposes authentication via OAuth2. However many services (specifically developer tools such as gerrit, jenkins) do not support OAuth2 yet (only OpenID, which sadly Google deprecated some time ago) and LDAP. Having an LDAP frontend to provide identity/auth so that startups can use a single set of credentials across their internal applications would be nice.

TL;DR - LDAP frontend to Google identities would be nice. From when I last checked (few months ago), no one offers this.

<comment><AUTHOR> Great feedback @amoghe. If this was a full LDAP as a Service, which synced with Google Apps, rather than just an LDAP adapter, would that make sense?

<comment><USER2> Based on our current needs, no.

What we are/were looking for is a service that could provide LDAP "frontend" to Google Apps identities so we can have a single set of credentials across services (and email etc).

Seeing as how nothing of that sort exists, an LDAP(aaS) would also suffice, but not be ideal because: (a) we would end up using only a small subset of the LDAP functionality (namely auth). (b) seeing as how none of the early engineers have administered a (full blown) LDAP service, someone would have to climb this curve.

I'm curious why cloud based identity management solutions don't offer this (eg. okta). However I wont claim to know/understand the full breadth of their offering and whether this aligns well with their business.

<comment><USER3> Seems like what you are describing is already possible by using single sign-on providers like onelogin and okta.

<comment><USER2> Almost.

AFAICT both OneLogin and Okta do not provide LDAP-like access to their identity service. Unfortunately we're running a couple of services that authenticate using either LDAP or an internal user database. We're stuck using the latter option (for now).

</comment></comment></comment></comment></comment><comment><USER4> Probably not for me. I'd presume other companies like mine would use LDAP/AD internally and just sync to Google apps using this tool: [https://support.google.com/a/answer/106368?hl=en](https://support.google.com/a/answer/106368?hl=en)

If this was a hosted LDAP-as-a-service solution that syncs with Google apps I'd be interested in using it at home. I also know of a couple of small companies that would love to not have any IT infrastructure in-house.

Good luck :)

<comment><AUTHOR> @habith, thanks for your input. The Google tool referenced above is not a bi- directional tool. It merely updates your Google apps account with information from an LDAP service, not the other way around.

A hosted LDAP as-a service is good feedback.

<comment><USER4> I know it's unidirectional. I was saying that we'd mostly make our changes internally and push it to Google and centralize user/group management using our internal on-site LDAP server.

The idea of an external tool modifying our local LDAP/AD server is not something we'd go for. I suspect other people might feel the same way.

However, if we were smaller (or didn't have internal IT resources) like a lot of clients we work with, an external LDAP/Google apps combo sounds like a winning solution :)

<comment><AUTHOR> Thanks @habith, that's good input.

</comment></comment></comment></comment><comment><USER5> I actually built something like this but realized a lot of enterprises don't need it since they probably grew something themselves.

If you want to talk about it my e-mail is in my profile.

<comment><AUTHOR> @jtchang, sent an email.

</comment></comment><comment><USER6> Probably. I've been kicking around a similar idea for a while now. Shoot me an email if you want some help.

<comment><AUTHOR> @lawnchair, sent.</comment></comment>


A new cryptojacking tactic involving Wikipedia and downloaded movie files - <AUTHOR> https://cryptomenow.com/a-new-cryptojacking-tactic-that-involves-wikipedia-and-downloaded-movie-files-has-been-discovered/ <comment><USER2> This seems to be the original tweet that's the source of the article:

[https://twitter.com/0xffff0800/status/1083585136833179648](https://twitter.com/0xffff0800/status/1083585136833179648)

There are a few screenshots in the tweet and the following ones to show how it works.

<comment><USER3> The post should probably link directly to this, much better than the article. More concise and with more information.

<comment><USER4> Bleeping Computer published the original report on this, which I believe this site has ripped off: [https://www.bleepingcomputer.com/news/security/fake- movie-fi...](https://www.bleepingcomputer.com/news/security/fake-movie-file- infects-pc-to-steal-cryptocurrency-poison-google-results/)

</comment></comment></comment><comment><USER5> Was this article written by a markov chain? There's a lot of words there but it doesn't make much sense at all.

<comment><USER6> Machine translation from Chinese I suppose.

</comment></comment><comment><USER7> The topics seem interesting but I'm having a lot of trouble parsing the contents of the article

> The malware launches a Powershell command, which then inserts malicious code > into the Firefox browser. The attack is designed to infect movie torrent > files and is also meant to infect Windows computers in particular. The point > of the attack is to phish for any Bitcoin or Ethereum addresses that the > user might have. It's an advanced virus as it then actually aims to replace > these victims addresses with the hacker's wallet.

Not sure where torrent come into this at all, for example

<comment><USER8> So far I've got:

Download a movie --> Magic Happens --> Powershell --> Firefox compromised! --> We infected your torrents! --> Ah, found your crypto. --> Your address is now replaced with my wallet!! Ha ha!

<comment><USER9> Based on the tweets, step two is that the "movie" is actually a shortcut file. The shortcut runs powershell with a short obfuscated command that downloads the malware payload. Then it does a variety of normal malware stuff.

</comment></comment></comment><comment><USER10> > MacAfee Labs – one of the most well-known cybersecurity companies in the > world

Alright, I'm just gonna stop reading right there. Literally pick any cybersecurity company to quote other than McAfee.

<comment><USER11> Are you able to explain what is wrong with MacAfee? I'm not knowledgeable in this area.

<comment><USER10> John McAfee left only a few years into the company, and then McAfee AV slowly morphed into one of the most bloated applications in the business, riddled with spyware. They were one of the first to begin selling customer data. Like Norton, AVG, Avast and others are now doing as well.

I'm sure McAfee employs a few smart people but the management is radioactive. They simply do not have a cutting-edge security culture and people are their products, not their customers. Like Norton, they employ scare tactics and Dark UI in order to coerce customers into keeping the software installed. They try to worm their way into default installations so that they can exploit a computer for its entire lifetime.

Kapersky recently released a security bulliten on crypto mining and theft, they may be Russian but they are a crack security team and I would trust them over any of the other companies I've mentioned.

[https://securelist.com/kaspersky-security- bulletin-2018-stor...](https://securelist.com/kaspersky-security- bulletin-2018-story-of-the-year-miners/89096/)

<comment><USER11> Thank you for the reply. I've only recently started becoming interested in cyber security, I participated in my first CTF late last year. I'm still very uninformed about the wider cyber security culture.

</comment></comment></comment></comment><comment><USER12> How do you "infect" a .torrent file? Sounds to me it's more like tricking people into running a .exe

</comment><comment><USER13> After reading the other sources, it appears that this exploits the way Windows executes things without warning the user. You download a video file, you click on it, and Windows unexpectedly executes some hostile code. What the payload does after that isn't really all that interesting, it could be made to do anything.</comment>


Dropbox users' email addresses targeted by spam? - <AUTHOR> http://forums.dropbox.com/topic.php?id=64367 edit: I updated the title to more specifically address the issue. <comment><USER2> If the user's computer is compromised, a simple SQLite query run against the Dropbox configuration database would reveal all Dropbox email addresses in use by that user.

If the user's email is compromised, the Dropbox confirmation email would be easy to locate and harvest, either from their mailbox, or their mail hosting provider's delivery logs.

(Usually, however, malware simply scans for _all_ incoming email addresses, and then reports them to a central authority for later spamming.)

EDIT: As pointed out elsewhere in this thread, the email address <dropbox@yourdomain> is trivially guessable by dictionary spam attacks.

There are many routes to this information leaking. It is not at all apparent whether it's Dropbox yet.

Given that Dropbox security is actively responding in the linked forum, it seems as though this HN post - submitted by one of the users posting in that thread as "affected" - is solely to create "buzz", rather than to share news with Hacker News.

<comment><AUTHOR> As pointed out by users in the forum post, the compromised e-mail addresses have been used not on just one Dropbox account but several. Additionally those e-mail addresses were not just trivial guesses like firstname.lastname@example.com or firstname.lastname@example.com, or at least they were for me.

Maybe I'm missing something here, but where else could a non-guessable e-mail address which was never used anywhere else been leaked from if not Dropbox itself?

<comment><USER2> Offhand, it could be leaked from your hard drive or any backup thereof, from email stored on any of your desktop or mobile devices, or from your email provider's mail stores or mail logs. There's probably other ways too.

EDIT: Apps. Any app you've ever authorized to use your Dropbox account could have leaked the email address - for instance, via plaintext logs, or malicious behavior, or well-intended but stupid behavior - by writing the email address in plaintext to disk, or uploading it to a remote server and then losing control of it there.

</comment></comment></comment><comment><USER3> Just searched in my Spam folder for the email address I only use for Dropbox et voilà: I got the spam messages mentioned. After the password-gate last year ([http://blog.dropbox.com/index.php/yesterdays- authentication-...](http://blog.dropbox.com/index.php/yesterdays- authentication-bug/)) this is the second major security breach by a company I (and many people I know) have a lot of data entrusted to... This really sucks!

Whats even worse: The first reports came in (from users!) over one day ago and the forum thread seems to indicate that they still have no clue what happend!

[Update] One possibility might be, that dropbox is not the culprit after all but that the spammers started to realize that people use those service- specific addresses more and more and they just send out emails to [some- service-name]@[some-domain]. At least my address is dropbox@[mydomain].

So lets hope for that...

<comment><USER4> Any response from Dropbox yet on this?

Given their previous problems, you would think they would be on top of this immediately.

<comment><USER5> Page 2 of the OP, highlighted comment, quote:

"Hi all,

We are actively investigating your reports. If you have any additional information, please email email@example.com, and we'll be sure to follow up

Joe"

</comment></comment></comment><comment><USER6> While it appears plausible (likely, even) that Dropbox is the source of the disclosure, it's not verifiable as fact until someone identifies the method used to obtain the email addresses. This makes the title inappropriate.

Malware frequently targets address books and browser forms as a means of harvesting email addresses. Not saying that it can't be Dropbox, and I'm not saying that it's even unlikely, but years of troubleshooting have taught me not to name the root cause until I can verify it myself. This is even more true when you're putting someone else's reputation on the line.

<comment><USER7> It also often targets specific applications to steal credentials from. I know there have been badwares that harvest saved Steam account names and passwords (hopefully they're stored more securely now, but who knows?), and the same could be true for Dropbox email addresses.

The address book scenario or dropbox breach both seem more likely, but it's worth keeping in mind.

</comment></comment><comment><USER8> A quick browse through my domain's catchall spam folder shows an e-mail addressed to techdirt@mypersonaldomain. I don't have a techdirt account -- nor have ever used this e-mail address anywhere. Yes, spam bots make guesses, folks.

The Internet would be a better place if people would stop, take a deep breath and think before they type.

Good idea: Let the dropbox folks know that you received spam to a custom address tied to their service and let them look into it, whether it be a directed spam campaign or a possible leak.

Bad idea: "OMG!!1! Dropbox is pwn3d! Admit it! Apologize for your wrongs!"

</comment><comment><USER9> I don't see any confirmation in the forum that the "e-mail addresses of users" was leaked by Dropbox. It also appears to be mainly Euro-centric accounts. So while there is certainly a problem and it is very likely originating with Dropbox, the title is quite misleading and overly condemning given the known facts.

<comment><AUTHOR> I've been personally affected by this leak. All the e-mail addresses that I am now receiving spam on have only been used for Dropbox purposes and nothing else. In addition this was over a year ago. So - email only used for dropbox, last transferred over the web a year ago: where else would it have been leaked from?

// I did change the title to not mislead readers.

</comment></comment><comment><USER10> I use a specific "firstname.lastname@example.com" email address for Dropbox and I can confirm that my Dropbox-specific address has NOT received any SPAM messages.

The only messages that have ever been sent to that specific address are from Dropbox themselves...

<comment><USER11> My generic @gmail.com email address has yet to receive any casino specific spam either - and i'm from .de so it seems it has been guesswork on the part of the spammers?

<comment><USER11> Ok, to reply to myself there really seems something wrong with Dropbox...

The email-address i signed up with and the one that is attached to my account is @gmail.com

However, i've recently invited 2 people with my personal @gmx.de email (using the iPhone app) and guess what...

I've got Euro Dice spam in my spamfolder there :(

</comment></comment></comment><comment><USER12> I've had the same issue with box.net a few weeks/months ago. I only signed up for their service and never really used it, and I used a one-off email address that is randomly generated and used only for the service. I do this regularly now. With each service I subscribe to, I first of generate a unique random email address, so if I start to get spam, I can either block this address only, or at least know where it was leaked...

</comment><comment><USER13> My favorite part of the support forum is the suggestion to submit a ticket and it will "usually" be addressed in 1-3 days.

<comment><USER14> to be fair that wasn't a post by dropbox staff just a random user.

</comment></comment><comment><USER15> Here's one way to get people's email addresses. For what it's worth, I emailed DropBox about this a long time ago (months ago) and didn't even get a reply to my email!

If you use your DropBox referal code, on this page:

<https://www.dropbox.com/account/bonus>

You will see a list of peoples email addresses that clicked the link and signed up. Unbeknownst to them you have their email addresses.

We have hundreds of these email addresses in our account as we have been promoting DropBox on our website for a long time. The referral status page also shows information about how far through the install they are, when they signed up etc.

This is bad because it makes phishing quite easy.

Perhaps not the source of the spam, but nonetheless still a bad execution in my opinion.

</comment><comment><USER16> But this doesn't mean anything though right since all encryption happens clientside right? Oh...wrong service. This is Dropbox so they have the key on their end.

<comment><USER17> makes it hard to deduplicate encrypted data maybe?

<comment><USER16> Explain that to users AND businesses who trust Dropbox with sensitive information.

<comment><USER18> My sensitive information is in a truecrypt container...does dropbox market itself as a business backup solution, or just consumer?</comment></comment></comment></comment>


Ask HN: What happened to YC Macro? - <AUTHOR> Apparently, Macro, which was supposed to be a publication, just redirects to the YC Blog.<p>(http://themacro.com/) <comment><USER2> I got "The Monday Morning Macro" in my e-mail on Monday: [http://eepurl.com/crTJG1](http://eepurl.com/crTJG1)

The subscribe link at the top of the YC Blog points to the same mailing list. You could infer that the separate name has been dropped.

<comment><AUTHOR> Thanks!</comment></comment>


John von Neumann, EDVAC, and the IAS Machine - <AUTHOR> http://www.linuxvoice.com/john-von-neumann/?pk_campaign=hn&pk_kwd=vn2

<comment><USER2> A couple of nits:

" _It was developed to run artillery calculations, but due to the involvement of von Neumann and Los Alamos, in the end the first calculation it ran was computations for the hydrogen bomb, using around a million punch cards._ "

A more significant reason might be that while it was commissioned during WWII (middle of '43), it wasn't completed until half a year after the war ended.

" _Some of the famous IAS machines include MANIAC (at the Los Alamos National Laboratory; von Neumann was involved with this one too and was responsible for the name), the IBM 701 (IBM's first commercial scientific computer, with 17 installations), and ORACLE (in Oak Ridge National Laboratory)._ "

The Whirlwind project [https://en.wikipedia.org/wiki/Whirlwind_I](https://en.wikipedia.org/wiki/Whirlwind_I) beat all of the above mentioned computers in building a bit parallel computer. Also developed magnetic core memory for computers, significantly increased the lifetime of vacuum tubes (electrodes had too much silicon), was the grandfather of the minicomputer, and per the book on it, a talk by the primary inventor, Jay Forrester, and what I've otherwise gathered, pretty much defined the modular way we build computers. Forrester commented that he left the field afterwords because all of the interesting things had been done.</comment>


Mozilla Firefox 3.1 Coming This Year - <AUTHOR> http://blog.internetnews.com/skerner/2008/05/mozilla-firefox-31-coming-this.html

<comment><USER2> Of course, FF3 was originally slated for over a year ago and it's just now happening, so take the timeline with a grain of salt. On the other hand, delays (within reason) are fine as long as they lead to a better product, which seems the case for FF3.

</comment><comment><USER3> FF3, which I have been using for a while, has been great so far. So, even though this is later than expected, I'd still like to thank the Firefox team for making a web browser I like. Good luck on 3.1!</comment>


The Mammoth Pirates: In Russia's Arctic north, a new gold rush is under way - <AUTHOR> http://www.rferl.org/fullinfographics/infographics/the-mammoth-pirates/27939865.html <comment><USER2> Putin denies global climate change [http://dailycaller.com/2015/10/29/russias- putin-says-global-...](http://dailycaller.com/2015/10/29/russias-putin-says- global-warming-is-a-fraud/) and Russia is doing very little to develop renewable energy.

This is because the Russian government gets half its tax revenues from the fossil fuel industries, and because a warmer North benefits Russian agriculture.

</comment><comment><USER3> Hi! I produced this piece. Happy to answer any questions about the story or the presentation.

</comment><comment><USER4> That mosquito picture is nightmare fuel</comment>


Are Chinese and Russian Developers More Skilled Than Americans? - <AUTHOR> http://www.infoworld.com/article/3113107/application-development/us-developers-have-the-numbers-but-china-and-russia-have-the-skills.html <comment><USER2> All evidence from prestigious algorithmic contests also indicate this. For example, the ACM ICPC world finals [0] has been dominated by Russia and China since 2000. Russians also rank highly in Topcoder [1].

American competitive programmer Nick Wu has talked about this phenomenon in several quora posts, such as [2]. Basically, Americans just don't participate as much in competitive programming, HackerRank included.

[0] [https://en.wikipedia.org/wiki/ACM_International_Collegiate_P...](https://en.wikipedia.org/wiki/ACM_International_Collegiate_Programming_Contest)

[1] [https://www.topcoder.com/tc?module=AlgoRank](https://www.topcoder.com/tc?module=AlgoRank)

[2] [https://www.quora.com/Why-were-there-no-American- competitors...](https://www.quora.com/Why-were-there-no-American-competitors- at-the-finals-of-the-2013-Facebook-Hacker-Cup)

<comment><USER3> I don't think competitive academics is really a thing that has a lot of visibility in mainstream American culture. Raw competition mostly happens in athletics. Much more niche are "cerebral" games like chess. Once you get into competitive academics like Math Olympiad you're _very_ niche.

PS: This article is a submarine for Hackerrank.

<comment><USER4> Unlike getting a plurality of IITians together. ;)

In the US, ACT/SAT scores and # of acceptance letters/incentives are the closest to undergrad bragging rights/proxy for rank.

There are numerous competitions in varous academic subjects, but no official/harder national ordering/score system.

Next, in US universities, more areas than just test scores are used to build an internal student candidate evaluation packet in the acceptance filtering processes to select people using more than test scores alone.

Finally, the vast majority of US students aren't used to actual hard work... this is the real productivity / aptitude / capability killer.

</comment></comment></comment><comment><USER5> There's a difference between creating clean maintainable application architectures and writing quick 'n' dirty algorithms that sort data structures. We look for both of these things when hiring; sites like HackerRank just test for the latter.

<comment><USER6> Do you have any evidence to show that the two skills aren't intertwined? Because in my experience, those who have been good at developing algorithms have been just as good at working with full applications.

<comment><USER5> Only anecdotal, but the lack of evidence could be why interviewing is such a mess for software engineering roles.

</comment></comment></comment><comment><USER7> I've looked at these challenges and considered trying them out, but there's an opportunity cost involved in doing them.

I'm sure they're of some value, but I prefer to spend my time that I have for professional learning either reading books or articles, learning new tools or trying out new tools and skills on low risk hobby projects.

I find I get far more value from this than trying to solve challenges I virtually never encounter in the 'real world'. But then again, maybe I'm just not the target market...

<comment><USER8> I agree. For me I have seen far more gain from learning a new tool, figuring out corner cases in my code, or coming up with miltiple ways of tackling code infrastructure issues rather than doing puzzles.

</comment></comment><comment><USER9> Show me a measurement that determines if the developers can write clean code, maintainable software, analyse and gather requirements plus design user interfaces and systems that add real value - then we can have a level playing field. Algorithmically the Chinese and Russians may be better, but that is a terribly one dimensional view of developer skill.

<comment><USER10> Yii2 is an example of a framework written by Chinese and Russian programmers, as far as I know, it's a pretty damn good framework compared to Symfony and Laravel. My 2 cents.

</comment></comment><comment><USER11> Why would an american waste time on these things? I don't know anyone that cares about these competitions or whatever they are.

</comment><comment><USER12> The use of averages could be misleading here. It could be that the US has the same pool of skilled developers as China/Russia but also has more unskilled developers, making the average lower.

<comment><USER13> The US could even have a higher skill level on average(1), and still have way fewer skilled developers. As Jesse Eisenberg asks in The Social Network, "Did you know there are more people with genius IQ's living in China than there are people of any kind living in the United States?"(2)

(1) Your guess is as good as mine.

(2) Any relationship between IQ and developer skill is left as an exercise for the reader.

<comment><USER12> Btw I don't think the China thing is actually true unless genius means something like top 20%. I would imagine genius meaning something closer to top 1%.

<comment><USER14> Yes 20 % of China's population is roughly the population. So it's a fancy way of saying that China is five times as big as the U.S. Which it is!

The real interesting comparison lies elsewhere. Also we have to take into account that we can not use the same tests on intelligence on both populations.

<comment><USER12> "The real interesting comparison lies elsewhere. Also we have to take into account that we can not use the same tests on intelligence on both populations."

I actually think that intelligence test questions have highly correlated difficulty when given to people from different cultures (even more different than US/China). I.e. there's broad agreement in terms of what questions are hard/easy.

</comment></comment></comment></comment></comment><comment><USER15> Well, American coders seem not wasting time on presenting their skills at some obscure competitions, doing tech interviews and making money instead. Indeed, if you compare average salary rank for coders, the US will be on the top, and Russia on the bottom line of distribution.

</comment><comment><USER16> In Eastern Europe it is a cultural thing perhaps. Math and programming Olympiads I think are taken more seriously and are often a gateway to a good college. In some cases those who rank higher get to skip entrance exams. In US it might be more of a hobby with a lot less at stake. Not sure about India and China.

Also note that it is possible to train to do well in those but not necessarily be a good full time programmer.

<comment><USER17> Could it be an overhang from the Soviet Union's focus on chess?

See for example [http://www.slate.com/articles/news_and_politics/explainer/20...](http://www.slate.com/articles/news_and_politics/explainer/2009/09/red_squares.html)

<comment><USER16> Could be. I used to watch chess competitions on TV with my dad like people watch football here in US.

</comment></comment></comment><comment><USER18> If they were, then the center of the tech world wouldn't be in the US.

But it is.

<comment><USER19> Don't be salty.

Facebook, Google and alike constantly hires foreigners.

The worlds favorite IDE to write code in comes from Russia.

<comment><USER20> What IDE is that? Visual Studio? Eclipse?

<comment><USER15> IntelliJ IDEA and other products by JetBrains. Their R&D is in Novosibirsk and St. Petersburg, and Sales are global.

<comment><USER21> Their R&D is also in Munich and Boston, and they're headquartered in Prague.

Their IDEs can't really be fairly said to come from Russia.

<comment><USER22> Virtually no big russian software companies incorporate in Russia, because the criminal raiders will take over the company - see Yandex, Parallels, Kaspersky Lab, all are registered in Europe with those companies controlling all the IP.

<comment><USER15> You just explained how pressure of natural selection stimulates talent in Russia. Once it is squeezed into civilization, it flourishes.</comment></comment></comment></comment></comment></comment></comment>


Malware Uses Google Go Language - <AUTHOR> http://www.symantec.com/connect/blogs/malware-uses-google-go-language <comment><USER2> OMG, quick...

Ban Google Go now!

Programming languages don't kill people, programmers kill people...

/sarcasm</comment>


Fred Wilson: The Golden Principles For Successful Web Apps - <AUTHOR> http://www.avc.com/a_vc/2010/02/the-ten-golden-principals-for-successful-web-apps.html

<comment><USER2> This is the entire content of the slide deck. I'm sure the talk will be good, but this isn't really anything at all.

Speed

Instant Utility

Voice

Less is More

Programmable

Personal

RESTful

Discoverable

Clean

Playful

<comment><USER3> True, the slides themselves have no more content than what you listed, but the comments are worth reading.

</comment></comment><comment><USER4> Anybody else get a little question mark over their head when they got to "RESTful"?

As an end user, I can't remember visiting a site and being angered by its URL structure enough to stop using it.

</comment><comment><USER5> The _what_ is easy, it's the _how_ I have trouble with ;^).

</comment><comment><USER6> What did he mean by "voice"? I'm assuming he means having a unique voice and personality. Like Mailchimp and the monkey. Am I right?

</comment><comment><USER7> im going to post something separate together later, but who else is going to be in miami for fowa on tuesday? what about the night before? Im thinking of doing a hackers+founders type meetup/dinner.</comment>


When you're "old" in tech - <AUTHOR> https://www.wired.com/story/surviving-as-an-old-in-the-tech-world <comment><USER2> My last CEO was well into his 50's at a tech startup and his wisdom was invaluable. While he may not have grasped many of the concepts is digital natives understand, he brought in a new perspective. Old school things like 'servant leadership' and hosting family like dinners brought our team super close together.</comment>


Show HN: Songfari – Product Hunt for all new music - <AUTHOR> http://songfari.com

<comment><AUTHOR> Hey all, one of the co-founders here :) We started Songfari because we want to make an impact in the music discovery realm, and this was a result of asking people how they discover their music. Oftentimes we would hear so many different things, whether that was the radio, friends & family, etc. We believe Songfari will bridge the gap and provide an awesome destination for everyone to discover great new music.</comment>


Drone.vc – Request for Companies #1: Better Audio - <AUTHOR> http://dronevc.tumblr.com/post/89525955649/drone-vc-rfc-1-better-audio <comment><USER2> This isn't really a problem particular to drones. Most audio applications have noise issues - room reverb, wind noise, background chatter, preamp noise etc.

A couple of options spring to mind:

1) Get a noise fingerprint from the rotors and clean the audio with DSP. Hard because the noise of the rotors is constantly changing, but you could potentially place several contact mics next to the rotors and then subtract that from the main mic to get a cleaner signal

2) super directional audio with parabolic reflectors which reject audio outside the narrow beam

3) Don't record audio from the drone! Use wireless mics on the ground instead

Disclaimer: Used to be an audio engineer in past life and have been running a drone company for 3 years. We specialise in high end video (RED Epic), but are also working on some non-cinematography applications at the moment. We have both hardware and software teams. Any investors interested in hearing more, you can get in touch at firstname.lastname@example.com

<comment><AUTHOR> Dharma,

Great points!

#1 - my thought was someone very clever could use the ESC output to the motors to estimate likely noise output from that rotor as well as measuring the actual noise output.

#2 I'm genuinely curious about the pros and cons of flying with a parabolic vs an array mic approach. It sounds like you could offer some insights here on a tradeoff.

#3 Well, yes. [grin] But that doesn't exactly solve the problem asked for.

I'll drop you an email now - thanks for responding! ^_^

<comment><USER3> Interesting David, myself and some of the guys at the office have been experimenting with quads lately and discussing possible military/police or media uses, after reading your initial proposal #1 struck me as a possible solution. However I've since swapped to another much more "back to basic principles" idea that while more difficult, would have a much wider impact.

</comment></comment></comment><comment><USER4> Genuinely curious, let's assume this technology is created. What would audio signals would you even record?

Most drones are far from any subject (sound-producing or not). What are use cases where the drone is close to a sound source?

This got me thinking of a few examples:

      - drones could get closer to waterfalls or volcanoes than any sound engineer with a boom could
      - a drone could be used for video interviews, automatically panning between the interviewer & the interviewee, recording both video and pristine audio, streaming via a cellular data link back to the studio

<comment><USER5> Search and rescue missions? People could tell the drone operator how to help.

<comment><USER6> Not to mention tell the operator if they are alive at all. It may not be obvious if you see from a few meters away someone who is mostly immobilized by a fallen whatever. For this sort of application, a microphone on a winched cable might be useful (n.b.: make a feature to jettison the cable if it gets stuck!).

<comment><AUTHOR> Yes, strap a megaphone on here and now you've got a flying telephone for search & rescue as well as a chance for an aerial director to talk with folks in the ground without the need to set up a second comms channel (e.g. RF radios).

</comment></comment></comment></comment><comment><USER7> Drone.vc, request for companies, and the first problem posted is "better audio". Seriously? No one is working on it because there are approximately a million and one drone related problems that _are actually worth solving_!

Solve the perching problem, or the loss of control channel problem, or better image tracking or make them quieter or smaller or bigger or faster or can fly higher or can carry heavier payload or...

But what do I know? Clearly it is the _sound_ that is holding back drone companies from delivering VC level returns.

<comment><AUTHOR> There are a _lot_ of interesting problems worth solving in the industry. That's what makes it so exciting! What I'm going to do with this sequence is try and point out a set of problems that are interesting that aren't being solved. It could be that nobody is working on them because all of my ideas are all really awful, but the hope is that some people may get inspired to tackle some new problems in the space. I'm not going to claim that audio recording is the singularly most important problem to solve (you seem to be implying that's what I was getting at) but it is an interesting/common one and I hadn't seen anyone working on it. There are another dozen of these tee'd up, some of which address the other problems you've listed. It sounds like you have some good opinions about what problems need to be solved! I'd love to see a response with a little bit more meat than an ellipsis.

One of the _best_ responses to these will be to find companies already working on these problems, just in secret. For instance, I had someone on Twitter let me know that a company in Hilo, Hawai'i called DroneFlow is actually working on some of these audio issues. I'll be reaching out. :)

BTW, researching perching led me to this beautiful thesis - [http://groups.csail.mit.edu/locomotion/perching_media/CoryTh...](http://groups.csail.mit.edu/locomotion/perching_media/CoryThesis.pdf) \- what's your take on this contribution to the space?

</comment></comment><comment><USER8> Forgive me if I'm missing something, it just looks like a single page Tumblr account with a quick blurb about being a "Drone VC", with no details about the people or firm behind it. Does anyone know who's behind "Drone VC" or have any more information on it?

<comment><USER9> Links to David E. Weekly's syndicate page on Angel List ([https://angel.co/dweekly/syndicate/](https://angel.co/dweekly/syndicate/)) who appears to be @dweekyl ([https://twitter.com/dweekly](https://twitter.com/dweekly)).

<comment><AUTHOR> Yessir!

</comment></comment></comment><comment><USER10> Although this approach is technically awesome, can't someone just modify existing noise cancellation technology with mics closer to the motors / props? It's a horrible hack, and nowhere near as elegant, but it may work quite well considering that no matter what signal is used for cancellation, it will be difficult to discriminate wanted / unwanted sounds in the cancelled frequencies.

<comment><AUTHOR> It's quite possible that this "horrible hack" might be good enough! I'd love to see people experimenting and coming up with answers about what works and doesn't. :)

</comment></comment><comment><USER11> [http://www.eeweb.com/blog/extreme_circuits/voice- bandwidth-f...](http://www.eeweb.com/blog/extreme_circuits/voice-bandwidth- filter)

</comment><comment><USER12> It's surprising that intelligence agencies don't have a proper solution already.

<comment><USER13> Wouldn't the target notice if you flew a drone close enough to them to hear them?</comment></comment>


Ask HN: Mechanical engineer that wants to work in the programming field - <AUTHOR> I am a 27 years old PhD in computational mechanics (finite element method, elasticity ...) who should be graduating in around 6 months. I have been tempted for quite some time by the idea of trying to get a job in the US and work as a programmer. A personal dream, I really would like to experience the life in the west coast for a few years. What are my odds of achieving that? Any advices on what I should try to learn or do in the next 6 months? During my PhD, I have been coding in Matlab, Python and mostly in C++ (I have read Effective C++, Modern Effective C++). I have learned OpenMP, MPI and Cuda (though, I don't consider myself very experienced in them) and I have taken an introduction course in algorithms.<p>Edit: Since some people have asked, right now I am in UK and I have an EU passport. Thanks for the very encouraging answers. <comment><USER2> I'm a mechanical engineer by training (B.S. and M.S.) but most of my day to day work is software development, testing, analysis, etc in the aviation industry. I haven't done anything "mechanical" for money since graduating.

Unless you want to do web development, you shouldn't try to sell yourself as "just a programmer." If a company is only looking for someone with programming skills they will probably favor someone with a CS degree.

Instead, leverage your background. There are lots of companies in the US (West Coast included) that do embedded software, robotics, and other types of software development where the software doesn't run on x86. Often it needs to run in real time and be qualified for safety. The methodical persistence and attention to detail that companies associate with a PhD is an asset for these types of positions. Your Matlab & Python experience will show that you can do both quick prototyping and heavy analysis, while your C++ experience and interest in Cuda, etc will show that you care about performant software and don't mind thinking about the actual hardware your code runs on.

If you have any knowledge of sensors, statistics, or signal processing, you'll probably be an instant hire for this type of company. Companies of this type (which aren't "software companies" by the usual definition, but which have software as a major competitive advantage/requirement) have trouble finding people with the right background. Traditional engineers who can't program don't fill the role, and neither do most CS grads who don't have the engineering knowledge to work with the hardware.

<comment><AUTHOR> This path is really appealing to me. Now, knowing that there is a demand for the people between the two worlds, I will spend some time looking for offers, and prepare a CV accordingly.

Moving to US seems a bit harder, but I wouldn't mind if I achieve this in the long term.

</comment></comment><comment><USER3> I have an MS in Mechanical Engineering from an Ivy League university. While I got my degree I too learned Matlab as well as C. I wrote my masters thesis on a controlled mechanism for the breakup of microdroplets in a bidisperse emulsion.

Eight months after graduating and working in industry, I came to the same conclusion as you: that I preferred writing code to working in the mechanical world. I started learning Java and wrote an Android app. I'd stay up late at night and on weekends pouring over examples and hacking stuff together. Six months into doing that I got an interview at my current employer. I got the job. That was two years ago and it's been one of the best decisions of my life.

The key to doing it:

1) Prove to yourself and others that you want to be a programmer, that you actually enjoy writing code for hours a day

2) Have something to show that proves that

3) Find a company (like I did) that is more interested in finding people who know HOW to think rather than WHAT to think. As engineers you and I are very good at solving problems. Find people who care about that rather than the programming languages you know

4) Once a company takes a chance on you, seize it and run like crazy. Learn as much as you can. In a year or two you can be highly skilled and highly employable in this field.

Best of luck!

<comment><USER4> Agreed. I did almost the exact same path. Once you've gotten that first job and have a few years of professional software development under your belt, changing jobs is very easy. Potential employers see "software engineer" and "PhD" on your resume and don't care that it's an ME degree.

Btw, scottndecker, did you go to Rose-Hulman for undergrad?

<comment><USER3> Nope. Dartmouth.

</comment></comment></comment><comment><USER5> Can you get a job as a mechanical engineer somewhere that would allow you to move into programming at the same company?

I ask because it's probably easier for you to get a job as an ME (mechanical engineer) than a software engineer, given your background.

Silicon Valley has plenty of robotics companies and other companies that make "real stuff" who need mechanical engineers. And once you're in a company as a productive ME, you can reach out to your software colleagues and see if you can help & learn. And don't just think of northern California - Seattle and southern California have companies that might fit the ME + software profile as well.

And if you're thinking of the East Coast at all, please reach out - I work at iRobot in Boston, MA, and we have plenty of ME's who dabble in software. The Boston area has TONS of other companies who do hardware + software too.

<comment><USER6> Having worked in Boston for a few years before moving to the bay area, I can confirm that Boston has numerous software+hardware/robotics startups. However I've found that in the bay area hardly anyone is interested in robotics, and the ones that are only seem to only be working with drones (mostly quadcopters and the like, which don't seem practical for many of the proposed use cases).

</comment></comment><comment><USER7> I think in general the field (maybe not HR departments) is pretty accepting of people with alternative majors even outside of engineering - I know some great folks who had music or art history degrees.

Your challenge I think is to show initial work for job acquisition purposes, so being able to point to a very technical side project on your GitHub (and of course resume) for your chosen language will be a very good idea.

What language you choose depends on what field you want to get into, specially. Python is used in various places including web and database applications, but ultimately I'd say shoot for something you like. If you can find enough companies you like that work in X language, that can be a good way to go.

Good companies will assume smart folks can pick up other tools, but I think your main hurdle is going to be showing something that counts as sufficient "equivalent experience" \-- and that should be possible to do.

College is highly valuable, but all of college C.S. is not always directly applicable.

</comment><comment><USER8> I have a mechanical engineering degree(BS) with a minor in computer science.

It is 100% do-able for you to switch in. My college used to say "mechanical engineering is the liberal arts of engineering". You will be able to handle it. I personally did 2.5 years as a professional mechanical engineer right after college, then switched over to software and have been doing that ever since.

Some possible pathways - look for a job that is at the intersection of mechanical engineering & computer science. There are companies that write simulation programs, it's harder to find people that understand the engineering math than it is to find people that can write code. They are usually in the oil / defense industries. They pay very well.

You are also a prime candidate for a bootcamp type program. I don't normally recommend them, but you are one of the few people that it actually makes sense for. You need to just work with some people that know software engineering well and you will grow quickly. At the end of that, they will help place you in a job and then you can spend the next 18-24 months learning it all on the job.

My personal pathway was a bit different. I grew up hacking, and chose to do mechanical engineering because I felt I wouldn't learn enough new stuff in a CS program. When I wanted to get back into software I worked on a sideproject for about 6 months, and used that as an example of my skills when I interviewing. However, I did 3 years of internships in software so I knew what I needed to do.

</comment><comment><USER9> Find a company like Ansys or Abaqus, where you can work on FEM software. This way you can use your training in mechanics while still programming.

The big advantage here is that: a) Most engineers suck at programming. b) Most CS majors don't understand the mechanics.

By having skills in both mechanics and programming, you can be an extremely valuable asset to companies that make high-performance computational mechanics software.

<comment><USER10> "a) most engineers suck at programming."

I find that to be not true. Most engineers suck at regurgitating the correct textbook CS algorithm or data structure from memory, but they are very good at engineering, which is what the overwhelming majority of programming is.

If I had to choose between a CS major and a ME for an engineering project that involved software development I'd choose the ME almost every time, all else being equal. The exceptions would be cases where academic CS knowledge is required. They exist but not nearly as frequently as Silicon Valley would have anybody believe.

<comment><USER8> No he's saying most mechanical engineers can't program and most CS majors can't understand the mechanical engineering math. The OP is perfectly positioned to bridge the gap between the two.

</comment></comment></comment><comment><USER11> My advice would be: don't underestimate the opportunities available on the east coast of the U.S. There are a lot of companies here in the D.C. area who need programmers with domain expertise in mechanical, aerospace, and electrical engineering. Also, my gut feeling is that the PhD will carry relatively more weight here and that the lack of CS degree will carry relatively less. A who understands the physics is a lot more valuable to many companies than a guy who knows the latest design patterns.

FWIW, I've got a BS in AE, and never worked in the field professionally. I went into a software job doing simulations. Most of my coworkers were EEs. We finally hired a CS PhD years in to do AI stuff.

</comment><comment><USER12> I am a mechanical engineer as well that turned to programming. I only had Matlab and Fortran experience of all things out of school. I would be very honest with yourself whether living in the US on the West Coast is your dream or being a programmer is your dream. These are two separate things and are not necessarily related. Assuming that you want to go into programming, then figure out what type of work you want to do. But if you are flexible and not in the goal is more to live in the US then I would suggest going the web development route. I learned pretty much entirely on nights and weekends doing small contract work what we call moonlighting. Then after several years of that I decided to go out on my own. I had never worked officially as a developer but was able to get my first full-time contract job without showing a resume at all. (It was from a reference.) The thing that I love about the web development space especially is that no one cares what your degree as they only care about your experience and knowledge. If you can build a simple web app that does something and it can be simple and put it out there on a real site then you will have no problem getting a job.

All of this is assuming that you legally can get a job the US.

</comment><comment><USER13> The main thing you need to do is convince HR and then a hiring manager that you have the skills to do the work. The best way you can do that is to have projects on Github that demonstrate your skill, and if you can get a little paid work using the toolset you're targeting, that would be great as well.

You have six months, so you can't be too ambitious on the size of your projects. Maybe target three interesting projects that demonstrate the skills you're interested in, each set to take two months of your time.

If you really throw yourself into this, you should be doing a lot of hard work, the kind of work a professional programmer does every day. After six months of that, I think you'll be well-positioned for a programming interview, and you'll have some nice projects on Github that will demonstrate your capabilities.

Good luck!

</comment><comment><USER14> Read "Clean Code" by Robert C Martin. It's Java-centric, but very applicable nonetheless. It's a compilation of years of insight about how to design your programs, and it explains well why you should care about writing your code one way or another. It's the first time ever that I have seen an illustration of violating Demeter's Law that was actually believable and the proposed solution deeply communicated the intent of the law.

The book progresses from smaller details (like code formatting style) to very large concepts, gets very deep towards the end, so don't be afraid if you get lost a third of the way in. Just leave it and come back to it as you gain experience.

</comment><comment><USER15> I have a BS in Mechanical Engineering and fell in love with coding after having to write some pretty basic VB macros in Excel. If your goal is to just live on the West Coast then I would recommend looking for a job in your current field. If your passionate about coding, the best thing you can do in the next 6 months is to build something meaningful that you can speak to. My route was a little different.. I struggled to find the time to learn/build while working full time so I decided to fully dedicate 3 months via Hack Reactor. I highly recommend checking out Hack Reactor if you have the means and interest in that branch of programming.

</comment><comment><USER16> What country are you currently in? If you can get a job at a worldwide software company and then do a placement in the US you'll have a much higher chance of getting a visa. If you can handle continuing to work in Engineering there must be a lot of options involving coding. Look at adverts for big engineering companies (in that area) and look for software jobs, that way you'll have lots of relevant experience.

<comment><AUTHOR> I am in UK.

</comment></comment><comment><USER17> I'm a 27 year old and my B.S. was in mechanical engineering -- I work in the "app/startup" world. I think MechE helped.

Best advice I can give you: Start building things now. The languages are cool, but there's so much more value to being able to build complete-loop products, and I think any engineering mindsets are a great start for working with creating digital products (programming). If you want to take part in an opportunity/make a shift, (your) value has to meet (market) opportunity.

To be honest, I do more wireframing now than anything else (I'm also lucky enough to now have a team that is much better at designing or programming than I am). I think my undergrad in mechE had a huge impact on where I am now -- (1) from how I think and (2) from how much "programmers" or non-programmers respect engineers, or anyone technical, in today's digital world.

The shift can be a very natural one, but web and mobile are where you should probably be focused. That's simply where there' a lot more demand.

I'm not sure how helpful I can ever be, but please feel free to email me for any advice or just to chat: Vlad(at)darwinapps.com

</comment><comment><USER18> I have a BS in ME and worked ME jobs for about 11 years. During the last 1/2 of this time, worked on my MS in IE and was doing simulation modeling. Simulation modeling is where I learned how much I really enjoyed programming but had also been writing some statistical analysis programs for QA on the side. At year 12, I was able to jump to the Information Systems side to write B2B code for outsourcing of manufacturing. I have been doing programming jobs now for the last 17 years and have enjoyed it.

My advice is to keep working on your coding skills. You don't need a degree in CS. You have proven you can handle technical topics with your current degree(s). Maybe search github for some open source projects dealing with mechanical topics (something like robotic movement or control systems or CNC). Join these and contribute.

When it comes to finding a job, there are companies the will value your full skill set. It may take a while and sometimes you might have to work as a ME for a bit. But in some technology companies, you will be able to move horizontal.

Wish you the best!

</comment><comment><USER19> Which country are you from? If not from Canada or Australia, then unless you get into school in the US and get your OPT, or unless you join a U.S. based company that you can internally transfer, your chances are slim. You need to get work authorization which is very hard and most U.S. employers won't hire someone outside of the US except in the above situations.

</comment><comment><USER20> Work in High-Performance Computing [1], whether at a research lab, an HPC manufacturer, or even a big company like Intel, or at an independent software vendor like MSC, ANSYS, LS-Dyna, Cd-adapco, Mathworks, etc.

There are usually openings at HPC companies or HPC business units for mechanical or other engineers to port and tune engineering software to supercomputers. At research labs which use HPC, there are usually lots of experts in various fields, and having someone fluent in both mechanical engineering and programming can bridge gaps and fill voids.

[1] [http://www.hpcwire.com/](http://www.hpcwire.com/)

</comment><comment><USER21> The industry has a high amount of people that don't even have a degree. We've found that CS graduates need to be basically re-educated but still prefer to hire them purely because a degree shows that you can complete something. A PhD speaks volumes about your work ethic: you should have no problems getting hired.

Salary is a different story entirely: you're probably going to be a junior developer and the PhD will go to 'waste.'

<comment><USER22> Also, a few years down the road, the relevant experience you have will weight orders of magnitude more than your degree or PhD.

Right now, your decision should be based mainly on what you would like to do be doing in your professional life, don't sweat too much on your initial salary (which even as a junior developer, it should be at the very least decent).

Just keep practicing (hint, read "How to crack the coding interview"), and you should be fine.

<comment><USER21> > Also, a few years down the road, the relevant experience you have will > weight orders of magnitude more than your degree or PhD.

Precisely.

</comment></comment></comment><comment><USER23> I suggest you check out [http://www.altair.com/](http://www.altair.com/) they are a leader in FEA tools of all kinds, with offices in many countries. Software development tends to be concentrated in a few countries (depends on the product), but customization of the tools is done world wide. Check out the web site to learn more and look for open positions.

</comment><comment><USER24> I have a BS in Mech Eng from there I got a MS in Computer Engineering working on Computer Vision and robotics. If you are good with python and care about good code then it should be no problem to switch.

</comment><comment><USER25> Maybe first travel to the West Coast on a vacation or something to get a feel for what it's actually like. If you haven't already.

<comment><USER26> I second this. Don't be swayed by what you see and read in the media. Silicon Valley isn't a place for everyone and can be incredibly stressful. On the bright side, it's a very diverse place with tons of stuff to do, great weather, smart people and is easily one of the best places in the US (IMO anyway).

<comment><USER25> A friend wanted to become a lawyer in LA (he's not American). He travelled there once, and he changed his mind about that for some reason. That saved him some time from starting to study American law, I guess.

</comment></comment></comment><comment><USER27> Don't join Silicon Valley. Your skills are more valued and paid for in Finance. Real hard cash not worthless options that may have value in the future.

EDIT: also do not "commoditize" yourself by becoming a web developer or an iPhone/Android developer either. Do the difficult technical stuff, aim for the "non-low-hanging-fruit" and you will make tons of money, esp. in Finance.

<comment><USER28> I did this, and played up my ability to analyze real world situations when applying for a quant modeling job. A lot of my lab work was empirical modeling, so transitioning from student to my current job wasn't difficult. It also helps to have some background in coding. I did c++/matlab/java in college for lab work and classes. Everyone that is under 35 in my group has a scientific background, ranging from me (MSE in Mechanical Engineering) to PhDs in Chemistry and Physics. Most of my day is spent doing c++ or java development and the rest is R.

<comment><AUTHOR> I never considered this possibility. Could you recommend some link where I could read about the field and see if I have chance? It is not really what motivates me, but it is worth informing myself before discarding it.</comment></comment></comment>


The GNU C Library version 2.19 is now available - <AUTHOR> https://sourceware.org/ml/libc-alpha/2014-02/msg00224.html

<comment><USER2> The glibc team are great people to work with; I managed to get a patch into this release which had been point blank refused by Ulrich Drepper when he was maintainer, and they were incredibly helpful and the process was really easy. So get your fixes in - glibc is becoming much more standards compliant.

Assholes will ruin your project[1], you need to get rid of them, whether it is open source or not.

[1] [http://www.youtube.com/watch?v=-ZSli7QW4rg](http://www.youtube.com/watch?v=-ZSli7QW4rg)

<comment><USER3> What was the patch?

<comment><USER4> Maybe this one? [http://sourceware.org/ml/libc- alpha/2013-10/msg00870.html](http://sourceware.org/ml/libc- alpha/2013-10/msg00870.html) and Drepper's original response in 2012 - [https://sourceware.org/ml/libc- alpha/2012-01/msg00039.html](https://sourceware.org/ml/libc- alpha/2012-01/msg00039.html) "Ehm, no. All symbols starting with _ belong to the system. I'm not going to make any change to enable broken software. Just fix that broken code."

<comment><USER5> Well, I'm sorry to disagree with you but Drepper is right. In C and C++ identifiers starting with an underscore are reserved for the implementation. Standard library implementors deal with extremely ugly code full of underscores everywhere to avoid this sort of problems.

Accepting that patch is sending the wrong message. First, it would say that if your project is big/important enough, you can do whatever you want. Second, it would say that they are willing to fix these issues, which I think is even worse.

So IMO, he took the right decision for every project using libc, which is to reject your patch, and to tell you to fix your code.

If you decide to write non-standard conforming code, then you deserve what you get (probably ABI breakage).

<comment><USER6> You are not quite correct. Identifiers starting with underscore are reserved only if the second character is an underscore or capital letter. For example, _hello is valid for applications to use, while _Hello and __hello are not.

<comment><USER5> In ISO C (7.1.3): All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.

In ISO C++ (188.8.131.52.1): Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.

In both (7.1.3 / 184.108.40.206.1): Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase letter (2.11) is reserved to the implementation for any use.

The rule of thumb is never give a name that start with an underscore (simple, right?).

That goes for C and C++. In C++ people think that they are a bit safer because of namespaces, but I've seen it create problems when someone writes an using directive in a header file (dont do this). It will work on their project but break yours. And finding which header is causing this is a nightmare in small- medium sized projects. In big projects it deserves to get someone fired.

Note: if you really want/need to break this rule, choose a name that will not conflict with anything! E.g. in Boost file guards have a randomly generated character sequence appended at their end. They are not doing anything "illegal", but is a policy they have just to be sure.</comment></comment></comment></comment></comment></comment>


India's data labellers are powering the global AI race - <AUTHOR> https://factordaily.com/indian-data-labellers-powering-the-global-ai-race/ <comment><USER2> This is the new back-office for AI processes and looks like India is tapping into it just at the right time just like the BPO boom in the early 2000's.

<comment><USER3> Unsurprisingly since they have had a strong tech workforce with cheap labor cost and an advantage in language (English). It will be interesting to see them move up the value chain and the disruption it may create.

</comment></comment><comment><USER4> Unsupervised learning is the dark matter of AI, as LeCun said. We cannot rely on labeled data, which is expensive and scarce.

The first company to figure out how to leverage the massive unlabeled data that is available will win the AI arms race.

We have already seen impressive progress (language models, GANs...) but much more work remains. Models requiring labeled data or only working with toy data (even if unlabeled) will soon become irrelevant.

<comment><USER5> What's the current sentiment on synthetic data? It may be a self serving question since I work at synthetic data company but I'm curious for fear of being stuck in an echo chamber.

<comment><USER6> It's no magic bullet. I think it can help in particular instances but see a lot of people chasing their own tails.

</comment></comment></comment><comment><USER7> Well thats a really great initiative as this gives good money to the local villagers who are just enough educated to do this respectable office job. One concern is how they are handling the sensitive client data and why does client trust on them for sensitive proprietary data.

<comment><USER8> I agree that it is great to provide meaningful work and competitive to local norms salaries.

re: client trust: compare to systems like Mechanical Turk. An established data labeling company can monitor what employees are doing, provide ethics training/warnings, etc.

</comment></comment><comment><USER9> There are captcha defeating click farms in the country, employees of which are paid ~2$/day.

I hope at-least data-set labelling empolyees are in a better position as they are expected to have better skill set. This is a better job than illegal/unethical farms.

</comment><comment><USER10> Throwaway away storyline: future AIs perception is skewed by 'the' Indian perspective on the world. The first self aware AI will feel and act Indian - what ever that means - and any other AI on a global scale, too :)

</comment><comment><USER11> Late to the party. This article mentions AI based labeling tools and we're building one of them. If you're interested to try it out send me an email mik @ heartex.net

</comment><comment><USER12> One of the earliest companies I know in this field was Playment, a YC company and mentioned in the article too:

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

</comment><comment><USER13> I wonder, how much of it grew up from a "human captcha solving" market?

<comment><USER14> Meanwhile Google reCAPTCHA makes us label cars and road signs for free..

<comment><USER15> In exchange, we are exposed to a minimal amount of comment spam. If it's anything like email, systems like captcha prevent 99.9% of spam messages.

Besides, how often do you see captchas anyway? If you're not using super privacy / tracking protective browsers, they'll remain hidden for the most part, and the ones you see are the simple 'check this box' variety.

<comment><USER16> Because of how Cloudflare works, and how ubiquitous they are, specifically, internet users from a non-western country can get bombarded with recapchas. It is so prevalent and annoying that I had to resort using VPN (located on a western country), to avoid this nuisance.

It literally breaks the internet for me, I had to go through recapchas 12-15 times a day.

</comment></comment></comment></comment><comment><USER17> We (Humans) are helping our robot lord to build Skynet!

<comment><USER18> I, for one, welcome our new robot overlords.

</comment></comment><comment><USER19> I hope they have a sense of humor and drop some great Easter eggs for god 2.0</comment>


FsharpConf: Virtual F# conference live [video] - <AUTHOR> https://channel9.msdn.com/ <comment><USER2> I was excited about this until I saw it's from jet.com. Heard too many things about bad dev practices there to believe a conference presentation about it.

It's unfortunate there aren't more F# jobs. I've always worked exclusively with Linux, but would switch to MS and all associated headaches in a second if I could write functional code with F#.

<comment><USER3> > _I 've always worked exclusively with Linux, but would switch to MS and all > associated headaches in a second if I could write functional code with F#._

That seems... odd. Surely you can write functional code in a different language on Linux? Or write F# on Mono?

<comment><USER2> Sorry if I wasn't clear ... I do write Haskell on Linux.

I meant that F# would be enough to entice me away from Linux and overcome my activation barrier against using Windows. As long as it wasn't glorified C# with a thin functional wrapper, and it was a focus on real functional techniques, it would be highly interesting for me.

<comment><USER3> I do not have much of any F# experience but I write C# in my day job. I've heard nothing but good things about F#, including from people similar to you with a functional background incl. Haskell.</comment></comment></comment></comment>


The earliest precursor of writing (1977) - <AUTHOR> http://en.finaly.org/index.php/The_earliest_precursor_of_writing

<comment><USER2> Tokens and bullae are fascinating pieces of early human economics, but the core of Schmandt-Besserat's theory -- the idea that certain tokens developed into carvings of words and concepts -- is widely discounted by archaeologists today.

For one example of why, consider the earliest depiction of the word for sheep: a circle with a cross. Sheep were one of the largest commodities in Mesopotamian trade, and yet only a handful of tokens matching that crossed- disk shape have ever been discovered. If transactions involving sheep were taking place daily, they should be among the most plentiful of tokens. These token systems are an ingenious human invention, but they should be seen as the precursors to mathematical accounting, not writing.

<comment><USER3> But didn't most writing systems evolve from accounting systems?

<comment><USER4> Chinese writing is pretty likely to have come from deviation (dropping turtle shells into fires and interpreting the cracks).

Not sure of the origin of mesoamerican writing.

Middle eastern writing's origin (motivation) is also unclear.</comment></comment></comment>