Ask HN: What's the best resource for learning modern x64 assembly? - <AUTHOR> I've found lots of resources for x86, but considerably less for x64. Pentester Academy has a promising course on it, along with shellcoding, but I'm not sure what else is out there. <comment><USER2> If you basically don't know how to code in assembly, learn 16-bit x86 with whichever method you find, it won't be wasted. You can extend most of the knowledge from 16 to 32 bit substituting register names ax,bx,cx,dx,si,di,bp,sp y eax,ebx,ecx,edx,esi,edi,ebp,esp. You can extend that to 64 bit with rax,rbx,rcx,rdx,rsi,rdi,rbp,rsp. Learning 16-bit x86 will have you learn about segment registers, but it isn't wasted either, protected mode consists of quite a lot of complications on segment registers, virtual memory addresses (which you can mostly ignore as an applications programmer as compared to a kernel or driver programmer), and interruptions.

I wrote a book to learn x86 programming and it was published in 1994 back before "real digital age", oriented to be the best didactical text possible (I had to learn the hard way, I wrote what I would have had to read 10 years earlier). Over 20 reprints, recommended in all Spanish-speaking universities (yeah, I know, if I had known then what I know now I'd have done it in English). It was discontinued 10 years ago or so, they asked me to revise it for the modern world, and it didn't really make sense: rewriting it for what assembly language is and is used for in today's world would be a ton of work because it's a qualitative difference, and if I added an extra chapter explaining 32-bit and 64-bit changes and letting the publisher stamp a "2010 edition" logo on the cover would just be scamming people, which I don't want to do. Here is the link to a scanned copy of the original: [https://www.dropbox.com/s/sz6rinfhyc8sai6/Lenguaje%20Ensambl...](https://www.dropbox.com/s/sz6rinfhyc8sai6/Lenguaje%20Ensamblador%20de%20los%2080x06%20-%20Jon%20Beltr%C3%A1n%20de%20Heredia.pdf?dl=0) . Could prove useful if you can speak Spanish.

Honestly: I learned Z80 assembly first, in the 80s, and then switched to x86 very easily. Learn whatever assembly language first, what's hard is learning about registers, flags, memory... and if you learn it will, then you can switch to another architecture quite easily.

<comment><USER3> >Learn whatever assembly language first

On this front, I can highly recommend these two resources, preferably in this order for someone totally new to assembly:

NAND to Tetris, a course that will have you build an emulated general-purpose CPU from first principles even with no prior knowledge. You'll learn exactly about registers and memory by making them. I even recommend this to non- hardware people because the way they divide each layer of complexity is great practice even in software. [https://www.coursera.org/learn/build-a- computer](https://www.coursera.org/learn/build-a-computer)

Microcorruption, a series of incrementally difficult MSP430 (an easy-to- understand 16-bit instruction set) exploitation exercises in the browser: [https://microcorruption.com](https://microcorruption.com)

These are both geared towards being a gentle introduction to assembly and CPU architecture principles. They don't touch certain facts of X86/64 processors like pipelining or variable-length instructions, but IMO those are best left until you're comfortable with the basics.

<comment><USER4> I also recommend Xeno Kovah's OpenSecurityTraining courses on YouTube, some of which are specifically dedicated to assembly. The audio quality can sometimes be pretty bad, but the information is good. Though they try to obfuscate things a little bit, these are clearly workshops given to researchers at Mitre, the CVE project maintainer.

<comment><USER5> [http://opensecuritytraining.info/](http://opensecuritytraining.info/)

For those interested.

</comment></comment></comment></comment><comment><USER6> There's no magic anywhere and 99.1% of it is documented.

IA-32e/AMD64 is basically an extension of IA-32/x86. What you're looking for is to understand the difference between real mode, 386 protected mode, PAE, paging and long mode because the registers, instructions, addressing and sizes of structures differ.

You can learn all of this by reading the Intel software manuals and digging into it yourself.

Tools you need (for non-Windows):

\- gdb/lldb

\- assemblers: yasm, nasm, binutils (contains "as")

Optional tools:

\- IDA Pro

\- Virtualization/emulation such as VMware Fusion/Workstation (because it supports being a gdbserver), VirtualBox or QEMU

\- Intel's CPUID app

You also need good references like:

\- the Intel manual set (a giant PDF or a collection of several) [https://software.intel.com/en-us/articles/intel- sdm](https://software.intel.com/en-us/articles/intel-sdm)

\- [https://sandpile.org](https://sandpile.org) (fairly current)

\- [https://ref.x86asm.net](https://ref.x86asm.net) (outdated by useful)

Another helpful exercise is writing a toy operating system in Rust or only assembly. [https://osdev.org](https://osdev.org) has many resources and guides.

<comment><USER7> In addition to IDA, I highly recommend looking into ghidra. It's open source, so you can peak under the hood and see how it does things.

[https://github.com/NationalSecurityAgency/ghidra](https://github.com/NationalSecurityAgency/ghidra)

<comment><USER6> Yep. It's a FOSS-quality disassembler; good if you don't have IDA (I wish), supports maybe 10% of what IDA does in total but has some other niceities that it doesn't (think: disassembler-equivalent of LLVM). (Ideally, you'd have both.) For those who don't know, IDA disassembles basically every unclassified, commercially-available architecture and executable/library/object container format (think: disassembler-equivalent of GCC if it were an IBM or Green Hills product -:P). It also has a built-in scripting API in Python(?), IIRC.

An interesting semi-abandonware static disassembler that was really good is Sourcer 8.01 from V-Communications. I think it supports Pentium II/Pro/III at most, which would include real, protected mode and long mode DOS/DOS extended/Win16/Win32 EXEs and COMs IIRC. It did a lot of memory typing and clever analysis long before IDA existed, and still interesting for retro computing.

[https://www.vetusware.com/download/Sourcer%208.01%208.01/?id...](https://www.vetusware.com/download/Sourcer%208.01%208.01/?id=8677)

<comment><USER7> You might be interested in this talk from the creator of IDA, Ilfak Guilfanov, explaining how he used Sourcer and it's shortcomings lead directly to him creating IDA.

[https://m.youtube.com/watch?v=hLBlck1lTUs](https://m.youtube.com/watch?v=hLBlck1lTUs)

</comment></comment></comment></comment><comment><USER8> Assuming you are interested in learning not just Assembly but how to use it in conjunction with a high-level language (almost always C/C++);

Background:

\--- Matt Pietrek's "Just Enough Assembly Language to Get By" \- [http://bytepointer.com/resources/pietrek_asm_pt1.htm](http://bytepointer.com/resources/pietrek_asm_pt1.htm)

\--- Hongjiu Lu "ELF: From The Programmer's Perspective" \- [http://beefchunk.com/documentation/sys- programming/binary_fo...](http://beefchunk.com/documentation/sys- programming/binary_formats/elf/elf_from_the_programmers_perspective/elf.html)

Books:

\--- Computer Systems: A Programmer's Perspective (3rd Edition) by Bryant & O'Hallaron - [https://www.amazon.com/Computer-Systems-Programmers- Perspect...](https://www.amazon.com/Computer-Systems-Programmers- Perspective-3rd/dp/013409266X/ref=sr_1_1?crid=26HEH06VOP2XL&keywords=computer+systems+a+programmer%27s+perspective+3rd+edition&qid=1581230329&s=books&sprefix=computer+ssytems%2Cstripbooks- intl-ship%2C515&sr=1-1)

\--- Modern X86 Assembly Language Programming by Daniel Kusswurm - [https://www.amazon.com/Modern-X86-Assembly-Language- Programm...](https://www.amazon.com/Modern-X86-Assembly-Language- Programming/dp/1484240626/ref=sr_1_1?keywords=modern+x86&qid=1581228086&s=books&sr=1-1)

\--- Low-Level Programming by Igor Zhirkov - [https://www.amazon.com/Low- Level-Programming-Assembly-Execut...](https://www.amazon.com/Low-Level- Programming-Assembly-Execution- Architecture/dp/1484224027/ref=sr_1_1?crid=Y2MOWSFXW7TL&keywords=low- level+programming&qid=1581229802&s=books&sprefix=Low-level+progr%2Cstripbooks- intl-ship%2C512&sr=1-1)

</comment><comment><USER9> Here is a book on computer architecture that has a good section on x86-64 assembly language. Please note that I have edited this comment to reflect a change suggested by a cold comment. This book (the third edition) introduces x86-64 assembly very well.

[https://csapp.cs.cmu.edu/](https://csapp.cs.cmu.edu/)

<comment><USER10> Excellent recommendation, but why the 2nd edition? The home page[0] defaults to the latest one which is based on x64 from the get go.

[0] [https://csapp.cs.cmu.edu/](https://csapp.cs.cmu.edu/)

<comment><USER11> Came here to recommend the same. You can find the 15-213 course videos online. I have done the course and can't recommend it enough. Do the labs, sincerely. You'll learn a lot!

</comment></comment></comment><comment><USER12> Honestly? Learn old-style 8086 assembly, then 386 code. The new stuff may be architecturally simpler in many ways, but it sits as an edge case on top of a very thick historical stack that seems completely insane if you look at it a priori.

But the early CPUs were actually quite simple! At the time "CISC" was a good thing because it provided straightforward mechanisms for expressing things (e.g. "push", "call", load a struct field with an offset...) that real world programmers needed to do all the time.

<comment><USER13> I think segmented memory really hampered my ability to learn 8086 assembly well. It really made a mess of just about everything.

<comment><USER12> It... kinda didn't though. I mean, yes, it seems complicated when you look back and ask "why can't it just have been a flat space", etc... But the same point persists: you have to look at what came before.

Take a look at the complexities of 8080/Z80 or 6502 addressing modes, or the kind of tricks "big" 16 bit architectures like the PDP/11-70 were playing to stretch addressible memory. The 8086 was a breath of fresh air! Your code could be separate from your stack and from your heap, and all three could be a full 64k without any crazy bank switching or copying! And all you had to do was set up 4 segment selectors and then ignore them. And everything you were used to running did so in a clean, unconstrained environment.

Really, read that 8086 datasheet again (it's like 8 pages), it was great stuff at the time.

<comment><USER14> Never thought in this way in those years. But work is like this. Great perspective.

</comment></comment></comment></comment><comment><USER15> It really depends on your starting point.

If you know how to write low-level C (i.e. with direct Win32/POSIX API calls), that's a good start. If you don't know what that means, you need to master this first. So much of assembly is built to support higher-level programming, things like segments, indirect references, system calls, etc., so it pays to know the WHY of all of it (e.g. do you know what a frame pointer is? why it's useful and can sometimes be omitted)? Learn this stuff first.

Once you have a good handle on C, you need to start learning how operating systems and memory management work, at least the "client side" of them accessible from userspace.

Then you might want to dip your toe into how CPUs are built, with pipelines, registers, caches, all of that.

If you've mastered those things, gcc -S will provide everything else you need (another comment suggested this).

I learned this stuff in a traditional university computer engineering program. It helped a lot. But for context, this question feels a little like, "can someone explain quantum physics"? It's a huge topic but only like 5% is the actual thing you're asking about, the other 95% is the conceptual machinery (calculus, probability, mechanics) it's built on. Mastering all the other stuff is actually the hard part. For all intents and purposes, assembly is just a notational convenience for expressing program structure in the only way a CPU can understand it. At least 90% of the difficulty is understanding how CPUs work, and how to think at sufficiently low level that you can express human-useful work at such a low level of abstraction.

It would also be nice to know why you want to know this. Writing a device driver is going to be different from writing an operating system, which will be different from writing tight numerical loops in assembly. And in any case, dollars to donuts you won't be able to beat a modern optimizing compiler performance-wise.

Hope this helps.

<comment><USER16> How can I get started on learning the low level c stuff with direct system calls and such. I learned about assembly, pipelining, cache, and memory allocation during a systems architecture course, so I'm really interested in the low level of the machine. The problem is I don't really have an idea of a project that I could do to learn the level right above. Of course I learned a bit during the course, but I really want to get a solid grasp.

<comment><USER15> I'd recommend writing something you might have used or be familiar with, in bare-metal C. Maybe try writing a simple web server, which is something most people will be familiar with. Try doing it a couple different ways: single- threaded, prefork (processes), event-based with select/kqueue/epoll. Write your own data structures: hash tables, linked lists, etc.

This sounds simple but will give you a good tour of a lot of different areas: BSD sockets, named pipes/unix domain sockets for cross-thread communication, signals, memory management, threading, basic scheduling, and parallel programming (locks/concurrency), to name a few.

</comment></comment></comment><comment><USER17> For practice and user-mode stuffs [https://godbolt.org/](https://godbolt.org/) is a valueless tool to help you view the output of any C program. Simply write any C program on the left, and add "-O1" in flag inputs. Assembly with color representing line-mappings would appear on the right.

<comment><USER18> > valueless

You mean "invaluable" here (cannot be given a value, as it's too important). "valueless" is the opposite (worthless)! [https://en.wiktionary.org/wiki/valueless](https://en.wiktionary.org/wiki/valueless)

<comment><USER19> Thanks. I had to read the original sentence multiple times; for a moment I thought I was having a stroke.

</comment></comment></comment><comment><USER20> [https://beginners.re/](https://beginners.re/)

<comment><USER21> this is hands-down among best that are out there (and it's free). It is known under 2 names[1] which might be a bit confusing but it _IS_ about assembly.

see this HN thread (450+ points) discussing the book at the time: [https://news.ycombinator.com/item?id=21640669](https://news.ycombinator.com/item?id=21640669) It is also constantly updated.

This books is to ASSEMBLY what Richard W. Stevens is to TCP/IP and UNIX programming. Also it _IS_ a beginners books because he makes no assumptions about the readers previous experience. It is very thorough so it's probably the only book you'll ever need on Assembly :)

___

[1] explanation from the author:

 _> What is with two titles? The book was named "Reverse Engineering for Beginners" in 2014-2018, but I always suspected this makes readership too narrow. Infosec people know about "reverse engineering", but I've rarely hear the "assembler" word from them. Likewise, the "reverse engineering" term is somewhat cryptic to a general audience of programmers, but they know about "assembler". In July 2018, as an experiment, I've changed the title to "Assembly Language for Beginners" and posted the link to Hacker News website, and the book was received generally well. So let it be, the book now has two titles. However, I've changed the second title to "Understanding Assembly Language", because someone had already written "Assembly Language for Beginners" book. Also, people say "for Beginners" sounds a bit sarcastic for a book of ~1000 pages.The two books differ only by title, filename (UAL-XX.pdf versus RE4B-XX.pdf), URL and a couple of the first pages_

<comment><USER20> > Also it IS a beginners books because he makes no assumptions about the > readers previous experience

I've just started going through it, and it's definitely made some assumptions about prior knowledge; I doubt I would have been able to get through it if I didn't already have some assembly knowledge.

</comment></comment></comment><comment><USER22> Especially if you need x64 assembly for performance optimization or during profiling a combination of godbolt ([https://godbolt.org/](https://godbolt.org/)) and Agner Fog's incredible PDFs at [https://agner.org/optimize/](https://agner.org/optimize/) (especially parts 2, 3 and 4) are helpful.

The other useful step has been to write C functions and compile the code with a good compiler (good experiences with Intel, gcc and llvm) first at -O0 and later at -O2 or -O3 to understand how high level concepts can be translated to assembly.

This requires to have at least a basic understanding of registers and basic assembly concepts but at least has helped me apply the concepts to real code.

</comment><comment><USER23> I wrote a guide a while back that may help. It includes a docker container setup to enable debugging via VS code: [https://tonycodes.com/assembly](https://tonycodes.com/assembly)

</comment><comment><USER24> Your sources indicate an interest in reverse engineering, but another motivator for low level machine programming is performance.

For me, a great way of learning the latter is to pick a task with some instant gratification (audio dsp, software texmapping or shaders?) and start writing some of that in inline assembly.

I suggest looking at your C compiler output, learning about SIMD instructions and using a pipeline simulator to see why and how it performs like it does. I used VTune and AMD Codeanalyst back in the day, don't know what's the current SoA.

</comment><comment><USER25> As far as I know, x86_64 added instructions, modes and memory address changes but the assembly is the same?

[https://software.intel.com/en-us/articles/introduction- to-x6...](https://software.intel.com/en-us/articles/introduction- to-x64-assembly)

I mean, you have different modes, and in 64-bit mode EAX becomes RAX for example.

<comment><USER26> I agree with this, if you are competent at 32-bit those skills are going to translate. It is mostly the same.

Some exceptions that come to mind:

* The old floating point stuff is gone. EDIT: guess I am wrong on that, was thinking of what compilers typically generate for the architecture.

* The C abi now tends to focus on pass-by-register for the first few arguments.

* If you are working in kernel mode, some stuff is going to necessarily look different.

<comment><USER27> > The old floating point stuff is gone.

Do you mean x87? I'm not sure it's true that it's gone is it? The instructions are still documented? Do they not work?

<comment><USER26> I guess I stand corrected. I was under the impression that C compilers don't tend to use it anymore when compiling for amd64. (Because you can assume SSE support on amd64, unlike a binary that might run on an old Pentium.) Then I misread that situation as it not working.

It does take effort for an OS kernel to save and restore x87 state, so I could imagine somebody dropping support.

<comment><USER28> > It does take effort for an OS kernel to save and restore x87 state, so I > could imagine somebody dropping support.

FXSAVE saves the x87 state with the SSE state, and XSAVE generalizes that to add several optional components, depending on what your processor support (as of right now, AVX state, MPX state, 3 for AVX-512, PT state, and SGX state, IIRC).

</comment></comment></comment></comment></comment><comment><USER29> It looks intimidating, but there's not actually much to learn. You need to memorize a couple dozen common opcodes. Keep the Intel manual open and flip to the page of the opcode. Also the first few sections go into detail about paging, data types, CPUs, etc. if you don't already know about it.

[https://software.intel.com/en-us/articles/intel- sdm](https://software.intel.com/en-us/articles/intel-sdm)

Try to reverse engineer something you don't have the debug symbols for. One of the big pain points was figuring out the calling convention i.e. what registers correspond to which function arguments on different platforms:

[https://en.wikipedia.org/wiki/X86_calling_conventions](https://en.wikipedia.org/wiki/X86_calling_conventions)

For reverse engineering in particular, this was a good resource:

[https://beginners.re/](https://beginners.re/)

</comment><comment><USER30> There are some books suited for beginners and these are:

1\. [https://www.amazon.com/Low-Level-Programming-Assembly- Execut...](https://www.amazon.com/Low-Level-Programming-Assembly-Execution- Architecture/dp/1484224027/)

2\. [http://www.egr.unlv.edu/~ed/assembly64.pdf](http://www.egr.unlv.edu/~ed/assembly64.pdf)

3\. [https://www.amazon.com/Introduction-Bit-Assembly- Programming...](https://www.amazon.com/Introduction-Bit-Assembly-Programming- Linux/dp/1484921909/)

The first one is somewhat written in "weird English" (Russian English?), but it is still readable. It really helped me with x64 assembly as a C programmer. I have used 2 and 3 as reference most of the time and the first was basically my "main x64 assembly book". I would also recommend getting more proficient in C programming either by studying books such as "Expert C" and the "The C Programming Language" or reading "advanced" stuff somewhere on the Internet, e.g.: [http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf](http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf)

The main takeaway in all this for me was learning about the call stack and the different calling conventions which gives you a clue on how recursion works under the hood.

Also when you are done learning about "practical computer architecture", i.e. assembly language programming, learn stuff about operating systems as well:

[http://pages.cs.wisc.edu/~remzi/OSTEP/](http://pages.cs.wisc.edu/~remzi/OSTEP/)

Fun fact: this is not really related to assembly programming, but functions such as setjmp() and longjmp() are used for implementing exception handling.

</comment><comment><USER31> "Assembly Language Step-by-Step Third Edition" 3rd Edition by Jeff Duntemann is a great book.

It starts with the very foundation and builds up, up to interfacing with C and implementing data structures, still in assembly.

Sadly, this book still references 32-bit ISA. My guess is that the author got old enough not to bother updating the book anymore (the first editions of the book were about assembly programming in DOS, then DOS and Linux, then Linux only).

Still a very valid book, as x86-64 is backwards-compatible with 32-bit x86. Also, as somebody else has written, once you understand the basics, you can mostly swap things like register names and/or look to the reference pages of your cpu/linker/assembler.

</comment><comment><USER32> I would recommend 'Computer Systems: A Programmers Perspective' by Randal E Bryant and David O' Hallaron as an introduction before proceeding on to the official manuals and documentations.

3rd edition has much info on modern x86.

</comment><comment><USER33> I wrote a Linux general purpose library for x64 assembler: [https://2ton.com.au/HeavyThing/](https://2ton.com.au/HeavyThing/) and in recent months I decided to start doing video tutorials about the "how and why" of same. Learning I think is made easiest in Linux by learning how to navigate the syscall interface and how "man 2 write" becomes an important skill. Edit: Videos link as well: [https://2ton.com.au/videos/](https://2ton.com.au/videos/)

</comment><comment><USER34> For a soft intro to assembler, you can play video games Human Resource Machine.

<comment><USER35> Or TIS-100

</comment></comment><comment><USER36> As others points out NAND to Tetris is a really good entry point to learn assembly. It begins with you designing the hardware from NAND gates. You will make all hardware components like memory, instruction decoder, ALU, and CPU, and put them together into a computer. The next step is to build a virtual machine and then a compiler for a high-level language called Jack. The keystone project is to build a game in Jack and have it run on the computer that you build :)

[https://www.nand2tetris.org/](https://www.nand2tetris.org/)

I have since then ventured into Motorola 68000 assembly coding, by reading an old Amiga course in machine code from the late 80'ties. It's fascinating to learn from an old platform like the Amiga 500.

To keep myself motivated, I have written a lot of posts that chronicles my progress through the course.

[https://www.markwrobel.dk/project/amigamachinecode/](https://www.markwrobel.dk/project/amigamachinecode/)

EDIT: I can also recommend this game, that is inspired by NAND to Tetris. Where you build the hardware in your browser :) [http://www.nandgame.com/](http://www.nandgame.com/)

</comment><comment><USER37> I found compiler output to be a good resource.

$ gcc foo.c -S

<comment><USER38> A little bit more convenient, at least for me:

[https://godbolt.org/](https://godbolt.org/)

</comment></comment><comment><USER39> Others already have given plenty of useful information, I just have a basic one.

Stay with Intel syntax, nevermind about AT&T syntax, beyond learning on how to read it.

PC world is all about Intel syntax, AT&T is lower level on how instructions get expressed and Assemblers macro capabilities just suck compared with what TASM and MASM were already capable of on the MS-DOS days.

</comment><comment><USER40> I'm learning Z80 for programming the rc2014 kit (it's really nice kit if your also into electronics). There is a surprising lack of information online about the techniques of programming. For me that's the biggest struggle. You can know the instructions but juggling registers in an optimal way is hard. I'm currently learning I can use the stack inside a routine to have more values in the air at the same time, but then I read some example code and learn a particular instruction can be used in a clever way to avoid all my stack juggling. I am finding it can take hours to write a simple routine. I really get it now when people write it's a non-trivial problem to map C to assembly (especially Z80). Hell, it's fun though! Screw all these high level languages, let's do everything in assembly and damn the horses!!

</comment><comment><USER41> I learned x86 from Xeno Kovah's course and I imagine his x64 will be just as comprehensive.

It looks like his x64 is just slides instead of videos which may be better, sitting through 16hrs of video when I was learning x86 was ... an experience, but a very useful one.

Anyway, whenever someone asks this question I don't hesitate to bring up his work and trainings I think they're really useful. I know this is for reverse engineering but if you can reverse engineer x64 you can certainly write it.

[http://opensecuritytraining.info/IntroX86-64.html](http://opensecuritytraining.info/IntroX86-64.html)

</comment><comment><USER42> This book is a good starting point for x86-64 Assembly with Linux: [http://www.egr.unlv.edu/%7Eed/x86.html](http://www.egr.unlv.edu/%7Eed/x86.html)

</comment><comment><USER43> x86-64 Assembly Language Programming with Ubuntu By Ed Jorgensen

[http://www.egr.unlv.edu/~ed/x86.html](http://www.egr.unlv.edu/~ed/x86.html)

</comment><comment><USER44> I know this isn't quite what you're asking, but I really recommend "Assembly Language Step By Step, Third Edition" by Jeff Duntemann

One of the best 32bit x86 assembly books out there.

<comment><USER45> > One of the best 32bit x86 assembly books out there.

I think it is one of the best books about fundamental computer programming overall. Even if you don't program in assembly afterwards, you will take away a much better understanding of how computers operate. Sure, it is still a beginner book and it doesn't go into much detail, but the parts it explains, it explains very well.

</comment></comment><comment><USER46> I plan on making some videos on this once I get through web vulns. I've written x64 on Windows and Linux. On Windows you need to get ml64.exe, it gets installed with visual studio. You can invoke it from the command line. On Linux I usually use NASM I think, cause it supports Intel syntax.

The only really annoying thing is the stack alignment for calls. I usually just make a macro to check rsp and align if needed. Other than that I think it is similar enough to x86 just with different registers.

</comment><comment><USER47> I thought this book was pretty good when I took computer architecture course. [https://www.google.com/url?sa=t&source=web&rct=j&url=https:/...](https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.amazon.com/Assembly- Language-x86-Processors-7th/dp/0133769402&ved=2ahUKEwiVsdHOy8PnAhVROH0KHbLeBlkQFjAIegQIBBAB&usg=AOvVaw3Gwhnbo6SX5LuOprpzZzFo)

</comment><comment><USER48> Kip Irvine's textbook on the subject is good. It's oriented towards Visual Studio (good, easy debugging) and windows but a fellow student had no problem using Linux tools to follow along and complete the course, which is not a bad way learn.

It's useful to at least look at such a textbook to make sure you don't skip any of the easy, sort-of prerequisite material.

</comment><comment><USER49> I wish there were an equivalent of "core war" [0]. I "played" with it ~30 years ago and I still remember a good chunk of the language.

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

</comment><comment><USER50> book link -> [http://vkh8ilkvln.pdfcloud.org/dl2.php?id=174628357&h=7a0f16...](http://vkh8ilkvln.pdfcloud.org/dl2.php?id=174628357&h=7a0f1670c910af068e4a1eb90a0662c4&u=cache&ext=pdf&n=Assembly%20language%20for%20x86%20processors%207th%20editionpdf)

video link -> [https://www.youtube.com/watch?v=vtWKlgEi9js&list=PLXYpRL4SQp...](https://www.youtube.com/watch?v=vtWKlgEi9js&list=PLXYpRL4SQpMnHL0c6PwSKAHCId3F6uVwi)

linker -> [http://www.masm32.com/](http://www.masm32.com/)

some way to understand assembly lang

</comment><comment><USER51> I recommend [Paul Carter's PC Assembly]([http://pacman128.github.io/pcasm/](http://pacman128.github.io/pcasm/)) which helped me getting started back in my pentesting days.

</comment><comment><USER52> [https://en.m.wikipedia.org/wiki/Code:_The_Hidden_Language_of...](https://en.m.wikipedia.org/wiki/Code:_The_Hidden_Language_of_Computer_Hardware_and_Software)

</comment><comment><USER53> Start with this one: "Reverse Engineering for Beginners" [https://torus.company/writings/RE4B-EN.pdf](https://torus.company/writings/RE4B-EN.pdf)

</comment><comment><USER5> Not x86_64 but Xeno Kovah's courses were really great to teach me x86:

[http://opensecuritytraining.info/IntroX86.html](http://opensecuritytraining.info/IntroX86.html)

</comment><comment><USER54> I used this book in university, and it was very informative: [http://rayseyfarth.com/asm/](http://rayseyfarth.com/asm/)

</comment><comment><USER55> We also got plenty of general purpose registers in x64, apart from the rax stuff.

Plus, you now have the ymm and possibly zmm stuff going on :)

</comment><comment><USER56> Maybe not modern but a goood introduction "Assembly Language Step-by-Step". Good for self study.

</comment><comment><USER57> Stupid question... can you use assembly for GPU coding ? I mean like in a semi-practical way ?

</comment><comment><USER58> I enjoyed the Pentester Academy course, and have recommended it several times.

</comment><comment><USER59> So when do the patents expire on x86? And can we do a clean room version?

</comment><comment><USER60> Have you looked at the official docs? Back in 386 days that's all we had.

[https://software.intel.com/en-us/articles/intel- sdm](https://software.intel.com/en-us/articles/intel-sdm)

<comment><USER6> In 1993, as a broke high-school student pre-cell-phone and pre-search-engine, we didn't even have that (although we did have BBS phone- number/speeds/protocols/login lists). I had to take the nascent VTA Lightrail (when it was even more uncool) to Computer Literacy bookstore (when programming was also less cool) to find decent technical references... and I promptly dropped a few hundred bucks on dead tree carcasses when I was making minimum wage. Haha. X)

\- Programmer's PC Sourcebook

\- PC Intern

\- Undocumented PC

\- Undocumented DOS

\- Programmer's Guide to EGA, VGA ...

\- Michael Abrash books on assembly including self-modifying code and graphics programming

\- Turbo Assembler Quick Reference Guide

\- Code Complete

Later, the MindShare series were really good.

<comment><USER60> I remember those books. They were all helpful in teaching assembly, bios, and general pc programming like serial ports, etc.

None of them really helped with 386 protected mode programming. GDT, LDT, selectors and descriptors, paging, etc. For that you really needed the official docs. I printed the 300+ page programmer's guide in the school lab which they were not too happy about.

</comment></comment></comment><comment><USER61> i have no thinkint</comment>


Bitcoin In IRS Crosshairs - <AUTHOR> http://www.forbes.com/sites/robertwood/2013/06/18/bitcoin-in-irs-crosshairs-says-government-report/

<comment><USER2> IRS is entitled to have opinion about receiving taxes from bitcoin transaction.

<comment><USER3> A very astute statement that deserves more respect.

The IRS can and should claim what is theirs under the tax laws they operate.

However, I do not see a practical enforcement strategy.

<comment><USER4> Same strategy they use for everything else. Think about how they enforce taxes on cash.

</comment></comment></comment><comment><USER5> It would be interesting to note that due to the fluctuation in pricing of BitCoins, you could probably get away with lower taxes by just doing a conversion of BitCoins to USD at the lowest price that year. Then claiming all of it in USD for the IRS because your BiCoin assets were assessed at that price when you calculated them for taxes. There by avoiding part (up to 20-50%) of the tax.

Or just say you don't have BitCoins, since it would be mighty hard to track that.

<comment><USER6> "Or just say you don't have BitCoins, since it would be mighty hard to track that."

Yeah, nobody would ever think to look at the public record of Bitcoin transactions.

<comment><USER7> How would they know which bitcoin address corresponds to me? I can make a brand new wallet, find someone on Local Bitcoins ([https://localbitcoins.com/](https://localbitcoins.com/)) and buy some nearly-untraceable bitcoins with cash in a matter of hours.

<comment><USER6> Look, this is no different from lying about your income in any other situation. People do it all the time. Yes, you can get away with it...until you are audited, at which point the auditor is going to start checking on things, and if you do not have a believable story you'll meet the same fate as Al Capone.

<comment><USER5> Could just not say you own BitCoins, unless you have a couple thousand I doubt you'll even be a blip on their radar. If you have that many, you could just spread them around wallets too... Really I can't see them picking up on it if you do it right.

<comment><USER6> OK, but this is not in any way Bitcoin-specific. You can do this with USD also. Again, as I noted elsewhere, the mafia has this exact problem: they have too much money to avoid being a blip (hence money laundering operations). What is the use of money that you cannot spend?

Like I said, people cheat on their taxes all the time, and they often get away with it. Bitcoin does not add anything to this. The IRS knows how to audit cash, which is vastly more anonymous than Bitcoin.

</comment></comment></comment></comment></comment></comment><comment><USER8> If you buy wood in Bitcoin, and then carve it into figurines and sell them for Bitcoin, your profit is entirely in Bitcoin. Does this mean that you can pay the IRS in Bitcoin? If so, do they have tax brackets defined in Bitcoin?

<comment><USER9> That's specious reasoning, there are many BTC->USD exchanges and the IRS could easily compel you to exchange your currency for USD.

<comment><USER8> Why? If you make profits in a foreign currency such as Swiss franc, you only pay tax once you convert those to U.S. dollars.

<comment><USER10> You are supposed to pay profits earned in foreign currency on a quarterly basis, via self-reporting, much the same way that self-employment and investment income is suppoed to be reported. In practice, if you use a US financial exchange, they can pay the estimated taxes for you (but not all will do this), and you settle the taxes owed (or refund due) at the close of the tax year.

<comment><USER4> I thought you were supposed to pay profits on foreign currency only when you "cash out" to dollars. Guess I was wrong. Was I just confusing the tax rules for foreign currency, and commodities? Is that the rule for commodities?

</comment></comment></comment></comment></comment><comment><USER11> I'd imagine most people do not use Bitcoin specifically to evade taxes. But much like Capone, that could ultimately be one of the bigger problems.

</comment><comment><USER12> It was really only a matter of time before this happened, regulation of trade (and the taxation thereof) is one of the main tasks of a government.

</comment><comment><USER13> I fail to see how trading one 25th of a representation of a solution to a math problem can be considered bartering.

<comment><USER14> Alas, laws are written by lawyers. :-)

</comment></comment><comment><USER15> I would love to know why real estate qualifies for a 1031 exchange but currency exchange does not.

<comment><USER16> Honestly, our laws haven't been based on any legal principles for a long time. It's a long list of special cases, just because.

</comment></comment><comment><USER17> Who thinks trading in Bitcoin makes them magically exempt from the tax laws of their country? Of course, pretty unsure of how they'd have any sort of accountability or venerability for self-reported Bitcoin income.

"On your 1099 please list all Bitcoin address you've sent or received money from". Right.

<comment><USER10> That's how you report much of your income right now (in the US). Tax collection in the US is generally based self-reporting, and that extends to gain from foreign currency exchanges. Information collection from multiple parties is used only to audit the self-reported data. If the IRS discovers discrepancies upon comencing an audit, if may (probably will) impose penalties, back taxes, and interest. Sufficiently large underreporting usually leads to criminal charges.

Thus, self-reporting of Bitcoin income is fundamentally no different than the existing tax regime.

<comment><USER18> The only scary thing is paying tax on something that has sometimes drastic changes in value.

Taking tax off you, and simultaneously making it impossible to convert bitcoin to dollar seems a bit tricky too. Unless they're happy to accept bitcoin as payment of taxes?

</comment></comment></comment><comment><USER19> Purchases are taxed. Bitcoins can be purchased. It then follows that purchased bitcoins are taxed.

A transitive relation, no?

<comment><USER16> I don't think the IRS gets into sales tax; that's more of a state thing.</comment></comment>


A Software Crisis? 'Please, sir, may I have some more? - <AUTHOR> http://cs.brown.edu/events/talks/notkin.html

<comment><USER2> Sure. There is a video demo:

[https://www.youtube.com/watch?v=x1y_J- _Wrb4](https://www.youtube.com/watch?v=x1y_J-_Wrb4)</comment>


The Lilium Jet Maiden Flight – Five Seater All-Electric Air Taxi - <AUTHOR> https://8bitwork.com/2019/09/07/the-lilium-jet-five-seater-all-electric-air-taxi-flying-car/ <comment><USER2> Nice piece of PR but I'm hoping to see a video of an actual flight soon.</comment>


Male DNA Commonly Found in Women's Brains - <AUTHOR> http://www.sciencedaily.com/releases/2012/09/120926213103.htm <comment><USER2> This story already made the rounds on wednesday <http://news.ycombinator.com/item?id=4582655>

I'm yet to read the paper, but the comment highlighted in the thread from Wednesday raises some points[1]. For ease of access I'll re-replicate it here;

 _"This is just a PCR study. No evidence that the foreign human DNA even entered host cells, much less that it was expressed. Probably shows only that minute quantities of foreign human DNA can hang around a host body for a while. Most likely explanation is that it gets bound up in the extracellular matrix. Being that the DNA is of human origin, it would not trigger an immune response, but rather, it would just be slowly degraded like the host's own DNA when it is released from dead cells (part of the normal, perpetual turnover of cells). DNA is hardy stuff; people have sequenced DNA from Neanderthal bones. Study co-author J. Lee Nelson's comments are ridiculous hype. He should be ashamed of himself. That those comments were published in this newspaper uncritically is also an embarrassment. This work was published in PLoS ONE. PLoS ONE articles are peer reviewed only for the validity of the methods used, not for the importance of the subject matter or the validity of the conclusions drawn. This is where you can publish all sorts of meaningless crap."_

I disagree with the extremity of the commentor's view on PLoS ONE articles, and feel they should perhaps have noticed that Dr. Nelson is a lady, not a dude, but still something worth considering.

[1] - [http://www.latimes.com/health/boostershots/la-heb-women- brai...](http://www.latimes.com/health/boostershots/la-heb-women-brain- microchimerism-20120926,0,6446716.story) , comment 2

<comment><USER3> Original paper has also been posted here, for those interested.

<http://news.ycombinator.com/item?id=4582700>

 _Male Microchimerism in the Human Female Brain_

</comment></comment><comment><USER4> Considering that everyone of us, without exception, gets 50% of our DNA from our father, the phrase "male DNA" deserves some definition. One assumes that perhaps they are talking about DNA that is normally only found on the g Y-chromosome, but they don't say that, and in this case, that is an unfortunate oversight. A science publication should not leave readers guessing about what exactly is being discussed.

They do use the phrase "male cells of fetal origin" but they don't explain why these are male cells. There are several possible explanations, and I am curious which one is true here. Again, they could be talking about a type of expression that relates to Y chromosome. But there was last year the interesting study that suggested end-stage cells know their sex through a process we do not yet fully understand. So what is this study actually saying? I wish they had clarified what "male DNA" means in this context.

<comment><USER5> At the bottom of the article, there is a link to the original paper:

[http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjourna...](http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0045592)

...which can be downloaded (i.e. not behind a pay-wall). From the abstract:

"In this study, we quantified male DNA in the human female brain as a marker for microchimerism of fetal origin (i.e. acquisition of male DNA by a woman while bearing a male fetus). Targeting the Y-chromosome-specific DYS14 gene, we performed real-time quantitative PCR in autopsied brain from women without clinical or pathologic evidence of neurologic disease (n = 26), or women who had Alzheimer's disease (n = 33). We report that 63% of the females (37 of 59) tested harbored male microchimerism in the brain."

</comment></comment><comment><USER6> Similar earlier stories:

Fetus donates stem cells to heal mother's heart: [http://www.newscientist.com/article/dn21185-fetus-donates- st...](http://www.newscientist.com/article/dn21185-fetus-donates-stem-cells- to-heal-mothers-heart.html)

Baby/mother cell exchange: <http://kottke.org/12/01/babymother-cell-exchange>

</comment><comment><USER7> I wonder if mothers also similarly have DNA from female babies, but we just haven't detected it yet because it was easier to distinguish the male DNA.</comment>


Ask HN: What model of "dumbphone" should I buy? - <AUTHOR> I have noticed that my phone has helped foster multiple negative habits in my life that I wish to change. I tried blocker apps, but they haven't been as effective as I want. Therefore, I have decided to downgrade my phone in the hopes that I won't be so tempted to engage in these unproductive behaviors and my habits will improve.<p>Could someone suggest a model of dumbphone for me? Really the only features I need are texting and phone calls. GPS would be a bonus. <comment><USER2> Nokia just announced a couple dumbphones:

125: [https://www.nokia.com/phones/en_int/nokia-125](https://www.nokia.com/phones/en_int/nokia-125) 150: [https://www.nokia.com/phones/en_int/nokia-150](https://www.nokia.com/phones/en_int/nokia-150)

They have a huge range of "classic" phones anyway: [https://www.nokia.com/phones/en_int/classic- phones](https://www.nokia.com/phones/en_int/classic-phones)</comment>


Shrinking a Kotlin Binary by 99.2% - <AUTHOR> https://jakewharton.com/shrinking-a-kotlin-binary/ <comment><USER2> If you're going to get rid of all your Kotlin std lib usages by explicitly replacing them, after inspecting the actual class files generated by the compiler, with standard Java methods (and hope that no future change will re- introduce them) and you care so much about the size of your jars, I would say you're better off simply going back to Java, perhaps using the very latest version (since you're willing to use Kotlin that shouldn't be a problem) which has lots of niceties and to me, at least, looks a lot better than using Kotlin with these kinds of hacks. Add a nullability static analysis check and you're gold.

<comment><USER3> At that point, why not use Rust or Go or D or whatever with significantly smaller binary sizes and (un-optimized) faster speeds.

<comment><USER4> Not on Android

<comment><USER5> Rust has first class support for Android.

<comment><USER6> Cool, so I can start a new service and bind activities to it from Rust without having to deal with a nasty JNI or an unstable ABI that changes under my feet?

</comment></comment></comment></comment></comment><comment><USER7> > \- val old = args[0].let(::File).readText() > \- val new = > args[1].let(::File).readText() > \+ val old = > args[0].let(Paths::get).let(Paths::readString) > \+ val new = > args[0].let(Paths::get).let(Paths::readString)

Missed index. 0!=1.

<comment><USER8> That's an impressive catch. I would never have noticed this. How did you get this good at code review?

<comment><USER9> It helps that the correct code is just above the buggy replacement…

</comment></comment></comment><comment><USER10> It used to help a lot (30-40%) to sort the class files of a librarly on canonical name before you add them to its jar. Class files contain that name, and are (typically) small. Your compression factor will grow. (maybe that trick is standard now)

<comment><USER11> Removing `-dontobfuscate` will change all the package, type, and function names to be single letters for the same result of greater compression.

The goal here was to just get it small enough, not the smallest it could possibly be.

</comment></comment><comment><USER12> any idea how to get the swift upload network traffic down?

My 500K objc ipa ported to swift [http://mro.name/ShaarliOS](http://mro.name/ShaarliOS) now is ~8MB (OTA test ipa), ~28MB for production upload causing ~300MB traffic until finally uploaded via xcrun, taking 1h on my rural uplink.

Has anybody an idea how to get back to sane dimensions?

</comment><comment><USER13> Looks like most of the size reduction was from running R8. The rest seems meaningless.</comment>


Initial Coin Offering - <AUTHOR> https://hackcabin.com/deal/initial-coin-offering/ <comment><USER2> Let me start off by saying I'm in the process of putting a mining rig together. So, I'm long term bullish on Cryto.

But, there's nothing to say that prices won't go up or down or sideways.

It's good to take calculated risks but also don't be the last guy holding the tulip.

diversification is important in investing.</comment>


Ask HN: recommend a book that explains how computers work down to the silicon - <AUTHOR> <comment><USER2> [http://www.nand2tetris.org/](http://www.nand2tetris.org/)

<comment><USER3> just came to say the same thing !

</comment></comment><comment><USER4> Charles Petzold's Code: [http://www.charlespetzold.com/code/](http://www.charlespetzold.com/code/)

</comment><comment><USER5> «Structured Computer Organization » by Andrew S. Tanenbaum. I don't know the newer edition but the 3rd edition is the first computer book I have read and its layered approach is great (and I think, was new at that time)

</comment><comment><USER6> Check out Code: The Hidden Language of Computer Hardware and Software by Charles Petzold for a slightly romantic take, or Malvino's Digital Computer Electronics for an undergraduate view of computer architecture.

</comment><comment><USER7> Look up the "system architecture" course in the CS department of your favorite university. Download the syllabus, slides, and required reading list.

</comment><comment><USER8> Elements of Computing system

</comment><comment><USER9> Silicon?

<comment><AUTHOR> Thanks, fixed.</comment></comment>


Tesla is not going to buy GM factory because of union employees, says GM CEO - <AUTHOR> https://electrek.co/2019/01/11/tesla-not-buying-gm-factory-union-employees-ceo/ <comment><USER2> Considering that Musk keeps a policy of periodically firing a flat 10% of the workforce, it's no wonder Tesla isn't interested in a union.

Some pundits will undoubtedly incorporate into their anti-union rhetoric the news that Tesla is walking away from the plant. But I doubt they'll mention the 10% culling strategy. "They don't want union workers because they like to fire 10% of the workforce every few years" would result in most people drawing completely different conclusions.</comment>


Ember, JQuery, Angular, React, Vue: What to Choose? - <AUTHOR> https://kruschecompany.com/blog/post/ember-jQuery-angular-react-vue-what-to-choose <comment><USER2> What an amazingly poorly informed article.

Specifically, Angular does do Server Side Rendering, and from the React notes, if you can learn ES6, then you're also learned TypeScript since they're the same thing (TS is a superset of JS, so all JS is valid TS).</comment>


Yahoo!'s bet on Hadoop - <AUTHOR> http://radar.oreilly.com/archives/2007/08/yahoos_bet_on_h.html

<comment><USER2> "But there are open source projects that are tackling important Web 2.0 problems "up the stack." Brad Fitzpatrick's LiveJournal scaling tools memcached, perlbal, and mogileFS come to mind, as well as OpenID."

memcached et al date from well before the annoying, useless, vague term "Web 2.0". as does Lucene, Nutch, and other interesting work Cutting has done.

collaborating on software that's only useful if you have servers that are getting tens of thousands of hits a day is hard. it automatically reduces the pool of potential participants to be very small.

fuck Bill O'Reilly for wanting to turn everything into something that relates to his dumb conferences/speeches/whatever. and fuck "software as a service". jesus.

<comment><USER3> Let's not turn this into digg, shall we?

<comment><USER4> "Let's not turn this into digg, shall we?"

I think we can extract some generality from your comment. Another post mentioned the fall of Reddit. I don't know if Digg was ever as interesting, but the two aren't too dissimilar now. You could have also urged this not become like any of thousands of flaming forums.

I is clear the news.yc community is becoming stronger and more solidified. Hopefully, the small subset of news it is attacking will limit the size and audience to only the most thoughtful. My guess is that you'll have to do more than pleas like this to ensure that.</comment></comment></comment>


How to Create a Subscription SaaS Application with Django and Stripe - <AUTHOR> https://www.saaspegasus.com/guides/django-stripe-integrate/ <comment><AUTHOR> Author here. I've been working on this post for more than a month, and it represents more than 30 hours of writing / code samples on top of another two months of learning and building subscription products. Hope you find it helpful, and happy to answer any questions you have here!

<comment><USER2> Great article. It will be great for the Angular community if it is Angular + Stripe. It is so hard to find one for Angular + Stripe. A good one like how you wrote it.</comment></comment>


Flattr: Social Micro Payments. Pirate Bay-guy one of founders. - <AUTHOR> http://flattr.com/

<comment><USER2> This is Contenture, with an extra barrier to conversion for each micropayment (clicking the Flattr button). It has every issue that makes Contenture a bad idea, squared. See here: <http://news.ycombinator.com/item?id=607937>

<comment><USER3> This thread has a better point-counterpoint on the model:

<http://news.ycombinator.com/item?id=627679>

Obviously, Contenture got it wrong. I agree Flattr's required-clicks are wrong, too.

I only heard about Kachingle and Sprinklepenny via this thread. Kachingle's limited-info flash-intro isn't confidence-inspiring. Sprinklepenny seems to understand more of what could appeal to readers (reallocate/retract funds) and publishers (detailed reporting).

But I don't see any reference to creating a gradient to reward subscribers -- for example skipping a Salon-style interstitial -- and extra rewards for the sites that get people signed up. That's likely the key problem to solve to bootstrap a self-reinforcing cycle of site and reader enrollment.

</comment></comment><comment><USER4> why the flat rate? i can see how it works for the business (people pay a regular, fixed amount; fees are less obvious), but i don't think it will be attractive to users - if i want to give something to someone i want to decide how much to give / know how much i am giving.

<comment><USER5> Clay Shirky wrote about this, see eg [1]. The idea is that you need to minimise the number of decisions people have to make, or they won't use the service much. You don't want to cause "decision friction" on every site and every month again.

Kachingle [2] and Sprinklepenny [3] apply pretty much the same rules that are outlined in this video - it seems a point of convergence for this type of service...

[1]: <http://www.shirky.com/writings/fame_vs_fortune.html> [2]: <http://kachingle.com/> [3]: <http://sprinklepenny.com/>

<comment><USER6> If I were to use this system, I would probably write a userscript to search for a flattr connection on pages that I visit that would remind me to pay if I liked what I got.

</comment></comment></comment><comment><USER7> The piece this is missing (at least in the presentation) is that this concept needs to make it simple for people to find other people like the ones they want to contribute to. Similar to Amazon's "Other people who purchased this also purchased..."

</comment><comment><USER8> Another question is what happens if you don't "flattr" anyone within a month. Does the money roll over to the next month, or is it lost to the house?

<comment><USER9> Just flattr yourself each month, to be sure =)

</comment></comment><comment><USER9> This one could work. Or fail like the previous attempts. But I do like the flat rate idea. The only question I have: Can I give twice to the same provider? Like if I liked the video he did twice as much as another one, I would really like to be able to give him twice the money...

</comment><comment><USER10> What is the revenue model for the company? percentage off of the monthly flat rate I assume?

</comment><comment><USER11> sounds like TipJoy (former YC company)...

</comment><comment><USER12> Thats an awesome idea. I would use it.</comment>


Idea Validation - <AUTHOR> What are the typical ways people do idea validation? If you have an idea and decide yo pursue to next steps, whats next? Build something? Ask around? Google search? <comment><USER2> Charge money...ok it's not the way most people try to validate something because it usually gives an unpleasant answer and people tend to be polite when asked their opinion and search terms can be tailored when googling and "I'm not good at marketing" is a comfortable excuse after building something nobody wants.

Good luck.

<comment><AUTHOR> Thanks for this insight!</comment></comment>


As women grow older, daughter becomes the favorite - <AUTHOR> http://www.latimes.com/news/science/la-sci-best-friends-20120420,0,2244358.story

<comment><USER2>
      according to an analysis of nearly 2 billion
      cellphone calls and almost half a billion text
      messages.

It's a really interesting study, but I question their method. Why didn't they interview people directly?

Maybe mothers value all their children equally, but their daughters are simply more talkative.

<comment><USER3> Indeed. And maybe when talking to a husband, a woman just yells to the other room - while the daughter (in another household or city) dominates the phone time.</comment></comment>


Ask HN: If you could start your career over again what would you do differently? - <AUTHOR> <comment><USER2> I'm 56. I never finished college. In retrospect, I really should have. Partly for the education, but even more so for the network that can come with graduating from a good school.

Another thing I'd do different is that I would have started a tech business much earlier, before my wife and I had children. Trying to do a venture-scale startup (high growth) when you have young children is really tough and not fair to your children, your spouse, or yourself.

Lastly, I would invest more into my retirement.

Time goes by faster than you think it will.

<comment><USER3> A data point: I graduated but didn't build a network at all for various reasons.

</comment></comment><comment><USER4> I'd focus on the human element of work more. Younger engineers sometimes want to excel as individual contributors, but the value of being a team player, helping your co-workers in their careers, and tracking your team's health is huge.

A co-worker recently said that they used to chase good work when finding a job, but now they look primarily for good people. It sounded spot on.

</comment><comment><USER5> My instinct is to tell my younger self to finish his CS degree. On the other hand, the jobs I see don't require any of that so... it would still be nice as an accomplishment. I think. Most of the people that graduated from my course aren't doing interesting things. But yeah, bittersweet feeling ("what if?").

I'd tell myself to avoid identifying with his work too much and work 9-5 only. Unless it was his own company but still be careful about mental health.

</comment><comment><USER6> Focus more on my career path rather than take the path of least resistance. I see now that you can actively manage your career in such a way that you decide what job you want rather than take what comes your way.

Also, I would have sounded my own horn a bit more. It's important to let management above you and your boss' boss know what you're capable of doing otherwise you become just a body that can easily be replaced.

</comment><comment><USER7> The biggest would be to find an internship in college, preferably one for junior year and one for senior year. Now that I'm in the workforce I see driven young individuals getting internships in the companies I work at, that I was too shy to apply to and didn't see myself worthy of.

Then use that internship to find out what I love to do and use that to start a career doing that.

</comment><comment><USER8> Study computer science instead of mathematics. I chose mathematics because was easier for me and programming can be self-taught. The idea was to eventually start work as programmer while studying and did indeed, however I follow syllabus of CS courses and think it would far better if I studied CS.

</comment><comment><USER9> Finish my CS degree and do internships while in college instead of switching to English because it was easy. Biggest regret of my life (so far) that I'm still struggling to overcome 14 years later.

</comment><comment><USER10> I would've had a job lined up before I quit my first. Then I could've still pursued starting my own company without burning up my savings.

</comment><comment><USER11> Found a workplace and co-workers that I meshed well with. I worked for 3+ years with people who I struggled to connect with.

</comment><comment><USER12> Get a job instead of creating a business I ended up not liking. I should've done both, I certainly could.

<comment><USER5> If it's a web property or SaaS, I think people have posted here a few websites that intermediate buyers and sellers. Unfortunately, I don't remember any of the names but it seems there are 1-2 that are trustworthy out there. Does anyone know?

</comment></comment><comment><USER13> Move to a bigger city and get work doing Database.

</comment><comment><USER14> Actually finish my CS degree.

</comment><comment><USER15> focus on only one field, do not switch around.

</comment><comment> non-entity Go to school</comment>


Help us spread our site to your school - <AUTHOR>

If you want to skip the BS and see the final product here it is: http://www.collegeacb.com
So it's been 4 months since we had our interview with the YC in Mountain View CA. It was a really exciting experience and although my partner and I were really upset that we didn't get funded, I decided to continue developing the project. I remembered reading a bunch of posts after the interviews were over from many of the teams who did not make it. What I haven't seen thus far is the story of what happened after the rejection, so here it is…
My co-founder and I were both seniors nearing the end of our college careers when we applied for YC. By the time we heard the amazing news that we had been invited to interview in Mountain View neither of us had even a potential job offer lined up for after graduation. We were pretty much banking on getting accepted.
After we were rejected we pretty much put the project on hold as we scrambled to find jobs. Luckily I was able to get a position as and my co-founder got accepted into the google summer of code program. My employers wanted me to start work at the beginning of June (only a few days after my graduation) but I knew that once I started work I would have no time to continue development on the potential startup. Luckily, I was able to push off my starting date for a month. At this point my co-founder was busy and wasn't able to help with the programming. But where he failed to deliver in lines of code, he made up in sound advice and encouragement. I moved back home and coded away for the first 3 weeks of June. At that point I had a buggy version of what I had hoped to create, minus a few features, that I chose to drop/postpone. I started my "real" job early July and have been fixing all the bugs up until now.
So if you're still reading at this point here is a description of the idea from my YC application:
"Our product is an anonymous social network geared towards the college community. The site is centered around a forum where students can vent their frustrations, talk about taboo subjects, or tell stories about their lives. However, as users interact with one another and post their thoughts to their community at large, they have the option to reveal their true identity or request the true identities (verified by University e-mail) to and from people whom they would like to reach out to in real life. It is our hope to connect our users not by their already established social identities, but by their common interests and character."
PG and company were worried that it would be too difficult to spread our idea. We have observed an incredible viral effect when launching the site at a few test schools. Usually we are able to reach 50% or more of the university within 3-5 days. The problem is that the viral effect does not spread from school to school, only within the specific school. It requires a friend or other contact at the school in order to spread the word. That means that we need a friend or contact for each school we want to launch at.
So this is where I do the shameless plug for help. If there are any college students out there who had the attention span to get to this point then we would love it if you would help us spread our site to your school. We are willing to offer you 100% of our advertising profits (from your school) for the first 2 months for your help. Usually all that it takes is for you to create a facebook group and invite all of your friends, and maybe put up some fliers. Were expecting that our contact will make between $25 and $500, so its not a bad deal for the little amount of effort it takes.
If your interested in helping out please email me: aaron [at] collegeacb [dot] com
Here a link to the site if you want to check it out: http://www.collegeacb.com. I'd definitely love to hear feedback (especially on design and usability or other ways to spread to new schools). <comment><USER3> What makes your service better than all the other startups offering anonymous conversations among college students? All of them have basically been proven to be fads, popular for a brief time among gay kids looking for hookups and people looking for vicodin, but then rapidly losing popularity after a few months. (I'm thinking specifically of boredat.net and juicycampus.com.) I'll admit I've never used the competing sites so I don't know much about them, but I also don't see much that differentiates your site either.

</comment><comment><USER4> 1) I know it's probably overplayed, but this is one instance where a facebook app would definitely help your exposure. Having a random rant from your school on your wall every day would be interesting to me at least.

2) Lower your barrier to entry to allow people to post without logging in. Then offer to create an acct to see if anyone replies to your post. Also, there is no "register" button on the front page.

3) The img on top doesn't link back to home. Might want to change that.

Some design comments:

You have extra spacing on your login box. I'm on firefox with ABP.

A random quote at the bottom of the forms would be nice.

 _And_ you could have a site-wide feed that transcended schools. That might help eliminate the isolation between colleges.

A description/slogan to the right of your top_text might be helpful. Also, tighten up the copy when your explaining what your site is.

You need an about and a privacy page on your footer.

</comment><comment><AUTHOR> Thanks for all of the comments everyone. To address some of the issues:

You don't have to log in to view posts, only to make them. This is one thing that I think guides the discussion in a more meaningful direction than boredat/juicycampus. We have community moderation, so that if your post is reported a couple times by other users then it is removed and your posting privileges are temporarily suspended. This helps cut down on the excessively slanderous posts that you see on juicycampus.

As for it being a fad... At my school we had a live journal board and it has remained popular for at least 3 years now. I'm pretty convinced that if done right, we will be able to keep the attention of the student body. Not to mention that each year there's a whole new class of freshman who the idea may be completely new to.

PS: My co-founder was on NPR talking about some of these issues. You can check it out here... [http://www.npr.org/templates/story/story.php?storyId=9394823...](http://www.npr.org/templates/story/story.php?storyId=93948235)

Click on the "Listen Now" button at the top (next to the red button)

</comment><comment><USER5> At UC Santa Cruz there is a Livejournal community with an end-of-quarter "post anonymous secrets" thread. Exactly what is described here, and very popular. I think other campus LJ communities did the same as well.

I'm surprised at the critical attitudes -- that there are two competitors is reason for encouragement and indicates that the market you're targeting is no illusion. All you have to do is make your site better and better-known than the other guys.

</comment><comment><USER6> Don't make me have to sign up or log in to see stuff. Let me into a school and let me read what's going on right away. Let me peruse your content.

<comment><USER7> Not sure if I'd make that a rule.

</comment></comment><comment><USER8> I personally think this is a great idea. Reading through the posts, its obvious that this offers something that juicycampus does not, mainly, actual conversations. You might consider expanding tools, I notice you can private message people, which is cool, but it would be nice if there were a couple "special" reasons to come to your site other than what I just mentioned.

<comment><AUTHOR> We have been considering a "crush list" feature where students can add the email address of their crush to a private list. If two people add each other then their identities are revealed. The one thing we are worried about is the possibility for abuse (like someone adding everyone they know to see if there are any matches).

<comment><USER8> Not a terrible idea, I was trying to think of something that fits nicely into the gossip/anonymous board idea. Like maybe a post-secret type section. Errr... well, I'll think about it some more.

</comment></comment></comment><comment><USER9> It just doesn't seem like something that will catch on. It offers a single particular service that is probably only useful to some people a minimal number of times before it gets old and/or their question(s) is answered.

Maybe it's just me personally, but I don't see a use for it really.

</comment><comment><USER10> why would people want to talk to each other anonymously? instead of talking to my friends in person or on one of the other million social networks, I would want to speak to people I don't know anonymously?

<comment><USER3> The Harvard Crimson had a decent editorial explaining the appeal:

<http://www.thecrimson.com/article.aspx?ref=515684>

<comment><USER10> alls i know is that it's pretty lame if you spend your time doing that - <USER2> rambling on to no one about nothing. a community like this is completely different.

<comment><USER8> just because you don't do it, doesn't mean there isn't a market for it. How many people think it's silly to be posting on this site!

</comment></comment></comment></comment><comment><USER11> www.juicycampus.com and www.boredat.com already have this down.

<comment><USER12> juicycampus isn't doing great according to compete and boredat is down. Seems like there is definitely still room in the market.</comment></comment>


The Government Won't Let Me Watch Them Kill Bison, so I'm Suing (2015) - <AUTHOR> https://www.vice.com/en_us/article/xd7x9k/witness-to-a-massacre-0000652-v22n5 <comment><USER2> > I think that if the public knew what was being done to the Yellowstone herd, > people might demand a change in policy.

I feel the same way about all animals unnecessarily slaughtered. "If slaughterhouses had glass walls, everyone would be vegetarian." [1] I would take it further and say that if dairy farms had (metaphorical) glass walls [2], everyone would be vegan.

It's tragic what is happening to the Bison, but it's not significantly different than what happened to most people's meals.

[1] [https://youtu.be/HjqOTtJYXX0](https://youtu.be/HjqOTtJYXX0)

[2] [https://youtu.be/iL9QJEm_SJY](https://youtu.be/iL9QJEm_SJY)

<comment><USER3> I think this statement could only have come from someone who haven't spent much time outside of big cities. At least where I am from, people in more rural settings don't care about bovine or porcine feelings. This certainly doesn't mean that we torture animals, but when their time comes, the knife goes in, and meat goes on the table. "Everyone" most certainly would not become vegetarian.

<comment><USER4> Countryside dwellers dont know any more about the particulars of slaughter. I find that even farmers tend to be surprisingly ignorant outside of their narrow slice of expertise. Remember, argiculture is a highly specialized and thus compartmentalized industry, so there is usually no need to know anything about other links in de chain.

<comment><USER5> > I find that even farmers tend to be surprisingly ignorant outside of their > narrow slice of expertise.

In recent years I came to the conclusion that this statement is true for the majority of us.

<comment><USER4> I think many people, 'countrysiders' and farmers included, mistakenly attribute some sort of natural mysticism, simplicity to farming. There is absolutely nothing 'natural' or simple about industrial (western) farming. From mining minerals, producing fertilizers, landscape management, crop engineering, cropfeed engineering, butching techniques, disease control and then foodtech which has it's own universe of methods and companies.

It takes an interested mind to put all that in perspective. Whether or not you do that has nothing to do with where you live or what you do (well, maybe some agritech types have this in their job description).

<comment><USER6> Plenty of interested minds put that together and don't come to the same conclusion as you, my friend.

</comment></comment></comment></comment></comment></comment><comment><USER7> The lawsuit did apparently result in some access, no particularly good camera angles though: [https://truthout.org/articles/montana-s-beef-with-buffalo- an...](https://truthout.org/articles/montana-s-beef-with-buffalo-and- yellowstone-s-buffalo-battle/)

The fight now seems to be focused on getting the bison classified as an endangered species: [https://www.nationalparkstraveler.org/2019/09/fish-and- wildl...](https://www.nationalparkstraveler.org/2019/09/fish-and-wildlife- service-again-declines-review-yellowstone-bison-esa-protection)

</comment><comment><USER8> I couldn't get past the first few paragraphs. Culling of wild animals by definition has to do with carrying capacity and I would have expected that to be the basic point of discussion.

<comment><USER9> OK, why ban public access?

<comment><USER10> Maybe because they think it's easy to whip up public frenzy even over something completely justified?

Though as the uncle comment notes, it doesn't really seem "completely justified" here.

</comment></comment></comment><comment><USER11> FYI: article dated May 21 2015

</comment><comment><USER12> This makes me so sad. I visited Yellowstone in 2013. The buffalo are magnificent, beautiful creatures. One of them almost killed me, and I don't blame it one bit. I was driving on _its_ road.

I really wish they could figure out a way to let them roam off of the park lands.</comment>


Photovoltaic Cells Vs Photosynthesis Process - <AUTHOR> http://dev.emcelettronica.com/photovoltaic-cells-vs-photosynthesis-process <comment><AUTHOR> Photovoltaic Cells Vs Photosynthesis Process

Do they have anything in common?</comment>


Even Non-Techies Aim to Learn the Internet's Language - <AUTHOR> http://www.nytimes.com/2012/03/28/technology/for-an-edge-on-the-internet-computer-code-gains-a-following.html?_r=1&hpw=&pagewanted=all <comment><USER2>
      Parlez-vous Python? What about Rails or JavaScript?

It seems interesting to me that Rails (rather than Ruby) is often listed as a language in popular publications. I guess the framework is more highly promoted than the language it's written in. Are there any other examples of cases like this in popular or "near-geek" culture?

<comment><USER3> While not a framework per se, .NET is often termed a "language."

<comment><USER4> .NET isn't a framework?

<comment><USER5> Seems like ".NET" encompasses more than just a framework, but there is definitely something called "The .NET Framework." [1][2]

[1]<http://en.wikipedia.org/wiki/.NET_Framework>

[2]<http://www.microsoft.com/download/en/details.aspx?id=17851>

</comment></comment></comment></comment><comment><USER6> I am happy to hear that one can be a developer and understand TCP/IP and not be a "techie" since the dimunitive nounized form of tech, "techie", always has a condescending air about its use. Likewise "coder" and often even "geek". When my partner stays up all night reading wikipedia I can humorously say "Looks like you had a major geek-out session." This is taken in a very different sense than when a touring MBA says "So is this the cage where you keep the geeks?"

<comment><USER7> That last bit struck a nerve to me. I think the dichotomy between "suits" and "geeks" really hurts a lot of companies.

A former boss loved mentioning things his "engineers" have accomplished when he's on teleconferences, but when he's upset at something done at the technical level, he refers to them as the "geek squad".

I see the same thing when I'm surrounded by the engineers. They all refer to management as "the suits" and speak condescendingly of non-engineering work.

This difference seems like it's transcended a bit in startup culture, which is one of the most attractive parts of it to me.

</comment></comment><comment><USER3> Aside from the cheesy opening line, it is nice to see an author that does a decent job writing to a nontechnical audience (as well as one who provides examples of the value of programming to readers). With increasing publicity, it will be interesting to see if more people actually sign up for and complete online courses (from sites like Codecademy).

</comment><comment><USER8> Smells like another bubble in the making to me. Investment money has nowhere else to go but startups and Joe blow is learning html again because he thinks its going to be easy money. Feels a lot like the early reports of people lining up around the block for Manhattan condos in 2006.

<comment><USER9> No, this is just capitalism at work, and it's normal. Demand exceeds supply for software engineers, because humans need more software than ever before. Unemployment is high. Unemployed workers in other industries want to retrain as software engineers. This is exactly what's "supposed" to happen when workers are displaced from one industry.

You seem to be trying to imply that companies are hiring unqualified workers. I don't see any evidence of that -- do you?

<comment><USER8> Demand only exceeds supply because too many people think they're going to make a quick buck with their new social recipe sharing startup. I strongly suspect the supply of those kinds of services currently far outstrips real demand.

<comment><USER9> The demand from what you dismissively call "social recipe sharing startups" is an insignificant fraction of the demand for software engineers. Techcrunch is not a good proxy for the job market.

How many people do you think are actually getting paid to write social recipe sharing software? Maybe 1000? There are ~1.5 million software engineers in the US alone. Even if you think that there are 10000, that's still less that 1% of all positions.

<http://www.bls.gov/oco/ocos303.htm>

</comment></comment></comment></comment><comment><USER10> How soon before this trend starts to wind down?

How long before computer programming skills become as everyday as basic vehicle repair knowledge?

I guess its not really the same thing, because computer programs aren't as homogeneous as car guts (although I wouldn't really know) and cars aren't being engineered in repair shops. But if you look at common frameworks like Rails or plain HTML or WordPress then you could almost think of those areas as being like their own mechanical specialties.

Point being there are a lot of relatively high-tech devices that we maintain where those careers aren't considered particularly prestigious, and I wonder if at some point software development will be a little more like that.

I mean in the first few decades of the development of motor vehicles (I know, computer programs aren't combustion engines, they are much more varied and complex than that) there was a lot of invention and innovation and those people were probably considered to have fairly elite skills and knowledge.

<comment><USER11> There are certainly people who predict that this will happen. (Example: [http://www.whattofix.com/blog/archives/2012/01/programming-i...](http://www.whattofix.com/blog/archives/2012/01/programming- is-1.php))

Ironically enough one of my goals is to _cause this to happen._ Which while sounding like some sort of betrayal, is really an enrichment of human creativity. Concentrating the heart of what defines the 21st century into a sort of weakly protected oligarchy makes me feel nervous about the future. The thing about cars is that they represent a different revolution, one which doesn't necessarily require people to join in on what would probably be called "hacking" if the equivalent tasks were done on a computer to have their full effect.

Part of the power of the home computer and electronics revolutions is that the programmability of the computer is _itself a medium._ A largely underutilized medium that has more potential than most others. To have this medium marginalized by a widespread belief that it's beyond peoples capability is really...depressing.

<comment><USER10> That's kind of one of my goals too. I am thinking about composable widgets for web applications.

How do you plan to make programming easier (or whatever it is your goal is exactly)?

</comment></comment></comment><comment><USER12> As a non-technical learning to program on my personal time, I think this article captures the rise of programming tutorials accurately, and hints at the greater trend of the internet enabling a new kind of renaissance person that can know a little bit about a lot- at least enough to know "how these languages function within the internet". That being said, I don't think codecademy, at least as it's currently developing, is enough to turn the layperson into a programmer.

</comment><comment><USER13> I'm not sure if the world would really be a better place if more people learned JavaScript, but I do hope that at least some of the alleged "surge" goes towards learning about basic rules of security on the Internet. Like, "Don't click Yes on that thing unless you're sure what you're saying Yes to."

In fact, I'd much rather not share the world with people who know how to write JavaScript but not basic rules of security. They are so much more dangerous than people who know neither!

</comment><comment><USER14> Sad to see San Francisco's own Dev Bootcamp not mentioned here: devbootcamp.com (and my own writing about my experiences with the program douglascalhoun.tumblr.com). By the way, our hiring day is Friday, it's not too late to tell your founder/ recruiter friends: devbootcamp- spring2012.eventbrite.com

</comment><comment><USER15> I don't see this as a trend, people who want to know how to program will learn. It's the same as if cars were just invented 30 years ago and people start learning how to work on cars. The auto mechanic didn't go out of business, in fact I think he got more work as people realized that they don't need to go out and buy a new car every time their old one is broken, they can hire someone to fix it.</comment>


Two thousand mice dropped on Guam by parachute to kill snakes - <AUTHOR> http://usnews.nbcnews.com/_news/2013/12/02/21724382-two-thousand-mice-dropped-on-guam-by-parachute-to-kill-snakes?lite <comment><USER2> > For some reason, the snakes are almost uniquely sensitive to acetaminophen, > the active ingredient in the ubiquitous over-the-counter painkiller. If you > can get a tree snake to eat just 80 milligrams, you can kill it. That's only > about one-sixth of a standard pill — pigs, dogs and other similarly sized > animals would have to eat about 500 of them to get into any trouble.

Just a quick note: Paracetamol is a great and useful painkiller. It's safe if taken properly. But it is dangerous when taken in overdose. People who've taken an overdose of paracetamol must get medical attention as soon as possible, even if they feel well.

A standard UK tablet is 500 mg. 15 tablets - 7.5 g, is enough to be lethal.

People _accidentally_ overdose and die from paracetamol. You don't do that with "500 of them to get in any trouble".

<comment><USER3> I'm curious, how do people accidentally overdose 15 tablets ?

<comment><USER4> From the bottle of acetaminophen on my desk:

Take 1 or 2 tablets with water, every 4 to 6 hours. If pain or fever does not respond to 1 tablet, take 2 tablets at the next dose."

Now, why wait to take 2 tablets? And maybe your headache is really bad. If 2 are stronger, 4 must be better.... 4 pills every four hours means that in a day you can get 8 grams dosage. Sure, it says "No more than 8", but it's in tiny letters, and most people don't actually realise just how serious the danger is.

16 tablets over the course of the day isn't really what most people think of as a drug overdose for something as "innocent" as tylenol. In addition, some cold medicine has acetaminophen in it, and you might not realize that your cough syrup was contributing to your dosage. Then bam, liver failure.

If you're genuinely curious, there's a really good episode of This American Life on acetaminophen poisoning and the labeling standards set by the FDA.

Link: [http://www.thisamericanlife.org/radio- archives/episode/505/u...](http://www.thisamericanlife.org/radio- archives/episode/505/use-only-as-directed)

<comment><USER5> The example in TAL's podcast that really got me was the mixup between infant and child tylenol that resulted in the death of a child.

I've gotten in the habit (before I had children) of reading labels and understanding their contents, dosages and concentrations (if only for the amusement that there seems to be only a handful of drugs in boxes that typically take up several meters of store shelf space). However, the situation of the death of that child in the podcast wasn't out of the ordinary. Simple miscommunication between parent and doctor, and the lack of knowledge of how little acetaminophen you really need to overdose.

Specifying dosages as volumes of liquid is dangerous without knowledge of concentration. Better to specify mg of acetaminophen and let people work the math out (maybe that's asking too much).

<comment><USER6> I honestly don't understand why printing the LD50 isn't mandatory on all warning labels.

</comment></comment></comment></comment></comment><comment><USER7> I would just like to point out to dba7dba that his account seems to be banned and the post appears as [dead], just like all the other posts he wrote in the past 294 days (but not those before). Reading his contribution in this thread and some of his earlier comments, it is not at all obvious why he is banned - moderating a forum is fine, but letting someone post for another year without telling them they are banned seems outright cruel - what is going on here exactly?

<comment><USER8> I just recently emailed someone telling them they'd been hellbanned when they had done nothing apparent that deserved it, and continued to post for months.

Hellbanning is definitely something I really dislike about this website. I can't imagine submitting and commenting for months only to find out I was wasting my time.

<comment><USER9> Hellban is the most ignorant and stupidest invention, yet the most effective way to take down oppositions.

</comment></comment></comment><comment><USER10> In case you are as surprised as I was that they would bury the lede and not show the "parachute" or how they drop these in, here's a news story with a video: [http://www.kuam.com/story/24108238/2013/12/02/dead-mice- bein...](http://www.kuam.com/story/24108238/2013/12/02/dead-mice-being- dropped-from-the-sky-to-combat-snakes)

</comment><comment><USER11> I'm not sure they thought this through completely. As a person who owns a snake, I can tell you that convincing a snake to eat an already dead mouse, when they are not used to it, is not easy. They prefer live and warm prey. I'd be very surprised if this actually works with any amount of efficiency. Perhaps the brown tree snake is different than typical captive snakes, but in my opinion it would be only be more difficult to convince a wild snake to eat an already dead mouse.

<comment><USER12> And, even if they do eat them, if there's any significant variation in natural tolerance to acetaminophen among the snakes, you will just end up selecting for it and eventually this approach will stop working. Still, if it works, it's cheap and relatively harmless control for the short term.

<comment><USER13> Gene pool is probably very small - if they were introduced with a couple from a cargo ship, maybe microscopic. Little chance for selection to work.

</comment></comment></comment><comment><USER14> Very curious to know if they set up a ODE 101-style Lotka–Volterra (predator- prey) system beforehand to gauge the impact. If so, that would make a pretty interesting "real-word" teaching example.

</comment><comment><USER15> why do I think the news heading next year will be "2000 snakes dropped on Guam by parachute to kill mouse over population"

<comment><USER16> the mice were dead

<comment><USER15> yes, I know it was a joke. Kill of the snakes and the natural mouse and rat population would increase.

<comment><USER16> right, I thought you hand't RTFA :-)

2000 mice for 2 million snakes is unlikely to make any meaningful difference but will test if the approach can be used as a way to control the snake population... I guess!

</comment></comment></comment></comment><comment><USER17> I just like thinking about how the snakes that survive will be a member of at least one of two groups:

      * those that don't eat mice.

      * those that are better at processing acetaminophen.

Also - what of the other scavenging animals?

<comment><USER18> _Also - what of the other scavenging animals?_

Many of them will finally find headache relief.

</comment></comment><comment><USER19> And they didn't film it?!? I was really looking forward to see 2000 mice on mini parachutes being dropped out of a helicopter.

<comment><AUTHOR> 2000 _dead_ paratrooper-mice, mind you. Zombie mice?

<comment><USER20> World War mZ perhaps :-)

</comment></comment></comment><comment><USER21> I've been to Guam a few times, most recently this summer. I spent some time visiting the historical places as well as hiking and snorkeling.

It always is a bit sobering to realize how war-ridden the history of the island is and the effects of it. And then add in the brown tree snake problem... Just hiking without hearing a single bird is a new experience.

<comment><USER12> The story says the snakes "snack" on the birds but I'm guessing it's actually the eggs that they are snacking on?

<comment><USER21> Yes, that is correct.

</comment></comment></comment><comment><USER22> Ok, anyone else's school have a tradition of catching mice in their dorm and "help them earn their jump wings" by making a napkin parachute and tossing them out a window? If not, this sounds like some Academy grads have been having a little to much fun (the Navy and to a lesser extent, Air Force have a heavy presence on Guam).

</comment><comment><USER23> Am I the only one that wants pictures of these mice flying down in their cardboard and tissue paper parachutes?

</comment><comment><USER24> At first I thought the title meant the mice were going to eat the snakes

</comment><comment><USER25> Off topic, but I think two or three articles from front page arrived in my "The Daily Digg" newsletter. The newsletter serves very intresting content.

</comment><comment><USER26> 2000 mice but 2 million snakes? Am I missing something? Is this just a trial run?

<comment><USER27> >The unlikely invasion was the fourth and biggest rodent air assault so far

Throughout the article there's multiple statements that imply that this wasn't intended to be a one-time complete eradication.

</comment></comment><comment><USER28> Surprised to see Guam on HN... I'm from Saipan!

</comment><comment><USER29> That's a pretty cool hack. Low tech is best sometimes!</comment>


How Not to DDoS Your Former Employer - <AUTHOR> http://krebsonsecurity.com/2013/08/how-not-to-ddos-your-former-employer/ <comment><USER2> I like how he visibly picked the details out of the google-translated La Presse article. Calling Trois-Rivières "Three Rivers" is as weird as calling San Fransisco "Saint Francis".

<comment><USER3> >Calling Trois-Rivières "Three Rivers" is as weird as calling San Fransisco "Saint Francis".

Is it really _as weird_ as calling SF Saint Francis? This link would suggest that the name "Three Rivers" exists at least in some capacity

[http://www.cqsb.qc.ca/MyScriptorWeb/scripto.asp?resultat=253...](http://www.cqsb.qc.ca/MyScriptorWeb/scripto.asp?resultat=253934)

And the Wiki article says

>Traditionally, Trois-Rivières was referred to in English as Three Rivers

although it then goes on to say that this is becoming less and less common.

Edit: and a completely irrelevant but somewhat interesting piece of information, the city's inhabitants are called Trifluvians. I say interesting because the fluv- part obviously comes from the other French word for river, fleuve, rather than the one used in the actual name of the city, rivièr.

<comment><USER4> See also "Ivory Coast" versus "Côte d'Ivoire" and plenty of other place names that exist in between localized and non-localized versions. Some people say "Ivory Coast" others say "Côte d'Ivoire" and others vary based on the week.

<comment><USER5> I'm not very familiar with the Quebec language laws, but I suspect that it's actually _illegal_ to call it "Three Rivers" on signs or advertisements within Quebec.

<comment><USER6> The language laws regarding signs state that french must either be the first and most prominent language on signs or the only language on signs.

This applies to text and common nouns. Not cities, trademarks or proper names.

Home Depot is still called Home Depot on Quebec signs. While some companies will put a French noun next to their English names, this isn't required.

As for a sign with Three Rivers, Trois-Rivières is a proper name, you don't usually translate those just like we don't translate people's name.

<comment><USER7> We sorta-kinda translate or mangle some names, don't we? I've often wondered why the English name for "München" is "Munich"... it's not even that close and doesn't mean anything in English.

<comment><USER8> I hate to be that guy, but you're thinking about endonyms and eponyms.

From [http://en.wikipedia.org/wiki/Exonym_and_endonym](http://en.wikipedia.org/wiki/Exonym_and_endonym):

The United Nations Group of Experts on Geographical Names defines:

Endonym: Name of a geographical feature in an official or well-established language occurring in that area where the feature is located.

Exonym: Name used in a specific language for a geographical feature situated outside the area where that language is spoken, and differing in its form from the name used in an official or well-established language of that area where the geographical feature is located.[2]

For example, China, India and Germany are the English exonyms corresponding to the endonyms Zhongguo, Bharat and Deutschland, respectively.

<comment><USER7> There's no need to hate being the guy who introduced me to the proper terminology. I like knowing the proper terminology.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> The PDF of the presentation in the comments censors names by putting boxes over them. Unfortunately those boxes are a separate layer and can be removed. Simply scrolling in and out makes them flash.

[https://media.blackhat.com/us-13/US-13-Masse-Denial-of- Servi...](https://media.blackhat.com/us-13/US-13-Masse-Denial-of-Service-as-a- Service-Slides.pdf)

<comment><USER10> The sad thing is, this type of "censoring" a PDF has been demonstrated as broken 8 years ago: [http://www.geek.com/news/army-censor-makes-technical- error-5...](http://www.geek.com/news/army-censor-makes-technical- error-559981/)

</comment></comment><comment><USER11> Sometimes half of the fun of reading Brian's articles are the super weird comments he gets on his articles sometimes.

<comment><USER12> > "Cow in trouble: It would Be-hoove him to to pay protection to the Moofia or > a Cowtastrophe might occur."

Yeah, what?

</comment></comment><comment><USER13> I like the idea put forward in the comments thread on that article about a "cybercrime Darwin awards".

</comment><comment><USER14> Mumbai/Bombay Calcutta/Kolkota Madras/Chennai</comment>