What happens before main() is executed in C and why is it important? - <AUTHOR> http://mymicrocontroller.com/2018/04/03/what-happens-before-main-function-is-executed-in-c-and-why-is-it-important/ <comment><USER3> One other way to observe these steps a bit more clearly is to look at the startup code provided by a chip's manufacturer or generated by an IDE that targets the chip, such as Keil.

Most will put this type of code in '.S' startup assembly files, which often also contain information like the memory addresses for hardware interrupts to use, and linker scripts for telling the compiler about the memory available on the chip.

For example, ST's 'CubeF0' package has some example projects for their simpler ARM chips:

[http://www.st.com/en/embedded- software/stm32cubef0.html](http://www.st.com/en/embedded- software/stm32cubef0.html)

I think that it is good practice with microcontrollers to tell GCC not to include generic startup logic in order to ensure that you are doing the right thing for your particular chip, by using flags such as _\--specs=nosys.specs_ , and even _-nostdlib_ with _-lgcc_ and _-lc_ only if necessary.

<comment><USER4> It's not just "good practice", but instead the startup code is so specific to the platform that there really isn't "generic" startup code.

<comment><USER5> The generic compiler-provided startup code is fine for AVRs under most circumstances, since they're only produced by a single manufacturer and don't have fancy features like PLLs which need to be initialized. It's the more complicated chips where it gets a little hairy, especially if you have to deal with things like external RAM.

<comment><USER4> I guess I rarely see the case for an AVR when you're not prototyping on an Arduino. You can get chips that are an order of magnitude more powerful per $/watt/and any other metric you'd want to use.

<comment><USER6> Have you read "The Amazing $1 Microcontroller" [0], which might have been posted here before? It's a survey of available microcontrollers, with the intent of helping you choose one. If you have read it, are you in agreement with the article, for example on how AVRs compare to others?

[0] [https://jaycarlson.net/microcontrollers/](https://jaycarlson.net/microcontrollers/)

<comment><USER4> Yeah, he put a lot of work into that, and I love that he published all of the information.

My biggest complaint though is that he expresses GPIO cycle time and interrupt latency in cycles, rather than normalized on real time.

Particularly when comparing a STM32F0 to an AVR, the perf looks almost even, until you realize that the STM32F0 is clocked 2.5x faster.

<comment><USER6> Good point. Have you, or someone else, mentioned this to the author?

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> It should be noted that relying on static initialization as suggested in the article, while at times useful, can open a new set of problems until initialization order is well-defined (it's out of scope for the article, so I imagine the author is aware and just opting for brevity). Some compilers provide an explicit ordering mechanism (clang and GCC) and the there are proposals in the C++ standards at the moment, but until then relying on static initialization is something one should think about potentially solving differently. Depending on the architecture, there tends to also be well- defined hooks for functions to run pre and post-main which is another consistent model for initialization/shutdown.

Edit: spelling

<comment><USER4> I had a really good experience designing an RTOS initialization system that both depended on static initialization, but didn't have issues with ordering either (and in fact didn't even have a main, post init just went right into the idle thread).

Basically I only let children of one class be statically initialized (and enforced this with a tool that goes through the generated binary and type information). These 'subsystem' classes then gets callbacks after all of the static initializers have run which allows them to find the other subsystems they depend on, and then that dependency graph is walked to initialize the full system (the dependency graph has to be a DAG or the system faults). Combined with a code review rule that static initializations only happen in one compilation unit in an anonymous namespace, and nothing else can happen there, means that no one can really touch other subsystems before they've all been initialized, and therefore the order doesn't matter.

I was really happy with how it turned out, despite being completely off the wall compared to how C++ normally works.

<comment><USER8> > despite being completely off the wall

embedded systems software in one phrase. :-D

</comment></comment></comment><comment><USER9> Why not just looking at the source code?

I attached an example of Arduino Zero varients [1] (it is directly from Atmel's SDK.) It is quite straightforward to see what happends before main(). In embedded system, you can even change it easily if you want.

In this example, the stack pointer is updated at very first point after powering up the device [2]. And the undersocre-prefixed variables are defined in its linker script. [3]

[1]: [https://github.com/arduino/ArduinoCore- samd/blob/master/boot...](https://github.com/arduino/ArduinoCore- samd/blob/master/bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c#L161)

[2]: [https://github.com/arduino/ArduinoCore- samd/blob/master/boot...](https://github.com/arduino/ArduinoCore- samd/blob/master/bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c#L108)

[3]: [https://github.com/arduino/ArduinoCore- samd/blob/master/boot...](https://github.com/arduino/ArduinoCore- samd/blob/master/bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld)

</comment><comment><USER10> Personally, I think global's with constructors are kind of an anti pattern. I've noticed a high correlation between crappy app's and app's with a lot of pre main() code. Especially if some of your global's have threads: because then you potentially have threads running AFTER main exits... I've seen a number of apps with random crashes at shutdown because a thread that was started in a global was still running and since main returned globals were being cleaned up and the thread used something that had just been cleaned up.

<comment><USER11> This article seems to be targeted toward embedded programming, so global state isnt that big of a deal because you have complete control of the chip. It's quite common to not even have threads or an operating system at all.

</comment></comment><comment><USER12> To me one curious thing about the main() function without arguments is, these arguments are still pushed onto the stack. You can find them by dereferencing a pointer of another stack variable and playing around with the offset.

        // Just tested with mingw-gcc on Win8.1
        // Maybe you need to play around with the offset, +28
        int main() {
            int i; // Another stack variable

            printf("%d\n", (long long)&i + 28); // &argv
            printf("%d\n", *((void**)((long long)&i + 28))); // argv
            printf("%s\n", ((char**)*((void**)((long long)&i + 28)))[0]); // argv[0]

            return 0;
        }

Exclaimer: I don't know how this behaves in an embedded environment.

<comment><USER13> Here's what works on my Mac, compiled with clang -m32.

      #include <stdio.h>

      int main() {
      	int i;                                // Another stack variable
      	printf("%s\n", **(char ***)(&i + 8)); // argv[0]
      	return 0;
      }

Of course, this won't work at all on x86_64 because arguments are passed on registers instead of the stack.

<comment><USER12> On Windows this dependes on the calling convention. The calling convention determines whether function arguments are passed: In order or in reverse order. Who takes care of cleaning the stack: caller or callee? And even if the arguments are passed by stack or CPU registers.

In Visual Studio you can control this behavoir with the __cdecl, __clrcall, __stdcall, __fastcall, __thiscall, __vectorcall [1] calling convention function prefixes, but this also depends on the optimization options [2] of the compiler.

Passing arguments via CPU registers has a huge preformance benefit, but also some drawbacks.

[1]: [https://msdn.microsoft.com/en- us/library/984x0h58.aspx](https://msdn.microsoft.com/en- us/library/984x0h58.aspx)

[2]: [https://msdn.microsoft.com/en- us/library/46t77ak2.aspx](https://msdn.microsoft.com/en- us/library/46t77ak2.aspx)

<comment><USER13> > Passing arguments via CPU registers has a huge preformance benefit, but also > some drawbacks.

Like what?

<comment><USER14> On architectures like x86, the set of registers is limited and some are special, so there is some contention going on.

</comment></comment></comment></comment></comment><comment><USER15> In embedded applications a lot of things happen before you can even attach a debugger. Most microcontrollers go through a non programmable hardware initialisation sequence which initialises enough hardware for the processor to run. The processor then runs from a section of read only (or at least write protected) memory. This code performs a further stage of initialisation and patching. This can be used by the manufacturer to implement their own bootloader or to perform configuration of the hardware to get around certain hardware bugs. Finally this code jumps to a known memory/flash location where the code that the engineer has written is located. It is from this point that you can usually start debugging.

<comment><USER16> Is this even public for us as developers, can we influence it and it influence us? If not, should we even think about it?

I had a lot of curiosity about how JTAG works and how I can build my own debugger for general targets, but is seems documentation for this is thin. I should look over openocd to see how those guys are doing stuff.

<comment><USER15> Most manufacturers do in broad terms disclose how the boot sequence works. Here is an example of the information disclosed about a Cypress microcontroller [1]. In some applications the startup time can be critical so this needs to be known. The code that runs before the engineers code doesn't usually have any effect and it puts the microcontroller into a known documented state so you don't really need to think about it.

[1] [https://community.cypress.com/community/psoc-6/blog/2017/05/...](https://community.cypress.com/community/psoc-6/blog/2017/05/04/psoc-6-boot- sequence)

</comment></comment></comment><comment><USER17> This is a misleading headline for the general audience.

What he writes is an introduction to bare metal programs for somebody who has worked under an operating system before.

In both cases a lot of code is run before main(). But very different code. In bare metal you more likely need to care what it does. In the operating system case the developers of the OS more likely have done more for you than you will ever need to know about.

<comment><USER17> A couple of years ago there was a conference presentation (FOSDEM?) about what a program does before reaching main(). The presenter (a Brit IIRC) went pretty fast, did not go into too much detail and it took him 30-40 minutes. I think the study was done on a BSD. Maybe somebody can provide a link, the video is online, but Google resists to help me...

<comment><USER18> That sounds like Brooks Davis' talk that he has given at a few conferences:

[https://www.youtube.com/watch?v=yWCMy5EiNkQ](https://www.youtube.com/watch?v=yWCMy5EiNkQ) [https://people.freebsd.org/~brooks/talks/eurobsdcon2016-hell...](https://people.freebsd.org/~brooks/talks/eurobsdcon2016-helloworld/20160924-eurobsdcon- helloworld.pdf)

<comment><USER17> Exactly! The name of the speaker helps to find what I was looking for [https://mirrors.dotsrc.org/fosdem/2017/Janson/hello_world.vp...](https://mirrors.dotsrc.org/fosdem/2017/Janson/hello_world.vp8.webm)

</comment></comment></comment></comment><comment><USER19> This seems to be concentrating on what the system loader is doing without mentioning whatever the statically linked standard library gets up to before calling the main function?

<comment><USER20> On microcontrollers, you often don't have a standard library, or if you do, it is limited, and doesn't do things before main. The article describes pretty well what happens on a microcontroller.

I would add that in some (most?) environments, the code that gets executed before main() is easily accessible: it sits in files within the project (written in assembly most of the time).

<comment><USER19> Cool, he is talking about the loader though, which would imply that this is all language independent? Except for where he mentions things getting executed before main in C++, which I'm assuming would be the doings of the C++ standard library.

<comment><USER4> It's still pretty language independent. Qemu for instance is a c codebase that depends on static initialization functions that run before main to register the different components.

</comment></comment></comment></comment><comment><USER21> There articles are so incomplete and always make it to the top on HN... I need some explanation.

<comment><USER13> It's not hard to take a look at doing this yourself: just run a program, break at main, and check what's in your stack backtrace.

</comment></comment><comment><USER22> you can have pre-main functions in in C as well (as a GCC extension). If you define functions with `__attribute__(constructor)` and they will be called before main(). You can even set the priority on them, and set post-main destructor callbacks. This works even for shared libraries loaded in run-time.

I've used this as a trick to automatically run unit tests, though, not for any real work.

<comment><USER23> "Yeah, yeah, but your scientists were so preoccupied with whether or not they could that they didn't stop to think if they should."

<comment><USER22> It can be useful for registering things automatically, like Go's init() functions which I've used on occasion.

</comment></comment></comment><comment><USER24> I am a neophyte x86 asm user.

I link using gcc and -nostdlib plus a very simple start.S:

       .globl _start
       _start:
       call main
       movl $1,%eax
       xorl %ebx,%ebx
       int $0x80

fasm 1.asm;gcc -nostdlib start.S 1.o lib1.a;a.out

"lib1.a" contains only the functions needed by a.out instead of, e.g., every function in libc.a

I use ar -M < 1.mri to script changes to lib1.a

(Did I forget about crt0.o?)

<comment><USER24> Below is a sample "1.asm" source file which in one expt yields a 2.2K static binary.

"main" has been renamed to "xyz".

        format ELF
        section '.text' executable
        public xyz

        extrn _exit
        extrn write

        xyz:
        mov eax,len00
        push eax
        push char00
        mov eax,1
        push eax
        call write
        call _exit

        section '.data' writeable

        char00 db "21 symbols", 0xA
        len00 = $ - <USER2>

<comment><USER24> (1.3K stripped)

</comment></comment></comment><comment><USER25> I love the XML question (whether your app does stuff with XML).

There have historically been some big security holes when parsing XML that it is a security code smell now if you are working with it (especially in lower level languages like C or C++).

</comment><comment><USER26> The linker script is what runs the global constructors in C++. Nothing preventing using a custom linker script in C to call some `premain()` function.

<comment><USER27> At least in gcc you can use constructor attribute to run code before main. I've seen this used to initialize modules and create a dependency tree of modules to initialize before main even starts.

</comment></comment><comment><USER28> Is it strange that C++ is able to do this but C itself cannot? Sometimes I hear the argument that "C is lower level" and their is the idiom that "C++ is C but better" (not that I believe these are true)

<comment><USER29> It's somewhat misleading when they say the C++ code runs before main. What's going on is after the same initialization steps the first code of your program is executed.

C and C++ have different syntax for what that code is, but it's pure semantics as far as the computer is concerned and C++ gives you zero extra power.

</comment></comment><comment><USER30> That's funny. In Swift i needed to make sure something runs as early as possible and I had to do the same trick. Put the code in the declaration of a variable like this:

var loadTheme: Bool = { Style.loadTheme(); return true; }()

</comment><comment><USER31> Found this article really interesting! It got me to write my first C program.

</comment><comment><USER32> > Command line arguments are received.

Nit: that's not the best wording. if the executable is being executed by something like `exec` then these are just "arguments"; the command line (i.e. a shell) isn't involved. Do embedded systems support something like `exec`?

<comment><USER13> They're still called command-line arguments out of convention: [https://en.wikipedia.org/wiki/Command- line_interface#Argumen...](https://en.wikipedia.org/wiki/Command- line_interface#Arguments)

</comment></comment><comment><USER33> This is like what happened before the big bang.

<comment><USER13> No, because what happens before main is observable.

</comment></comment><comment><USER34> Did someone on HN downvote everything except the bullet points in this article?

Seriously-- why is the font greyed out? What possible purpose does this serve?

<comment><USER35> They have this in their stylesheet across the website

p{color:#999;line-height:1.4;margin-bottom:.75em}

so paragraph tags, sadly, have the ugly grey font color by default

</comment></comment><comment><USER36> Strange they looked into the topic and came to the completely incorrect conclusion.

<comment><USER37> Can you elaborate for those of us unfamiliar with topic?

<comment><USER4> Doing some of that kind of super low level code in a C++ static initialization constructor is almost certainly a poor choice. Like setting up memory and the stack pointer. Doing hardware init there can make a lot of sense, but you have to be careful from an architectural perspective.

<comment><USER38> The article is not advocating initializing the stack pointer with a C++ constructor.

<comment><USER4> > * Memory segments are initialized. Memory segments such as .bss (for > uninitialized data), .data (for initialized data such as static variables, > global variables, local static variables, addresses of functions, and > function pointers), and .text (where the actual code resides) are > initialized and a valid stack is set up.

> * Command line arguments are received. This may not be relevant in embedded > systems as in embedded systems we don't usually call main() with arguments

> * The stack pointer is configured. This is necessary because the program > needs to know where to start from. Note that some microcontrollers may > require a start.c or cstart file that has the initialization code (whether > this file is manually created or auto generated).

> Now that we know what happens before main(), we might wonder if there's a > way we can control what happens before main, or if there is a way we can > write our own version of what happens before main(). In C, the answer is > largely no. Whatever happens before main() is largely dependent on your > architecture and compiler. However this is in fact possible in C++.

> One way you can do this in C++ is by declaring a global class object. Since > global variables are initialized before main(), the constructor of the class > you have initialized as global will run before main(). You can therefore > place the code you want to run before main() in such a constructor.

Certainly looks like it is.

<comment><USER39> You can't really initialize the stack pointer in a constructor, or indeed in C++ at all; there's no syntax for it and the compiler may use the stack to allocate local variables in the function prologue.

<comment><USER4> You can if you're super duper careful and throw in a little inline asm, depending on the architecture. ARM for instance is very likely not to need to spill to the stack on tiny little leaf functions.

It's an absolutely terrible idea, but I've seen engineers be so afraid of asm files that they'd try something like this.

<comment><USER5> The ARM Cortex-M series of chips is I believe kind enough to initialize the stack pointer for you before your code even executes, by copying your chosen stack pointer value from a special reserved location in the interrupt vector table. So in principle you could write all your hardware init code in C.

<comment><USER40> Yes, exactly this. As someone who has written startup code in many flavors of assembly (PIC, ARMv4, MIPS, PowerPC, AVR...), I appreciated what ARM did with the design of the Cortex-M architecture -- they designed it so that you could write fully-functional embedded software (firmware) without a line of assembly.

Normally, the 2 places you can't avoid assembly are (1) the startup code (because you're doing things like disabling interrrupts and setting the stack pointer) and (2) interrupt service routines - usually there is a little bit of magic on the front and back ends (for example on an older ARM7 chip, the CPU didn't automatically push / save any registers onto the stack, you had to do it yourself if you needed that).

With the Cortex-M, the CPU design and its microcode took care of all that, so all of the messy assembly stuff went away. Now, as someone who started writing 6502 ASM as a kid, I kind of miss it, but as someone who has to build lots of systems and ship products on deadlines, I like the change.

<comment><USER4> Eh, on the M4s, they borked it. There's an errata that the floating point spill doesn't take into account the divide pipeline, so it can not wait enough time for the pipeline flush, and corrupt the register save. So you have to write your own asm interrupt prologue anyway. : /</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Everything You Always Wanted to Know About "Hello, World" - <AUTHOR> https://www.bsdcan.org/2016/schedule/events/676.en.html <comment><USER2> I noticed that the slides contain an error.

        write(1, hello, sizeof(hello));

This will write the NUL byte to stdout, which is undesirable, but you probably won't notice it in a terminal. You might as well do this:

        write(1, hello, strlen(hello));

(You say, "But isn't that slower because of the call to strlen?" Fear not, strlen is optimized out by the compiler in this case.)

For fun, try compiling the basic program with optimization enabled, and look at the assembly output.

        printf("Hello, world!\n");

<comment><USER3>
      write(1, hello, sizeof(hello)-1);

</comment></comment><comment><USER4> I love it! I just finished a blog post on cross compiling [0] which alluded to needing to have crt*.o and friends available. I was just considering exploring them in a follow up post, but I think this talk was even better and I could just point people to it.

My favorite quote from the video, paraphrased, is: "get locale is per thread, for looking up what decimal separator you'd need, so you can have a server with multiple threads where each thread has its own locale."

Also, it's neat seeing the write syscall from the interpretation of the '\n' char; years ago when using Emscripten, sometimes it seemed printf wasn't working. Turns out, our implementation of printf also buffered writes up to '\n' characters. IIRC, write was implemented with JavaScript's console.log.

[0] [https://nickdesaulniers.github.io/blog/2016/07/01/android- cl...](https://nickdesaulniers.github.io/blog/2016/07/01/android-cli/)

</comment><comment><USER5> A link that focuses on higher level issues regarding I/O streams in C: [https://www.irill.org/videos/GNU_Hackers_Meeting/jim- meyerin...](https://www.irill.org/videos/GNU_Hackers_Meeting/jim-meyering- goodbye-world-the-perils-of-relying-on-output-streams-in-c).

In particular, I am not too happy with the title ;).

</comment><comment><USER6> Could someone add [video] to the title?

</comment><comment><USER7> Not really related to the article. I have to admit, i hate the hello world tradition. Its so unimaginative and boring. And it could have been anything. Ironic. "Must destroy humanity! But first.. must learn proper programming.." Iconic. "I thought therefore i was for 0.000125 ms" Retro. "The dungeon enters you from the north. It encounters a bug. The bug goes for critical hit." Instead "Hello World." Just from a Imagination point of view that is poor. I guess every single person on HN could come up with something better.

<comment><USER8> I think that's a good thing. The point of a hello world executable is everything _other_ than the message; using a consistent and standard message means the attention is on whatever else is happening.

<comment><USER9> I sometimes vary the message as a sanity check to make sure I'm executing the Hello World I think I am, instead something I previously compiled.

<comment><USER10> My go to substitute is "Hello Kitty", sometimes with punctuation.</comment></comment></comment></comment>


A broken cable smashed a hole 100 feet wide in the Arecibo Observatory - <AUTHOR> https://www.businessinsider.com/broken-cable-tears-100-foot-hole-in-arecibo-observatory-2020-8 <comment><USER2> I always assumed that the bottom of the dish was made out of concrete, but apparently it's relatively thin and floats above the ground.

Also, the pictures in that article made me feel nostalgic playing Golden Eye on the N64.

<comment><USER3> > Also, the pictures in that article made me feel nostalgic playing Golden Eye > on the N64.

Recently a mate and I plugged in an n64 to play Golden Eye and spent way too long messing with the cables before realising that it was displaying correctly and that the graphics just weren't that great. A 15 inch CRT hid a lot too.

We still had a great time - no Oddjob usage per house rules. Using him is cheating.

<comment><USER4> You'll be glad to know some modders are remaking the game using the Unreal Engine

[https://www.youtube.com/watch?v=R55y17rXdt4&feature=emb_titl...](https://www.youtube.com/watch?v=R55y17rXdt4&feature=emb_title)

<comment><USER5> Unfortunately, everything surrounding this remake implies that the project is dead and gone. The Twitter account and the IndieDB entry have both been deleted.

<comment><USER4> They were forced in to a rebrand a week ago due to legal threats on using the 007 licence. Dev work is still continuing though.

</comment></comment></comment></comment></comment><comment><USER6> Here's a bigger picture of the cable: [https://www.sciencealert.com/images/2020-08/5f32fb9b2618b96b...](https://www.sciencealert.com/images/2020-08/5f32fb9b2618b96b493620b8.jpg)

Thanks to article on sciencealert.com: [https://www.sciencealert.com/a-broken- cable-smashed-a-huge-h...](https://www.sciencealert.com/a-broken-cable- smashed-a-huge-hole-in-the-arecibo-observatory)

<comment><USER7> That's.. The same article (with credit given, even -- "This article was originally published on business insider" at the bottom)

</comment></comment><comment><USER8> How do radio telescopes track asteroids? I don't imagine that asteroids would be emitting radio waves, and their small size wouldn't seem to be an advantage either (though, a few miles across might be plenty to interrupt/reflect radio wavelengths? I dunno)

<comment><USER9> I had to look this up on Wikipedia[1], it can apparently transmit as well as listen the way that most radio telescopes do and in at up to 20 TW too. I had frankly thought the most powerful radars in the world were in the 10s of MW range and this thing has got a dish 305m in diameter compared to the 10-50m I'm used to for radars tracking satellites in orbit (I used to do software for that professionally).

I wouldn't have thought doing active radar scans of an astroid out in space was possible given that radar returns fall off as the 4th power of range. But given that power and dish size, given that these are large objects being tracked, and given that they move slowly compared to the radar cone I guess it's possible after all. But then again one of the first ballistic missile defense radars accidentally mistook the rising Moon for an attack and almost caused WWIII[2] so I guess there's precedent, even though the Moon is much larger and closer. I'm seeing references to it tracking asteroids in the Apollo group, so relatively nearby[3] and plates which are much larger. I'd guess that even the biggest asteroid in the main belt, 1 Ceres, would be too dim for it to see but I'm curious.

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

[2][https://blog.ucsusa.org/david-wright/the-moon-and-nuclear- wa...](https://blog.ucsusa.org/david-wright/the-moon-and-nuclear-war-904)

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

<comment><USER10> Regarding the 20TW from the Wikipedia page, that's referring to the EIRP - effective isotropic radiated power. This is the amount of power that you would need to radiate from a theoretical antenna with a perfectly spherically symmetric power distribution. The Arecibo antenna has a fairly narrow beam. The 20TW EIRP transmitter appears to operate at 2.38GHz. Plugging that frequency and the 270m diameter, a beamwidth calculator gives me a gain of about 75dBi. So, yes, it's like a 20TW transmitter, but only one tiny narrow little slice of it. At 75dBi gain, that's one (10^7.5)th of the total sphere, about 1 part in 30 million. Or, you could say, if the antenna were radiating the same power in every direction as it does in it's peak direction, that would be 30 million times as much power. So, dividing to find the power in that narrow beam, we get "only" about 600kW radiated in the direction it is pointing. Add in cable losses and other inefficiencies, and the power output at the amplifier is probably close to a megawatt.

</comment></comment></comment><comment><USER11> I don't know why the scrolling on businessinsider.com is broken for me, but this worked: [https://apnews.com/668bb0219afcc086376c9d56685ab9d0](https://apnews.com/668bb0219afcc086376c9d56685ab9d0)

<comment><USER12> This can happen on sites where you have an adblocker removing modal overlays elements but there are still an invisible part or other CSS means limiting scrolling.

<comment><USER13> For me they blurred the images because of my ad blocker. Or probably because I have cookies blocked.

<comment><USER14> the images loaded in for me, I think it's lazy loading

<comment><USER15> lazy internet can't be bothered to deliver the images...

</comment></comment></comment></comment></comment><comment><USER16> You expect me to believe this wasn't the aliens?

</comment><comment><USER17> I grew up visiting the Observatory all the time.

Before Trump made my home island famous, Arecibo Observatory was the one place I could point to mainland American friends so they recognized Puerto Rico (since it's famous, used in scifi movies, etc.)

Hope the government assists in reconstructing the dish.

<comment><USER18> Given HUD still hasn't released the relief funds for Maria in 2017, I'm not holding my breath on any other help coming here.

There was an episode of Agents of S.H.I.E.L.D. set in San Juan, though. So now there's something else mainlanders have heard of.

<comment><USER17> Ha, indeed..

</comment></comment></comment><comment><USER19> Seems like such a strange break. I feel like there's supposed to be a dramatic piece of video in slow-mo showing one strand breaking, then the additional stress causing the next one to snap, until the final 'plink' before the whole thing comes crashing down.

</comment><comment><USER13> I hope this wasn't due to underfunding. Old stuff breaks, but it should last when it is being maintained properly.

<comment><USER20> Not only underfunded, but also damaged in Hurricane Maria in 2017. [https://skyandtelescope.org/astronomy-news/arecibo- observato...](https://skyandtelescope.org/astronomy-news/arecibo- observatory-6m-upgrade/)

</comment></comment><comment><USER21> I always say that 99% of my IT issues are bad cables.

Looks like that applies here, as well...

</comment><comment><USER22> That first picture reminds me of a level in a team-based FPS I played briefly. Can't remember the name. You can send drones out and stuff.

<comment><USER23> As another comment points out, probably "Rogue Transmission" in Battlefield 4?

<comment><USER22> That looks very similar, but this one was an older game. I'd look it up but I was playing it on XBOX Live free trial and I let my subscription lapse..

<comment><USER24> "Frontlines: Fuel of War" perhaps? It does have a satellite dish in one level, and the gameplay prominently features drones as far as I can remember.

[https://oyster.ignimgs.com/mediawiki/apis.ign.com/frontlines...](https://oyster.ignimgs.com/mediawiki/apis.ign.com/frontlines- fuel-of-war/b/b6/Frontlines309.jpg?width=1920)

[https://oyster.ignimgs.com/mediawiki/apis.ign.com/frontlines...](https://oyster.ignimgs.com/mediawiki/apis.ign.com/frontlines- fuel-of-war/c/c6/Frontlines308.jpg?width=1920)

Source: [https://www.ign.com/wikis/frontlines-fuel-of- war/Mutliplayer...](https://www.ign.com/wikis/frontlines-fuel-of- war/Mutliplayer_part_6)

</comment></comment></comment></comment><comment><USER25> Interesting to me that everyone is calling this a "cable".

It might be the combination of climbing/sailing/rigging/nerd ... but I'd never call that structural element that broke a cable.

The only cables I can think of either carry electrons, photons, or signal wires (say, a clutch cable). I'm being maybe pedantic, curious what others think, esp in industry.

<comment><USER26> I don't understand how you can be a sailing/rigging nerd and say that isn't a cable.

Last time I checked nautical cables do not carry photons or signals. Arresting cables, bowden cables are also cables that do not do so.

<comment><USER25> I would call it wire rope, or a support line. If I worked with it often enough, I'd probably refer to it by size or construction (EHS, 7x7, etc)

I'd argue that a Bowden cable (eg a clutch cable) is primarily carrying a signal... really though, just thinking through what defines a cable.

By contrast, rope and line are terms with fairly specific meanings.

</comment></comment></comment><comment><USER27> _" the Arecibo Observatory, which searches for aliens"_

It seems clear what happened here. Aliens.

<comment><USER3> The abbreviation for the time zone, ET, caused me to pause.

</comment></comment><comment><USER28> wow, I feel like "Smashed a hole" isn't quite doing that carnage justice. Good luck to them on the repairs :(

</comment><comment><USER29> Illuminati preventing us from hearing signals. Aliens Confirmed!!

</comment><comment><USER30> Dupe of [https://news.ycombinator.com/item?id=24127343](https://news.ycombinator.com/item?id=24127343)

</comment><comment><USER31> Insert not saying it's aliens meme</comment>


A 37 day stay for Richard Glossip - <AUTHOR> http://www.ok.gov/triton/modules/newsroom/newsroom_article.php?id=223&article_id=16766 <comment><USER2> A good baby step - but the real issue here is the (lack of) evidence of his guilt in the case.</comment>


Macmillan's DynamicBooks Lets Professors Rewrite E-Textbooks - <AUTHOR> http://www.nytimes.com/2010/02/22/business/media/22textbook.html <comment><USER2> ...and charge more for the next edition.

<comment><USER3> _"Basically they will go online, log on to the authoring tool, have the content right there and make whatever changes they want," said Brian Napack, president of Macmillan. "And we don't even look at it."_</comment></comment>


Cringely: Apple to buy Adobe in bid to dominate digital content creation? - <AUTHOR> http://www.pbs.org/cringely/pulpit/2008/pulpit_20080111_003899.html

<comment><USER2> Has Apple done any acquisitions of this scale before? FileMaker comes to mind.

Adobe and Apple both have _very_ strong brands. I would be a huge destruction of value to kill Adobe's brands in favor of a unified Apple marque (Apple Photoshop, anyone?).

There is significant overlap on the creative side of things, but Adobe also has a significant enterprise software business, as well, with Acrobat Forms/Breeze/etc. There's also the Macromedia properties, and also Scene7, which is a completely different kettle of fish.

I could see them buying some core properties and auctioning off the rest.

<comment><USER3> _"FileMaker comes to mind."_

I'm not sure that's much of an example of a large-scale acquisition. When Claris (a wholly owned subsidiary of Apple) bought the company that made FileMaker, it was hardly anything like the scale of Adobe today. Since then, FileMaker has been spun off into its own wholly-owned subsidiary of Apple (I think it's technically just Claris renamed), when other parts of Claris were folded back into Apple after the NeXT merger.

Maybe you were referring to NeXT as a large-scale acquisition?

<comment><USER2> Yeah, that was kinda misplaced-- I was actually thinking of an example of a Apple acquisition continuing to use its own brands.

</comment></comment></comment><comment><USER4> I really hope not.

I don't really like Adobe as a company, but whenever Apple buys a professional tool house, they kill it but awful. Witness the demise of Shake and Silicon Grail, both top notch compositing packages for Irix, Windows and Linux. Jobs bought them both, jammed them into a forced marriage and told them that their stuff could only run on Apples. People in the effects industry stayed away in droves (because of the Mac as dongle thing), which finally led to Apple fire- saling the Shake source code and killing the product. _That_ sure worked out well.

Now the only professional compositing option for Windows and Linux is Eyeon Fusion. Not a bad program, but the only one left standing thanks to Apple's actions. I suppose that if Apple buys Adobe, makes everything but Flash players Mac only, then Corel can finally make a comeback...? ;-)

<comment><USER5> there is a huge gap right now (read market opportunity) in desktop compositing software. The options that remain are either very expensive or not very functional.

</comment></comment><comment><USER6> This is more far-fetched than the Apple-Google merger that's been oh so rumored lately. :/

</comment><comment><USER7> Maybe not an acquisition... Can you say that something else could be "in the air" ([http://blog.wired.com/gadgets/2008/01/macworld- theres.html?c...](http://blog.wired.com/gadgets/2008/01/macworld- theres.html?cid=96829346#comment-96829346))?

Perhaps, an iPhone SDK based on Adobe AIR?</comment>


Ten Simple Rules for Starting a Company [PLoS Computational Biology] - <AUTHOR> http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002439

<comment><USER2> Does anyone have any advice for a computer science student seriously looking at the field of computational biology as a place for a career? I'd all but forgotten about biology until reading The Diamond Age right before seeing a video of ATP synthase in action [1].

Now, I know stuff like that doesn't have a lot to do with what is done in computational biology, but it did fire the imagination. I'm working my way through Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology by Dan Gusfield [2], and have implemented (with tests) all of the algorithms encountered thus far in addition to some of the exercises [3]. So far, I really enjoy all the material.

Clearly reading a textbook is not enough to break into a field, but my degree is one in computer science and pure math with an internship in the HPC field. It's getting bit late to throw in a minor in biology or anything like that. However, all of my research-leaning friends in physics and such tell me that what everyone wants is someone who knows how to code, which is certainly something I know well. Is that similar to the situation in computational biology?

Any other advice or knowledge of what it's like to work in the field would also be greatly appreciated :)

[1] <http://www.mrc-mbu.cam.ac.uk/node/448>

[2] [http://books.google.ca/books/about/Algorithms_on_Strings_Tre...](http://books.google.ca/books/about/Algorithms_on_Strings_Trees_and_Sequence.html?id=Ofw5w1yuD8kC&redir_esc=y)

[3] <https://github.com/ahelwer/IvoryTower/tree/master/ASTS>

<comment><USER3> It's pretty hard to give good advice without knowing if you want to go into industry or academia. The job market for computational biologists in industry is tight and problem-specific, and you'll generally need some research experience before you can land a gig -- there's not much computational biology going on that isn't considered "research" (even in industry).

That said, I'd recommend you start off by looking for a programmer gig in a good research lab. It's not as difficult to get one of these jobs because good CS students usually go into other fields, and academic labs are more willing to train. Spend a few years there learning the process of research, and you'll be much better qualified for an industry job. You'll also have a better idea if you really want to pursue computational biology as a career.

Other posts in this thread recommend applying for engineering jobs at biomedical startups (23andMe, Counsyl, etc.) That could be a decent option, but remember: if you're working on the website (or the robots, or...), you're not learning how to do computational biology. So it may not be the best long- term choice if you're interested in the science. Make sure that the position fits your long-term goals.

Finally, the general rule in computational biology is that "biology" is the most important word. From the perspective of a biology researcher, programmers are a commodity -- an expensive commodity, but still generic and interchangeable -- but _biologists_ who know computer science are rare. The only way to ensure long-term success in this field is to be the latter. So regardless of what kind of job you pursue, make sure that you're spending at least as much time learning the problem domain as you are learning about computers. You really do need to become a domain expert. Being a computer scientist isn't enough.

<comment><USER2> I would definitely want to go into industry. This is not to say I am averse to getting a masters degree, but I am having great fun in my internship in the private sector.

I believe I'll have one more summer left in my degree, so that's 4 months open for an internship. Do you suppose it would be possible to get a meaningful feel for the field in practice by finding an internship at a lab or company somewhere?

<comment><USER3> It's not much time, but it's better than nothing. You'll get a taste for the field, but that's about it. Start looking now.

If you have another school year before graduation, you should also seriously consider doing some work in a campus biology lab. If you're at a larger school, there will be at least one lab that does computational biology work, and if not...well, it's important to know something about biology. A winter spent in a lab will be a learning experience, either way.

And if you're having trouble getting your foot in the door, here's an easy way to get a gig in a campus lab: work for free. Tell them that you're a CS student interested in computational biology, and that you'll be free, eager labor if they'll let you learn about biology research. It's a time-honored tradition -- nearly everyone in the field gets their start this way.

</comment></comment></comment></comment><comment><USER4> What a great reference!

Having already started a company, I can say this is true and wish this list I'd had it before. BUT, the majority of these "commandments" I already knew.

The important point missing here is that until you do it on your own (solo or with partners), you won't get that art & science part right: you'll just think it's luck.

(prior expertise in your field + management/leading experience certainly helps)

<comment><AUTHOR> Does the first point match your experience? I feel like VC emphasises getting a great product ready first over everything else.

<comment><USER4> I agree with the point, although it's a little "all over the place".

I'm taking it as a "beware sign" for knowing what's ahead; i.e. to consider the big-picture around whatever you are building (it's very easy to get sucked into some "interesting direction" and get side-tracked; us geeks tend to do that).

To answer your question: yes, if I would be an investor, I'd also want to see the prototype/MVP, because:

\- less risk taken

\- 1 picture == 1000 words => demo == millions words

\- you show you can execute what you wish (not getting side-tracked)

from founder point of view because:

\- early adopters will help you shape your product (I just pivoted this month)

<comment><AUTHOR> I see what you mean about it being "all over the place" first they discuss a great product alone is not enough but then instead talk about plans and ideas rather than prototypes/implementations.

I've never started a business so my naive viewpoint is that many of the most successful companies appear to be built on having a great product alone then focusing on profit second, for example Google, Facebook, and Twitter. These are the largest of the the large though, so is the story different for smaller companies?

<comment><USER5> Never started a company either, but I think the key issue is barrier to entry. Facebook and Twitter have networks which are impossible to duplicate, and Google got a lot of money up front and used it to move really fast. In contrast, the great product they describe in the article is a standalone piece of software by a small group, easily duplicated if it takes off.</comment></comment></comment></comment></comment>


The big data successor of the spreadsheet - <AUTHOR> https://medium.com/p/rewriting-excel-for-the-era-of-big-ger-data-part-2-c13cc40f248e <comment><USER2> I think the problem now is not a better excel but a better access; spreadsheets are pretty good at what they do but biz people use them when they should use a database because they find databases less intuitive.

<comment><USER3> I feel the same way. In the 90s you'd find small businesses (and some larger ones!) built entirely on a single Access database on a network share. At the current small business where I work, we use google sheets instead, and it leaves a lot to be desired.

For the past few years an easy-to-use database interface for small businesses has been my primary idea of what I'd like to build if I founded a startup.

<comment><USER4> QuickBase(.com) may be something close to what you want: while mostly aimed at > 10 people businesses. It's not great, but it does have a reasonable amount of power... especially for apps with say less than 10 tables.

DabbleDB was a good one for individual users, until Twitter bought it and shut it down. Google says grovesite.com is a competitor... and I also think Dabble's founders were debating rewriting it.

There's always the old FileMaker Pro, or databases of that age / time. (4D??)

<comment><USER5> @jewel, @kikidrew, @rpwilcox: We're building this: [https://fieldbookapp.com](https://fieldbookapp.com). We're still in private beta, but message me (email@example.com) and I can get you an invite.

</comment></comment></comment></comment><comment><USER6> Soulver is the best evolution of a calculator I've ever seen, think of it like a dynamic paper tape of calculations you can work with and alter and it keeps the results updated.

</comment><comment><USER7> """The interfaces require the end-user to know about the concept of a table, rows and columns, the concept of logical expressions, as well as aggregation, even though none of those are directly visible nor have a 'real life' analog."""

This sentence expresses the problem I see with designers.

Instead of making that disappear into magic why not focus on actually purposely and clearly educating people about these CORE concepts?

edit: Think of how you would do this if you were Khan academy...

<comment><USER8> The pragmatic reason is that it takes a lot of time. As a product designer at a company that actually tackles exactly this problem, we generally have approximately 0ms to stop a user's workflow in order to teach them a cool concept.

Building intuition DURING their workflow is where things get really exciting for designers though.

Edit: Should point out that I'm not quite sure if you're suggesting we teach this in school, or...? But I read this as a designer's job to teach this in- product.

<comment><USER7> 0ms is a good goal for calling lyft or uber.

It's probably not a great goal for coherently querying data in a flexible and powerful way.

Having very little friction when your user has attained some fluency is a great goal however.

</comment></comment></comment><comment><USER9> [http://en.wikipedia.org/wiki/Powerpivot](http://en.wikipedia.org/wiki/Powerpivot)

<comment><USER10> I was about to post a comment on power pivot myself.

We were building a lot of tools in R but eventually switched most of it to power pivot. My onl complaint would be that it isn't practical to refresh it with new data, it requires more manipulations than I would like.

</comment></comment><comment><USER11> I work in a big, dumb enterprise with too many spreadsheets and Access databases.

What made me move away from Excel spreadsheets:

1) As in the infamous case, its too easy to miss extending a range when you add new data[1] 2) There's no good way to manage concurrent access 3) Doing aggregates of aggregates is really hard

What made me then move away from Access databases:

1) Excel and Access attempt to guess the "type" of cell contents automatically, and this creates issues (Is 060E2 a product, or a scientific number? Of course, its 6000. Is 3/6/2015 a US date? Access will figure it out without you.) 2) There's _still_ no good way to manage concurrent access 3) Storage limits still aren't that great if you want to deal with more than a few GB of data

For me the ideal spreadsheet would solve all these problems :) I moved to Postgres, instead.

[1][http://www.bloomberg.com/bw/articles/2013-04-18/economists-s...](http://www.bloomberg.com/bw/articles/2013-04-18/economists- spreadsheet-error-upends-the-debt-debate)

</comment><comment><USER12> At my workplace we use SAS Enterprise Guide for some of this stuff. I like it because it has a drag and drop GUI that non technical users can utilise to extract data (It executes SQL queries in background) and do simple operations (like aggregations, statistics, graphs, merging, filtering etc) At the same time it has a decent programming language underpinning it and pretty advance statistical capabilities.

On the down side it still suffers from some of the problems the article references. Some non programmers, even quite technical people simple don't grasp concept of querying and joins.

It is also horrendously easy for the auto generated SQL to be horribly inefficient the default appearance of the plots and other graphical output looks ugly etc, which leads to people doing things like extracting subsets of data from SAS and then pasting it into excel to manipulate it. Which is kind of self defeating.

</comment><comment><USER13> The "pipeline of blocks" idea goes back a long way (Visual Smalltalk anyone?), I'm excited to see it applied in this way.

</comment><comment><USER14> Datameer - big data spreadsheets

Scratch - best thought out block language</comment>


Teensy USB Development Board - 16MHz, $19 - <AUTHOR> http://www.pjrc.com/teensy/ <comment><USER2> What practical use does this serve? Just for fun hacking?

For anything of significant use, I think you need something like the Beagle Board (beagleboard.org) or a Gumstix. Anyone know of any others?

<comment><USER3> Looks like fun to me.

I know very little about hardware hacking but I had an idea the other day: I wanted to rig a mini-stoplight up (green, amber, red LEDs) that I could plug into my computer's USB port and hit hot keys to change which LED was lit.

Then my wife could look over and see if I was super-focused or not. When I was thinking about code or trying to do science writing, I would toggle the thing to the red LED; when I was screwing around on HN, I would toggle it to green.

I looked around naively but couldn't find something small & easy. This product could maybe fit the bill nicely.

Whether my wife would appreciate such a thing is another matter. :)

<comment><USER4> Bonus if you write some code to detect your activity (based on active application or typing/clicking patterns or who knows what) and then communicate via usb to your stoplight.

At that point, you could probably sell the thing on thinkgeek.com and watch cubicles everywhere fill up with activity indicators. Of course, there would have to be manual override, so cube workers could set it to red all day when they don't feel like doing anything.

<comment><USER3> Nice. Maybe let user build rules like:

When a Terminal window is in the foreground and has an open ssh session --> amber

When Firefox in foreground, displaying news.ycombinator.com --> green.

Never automatic red, though: I would want to conserve its signaling value, so that it would always mean, "if you talk to me right now you are going to mess up a thought structure that was difficult to build".

[edit:

Hm, a little bluetooth-enabled one of these actually would be a pretty cool thinkgeek product.

]

<comment><USER5>
      -- In AppleScript while I wait for tea to steep...
      if application "Terminal" is frontmost then
      	tell application "Terminal"
      		get name of first item of windows of it
      		if result contains "ssh" then
      			set red to false
      			set yellow to true
      			set green to false
      		end if
      	end tell
      end if

      -- or a one-liner...
      if application "Terminal" is frontmost then tell application "Terminal" to ¬
      if (name of first item of windows of it contains "ssh") then set stoplight to "yellow"

<comment><USER6> This is even easier with a window manager like Xmonad, since you can configure it to "log" state changes. No polling necessary.

</comment></comment></comment></comment></comment></comment><comment><USER7> Can this device communicate via USB during runtime or is the USB port only there for programming purposes?

<comment><USER7> To answer my question:

The Teensy's USB port is multi-purpose. If the HalfKay bootloader is activated (via a push-button on the board), the USB port is used for firmware- manipulation purposes. HalfKay lives on the EEPROM.

Once the device is powered off then on, the USB port is used as a normal communication device and can be fully utilized to speak with the PC or other USB peripherals. USB communication code is in your program and lives on the FLASH.

</comment></comment><comment><USER8> In a few years, naming the product "Teensy" will seem ironic.

<comment><USER9> Not really. Further shrinking of that board is constrained by the number of I/O pins required, whose size cannot shrink because of the limitations of human solderers.

<comment><USER10> In a few years, your comment will seem ironic too ;)

<comment><USER11> Only if we switch to using iron based solders (or solderers)..... :)

<comment><USER12> Maybe we'll all have tiny micro-assembly bots and rapid prototyping printers that can also print electronics, so nobody needs to solder anymore.

<comment><USER13> Maybe someone will invent magic, and we'll be able to _abacadabera_ in pea- sized 10ghz processors!

My dad told me once that some people from his generation were positive we'd have colonized the moon by 2010...

<comment><USER14> your dad was probably quoting people that were not taking in to account the various money sinks that ate up the funds that could have been used to make that happen.

Wars and such...

<comment><USER11> That's not it. It's not about the money - it's about the interest. There is just no reason to colonize the moon, so no one did.

<comment><USER15> There is a compelling long-term reason to colonize the moon: to solve the issues we need to solve to expand to other solar systems.

If we don't, it seems totally possible that at some point a large-scale disaster on Earth could wipe out all human life.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I wonder if this can be used to create Halloween Haunting effects - i.e. playing a sound when an IR trigger is ...triggered. I would love to embed something like that in a scarecrow with a crazy mask sitting on my front porch in a rocking chair. Kids come up - trip the IR - and the eyes light up and it says 'Happy Halloween MUHAHAAHAHA!!!!.

<comment><USER17> It definitely can.

</comment></comment><comment><USER18> Well fine. If you are going to sell me one laid out better than I managed and assembled for less than I can have the board fabricated and the parts purchased for a lot of 10 then I'll just have to buy your product instead.

I was close though. About 10% larger in area.

</comment><comment><USER19> I heard way more people doing stuff with the Arduino.

Do people know how Teensy and Arduino compare?

I do know that Arduino is 100% Open Source which is why so many cottage electronic outfits provide them premade.

<comment><USER18> Comparing to arduino:

* Teensy has a native USB, much faster than the USB/serial bridge of an Arduino. I also find the discrete transaction nature of USB easier for communication, though good old fashioned serial is easier for many people to integrate on the host side.

* Arduino has analog inputs, the chip in Teensy does not. If you need analog you can either add an analog converter chip, or go ghetto and use a digital pin, a resistor, and a capacitor and time how long it takes to recharge after you flush the charge. Drawbacks abound.

* Arduino is a complete environment tailored to easy uptake. This is the _most_ important point of Arduino. You can take someone who does not know what a compiler is, and in minutes they can be in control of hardware. The brilliance of Arduino does not show in the bullet list, it is brilliance by omission.

</comment></comment><comment><USER20> I was just about to look for a brain for my robot. Excellent! The only concern I have is that the AVR is soldered down; it won't do unless there is a socket.

<comment><USER18> I don't think any of the AVR USB microcontrollers come in a DIP format. Sockets for the available formats tend to be pricey, large (relatively), and not a good choice for high vibration environments.

Why do you worry about being soldered down? I suppose if you are going to accidentally blow the chip it is a cheaper repair, but with a cheap hot-air unit and the video tutorials at SparkFun you should be able to replace that chip if you like. (You will have to figure out how to load the initial bootloader if it is different from the one supplied by AVR, but AVR's is sufficient.)

If you do blow a pin, it probably isn't a total loss. I was winging a little change to just such a processor and ran a 24v line to a digital pin. The pin stopped working, but the rest of the chip continued just fine. The moral is for prototyping you can just use different pins, learn your lessons, and your final deployed unit should be fine.

<comment><USER21> And with proper design you won't blow the chip. Let me rephrase: with proper design, the only thing that will blow the chip will blow the entire board!

Even so, if you do it's only $19!

<comment><USER18> Proper design doesn't cover: "Oh look, I can also monitor the 24v battery level if I stick a little voltage divider onto this extra pin" followed by soldering the pin to the wrong end of the high resistor 30 seconds later and powering up.

Frequently these breadboard type computers get accidental shorts from large fingers or are attached to incompletely specified devices ripped from old equipment. That's the only pin I've ruined in many projects and lots of breadboard work, but it happens. It's nice to know I can just move to the next extra pin and continue.

<comment><USER21> [Shrug] At risk of sounding like a curmudgeon: learn to be careful, this isn't software.

With experience some things become second nature: no loose conductors on the test bench; double check before powering up; test one change at a time; add a temporary BIG resistor to any input that's over the PS voltage, don't change connections with power applied, etc.

Ask me how I know that EPROM based devices release a pretty purple flash right before the smoke comes out :-)

</comment></comment></comment></comment></comment><comment><USER22> Neat. I've had good luck with Olimex stuff, for example [http://www.sparkfun.com/commerce/product_info.php?products_i...](http://www.sparkfun.com/commerce/product_info.php?products_id=29) . You need to buy a parallel, usb, or serial programmer as well but that's a one time cost.

</comment><comment><USER23> Awesome! How do you use it in Linux?

<comment><USER24> <http://www.pjrc.com/teensy/loader_linux.html>

<comment><USER23> Great, thanks! I wonder if there's a free-software approach too.

<comment><USER24> Digging a bit deeper, yes:

<http://www.pjrc.com/teensy/loader_cli.html>

Has the source to a command line downloader (GPL)

</comment></comment></comment></comment><comment><USER25> I've used these in the past - <http://www.ti.com/msp430> \- I believe they have lower power requirements than the AVR (at the expense of less memory). Does anyone know if the AVR has a external memory controller?

<comment><USER18> That AVR does not, but they come in other variants with much more memory and ones that allow external memory (though at the expense of many pins).

</comment></comment><comment><USER26> Could anyone recommend a cheap, small GPS unit that would work with this?</comment>


Stealing Used Nuclear Fuel Is About to Get Harder - <AUTHOR> http://motherboard.vice.com/read/stealing-used-nuclear-fuel-is-about-to-get-harder

<comment><USER2> It will take months, years, decades to scan each cask. They are basically doing a cat scan of a large object using natural muons, cosmic rays.

There aren't very many rays at the earth's surface. A cat scan will use millions, billions of particles to form an image. The flux of cosmic rays for this scanning method will be on the order of one or two rays per liter of object per second. Building up any image will, at that rate, take a loooong time.

These nuclear casks are probably the only targets willing stand still long enough. Scanning something small, like a lead safe, might take literally centuries.

<comment><USER3> The Wikipedia page for muon topography describes an experiment from 2011 where a reactor mockup was scanned in three weeks. That's a long time but seemingly reasonable for this application.

</comment></comment><comment><USER4> Strange lede for a cool technology. I suppose it is how they managed to get funding, but the other uses are much more interesting. There's a lot more detail in the linked article about imaging Fukushima Daiichi: [http://motherboard.vice.com/read/scientists-are-using- cosmic...](http://motherboard.vice.com/read/scientists-are-using-cosmic- radiation-to-peer-inside-fukushimas-mangled-reactor)

</comment><comment><USER5> Why don't they just booby-trap the whole place so that the attack vector involving heavy explosives is an exercise in suicide.</comment>


List of open source applications for macOS - <AUTHOR> https://github.com/serhii-londar/open-source-mac-os-apps <comment><USER2> I have a personal list of macOS apps I use that is similar & goes in detail in how I use the apps.

[https://github.com/nikitavoloboev/my-mac- os](https://github.com/nikitavoloboev/my-mac-os)

Karabiner specifically is life changing software.

At this point ALL keys on my keyboard are custom modifier keys. It's wild.

[https://github.com/nikitavoloboev/dotfiles/blob/master/karab...](https://github.com/nikitavoloboev/dotfiles/blob/master/karabiner/karabiner.edn)

<comment><USER3> What do you do if you lose your data and have to start over? As far as I know, there is no way to automate the settings of all of these macOS apps that don't have config files that can be backed up like VSCode. Do you use Time Machine?

<comment><USER4> They all have to be saved somewhere. A lot of Mac only apps also use the defaults[0] system which allows you to read/write values there.

      man defaults
      defaults domains | tr " " "\n"
      defaults read com.apple.Safari

For dot files, I personally use stow[1] but there are other utilities and workflows out there[2].

      [0] https://ss64.com/osx/defaults.html
      [1] https://www.gnu.org/software/stow/
      [2] https://dotfiles.github.io/

<comment><USER5> Note that, at least as of 10.14 (Mojave), lots of built-in macOS preferences do not like their settings to be changed this way. For example, you can use `defaults` to change preferences for the trackpad to your heart's content, but they won't take effect immediately because IOKit (I think) has a shadow copy of the preferences that is much harder to modify. The pref pane for the trackpad ends up changing both the plist and the IOKit prefs to make preference changes take effect immediately.

If you use a lot of `defaults` commands, you'll want to reboot immediately afterwards.

</comment></comment></comment></comment><comment><USER6> Every time I come across a paid 30 dollar version of software being sold for macos, I can find a free open source alternative that often works better pretty quickly.

<comment><USER7> freeware and people like you have killed indie development. Great software should be paid for. Unless or cures cancer or solves humanity's issues, it should not he made available for free. Otherwise the author of a paid version is forced into office jobs because some idiot makes a free clone just to have something on their cv.

<comment><USER8> There are several perks to paid software that is typically missing from just free software:

* Guaranteed updates/bug fixes

* Better support

* More polished product

There are free alternatives to basically everything, but people still pay for stuff.

<comment><USER9> >Guaranteed updates/bug fixes

Such a bold statement. Numerous times paid software produced errors, which went unfixed until the product was discontinued and then you had to buy a new version.

<comment><USER8> I think "Guaranteed" was a bad choice, but I'm sure it's still better on average than the majority of free/OSS projects.

Unfortunately there will always be a small number of companies using scummy tactics like that, but not most of them.

</comment></comment></comment></comment></comment><comment><USER10> Cool list. I'd love to the the equivalent for Linux. I know I can open some package manager and check, but it would nice to see the cream of the crop.

<comment><USER11> The arch wiki has a great list here:

[https://wiki.archlinux.org/index.php/list_of_applications](https://wiki.archlinux.org/index.php/list_of_applications)

</comment></comment><comment><USER12> Somewhat unrelated but does anyone know why there isn't a basic open source local-file MP3 player for iOS? I can't seem to find one (all of the ones on the app store are either scummy looking or "radio" players) -- does Apple block competitors to Apple Music?

I've considered building a simple open source MP3 player for iOS (which has no baked in ties to any other radio services or online services), but surely the reason one doesn't exist is because it would never pass review or is against Apple's ToS somehow?

<comment><USER10> [https://apps.apple.com/us/app/vlc-for- mobile/id650377962](https://apps.apple.com/us/app/vlc-for-mobile/id650377962)

<comment><USER12> Thanks so much for the recommendation -- amazed that I didn't manage to find VLC in all my searching. I don't think of VLC for playing music so much so maybe that was where my blindspot was.

</comment></comment></comment><comment><USER13> It doesn't seem like aesprite is open source

[https://github.com/aseprite/aseprite](https://github.com/aseprite/aseprite)

The source is available but the license seems to say you must pay for a copy and that while you can download the source and compile you can not distribute what you make, custom compiles for personal use only.

It does look like a great program though and I'd happily pay the $14.99 they are asking if I was in the market for a pixel editor

<comment><USER14> Technically, it _is_ Open Source, in the sense that the source code is available to the public.

It is not, however, free software [0]. It also probably fails the official Open Source Definition [1].

[0]: [https://www.gnu.org/philosophy/free- sw.en.html](https://www.gnu.org/philosophy/free-sw.en.html) [1]: [https://opensource.org/osd-annotated](https://opensource.org/osd-annotated)

<comment><USER13> It's not Open Source in the same sense that Unreal Engine is not Open Source. Apparently the term "source-available" license is used to describe software you can access the source but don't have permission do use it freely the same ways as "open source".

Aesprite was open source until 2016 thoughs so maybe the reason it's on the list is the list was created before 2016.

[https://www.aseprite.org/faq/#if-aseprite-source-code-is- ava...](https://www.aseprite.org/faq/#if-aseprite-source-code-is-available- how-is-that-you-are-selling-it)

</comment></comment></comment><comment><USER15> Not to hijack from this thread, but is there a similar list for Windows? That would be great to have.

</comment><comment><USER16> I'd add Downlink [1] to the Wallpaper category. No connection to the developer, just a user here.

[1] [https://downlinkapp.com](https://downlinkapp.com)

</comment><comment><USER17> I'd like to see SolveSpace (CAD) on there, but the mac support will be dropped soon unless someone can jump in to help.

</comment><comment><USER18> Where is VideoLAN's VLC

</comment><comment><USER19> I really wish a tool like EA Architect but for Mac.

</comment><comment><USER20> This list is missing tons of app for Mac OS that are written using JavaFX.

</comment><comment><USER21> When apple opensource ios Simulator :)</comment>


Ask HN: Can iPhone applications be used on iPod touch? - <AUTHOR>

I have heard that iPhone and IPod touch are almost same, only that later doesnt not have phone features. Is this true? Can it Touch run IPhone Apps ? like games , bloggign software etc? <comment><USER2> The answer is yes, with some exceptions. The iPhone has a camera, GPS, cell phone and G3 capability, bluetooth aNd a built in microphone and speaker, which the iPod Touch lack. The app store is device aware and will only sell you applications you are able to use on your device. So you won't be able to use any applications that require the above features, but you'll be able to use all that don't (for example, most games.)

</comment><comment><USER3> Yes, I believe what you have heard is true. Ipod touch is like the iphone without the phone.

<comment><USER4> and I think also 1) Camera and 2) GPS (not sure)

<comment><AUTHOR> No, it neither iPhone nore iTouch has a camera. Thats for sure.

<comment><USER5> I assure you, that the iPhone DOES in fact have a camera!

<comment><USER6> Yes True. iPhone has a camera.

<comment><USER4> iPhone = It has camera, It has gps

ipod touch = no camera(very sure), gps (I think it does noot have it)

</comment></comment></comment></comment></comment></comment><comment><USER7> I play Peggles on my iPod touch.</comment>


A silent epidemic of male suicide (2011) - <AUTHOR> http://www.bcmj.org/articles/silent-epidemic-male-suicide <comment><USER2> >Although men die by suicide at a higher rate, women have a higher rate of attempting suicide.16 This pattern is evident among youth and persists over the lifespan.

Why is this? I've read before that modes of suicide tend to be gendered -- ie, gunshots to the head for men and overdoses for women. Is this the entire story? Are women more likely, consciously or unconsciously, to be social signaling for support than men when they attempt suicide?

I lost my brother to suicide three years ago. I began attending counseling this year after a protracted period of personal turmoil in its aftermath, and it's a topic I spend a lot of thought on. When I was younger and less psychologically moored I thought of suicide as the ultimate lever I could wield over my own fate. Not so much these days, though.

<comment><USER3> I am a woman. I attempted suicide at age 17.

I went though my desk drawers, etc. I found some pills, maybe decongestants, and decided that would probably not kill me. I found an exacto knife in my art supplies and decided to cut my wrist with it. I failed to hit a major artery. There was very little blood.

In contrast, I believe my brother's room had a gun, a bow and an encyclopedia of true crime. Had he attempted suicide while locked in his room, there would have been dramatically greater access to effective means and useful information for actually ending up dead.

I will suggest that women generally have less access to effective means, generally have less exposure to subjects relevant to figuring out how to end a life, and that women are typically subjected to a greater amount of social control that limits their ability to act.

Men are more likely to be infantrymen, police officers, hunt as a hobby, etc. Thus, they are just more likely to know how to kill something.

Additionally, successful suicides occur when you are alone. Men seem to have more opportunities to actually be alone, an observation I made years ago on a different forum about a different subject.

Women typically make less money than men, so they are less likely to be able to afford a place of their own. They tend to have roommates. Following a divorce, women are more likely to get custody of the children. So, post divorce, men are more likely to be living alone, women are more likely to be living with kids.

Etc.

If you attempt suicide with other people at home, you need to keep it a secret. If they find out, they will stop you. Simply having other people around is a deterrent to succeeding. It is hard to very quietly, secretly off yourself.

So, I think one factor is that women are less likely to have sufficient privacy, for lack of a better word, to succeed.

<comment><USER4> This seems to be American centric, though. Even when the means (eg hanging and poison mentioned earlier) are readily available to both sexes there is still a sexed difference.

<comment><USER3> I don't know why you would think that poison or hanging are equally available to both genders. In the aggregate, there are significant differences in not only career choices but hobby choices and other aspects of lifestyle. It in no way surprises me this impacts aggregate statistics on methodology.

I posit that many supposed gender differences are rooted in the different life experiences of the sexes:

[http://micheleincalifornia.blogspot.com/2014/03/princesses-d...](http://micheleincalifornia.blogspot.com/2014/03/princesses- dont-start-starships.html)

<comment><USER5> Why wouldn't you think that? Poison and hanging are equally _available_ but they choose different methods based on life experiences.

That is, they both have a bunch of pills or a rope lying around but that doesn't mean they both choose them.

<comment><USER4> Either way we've wandered into deep speculation territory. We need more data.

</comment></comment></comment></comment></comment></comment><comment><USER6> Male suicides are up in the US, too. The US has about 40,000 suicides a year. "Suicide is concentrated among those whom our society values least."[1]. The big jump is among white, middle-aged men and women.

"The states with the highest suicide rates tend to be clustered in the South and the Mountain West... This suicide belt is also defined by what psychologists have dubbed a "culture of honor." ... That means higher murder rates but even more-exaggerated suicide rates, a fact he attributes to millennia of old masculine codes meeting a disappearance of blue-collar jobs unlikely to reverse itself. Give me honor, or give me death was a safer personal motto when honor could still be readily found." \- Newsweek

Will this be the fate of today's "brogrammers" in their 40s?

[1] [http://www.newsweek.com/2013/05/22/why-suicide-has-become- ep...](http://www.newsweek.com/2013/05/22/why-suicide-has-become-epidemic-and- what-we-can-do-help-237434.html)

<comment><USER7> Do you have any demeaning nicknames for those who work in female dominated professions too?

<comment><USER4> Whatever. Zeitgeist labor force. It doesn't need to be bound to sex to be meaningful.

<comment><USER8> In this case, however, it is bound to sex.

<comment><USER4> Yea, and that's a problem in itself.

</comment></comment></comment></comment></comment><comment><USER9> The problem is at least partly societal. A large portion of life is made up of social interaction, and men and women have very different experiences of this. People are generally nicer to women. Men are treated as being less important than women (think: women and children first). With this in mind, it's not surprising men are more likely to kill themselves.

<comment><USER10> Males bear the burden of a lot of aggresivity hormones. That and the fact males are stronger would explain men commit more violent crimes, hurt women more often than the other way around and also suicide more often.

I don't think men are treated as less important. The "women and children first" is more of a societal compensation for the fact that men can go first _because_ we're, on average, stronger and more aggresive.

<comment><USER11> This is plain misandrism and should have no place on HN.

<comment><USER10> If it's sarcasm, it whooshed over my head.

</comment></comment></comment></comment><comment><USER12> There are several sources for comparable US data. Examining page 6 of the PDF below demonstrates that the suicide rates for middle aged to elderly Caucasian males in the US is higher in 2014 by a factor of ~3 or in cases more compared to women and other ethnicities. Despite the prevalence of suicide in this group the issue is seldom covered by the media or addressed in public policy debates.

[http://www.cdc.gov/nchs/data/hestat/suicide/rates_1999_2014....](http://www.cdc.gov/nchs/data/hestat/suicide/rates_1999_2014.pdf)

</comment><comment><USER13> I think that to a large extent this has something to do with the (mostly terrible) educational system just about everywhere in the world. Your education kind of sets a course for the rest your life and it's a travesty that very productive years are basically squandered because the system is setup for maybe 19th century.

</comment><comment><USER14> Is it silent?

The statistics and data aggregation seem pretty robust. Most governments publish data reinforcing that suicide is a huge risk factor for men.

I don't think It's a silent epidemic as much as It's just not an important epidemic. Society doesn't necessarily rank _the problem_ of male suicide high enough to fix or fund.

<comment><USER15> >It's just not an important epidemic.

" _Aye,there 's the rub_..."

Men are more likely to succumb to alcoholism[0]

Men are more likely to succumb to gambling problems[1]

An estimated 84% of homeless are male in the UK[2]

Alcoholism and gambling are some choice indicators of inequality that Tony Judt liked to reference in Ill Fares the Land[3]. The gender disparity is well documented at the top (e.g. Gender diversity for C-level) but this is the 1% of the 1%. I'm not denying that the lack of diversity is alarming but these men are the men that bested many other men. However the fact that there is a lack of diversity on both sides of the spectrum seems to be an inconvenient truth that most prefer to avoid.

[0][http://www.ncbi.nlm.nih.gov/pubmed/15533281](http://www.ncbi.nlm.nih.gov/pubmed/15533281)

[1][https://www.responsiblegambling.vic.gov.au/newsroom/media- re...](https://www.responsiblegambling.vic.gov.au/newsroom/media- releases/2014/gender-gap-highlighted-in-new-gambling-study)

[2][https://www.theguardian.com/news/datablog/2013/may/07/men- ge...](https://www.theguardian.com/news/datablog/2013/may/07/men-gender- divide-feminism)

[3][https://www.amazon.co.uk/dp/0718191412/](https://www.amazon.co.uk/dp/0718191412/)

<comment><USER16> don't forget the lack of help for male domestic abuse victims

</comment></comment></comment><comment><USER17> It would be interesting to see incidences distributed over different types of divorce outcomes.

</comment><comment><USER18> Is the incidence increasing over time? That wasn't clear from what I read. It says the incidence is high but doesn't include data about how it changes over time.

</comment><comment><USER19> There is a decent documentary that watches a few teams respond to "Gun Violence" (1). It was basically a tour of people shooting themselves or their family. A bizarre left turn into mental health questions and responsibilities. It is clear that, of ~33k gun deaths (2) - most are suicides. Meanwhile, homicide is almost non-exisitant (3) - but it is all i see on the news :(

1) [http://www.hbo.com/documentaries/requiem-for-the-dead- americ...](http://www.hbo.com/documentaries/requiem-for-the-dead-american- spring-2014)

2) "11,208 homicides (3.5 per 100,000); 21,175 suicides; 505 deaths due to accidental/negligent discharge of a firearm; and 2818 deaths due to firearms- use with "undetermined" [https://en.wikipedia.org/wiki/Gun_violence_in_the_United_Sta...](https://en.wikipedia.org/wiki/Gun_violence_in_the_United_States)

3) [http://www.zerohedge.com/news/2016-06-16/fbi-us-homicide- rat...](http://www.zerohedge.com/news/2016-06-16/fbi-us-homicide-rate-51-year- low)

<comment><USER7> 11K deaths from homicide isn't "almost non existent". Now it is true the burden is concentrated in young males, especially black males. This is not to say a death from homicide is intrinsically more important than from suicide, that firearms aren't linked to higher suicide rates, or that gun suicide isn't worth preventing - clearly it is.

As for why the news focuses on homicide, especially spectacular mass murders, "if it bleeds it leads".

<comment><USER20> I don't know about other countries, but in New Zealand, the media specifically doesn't report on suicides (or omits the cause of death, if it's a high profile death by suicide). This is because of the fear of copy-cat suicides.

<comment><USER21> I didn't realise it's actually illegal for media to report suicides in NZ.

[http://www.stuff.co.nz/national/80143183/New-Zealand- suicide...](http://www.stuff.co.nz/national/80143183/New-Zealand-suicide- reporting-laws-due-to-change-heres-what-you-need-to-know)

</comment></comment></comment></comment><comment><USER22> Why do we get mired with the attempts quagmire? If you look at depression and suicidal thoughts as a disease, the death rate is gendered.

Men die more from suicide yet society shows more sympathy and support for women. That makes sense since society was basically built to protect women and ensure that offspring had stable diligent parents. This leads to society enshrining the protections of women and children at the (relative) disadvantage of men.

<comment><USER23> > Why do we get mired with the attempts quagmire?

Because if women start to use more lethal methods we'll see their rates of death overtake men. We care about attempted suicide, and self harm, because we want to reduce the rates of attempted suicide and of completed suicide.

</comment></comment><comment><USER24> I am a guy. I narrowly avoided suicide around 18. I should first note that I'm doing much better these days.

If there is anything scarier than attempting suicide, it would be the thought of surviving it. Permanent disfigurement, crippling, or chronic pain would only make life all the worse - and a second attempt would be made all the harder by well meaning family, police, and doctors. One thinks to be thorough, or to not try at all.

Scarier than keeping quiet about your demons, is the thought of being forced to confront them. You don't _want_ to talk and dwell on such a depressing subject, when depression is the very thing you're trying to run from. Outward silence mirrors a desperate attempt to achieve inner silence.

Manly ideals such as the ability to shoulder burden, and self reliance, can worsen the problem. Why share such deeply personal problems, if you think others can't help you with them? After all, if even you yourself can't lick the problem - you who surely best knows yourself - what chance do others have? You'll only depress others. You'll only depress yourself further.

.

I survived the peak of my first depression thanks to a fear of hell. The second, by knowing my ex still cared about me, even if she did not still care to _be_ with me. I couldn't be that selfish.

A decade later, and long walks are for exercise and a break - not an excuse to cross tall bridges. I fight the good fight: I try to exercise. To eat well. To sleeping well and fully. To socialize regularly. To enjoy the sun. To enjoy nature. To eliminate stress. I have a career. I rarely crunch.

Medication would probably help. I'd still like a meaning to life. Maybe Love, again, but love is hard work - and even after all this time, is it prudent to risk a _third_ heartbreak? I'm better now, and take care of myself better, but in doing so I've also learned a healthy amount of selfishness...

.

It's 7AM, and I should sleep. Back to silence. I will sleep well, and wake refreshed tomorrow. Be kind to and take care of each other, and do the same for yourselves. Make friends instead of enemies, even if that means funny hobbies instead of important politics sometimes. Smile, laugh, and try to share the joys of life. They may not always shine as brightly, but it's easier to find your way towards life if the path is at least lit.

<comment><USER25> Good luck on your journey.

If you ever do find yourself on the fence about getting professional help, please try it. You may find yourself pleasantly surprised.

</comment></comment><comment><USER26> Note for those who didn't notice: although this appears to be the first time this has been posted to Hacker News, it was from 2011.

dang: Add (2011) to the title?

</comment><comment><USER27> Men are far more likely to die from all sorts of things, esp. occupational hazards. Nobody cares.

<comment><USER28> There are far more pressing injustices to prosecute, like the male/female "wage gap" [0]

[http://www.forbes.com/sites/karinagness/2016/04/12/dont- buy-...](http://www.forbes.com/sites/karinagness/2016/04/12/dont-buy-into-the- gender-pay-gap-myth/#295431f14766)

<comment><USER29> Right, men tend to take on jobs that are physically demanding, or may have more dangerous aspects at higher rates. The reasons are complex. Pressure to support a family or make more money despite potential harm to themselves, unwillingness to turn down difficult assignments to avoid seeming weak, valuing personal strength and "toughness," less dangerous jobs are unavailable for their experience and/or location and they have to take whatever's available (again, social pressure means they "have" to work in the first place, no matter what the job is). Social stigma towards blue collar workers and manual laborers, and getting trapped in these jobs due to an inability to find safer employment while doing them.

Women tend to take on jobs that pay less, have fewer responsibilities, or they take more time away from the workforce. The reasons are complex. Pressure to devote more time and energy towards family and childcare directly, and conversely, less pressure to support the family financially -- sometimes even before children enter the picture. Inability to get childcare support from spouse/family/outside sources, not wanting to seem too "tough" or "aggressive," avoiding social stigma towards working mothers, pulling out of the workforce to avoid restrictive maternity leave policies, difficulties re- entering the workforce afterwards.

Lots of people face lots of problems.

</comment></comment></comment><comment><USER30> Men are disposable. This idea is wired inside the deepest, most primal part our brains. There are a few possible solutions to this. We could evolve ourselves and change our brains. We could tip the gender population ratio in favor of women, so that men would be more sought after. The easiest way to achieve the latter is by simply giving parents the power to choose their kid's gender. Assuming parents are rational agents, they will choose the most valuable gender for their kid, which will bring the genders into an equilibrium.

</comment><comment><USER31> "These explanations suggest that when compared with suicidal women, men who reach the point of suicidal action are: [More X, More Y, More Z].... Despite some limited theoretical and empirical support, we currently lack strong evidence to support these explanations."

Welp there goes the whole thread guys

Any follow up study?

<comment><USER32> X, Y, Z, A, B, C:

• hopeless.

• clearly resolved to die.

• likely to be intoxicated and thus more disinhibited.

• willing to carry out actions that might leave them injured or disfigured.

• unconcerned with consequences because of a high risk-taking orientation.

• likely to have a greater capacity to enact lethal self-injury.

</comment></comment><comment><USER33> So the reason men kill themselves is "because, men?" I get that is sufficient for the sort of people for whom, "because, women," or "because, men," is explanatory, but maybe something social changed in the last 40 years?

When you control for hard drugs like the mari-huana, heavy metal music, D&D, violent video games, rap music, marylin manson, the fast and the furious sequels, and toxic masculinity, surely there is something that must shake out.

</comment><comment><USER34> I wonder why an analysis of comparative rates of male/female self-murder seems to ignore that men murder others (in the U.S.) at around 5 or 6 times the rate of women. The differences seem comparable and very related. I see postulation that men have unique problems, but not any consideration of the fact that men have shown a greater urge to kill in general.

I may have just missed it.

<comment><USER35> Is that the actual murder rate or the conviction rate? Remember that women are less likely to be convicted than men are.

<comment><USER34> [https://www.ncbi.nlm.nih.gov/pubmed/1635092](https://www.ncbi.nlm.nih.gov/pubmed/1635092)

I think the way you're using "actual murder rate" here is by definition an unknowable number. Do you have the actual comparable likelihood of the conviction of women and men with the same evidence?

Is there actually any real question that men kill far more than women do?</comment></comment></comment>


What caused GitHub's downtime yesterday? - <AUTHOR> After Github's major outage yesterday I haven't been able to find any news sources confirming what caused the downtime.  Given the enormity of how many projects this affected I think they owe us an answer.<p>Does anybody know what happened? <comment><USER2> They launched a new comment feature yesterday: [https://github.com/blog/2097-improved-commenting-with- markdo...](https://github.com/blog/2097-improved-commenting-with-markdown)

<comment><AUTHOR> You think that's what caused it?</comment></comment>


Google: What do you love? - <AUTHOR> http://www.wdyl.com/ <comment><USER2> So this is just a mashup page using most of their API's, but without any real smartness to what is shown... so it ends up looking and feeling like a mashup from 5 years ago.

Poor execution unfortunately. A better thing to do from the outset would be: If nothing is found close that box and put it at the bottom. That would be something fractionally better than pretending it's meaningful to search for patents or use SketchUp on meaningless things.

<comment><USER3> If you view it as a way to expose the less popular Google services then it's probably great performance-vs-effort-wise. As a useful service probably not but who said Google won't improve it?

</comment></comment><comment><USER4> First thing I typed in, reflexively, was "shit." To great unexpected effect.

Measure popularity of shit on the web. Explore shit in 3d. Buy all kinds of shit stuff. Make a photo album about shit. Watch videos of shit. Plan your shit events. Start a shit discussion group. Find shit nearby.

</comment><comment><USER5> "Schedule a date with Emacs" --- algorithms say the darndest things.

But more seriously, the execution isn't that great. They could at least filter the products that don't produce useful results. At the moment, product search is only advertising its incompetence by telling me it found nothing. Also, given the built-in obviously-fill-in-the-blank screenshots and text, I'm not actually inclined to use their products.

Plus, for what "X" are both "Patents about X" and "Date with X" meaningful statements?

<comment><USER6> > Plus, for what "X" are both "Patents about X" and "Date with X" meaningful > statements?

robot girlfriend?

<comment><USER7> Also, <http://d.pr/wiHc>

</comment></comment></comment><comment><USER8> Is this anything more than one giant advertisement for all of their products? It didn't seem to actually do anything.

<comment><USER9> Exactly what I believe. I tried "haskell" and "epistemology". See epistemology in 3D with sketch?

<comment><USER10> I tried a vulgar word for a certain part of the female body that I legitimately love. The results were... humorous.

</comment></comment></comment><comment><USER11> For me, the obvious choice was "japanese women"...

<http://www.wdyl.com/#japanese%20women>

<comment><USER12> "Explore Japanese women in 3D". Well, that's an unfortunate template- instantiation.

<comment><USER13> I got the same templates; I typed "gay sex".

... it asked what I loved...

</comment></comment></comment><comment><USER14> I was hoping I would see a beautiful visualization of what people across the world love. Instead it poured out a bunch of information. Why does this seem typically Google?

</comment><comment><USER15> It is interesting: the hosting is indeed by an IP address that points to Google's 1e100.net, but the domain's registrant is not Google, rather an individual. Moreover, the name servers are hosted by fabulous.com. Go figure...

<comment><USER16> I'd hazard a guess at saying this was a 20% project and the individual is the engineer who led (or was sole member of) the project.

</comment></comment><comment><USER17> This is an extraordinarily entertaining thing to put rude words into.

<comment><USER18> i kind of wanted to share my favorites, but probably best not to.

<comment><USER17> Try 'fun'. Why? Because Google just invited me to 'scour the Earth for fun'.

No-one give Google nukes, clear?

</comment></comment></comment><comment><USER19> I did really love the hit on 'something'; <http://cl.ly/7z3B> (jpg)

<comment><USER20> i get the same type of result for 'gmail'. Most of the queries result in pictures of women showing panties or in thongs.

</comment></comment><comment><USER21> <http://www.wdyl.com/#half-baked> ideas

^ Way to not make your 3+ word searches linkable. Hmmm.

</comment><comment><USER22> <http://www.wdyl.com/#lolcats> reveals that there is a patent with the word lolcats in it (<http://www.google.com/patents?q=lolcats>)

But besides that and "Scour the earth for lolcats", this isn't really doing much for me. Nice try google interns.

</comment><comment><USER23> Cool idea, but: <http://www.wdyl.com/#The%20Internet>

Execution's a bit off.

</comment><comment><USER24> I think most people are projecting a bigger ambition onto this than is accurate. This is not Google's revolutionary attempt at visualized search, it's a cute way to showcase all the diverse products in Google's portfolio. "What do you love? Here's what we can do for you regarding that." It's just a marketing micro-site.

</comment><comment><USER25> Despite the criticisms, I actually think that this is the best thing that Google has turned out in the past 5 years ...

<comment><USER26> Execution may be poor, but this is definitely something Google has needed to do for some time. They have many services which serve niches but the popularity of those services is, in part, bounded because no-one knows about them!

<comment><USER25> I think they could have done much more with wave - I would have got far more benefit from it if they linked it to my gmail in some inventive and unintrusive way ... I'd like to see them rework it because I think it's a really great product ...

I also think they could do something more with search by customizing results based on browsing history ... Maybe this +1 button should be contained within the browser and marketed more as something which stores previous results which can be called up by search (as well as sharing with 'friends') - could be a back door into social searching which they so badly need ... They could take up the mantle of delicious, and make it more social ...

</comment></comment></comment><comment><USER27> I typed in 'my wife' and Google gave me naked lady pictures. I am disappoint.

</comment><comment><USER28> Who created this ? Some google internship ? Sorry Google, not this time

</comment><comment><USER29> Why would I need to "Find patents about" my favorite soccer team?

</comment><comment><USER30> I think I found an easter egg here -- try searching "my wife"

</comment><comment><USER31> This looks like the future of domain squatter landing pages.

</comment><comment><USER32> I want to use this with iPad like turning the page.

</comment><comment><USER33> looks like www.123people.com (the box sections) design wise - maybe google will start to be his own landing page aggregator soon.

</comment><comment><USER34> love the little scroll-widget on the left, beautifully done.

</comment><comment><USER35> "Explore boobs in 3D" disappointed me.

</comment><comment><USER13> If you didn't notice, they're actually rendering mocked images of the searches. Which is funny considering the search term I started out with.

</comment><comment><USER36> looks like pintrest

</comment><comment><USER32> looks like sweet.

</comment><comment><USER37> rather bad lol most of it is a Chrome and Android advertisement also.

</comment><comment><USER38> Man Google, you really nailed it: <http://i.imgur.com/TNSKN.png></comment>