Erlang programmer's view on Curiosity Rover software - <AUTHOR> http://jlouisramblings.blogspot.com/2012/08/getting-25-megalines-of-code-to-behave.html <comment><USER2> I absolutely love Erlang and think that, along with Clojure, it provides a complete ideology for developing modern software.

But the article implies (and more than once) that the rover's architecture borrows from Erlang, while the opposite is true. Erlang adopted common best practices from fault-tolerant, mission-critical software, and packaged them in a language and runtime that make deviating from those principles difficult.

The rover's software shows Erlang's roots, not its legacy.

<comment><USER3> How is that possible since Erlang dates from the early 1980s, and the Rover's OS is from the 1990s?

<comment><USER4> Almost all spacecraft software is written a in similar fashion, not just Curiosity's.

</comment></comment></comment><comment><USER5> Back in the 90s there was a software engineering fad (unfair term but it was faddish at the time) called the process maturity index, and JPL was one of two software development sites that qualified for the highest rank (5) which involves continuous improvement, measuring everything, and going from rigorous spec to code via mathematical proof.

This process (which Ed Jourdan neatly eviscerated when applied to business software) produces software that is as reliable as the specification and underlying hardware.

<comment><USER6> It may be a fad for the industry at large, but it's a requirement in US government contracting (as CMMI). It goes beyond software, too. My former employer just got their systems engineering up to CMMI Level 5[1] and was working hard on getting electrical engineering there (they are only at 3).

[1] Software had been there for a few years.

</comment></comment><comment><USER7>
       Any _robust_ C program contains an ad-hoc,
       informally-specified, bug-ridden, slow
       implementation of half of Erlang...

<http://c2.com/cgi/wiki?GreenspunsTenthRuleOfProgramming>

<comment><USER8> But in this case that's almost completely wrong. For example, "bug-ridden"? Outfits like NASA use classical techniques (code inspection etc.) to ensure that their software has exceedingly low error rates. This has been well studied. Such an approach works, it's just too expensive for most commercial projects. As for "slow", how likely is that?

On another note, it's pretty cool that the first three names credited in the JPL coding standard document (which is linked to at the bottom of the OP and is surprisingly well written) are Brian Kernighan, Dennis Ritchie, and Doug McIlroy.

<comment><USER9> >But in this case that's almost completely wrong.

On the second line of linked article:

"This is a _humorous_ observation"

(emphasis mine :) )

<comment><USER8> Humor doesn't make it applicable. Greenspun's line had a specific meaning. It doesn't stick to this surface.

</comment></comment></comment></comment><comment><USER10> "Recursion is shunned upon for instance,...message passing is the preferred way of communicating between subsystems....isolation is part of the coding guidelines... The Erlang programmer nods at the practices."

Best "Smug Programmer" line ever.

</comment><comment><USER11> Great article. The only thing he left out is the parallel to Erlang Supervisor Trees, which give the ability to restart parts of the system that have failed in some way without affecting the overall system.

</comment><comment><USER12> The biggest difference to Erlang is VxWork's inability to isolate task faults or runaway high priority process. (Tasks are analogous to Processes in Erlang). VxWorks 6.0 supports isolation to some degree, but it was released in '04, after the design work on the rover started. Without total isolation, a lot of the supervisor benefits of VxWorks goes away.

<comment><USER13> Hm.. What do you mean by isolating task faults? I think a lot of that depends on the underlying hardware, right (e.g., if the board has an MMU)? I know you can insert a taskSwitchHook (I think it's called) that could be able to detect and kill runaway high-priority processes.

Edit: in response to the reply, I suppose I should have mean tasks instead of "processes" (which in VxWorks would be the RTP)

<comment><USER14> VxWorks has no processes[1]. It has tasks. Basically, you write kernel code, there's no user mode.

[1] As someone mentioned, VxVorks 6 did introduce processes and "usermode", called RTP. As with most features of VxWorks, you compile that into your image if you want the feature. But there's a lot of inertia, and much of the VxWorks stuff I see doesn't use RTP yet.

</comment></comment></comment><comment><USER13> The motivation for writing the software in C is this: Code Reuse. NASA and it's associated labs have produced some rock solid software in C. In space missions commonly the RAD750 is used (with it's non-hardened version, the MCP), along with the Leon family of processors. Test beds and other ground hardware are often little-endian Intel processors. VxWorks is commonly used on many missions and ground systems, but so is QNX, Linux, RTEMS, etc... The only common thing the diverse set of hardware, operating systems, and compiler tool chains all support is ANSI C. This means that nifty languages like Erlang or whatever - though there may be a solid case for using them - is not practical in this circumstance.

I know some clever folks in the business have done interesting work on ML-to-C compilers, but it's still in the early R&D phase at this point - the compiler itself would have to be thoroughly vetted.

<comment><USER15> I didn't read it as arguing against C, just noting that there seems to be a lot of commonality between the ways the code in the Mars rovers are designed, and the way that robust Erlang applications are typically designed.

<comment><USER16> Precisely. One thing very must against using Erlang for this problem is that you need hard real-time behaviour. Erlang does not provide that. The other point, you need static allocation almost everywhere, is also detrimental to using Erlang for the Rovers.

That leaves you with very few languages you can use, and C is a good predictable one for the problem. Its tool support is also quite good with static verification etc. And it is a good target for compilation. As someone else notes, most of those 2.5 Megalines are auto-generated.

</comment></comment></comment><comment><USER17> "We know that most of the code is written in C and that it comprises 2.5 Megalines of code, roughly[1]. One may wonder why it is possible to write such a complex system and have it work. This is the Erlang programmers view."

Contrast this with <https://www.ohloh.net/p/erlang>: "In a Nutshell, Erlang has had 7,332 commits made by 162 contributors representing 2,346,438 lines of code"

I'm not sure if those roughly 154kloc really make a difference...

<comment><AUTHOR> The 2.5 MLOC of NASA code is mostly generated.

I'm not really sure what point are you trying to make…?

<comment><USER17> From an erlang programmer's point of view, 2.5MLOC are a complex system.

On the other hand, every Hello World in Erlang drags in about 2.5MLOC of liability (even if much of that is never run). And I doubt it's all autogenerated.

So if anything, 2.5MLOC of generated NASA code is probably less complex than the erlang runtime.

<comment><AUTHOR> The article is not about the MLOC. And anyway, that 2.5 MLOC of Erlang includes all kind of libraries, like Mnesia, an entire database application.

</comment></comment></comment></comment><comment><USER18> Great article! I'd like to add that the D programming language also offers a lot of features to create robust code with multiple paradigms, although the syntax is heavily C oriented rather than functional.

'immutable' and 'shared' are added to the known C 'const' qualifier for data that will never change (contrary to not changing in the declaring scope only) data which is shared across threads, everything else is encouraged to use MPI using the std.concurrency module.

Pure functional code can be enforced by the compiler by using the 'pure' qualifier. There is even compile time function evaluation if called with constant arguments, which is awesome when used with it's type-safe generic and meta-programming.

There's unit tests, contracts, invariants and documentation support right in the language. Plus the compiler does profiling and code coverage.

I'd be curious to test D against Erlang for such a system. (Not saying Erlang shouldn't be used, it's the next language on my to-learn list, just that the switch to functional might be too radical for most developers used to imperative and OO and D provides the best of both worlds.)

<comment><USER19> I've been interested in D for a while, for these reasons and more - it's features look nice, but it never seems to have gotten much popularity/mindshare. Could you hazard a guess why?

<comment><USER20> In the early days there were some issues in the community which lead to the Phobos/Tango divide in the standard library for D1.

This is now past history as the community has joined around D2, just known as D, and strives to reach compliancy with the "The D Programming Language" book written by Andrei Alexandrescu.

D2 development is made in the open with source code available in GitHub.

Besides the reference compiler, dmd owned by Digital Mars, there are also LDC and GDC compilers available. Currently it seems that GDC might be integrated into GCC as of 4.8 release.

Right now it seems more people are picking up D, mainly for game development projects.

<comment><USER21> Indeed, the D1 splits, and and also questions being answered with "that will be in D2". There is now a problem that there is not yet a consensus about how D2 compares to C++11.

</comment></comment></comment></comment><comment><USER22> Does anyone have any knowledge of why Ada isn't used over C? Specifically, it seems like Ada gives you a lot better tools when it comes to numerical overflows/underflows.

Also, what compiler does NASA use? Something like CompCert? What kind of compiler flags? Do they run it through an optimizer at all?

<comment><USER13> See my post below - to reuse code cross platform. There's a diverse set of compiler toolchains, operating systems, architectures. Only ANSI C is supported by all of them. The compilers are specific to the target OS and hardware, and flags are unsurprisingly the strictest possible for C89.

<comment><USER23> i'd think that you can run ada generated code pretty much everywhere. even on obscure hardware that works in space.

</comment></comment></comment><comment><USER24> Great article and comparison, and a nice way of highlighting one of Erlang's strengths.

However: I'm dubious that it's a strength many people here need. No, the article did not say anything about that, but I am. A few minutes of downtime, now and then, for a web site that's small and iterating rapidly to find a good market fit, is not the biggest problem. And while Erlang isn't _bad_ at that, I don't think it's as fast as something like Rails to code in, and have all kinds of stuff ready to go out of the box.

That said, I'd still recommend learning the language, just because it's so cool how it works under the hood, and because sooner or later, something will take its best ideas and get popular, so having an idea how that kind of thing works will still be beneficial.

<comment><USER25> As you mentioned Rails, I thought I should mentioned Chicago Boss. It's a blindingly fast Rails-inspired framework that takes many Erlangisms out of coding in Erlang: <http://chicagoboss.org/>

</comment></comment><comment><USER26> Message-passing better than STM? Wonder why?

<comment><USER12> I think two reasons: 1) VxWorks directly supports message passing (<http://www.vxdev.com/docs/vx55man/vxworks/ref/msgQLib.html>). 2) They seem to prefer simple, obvious, "less magic" interfaces. STM is nice for its "magic", but message creates very well defined, documented interfaces between code.

<comment><AUTHOR> > STM is nice for its "magic", but message creates very well defined, > documented interfaces between code.

The author's previous post has a good overview of how message passing contributes to that as well.

[http://jlouisramblings.blogspot.com/2012/06/protocols-in- kin...](http://jlouisramblings.blogspot.com/2012/06/protocols-in-kingdom-of- distribution.html)

</comment></comment></comment><comment><USER27> deno, I was wondering, if so similar to erlang, why not use erlang instead C? What is the major drawback, footprint?

<comment><USER28> The OTP virtual machine takes a lot of memory. It's an interpretter, which means much slower execution, as article and others above pointed - The Erlang VM is soft-realtime, it can't guarantee that something would finish in certain amount of micro or milliseconds, or if it does guarantee - it's too much for what they need (just guessing here).

But the concepts are very similar - message passing being the way to communicate between modules, rather than shared memory ways.

This brings another topic - the Linux vs Minix debate :) - I guess there are right things to be done for the right time, and right target. It's just getting all these things right is the hardest.

<comment><AUTHOR> > It's an interpretter, which means much slower execution

Only BEAM is an interpreter, there are HiPE and ErlLLVM backends as well. You can also write NIFs — functions in C that can be executed within VM.

</comment></comment></comment><comment><USER29> So a Mars Rover is much closer to a browser/backbone/node.js app than I could ever imagine. The basic structure is surprisingly similar to javascript apps these days: isolated modules, message passing/event loop, fault tolerance.

<comment><USER16> Node.js is cooperatively multitasked. VxWorks (and Erlang) are preemptively multitasked. So the basic structure is quite different. If one of your node.js events infinite loops, it is game over. Be it web server or rover. Not so here.

<comment><USER18> Node.js is preemptive, there's only one thread running JavaScript but multiple C++ worker threads doing work on behalf of the script.

vibe.d on the other hand is cooperative since it uses coroutines for concurrency.

<comment><USER28> Please, explain what do you mean by that - "pre-emptive"?

My understanding (coming from C and OS terms) is that pre-emptive means taken over. e.g. if I have a real OS thread it is being temporarily "paused" and the resources (CPU/mem/io) are given to something else. At some point control is restored back.

But this is without the knowledge or instructions from the thread itself. So things like priority inversions are hard to battle with pre-emptive multitasking - for example thread A with low priority holding a mutex, while thread B with higher priority waits for it. (and no need for mutexes, if only message passing is to be used).

<comment><USER18> The node.js worker threads are native threads, which are preemptive on all current platforms. The JavaScript context is running an event loop which most likely must perform locking on its message queue and callbacks to async operations are queued for execution on a future tick of this event loop. All of this seems very preemptive to me.

What seems like cooperation in node.js is really just async operations queuing up on the event loop. Since requests are also async events, they get interlocked with callbacks from existing requests.

To me, cooperation is when you yield the thread to another coroutine. This saves the state of the call stack, the registers, everything; meaning you don't force your user to keep that state in closures. The user code in a cooperative environment feels sequential and blocking and results are passed by return values, not by calling continuations.

Its also friendlier to exceptions since it doesn't lose the entire call stack; with node.js you only get the stack since the beginning of the current event loop's tick.

<comment><AUTHOR> > The JavaScript context is running an event loop which most likely must > perform locking on its message queue and callbacks to async operations are > queued for execution on a future tick of this event loop. All of this seems > very preemptive to me.

There's a single loop which blocks until the task _yields_ while waiting on the result from one of the worker threads. That's cooperation. All queued connections are starved until that happens. In Erlang, or just with pthreads, the connections are processed independently. Think separate event loops for each connection.

> To me, cooperation is when you yield the thread to another coroutine. This > saves the state of the call stack, the registers, everything; meaning you > don't force your user to keep that state in closures. The user code in a > cooperative environment feels sequential and blocking and results are passed > by return values, not by calling continuations.

That has noting to do with how execution is scheduled. Cooperative scheduling requires passing continuations[1], so the execution can be resumed while it waits. The simplest implementation is to use callbacks, the way node.js does it. Futures and deferreds[2] are a little bit more sophisticated (Python's Twisted, probably something for node.js exists as well), as they allow for better composition. And of course you can hide the continuations entirely, which can be done in both Scala (compiler plugin) and Python (gevent or using generators), rewriting the direct control flow by breaking it on yield points automatically (this is how exception throws work in most languages btw), but the limitations inherent in having a single event loop per thread will still exist.

[1] <https://en.wikipedia.org/wiki/Continuation-passing_style>

[2] <https://en.wikipedia.org/wiki/Futures_and_promises>

<comment><USER29> > a single loop which blocks until the task yields while waiting on the result > from one of the worker threads

Yes, node.js is cooperative, yet since all I/O is asynchronous the time spent blocking is mostly dispatching and simple operations, it doesn't block while waiting - that's where it's performance and high concurrency comes from. Doing CPU-heavy work in the server/main process is a no-no.

<comment><AUTHOR> Obviously that approach is fine enough for many things. Before node.js, people have written those kinds of servers in Twisted or Netty, with great results. Netty based framework powers, for example, much of Twitter. I was just explaining how the scheduling works :)</comment></comment></comment></comment></comment></comment></comment></comment>


Is San Francisco about to return to its Bohemian roots? - <AUTHOR> https://www.sfgate.com/sf-culture/articleRedesign9/Is-San-Francisco-about-to-return-to-its-Bohemian-15455489.php <comment><USER2> As an SF resident for at least as long as the author I can sympathize with a lot of the sentiment but I'm skeptical about the some kind of renaissance when the city's budget is deteriorating badly.

Rather, when you add it all up: the loss of many of the things that made SF fun; increasingly distributed labour, capital & opportunities for start- ups/VC; SF's seemingly unsolvable problems (cost of living, homelessness, spotty public education, irregular transit, weather...) - just what is the bull case for SF anymore?

I honestly wish I had a good answer.

</comment><comment><USER3> The tax base is fleeing. Not sure who's going to fund the renaissance he's imagining but it would be neat if it could happen. It would probably help if they could clean the poop and needles up too.

Work brought me to SF many times in the 90's and as long as you were in the right parts it was still safe, clean and interesting (and good food - oh my the crabs!). It would be very nice if that could return.

</comment><comment><USER4> For those who can't get past the cookie modal on mobile:

[https://archive.is/VvmCR](https://archive.is/VvmCR)</comment>


Develop a Social Media Website With These 10 Code Techniques  - <AUTHOR> http://nettuts.com/articles/web-roundups/develop-a-social-media-website-with-these-10-code-techniques/ <comment><USER2> What he doesn;t tell you, at least on the Drupal end, is that enabling all those modules at once will make your "social media site" howl bloody murder and that creating a nice UI for them will do the same to you.

<comment><USER3> Word. Unless Drupal has changed in the last year or two (and it might have), the number of queries Drupal issues for any given page is O((u+n)*m), where u is the number of users being displayed on the page, n is the number of nodes, and m is the number of modules installed.

You can cache static pages, but the constant activity of a social network makes that impossible if you're logged in.

Basically, if you install even a few modules on Drupal it'll take a big dump all over your database.</comment></comment>


As HN: Please add a paywall warning to links submitted to sites with paywalls - <AUTHOR> Or automatically switch the link to a google search for the headline, so it can be clicked without paying. <comment><USER2> Usually people flag links to hard paywall sites. For soft paywalls like WSJ, there's the "web" link in the subtitle bar.</comment>


The Genius of the Tinkerer - <AUTHOR> http://online.wsj.com/article/SB10001424052748703989304575503730101860838.html?mod=WSJ_Books_LS_Books_2#articleTabs%3Darticle

<comment><USER2> He gave a TED talk recently which covers these ideas: [http://www.ted.com/talks/steven_johnson_where_good_ideas_com...](http://www.ted.com/talks/steven_johnson_where_good_ideas_come_from.html)

</comment><comment><USER3> > _The adjacent possible is a kind of shadow future, hovering on the edges of > the present state of things, a map of all the ways in which the present can > reinvent itself._

What a beautiful thought for the entrepreneur in all of us.

</comment><comment><USER4> I wish I could upvote this article twenty times. The references to evolution are telling and echo the sentiment of open source projects. This article may have convinced me to start a local programming group. Adjacent possibilities...I'll be stewing on that for a long while.

<comment><USER5> I think you'll definitely like James Burke's old BBC series "Connections", available on youtube. <http://www.youtube.com/user/JamesBurkeWeb></comment></comment>


A Day in the Life of Legalized Extortion: How the BMI Shakedown Works - <AUTHOR> http://techdirt.com/articles/20100806/15462810537.shtml

<comment><USER2> In what possible sense is this extortion?

If restaurant owners want to play music to their customers, in an attempt to extract additional revenue, they are required to pay a fee to the artists who composed the music. Similarly, if they want to serve liquor, they need to get a liquor license. If they want to sell orange juice, they need to (somewhere) buy the orange juice.

I'm having trouble finding the source of the outrage.

<comment><USER3> There are a few things:

1\. Suppose the restaurant owner is not playing music that BMI/ASCAP are authorized to collect royalties on. What gives them the right to demand it? The answer is a law which effectively assumes the restauranteur is a liar and _is_ playing music illegally.

2\. BMI/ASCAP-collected royalties _rarely_ are paid to the artists. Most of those royalties disappear in "operating expenses" and executive bonuses. Few artists ever see a dime.

3\. BMI/ASCAP _know_ that their activities are harming businesses and _don't care_. Their royalty schedules often far exceed what is reasonable and, in many cases, force small businesses to fold entirely. I know several people in this position.

4\. Many artists are aware of this and strongly disapprove of it, but are powerless to stop it.

Nothing BMI/ASCAP does is justifiable.

<comment><USER4> I recall a news story a year or two ago about a cafe owner forced to end live entertainment. Even after he explained that only hosted live bands playing original works, he was unable to get out from under unaffordable legal expense to defend his position.</comment></comment></comment>


Homebrew router faces better tests, tougher competition - <AUTHOR> http://arstechnica.com/gadgets/2016/09/the-router-rumble-ars-diy-build-faces-better-tests-tougher-competition/ <comment><USER2> I have yet to find a better piece of hardware/software than the Edgerouter Lite / Edgerouter X for near-gigabit NAT, for the price.

Sure, I could build something x86 that uses more power and costs 2-3x the price, but it's nice to have a single box that "just works".

Every year or so I look to see if there's anything better, and for the past 2-3 years I have yet to find anything. I had been using the ERL, then bought an ERX when they came out, switched all my stuff (including ipsec VPN tunnels) over to it to "test" for a while.. and then a year later, I've not had a driving reason to switch back to the ERL yet. The ERX is flat-out amazing for ~$50.

I have a system on the "outside" (static IP, hosted server) and then all my "internal" stuff is behind the EdgeRouter's NAT. Hence, the desire to have near-gigabit for when I'm transferring stuff to the server on the "outside".

I like Ubiquiti gear; in fact today I set up a UAP-AC-LR access point to test against the performance of my Google OnHub, which is a year old and seems to be kinda flakey lately..

<comment><USER3> PCengines x86 APU2 can quite handily do gigabit, including AES acceleration for stuff like ipsec and gigabit speeds for around $100USD

[http://www.pcengines.ch/apu2.htm](http://www.pcengines.ch/apu2.htm)

It also isn't reliant on binary kernel blob drivers to obtain full speeds, so you arn't stuck on old kernel versions in the future with known exploits.

<comment><USER2> I used one of their earlier boards, an ALIX 2D3, a few years ago before needing >100Mb throughput.

[http://www.pcengines.ch/alix2d3.htm](http://www.pcengines.ch/alix2d3.htm)

</comment></comment></comment><comment><USER4> I help to maintain a page[0] that keeps a current list of the more powerful _wireless_ routers that support OpenWRT and DD-WRT. This arstechnica article is about _wired_ routers (they say an article on wireless versions will be arriving soon) but maybe it is still helpful.

[0][http://rooftopbazaar.com/routerfirmware/](http://rooftopbazaar.com/routerfirmware/)

<comment><USER5> That list looks pretty sparse. What's it take to add more entries? For example, I would expect to see the TP-Link Archer C2600 near the top of the performance charts given its QCA IPQ8064 SoC and 4-stream ath10k radios. I'm assuming you aren't actually testing all these models, so it shouldn't take too long to pull together the relevant information on everything under [https://downloads.openwrt.org/snapshots/trunk/ipq806x/generi...](https://downloads.openwrt.org/snapshots/trunk/ipq806x/generic/)

Also, if this list ever does grow to be more than two screens long, please add actual filtering rather than just sorting; some of us are only interested in routers that don't need proprietary wifi drivers.

<comment><USER4> Thanks for your suggestion! What filters would you like to see there? I have had some comments also along the lines of it being not obvious enough what the "sort" buttons do; Do you think the page is to "bare bones?"

As for the C2600, I do not believe it is stable yet, and still being worked on. I deliberately don't put "trunk" only builds on the page because not everyone is sufficiently technical to deal with them. It should show up soon though by the looks of things (will be stable soon-ish).

<comment><USER5> Definitely include a more detailed explanation of the criteria for inclusion and rankings, and if possible a breakdown of the sub-scores that went in to the final score (this can be a separate page per device, since it would clutter the main chart). It sounds like some of this (the weights, at least) is subjective, so transparency is important.

If this is really aimed at the less technical/experienced crowd that can't cope with the command line, then you need a lot more background information explained: the hardware revision bait and switch business model, what the benefits actually are of open-source router firmware, the major differences between DD-WRT and OpenWRT (and LEDE). Explain that Broadcom WiFi is about as open-source friendly as NVidia graphics, and that DD-WRT can do very little to help with WiFi issues on those hardware platforms.

It would be great if you could offer guidance for what constitutes _fast enough_ , ie. that "tri-band" routers won't help anything, client WiFi devices don't support more than 3 streams, and an ARM processor isn't necessary if your WAN is only 100Mbps. Also add warnings for devices that only support 100Mb Ethernet on the WAN port or all ports, and make sure to cap the amount that their WiFi speeds can contribute to the performance score.

Alternatively, if your target audience is people who know generally what kind of hardware they need and just need to know which product currently delivers that at the best price and with third-party OS support, then add filters on major categories like NIC vendor (BRCM/QCA/MTK), built-in flash quantity (because 8MB isn't always enough), and radio MIMO class.

More generally, it doesn't serve the public good if your chart is just abstract bragging rights that can be gamed by things like including more RAM than necessary or a useless extra radio for a 150% price increase. The market should be _discouraged_ from producing overpriced overpowered devices that have no real-world use, even if they are to some extent hackable.

</comment></comment></comment></comment><comment><USER6> We have a Ubiquiti ERL at our office on a gigabit Ting connection. I have consistently seen 948mbps through it on speed tests. I'm not sure how the author saw only 200mbps.

<comment><USER7> The ERL supports offloading for various protocols and features. I'm pretty sure IPv6 offload is disabled by default, at least for older firmware versions. Not sure about IPv4 or other protocols. Having offload disabled would have a huge effect on performance.

<comment><USER2> Both the ERL and ERX have hardware NAT offloading as of 1.8.5 (current firmware is 1.9.0), but the ERL also has ipsec offloading.

[https://www.reddit.com/r/Ubiquiti/comments/4owurp/erl_vs_erx...](https://www.reddit.com/r/Ubiquiti/comments/4owurp/erl_vs_erx_hwnat/)

<comment><USER8> Just a random note... there are very limited site-to-site scenarios where the IPSec offload will actually kick in. I wasn't able to get offload working for any kind of remote access scenario, meaning it's not usable as a VPN (unaccellerated strong crypto on the MIPS is < 10 Mbps)

<comment><USER9> Ubiquity would absolutely own this router space if they made a follow up to the ERL with fully offloaded IPSec for stronger crypto.

</comment></comment></comment></comment></comment><comment><USER10> With a Type-1 hypervisor on a box with an IOMMU, different VMs can serve as router, NAS, desktop and personal cloud. Router and NAS VMs would have dedicated PCI devices, the rest can be virtual. Easy to try different router distros.

<comment><USER11> This is similar to what I do. I run Debian as the host machine and then have guests running on QEMU/KVM. I don't use IOMMU, I simply create a bridge on each physical ethernet. This allows me to add other "router/vm" on the WAN side and play with some additional isolated "networks".

<comment><USER12> Same, but I'm using Open vSwitch[0] to tag internet traffic which goes to the router VM. I was using IOMMU but on non-Intel NICs the interupts were killing the throughput in OpenBSD.

[0] - [http://openvswitch.org/](http://openvswitch.org/)

</comment></comment></comment><comment><USER13> Would be nice to see how good is more expensive Mikrotik hardware. If $69 hEX (720MHz MIPS) is the winner in a midrange category, maybe $179 Mikrotik RB3011UiAS-RM (Dual 1.4 ARM) will just blow away the whole competition?

<comment><USER14> Good question. I use the $69 version (Newegg had it on sale for less) and I'm very happy with it. Not sure what my overall thruput is, but for all the data xfers we do we never think it's a network issue. Stuff gets moved in a few moments.

</comment></comment><comment><USER15> Making a diy router is a fun project if you're interested in the nitty gritty details of things like firewall rulesets and dns resolving. And in the end you're left with a powerful and flexible router.

</comment><comment><USER16> I went overboard with my own setup. Got a SuperMicro 5018A-FTN4 rack mount server with an Intel Atom C2758 to serve as my pfSense router. Handles Internet routing (250/20 Mbps), and has a 10GbE connection to my switch for the rest of the network for inter-VLAN routing. I have a Cisco Aironet 3702i delivering WiFi. Very overkill for a house but it was a super fun project.

I should probably do some testing to see its real throughput, to see if my efforts were worth it. I should blog about it too, because it's likely a unique setup that would be interesting to others.

</comment><comment><USER17> Roll your own router, especially if it shares a board with the wireless access point. Commercial configs are radically insecure.

</comment><comment><USER11> For my home setup, I run pfSense on top of QEMU/KVM on an i7 Haswell 1U box with 2 eth ports. I have a bridge for each eth instead of IOMMU. I can max out the 1gbps ethernets without a huge hit. I then have a Mikrotik Gigabit 24 port switch that everything gets hooked into. A bit overkill, but it's nice to have.</comment>


How 'computers' are depicted in the media - <AUTHOR> See 'Fringe' Season 1 episode 12 from 7.18s The computer techie is having problems recovering data as 'the harddrive platters must be fused' besides, she says 'I know some pretty aggressive data retrieval techniques, I can give it a shot'. She then dismantles the drives exposing the platters to the air. Does anyone here know what she is on about. <comment><USER2> Technobabble and something that looks good on camera.

</comment><comment><USER3> Arguing with the hot female lead is rarely productive.</comment>


Feedback Needed On Twitter Game I Created - <AUTHOR> http://reallyknow.me

<comment><AUTHOR> I had this idea for a twitter game the other day, so I spent yesterday building it, and this morning launching it. It a quick test to see how well the people following you are paying attention. Was wondering if I couldn't get your guys' opinions and feedback. Thanks. Also my email is bradleyt.marsh at gmail.com if you find any bugs or anything.

</comment><comment><USER2> Reminds me a little of www.readmytweets.com and a couple other apps. Is it built with Rails? Python?

<comment><AUTHOR> nope, just php. If it turns out to get some hits I might, rebuild it on the App Engine with python, but for now I just wanted to test the idea.</comment></comment>


Ask HN: What Is a Good Microsoft Reporting Service Alternate - <AUTHOR>

We've been using MS reporting services for ever. We want to move to something else. What framework, services you use for reporting. I searched SO but I couldn't find a good alternative. <comment><USER2> There are other things, like Crystal Reports, Active Reports etc. But what are your requirements? e.g. do you have report writers that need to create reports, or are they developer created only? does it need to handle report subscription like SSRS? Do you need analytics access (e.g. mdx capable reporting)?

I spent quite a long time working with/in SSRS, but we had better success when we used Active Reports. I dreaded working in SSRS overall because it has so many quirks that you have to deal with and it took a lot of tuning, but it does do its job most of the time. Performance wise, Active reports was superior for what we were doing, I found that with the same stored procedure backing the report Active Reports would product output 2-3x faster than SSRS most of the time using far less resources. Not that it is perfect either.

</comment><comment><USER3> I had this exact same problem a while back so I made this extremely simple reporting tool [1]. Basically you just give it one or more SQL queries and it displays them as tables on a new webpage. (You can also add charts and things through javascript.)

It may be too simple for what you need, but it works great for me.

[1] [https://github.com/gregpinero/django- mr_reports](https://github.com/gregpinero/django-mr_reports)</comment>


In annual ritual, AT&T declared worst wireless service - <AUTHOR> http://arstechnica.com/business/2012/11/in-annual-ritual-att-declared-worst-wireless-service/ <comment><USER3> Anecdote time!

Last week I got a missed call. Called back, they guy asks me who I am, and then he remembers -- "Oh! I remember why I called -- I work for AT&T and I accidentally disabled a phone on your account. I'm really sorry." It was my brother's phone and we'd have to get a new SIM card at an AT&T store because the rep couldn't reactivate it remotely. He gave me his AT&T ID, something like "kiloB" plus some numbers.

The AT&T store in our area doesn't carry SIM cards, so we had to order one from them and it took about a week to arrive. Meanwhile my brother had no phone and no voicemail.

What he didn't tell us was that he had also mistakenly _added_ a phone to our account (used by a stranger) and which did not have a data or text plan - <USER2> stranger didn't know this, and we were billed for his data and texts.

They refunded my account eighty dollars to cover the texts, data, and some inconvenience, but what the fuck.

</comment><comment><USER4> My question is that if it's so bad why aren't they still seeing new subscribers? I understand they have a lot of churn, but obviously the poor customer service and poor quality of service continues to be unimportant in the buying decisions of their customers.

So what is it that they are doing right that continues to allow them to sign up new customers?

<comment><USER5> One thing they have done is bought up a significant portion of the available cellular spectrum licenses in the U.S.

</comment></comment><comment><USER6> AT&T loses points with the rest of the bunch for charging a "one time upgrade fee" of $36. But they do gain points by refunding it to me without too much hassle when I complained.

</comment><comment><USER7> When this type of company gets too big they tend to behave like governments. People go to work just to get paid, they just care about politics and the bottom line. Then these companies become costumer traps.

Here's a great opportunity for Worldwide disruption. Anyone up to it?

</comment><comment><USER8> Yes. And...?

The article only says what was said last year, the year before that..... And there are no solutions other than

"Don't buy a phone on contract with AT&T. Or better yet, don't do business with AT&T."

How many of us (in the US) didn't know that?

<comment><USER9> It really depends on your location. I lived in Dallas, TX for 3 years & it worked just fine for me. I use my smartphone more as a portable computer than for voice, & to me data speeds matter more.

AT&T edged out VZ in data throughput. I also happen to be grandfathered in an _unlimited_ * plan. I won't give that up for a marginal improvement in voice quality.

<comment><USER10> As a fun anecdote: Try driving by the AT&T building in Farmers Branch while on a call. As of about a year and a half ago (I've switched to Sprint), it would drop my call right as I drove by the building. Always made me chuckle.

To your point, it's really dependent on where you are. AT&T in Dallas works better than Verizon. Sprint is more reliable than AT&T, but the data throughput isn't as good.</comment></comment></comment>


GitHub BLM Survey - <AUTHOR> https://747anon.github.io/blm-survey/ <comment><USER2> "Obviously there were only 210 responses so this data is not entirely accurate, [...] but I [...] think it still reflects the opinions of the sites users."

That's not how samples work.</comment>


First attempt at restoring Magnetic Scrolls backup tapes - <AUTHOR> https://strandgames.com/blog/first-attempt-at-restoring-%20magnetic-scrolls-backup-tapes <comment><USER2> I love this kind of thing! I recently did something similar, perhaps lower level, with some ZX Spectrum tapes from 1990. Saved them to wav (miraculously, they didn't stretch or snap!), literally fixed broken bits by hand ([https://plus.google.com/u/0/+GabrielGambetta/posts/fcXkKmD8d...](https://plus.google.com/u/0/+GabrielGambetta/posts/fcXkKmD8dow)), and managed to recover my first "game", TOP CAT ([https://plus.google.com/+GabrielGambetta/posts/8RkT5K2KR18](https://plus.google.com/+GabrielGambetta/posts/8RkT5K2KR18)).

But my _real_ challenge is much more interesting. I have a few tapes with more of my very early software... but they were stored using an extremely proprietary device, invented in my country, so essentially nobody knows that it exists ([http://www.worldofspectrum.org/infoseekid.cgi?id=1000510](http://www.worldofspectrum.org/infoseekid.cgi?id=1000510)). I have the raw tapes, but I'm not sure how to get started, even. Probably try to interpret bits and trying to find strings. Exciting times ahead!

</comment><comment><USER3> They're recovering Magnetic Scrolls from some actual magnetic scrolls. There's something beautifully poetic there.

<comment><USER4> Yeah, the game seems fitting.

<comment><USER5> nice idea. I'll use that in the blog!

</comment></comment></comment><comment><USER5> Hi everyone, Strand here; We're BAKING the tapes now. check it out. [https://strandgames.com/blog/tk50-tape- baking](https://strandgames.com/blog/tk50-tape-baking)

</comment><comment><USER6> What a fascinating project! The tooling source code sounds like a pretty awesome find as well. Wish you guys the best of luck and thank you for documenting your efforts!

</comment><comment><USER7> I salute your effort! Best wishes.</comment>


CLAP, new virtual instrument and effect plugin interface proposal - <AUTHOR>

Hi,
I worked on a new plugin interface, it is not yet finished and set in stone, but ready enough to gather initial feedback and advice.
The specification is hosted on github: https://github.com/free-audio/clap and is available under the MIT license. There is a generated specification document at: http://free-audio.github.io/clap/
I hope that you'll find it interesting and give it a chance. Thanks.
Regards, Alexandre <comment><AUTHOR> In a few words CLAP features:

\- per sample and ramp automation

\- per note automation

\- you can play a note at any frequency

\- extensible design

\- preset browsing

\- parameters grouping

\- event based

\- the plugin can say which parameters are used and which aren't

\- the plugin can dynamically add new parameters

\- the plugin can expose multiple ports configuration, including repeatable sidechain input which lets the host connect any number of inputs to the plugin, and name those inputs. It is useful for an analyzer.

\- The plugin can inform the host that it does not need to process the next block, like when all the voices are off. It will help to save a lot of CPU on big project when you have hundreds of plugin instances idle.

\- The interface is very easy to understand and use, anyone can get started from the example synthesizer and host.

</comment><comment><USER2> If my DAW gets this, will it cause a burning sensation in the audio I/O ports? ;)

All joking aside, that acronym definitely carries some baggage in some countries ("clap" is a slang term for venereal disease).

<comment><USER3> In those same countries, though, "clap" is also a musical term and has many other meanings unrelated to both STD's and music.

I mean, I understand your concern, but I think it's a bit of a long shot that someone is going to think of the disease first when they come across this software.

Everything worked out OK for JACK ;)

<comment><AUTHOR> Did you try the clap host and the clap plugin? :-)

</comment></comment></comment><comment><USER4> Any chance that you could make the output channels arbitrary? Just yesterday I built a sampler array with Kontakt, in REAPER, that used 28 outputs from a single plugin instance.

<comment><AUTHOR> You can declare as many output ports as you want. For the sidechain it makes sense to have the repeatable attribute because it let the host decide how many inputs it wants to connect. But for the plugin output, I think that only the plugin can tell the host how many output it wants.

Right now the scenario would be: \- plugin send CLAP_EVENT_NEW_PORTS_CONFIGS to the host \- the host deactivate the plugin \- the host scans the available configurations, the plugin can expose only the new one \- then the host can select the new configuration and activate the plugin

What do you think of that?

<comment><USER4> What would that feel like in a DAW? You open the plugin, change its default configuration, get rid of it, and then add it back independently and let it tell the DAW how many outputs it has, so you can connect them to tracks (or whatever the analogue is)?

<comment><AUTHOR> You don't need to remove the plugin and add it again. Just change the config in the plugin, and then when you get back to the daw, you should already see the new outputs.

</comment></comment></comment></comment><comment><USER5> Hi Alexandre. I've been researching similar things for years, and I've come to realize quite a few flaws in the current suite of available plugin APIs, some of which are reflected in your api as well, some of which I have yet to find a solution to.

For reference, this is what I use to develop my plugins, it's a managed wrapper for creating plugins in C#, and provides a bridge between VST and my interface, called SharpSoundDevice. I develop plugins for personal use, and my choice of C# is not up for debate here, I'm fully aware of its limitations :)

[https://github.com/ValdemarOrn/SharpSoundDevice](https://github.com/ValdemarOrn/SharpSoundDevice)

To me, the biggest problems are:

1\. Docking the UI inside the host. This is just an awful way to do things, as the host can intercept (and break) lots of event bindings in your UI. Notice how the scroll wheel and typing are broken in every other plugin in Ableton live? yeah, I mean that kind of stuff. Plugins should have its own window, but then of course, you end up with a problem where they should ideally always be on top of the DAW window, etc... This also means you have lots of platform dependent code for interfacing with the host. (I do my UIs in WPF these days, with some magic to dock the wpf panels inside the win32 window, it's ugly and I wish I could just handle it all inside my own application without worrying about docking windows within windows, etc. Solutions for developing plugin guis exist (like JUCE and VSTGUI, ugh), but it's a restriction on creativity and possibilities for developers (esp. for newcomers who are not familiar with how VST works). Wouldn't it be nice if we could just write "a desktop application", in Qt, WinForms, PyGTK or whatever, and it would just work? It _can_ be done, but it requires someone to sit down and think. real. hard. which leads to my next point...

2\. Process isolation... is hard. Wouldn't things be nice if we could just run each plugin as a separate process. Well, you can, but you endure painful context switching. For multiple channels in parallel, it's not actually so bad, because all modern DAWs are multithreaded and can make use of the "lost time". The problem comes when you have 20 plugins in series, and each of them adds context switch latency of 10-15 uS, adding up to half the available time you have to process the buffer :) Still, some DAWS (like Bitwig) claim to run each plugin as an isolated process, I'm curious to know if they just say "fuck it, live with the added overhead", or if they have some magic solution to mitigate the issue.

I applaud the effort, but there is one more issue remaining:

3\. Nobody is going to adopt your standard verbatim. Which means people will be creating wrappers, which means inheriting all the warts from VST/AAX/AU plugins. This is what annoys me most about my own interface. It's a relatively clean .NET interface, but I end up having to cover it in a layer of grit to stick it into a VST host :)

...yet I have not given up on building a universal, platform/gui independent, process-isolated plugin standard! Currently experimenting with named pipes and even Standard IO to define a common interface between host and plugin, which should allow running the gui in a separate process, and allowing you to write an audio plugin in any programming language that supports stdio... :)

<comment><AUTHOR> Hi valdiorn,

Thanks for your message!

For the UI docking, it comes has an extension for clap. First there is the gui extension, which just has open()/close(), and then comes an other extension: embed (host), embed/win32 (plugin), embed/X11 (plugin), embed/*. So embedding is available only if the plugin support it.

It would be really nice to have the UI done with Qt or Gtk. Yet they're not fit for such plugin UI (because of the global variables and the main loop, ...).

One of my friend (phant0m) is starting to write a UI toolkit which does not rely on global variables, and should be convenient for plugin UI. I think that we can achieve pretty cool UI with a 2D scene graph, with a vector backend like cairo, and some event handling and windowing abstraction. So work is in progress here.

For the process isolation I like a lot the idea, but if I can have bug free plugins, use them in the same process and benefit from a noticeable performance gain, I prefer "in engine" hosting. Also this is the new option of Bitwig: "only as a bit bridge".

Also the one plugin/one process idea is already possible with jack, right?

For the adoption, it is a big challenge. Let's see how it goes ;-)

I hope that I did not forget to answer one of your point.

Cheers :)</comment></comment>


Ask HN: We're ditching AngularJS, any recommendations aside from ReactJS? - <AUTHOR> <comment><USER2> We went to Angular 8.

It allowed us to have both systems coexist whilst we made the transition.

Other options are VueJS or ReactJS

</comment><comment><USER3> Why _not_ React?

</comment><comment><USER4> vue

<comment><USER5> Vue3 is coming out (may be already)

You have to try the new CLI "UI" command</comment></comment>


How Nicaraguan Villagers Built Their Own Electric Grid - <AUTHOR> http://spectrum.ieee.org/energy/renewables/how-nicaraguan-villagers-built-their-own-electric-grid <comment><USER2> Whenever I see articles on remote electric grids, it always inspires me to (re)read this classic page: [http://ludens.cl/paradise/turbine/turbine.html](http://ludens.cl/paradise/turbine/turbine.html)

<comment><USER3> That's great! That's a nice little hydro plant.

<comment><USER2> I particularly like how he wire-wraps his own transformer. Actually, goes even further - builds his own 10 kVa wirewrapping machine, because the old one that his friend gave him as a present wasn't large enough.

I think it says something about the guy (and his friends) that his friends give him transformer wire-wrapping machines as presents.

<comment><USER4> I handwound a stator and I would have been _very_ happy with such a present... That's a ton of work if you want to do it nicely.

</comment></comment></comment></comment><comment><USER5> I have nothing to add, except to say what a fantastic article!

It's so cool to see people working on things like this. In my eyes, this has a much great impact than another mobile-app-social-network-for-sharing-pictures, and is definitely something I'd like to get involved somehow at one point in my career.

<comment><USER6> We'll have to forgive the mainstream for being mainstream and following newness like digital/web/apps as shallow and even saddening as it can be.

I too hope to see small scale 'decentralized' human effort to enhance areas this way. Even in so-called 'developed' countries, there are rural regions falling out and people are still relying on the idea of a powerful state to take care of things whereas the reality is that the energy/desire is gone and companies don't care about small markets like these. Sooner or later people will realize that they're on their own. For the better.

</comment></comment><comment><USER7> When I visited Nicaragua 10+ years ago, I was impressed by Grupo Fenix, a mix of locals and visitors who build solar cookers and photovoltaic systems for rural communities. If you are interested in learning more or getting involved with this sort of thing, they have a volunteer program: [http://www.grupofenix.org](http://www.grupofenix.org)

</comment><comment><USER4> For background on the Nicaraguan 'Contras':

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

Benjamin Linder seems to have been a genuinely nice guy working to put his skills at use to really move the needle, it's a real pity he was murdered for trying to do good.

<comment><USER8> Via that link, [http://en.wikipedia.org/wiki/Covert_United_States_foreign_re...](http://en.wikipedia.org/wiki/Covert_United_States_foreign_regime_change_actions) \- good to see someone producing a convenient wiki list.

</comment></comment><comment><USER9> wow, Spectrum is incredibly unfriendly to viewing in a full-width browser window. I still feel a bit nauseous from having 2/3 of the screen width filled with giant distractions that pulsate and move when I accidentally mouse over them.

<comment><USER10> I've created a userstyle that makes IEEE Spectrum palatable. If you use Stylish, check it out: [https://userstyles.org/styles/112927/ieee-spectrum- suckless](https://userstyles.org/styles/112927/ieee-spectrum-suckless)

</comment></comment><comment><USER11> US and USSR, wherever they went left destruction, broken societies and economies, Nicaragua, rest of Africa, Afghanistan...

</comment><comment><USER12> For some reason I imagined a bunch of villagers holding hands in a chain while the guy on the end is touching a transformer.</comment>


An 80s Girl Talks About Computers: A Reminiscence - <AUTHOR> https://medium.com/@wordsandcode/-2653446e40ae <comment><USER3> The author's experience strongly echoes my mother's experience getting a chemistry masters in the 1960s. One of her professors outright told her at the beginning of the semester that she would not do well in the sciences because she was a woman. That semester she actually tutored a group of men who were in the class, and all of those men received higher grades than her (she got a C-). These men told my mother they would help her fight the professor to get the grade she deserved, but she let it go.

A few years later, my mother met other women who had the same professor and had the same stories to tell about him. One of those women told my mother, "Because no one is fighting him, he thinks he can just keep doing it." For the next forty years, my mother never passed up another fight, excelled in the sciences, and is a respected professor of nursing today in her 70s giving talks around the globe.

When I attended the same university in the 90s, I told some friends about my mother's experience. They laughed and said it couldn't be the same guy, but their professor of chemistry announced on the first day that women were inherently incapable of doing well in his class. I'm thankful that today such a statement would get recorded, go viral online, and force dinosaurs like that into early retirement.

<comment><USER4> I've been to two mid-tier universities within the last decade, and each one had a professor who would straight up say on the first day of class that they would fail any women, because women shouldn't be in science. One was a Biology professor (they were a young earth creationist to boot), the other was a computer science prof.

I'm sure the laser focused fury of social media makes universities more wary of having people like this on staff, but still most people don't want to get caught up in that sort of fight. They were quite old though, so there's hope for the future.

<comment><USER5> That's so blatant that I have a hard time believing it.

If that's really true, it's a jackpot discrimination lawsuit waiting to happen, and I hope it happens sooner rather than later. Completely unacceptable.

<comment><USER6> > That's so blatant that I have a hard time believing it.

That's what I thought about those videos of guys following a woman around as she walked down the streets of New York City minding her own business.[0] I had never witnessed that sort of thing and thought, "There's no way this goes on that often or I'd see it." And yet, dozens of female friends confirmed that it happens all the time. I was like, "Why have you never mentioned this?" They just said it happens too often and there's not a lot you can do about it, plus half the time other people don't believe you.

[0] [https://www.youtube.com/watch?v=b1XGPvbWn0A](https://www.youtube.com/watch?v=b1XGPvbWn0A)

</comment></comment></comment></comment><comment><USER7> Her key point is about her advanced math teacher. "My trig teacher was a legend among the college-bound kids in my school. He'd been there forever. He was generous and big-hearted [...] The other thing he liked to tell us, though, was that girls shouldn't bother taking math, because we were just going to be housewives anyway. It wasn't just every once in a while, either; he said it at the beginning of the year, he tossed it into lectures occasionally, he said it when he handed back failed tests."

I've heard this from a number of other women: an influential, well respected person promoted a divisive opinion among teens for a long time. The effect was subtle and perhaps unintentional, but pervasive; young women decided they were not smart enough or strong enough to work in the field they wanted.

This illustrates to me how important it is to send the right message to kids. Subtle divisiveness is dangerous among kids and teens.

<comment><USER8> This is a very important point and I agree, but the question posed by the article is why was there a sudden decline in women in CS. Before 1984 they were well represented and enrollment literally crashed to levels lower than they were 15 years before.

We can't say systemic sexism caused the crash in enrollment, which happened very suddenly. It is certainly a factor, and probably a bigger factor over time explaining sustained low enrollment.

A snap drop in enrollment is more likely due to a shift in the culture somewhere. Someone pointed out that the game market crashed the year prior, that was probably a factor. Was it Reagan? Was it the number of high profile movies in which nerds were stereotyped?

It is hard to say and a very interesting question.

<comment><USER9> I think the boom in sales of home computers could be an explanation.

See: [https://cdn.arstechnica.net/articles/culture/total- share.med...](https://cdn.arstechnica.net/articles/culture/total- share.media/graph2-1.jpg)

Prior to anyone having a computer, your suitability for getting in CS would be the math classes you took, which had some "equality of access".

Once the sales boom happened, anyone with a computer probably had a large advantage to anyone that did not.

If that was the driver, though, it would imply some pattern where these computers were less available, or less appealing, to young women.

<comment><USER10> That's sort of the argument she's arguing against. Which is that, starting with home computers, guys were more inclined to adopt them as a hobby thing well pre-college. And, once that happened, if you arrived as a freshman and had never really touched a computer (and at one point that was probably literally true for many) it's challenging to go into CS if your classmates have been playing with this stuff for years.

I don't know. Her examples are unconvincing. That they maybe advertised to girls more could just as easily mean, the boys are _already_ buying them so let's focus on the untapped market.

The common theory around early exposure seems plausible to me. [ADDED: Together with the fact that it's supposed to be this all consuming thing.] I've read equally well-written articles by woman nodding their heads. [https://www.bloomberg.com/view/articles/2017-08-09/as-a- woma...](https://www.bloomberg.com/view/articles/2017-08-09/as-a-woman-in- tech-i-realized-these-are-not-my-people)

Unis could deal with it to a degree with intro to computing everything but CS has emerged as an almost unique major (music is certainly another) where showing up at college saying you want to try this computer thing is considered odd.

No one expects a chemical engineer to have done much more than really enjoyed their high school chemistry class. EDIT for clarity: Demonstrated "passion" for chemistry isn't really a pre-req.

</comment></comment></comment></comment><comment><USER11> I hazard a guess that the author is somewhat atypical for an 80s girl. She certainly seemed to be comfortable with a lot of activities that would draw scorn and condemnation from the popular kids in the 80s. Not giving in to peer pressure is very hard for teenagers. I don't know for certain, but I suspect it's even harder for girls than boys. Boys seem more willing to go it alone if they have to.

This is mostly from my own life experience as a computer nerd during the late 80s and early 90s. You get shunned by anybody even remotely popular. This is really tough during middle school since you become bully bait but perseverance pays off in the end. In some ways I had it easier since I lived in a neighborhood that had no kids my age (or within 3 year of my age), so being a loner and an outcast wasn't a new situation.

<comment><USER12> The darnedest thing about stereotypes and generalizations is that _everyone_ is atypical in some way or another.

<comment><USER11> Sure, but when you are atypical because you are an 80s girl who is into computers it becomes hard to use your experiences to determine why there is a large gender disparity in computer relented fields.

It's hard to draw conclusions about a population by only inspecting the outliers, you get lots of noise in the data.

<comment><USER12> I don't know... if you're an 80s girl who got into computers _despite_ lots of girls _not_ getting into computers perhaps your experiences, and the hurdles you faced, are actually more interesting and relevant than the more "typical" answers.

</comment></comment></comment></comment><comment><USER13> A good read. Not sure about the conclusion.

My memory of that time in the UK was that being "into" computers marked you as a greasy-haired "Anorak" (maybe that translates to "Dirty Mac", in American. I suppose the slur is based on stereotyping computer enthusiasts who would often peruse computer magazines at the newsagent, rather like some other "enthusiasts" who might be browsing other, usually graphic, magazines, possibly wearing a "Mac").

Though the term is "Nerd", now, and it's become possibly respectable, in those times, especially in high school, it really wasn't cool at at all, and seemed to attract more derision that being into StartTrek or even D&D.

I don't think the majority of girls wanted to be seen dead in such circles, though not because of "bro" culture, far from it. girls were more than welcome.

Possibly things have changed now, I don't know, but I'll note also that back then there didn't seem to be much discussion of gender ratios in either industry or in education.

I don't know if that's because of heightened general awareness now, or simply that anything IT has become even more lucrative, and (probably as a result) much cooler. What is the gender ratio in coal mining?

<comment><USER14> > Though the term is "nerd", now, and it's become possibly respectable

I don't think this is true. I think that there are "nerdy" things that have become trendy (like thick framed glasses, playing retro video games and music, or being smart), but its still not cool to be a true nerd. (or maybe "nerd" is being redefined)

See this Portlandia sketch that explains my point: [https://www.youtube.com/watch?v=J9Jbz4c_WKA](https://www.youtube.com/watch?v=J9Jbz4c_WKA)

<comment><USER15> Me last night: So I've been working through some math books for fun...

People I was with: Wait, go back. You're doing math _for fun_?

All claiming to be nerds, all hanging out at a local barcade (trivia night, hobby of mine). Nerd _culture_ is cool, _being_ a nerd is not. They do appreciate that I can answer about 80% of the trivia questions myself, though.

</comment></comment></comment><comment><USER16> I graduated high school in 1984, and I can't remember one girl in junior high or high school that was interested in computers in any way, although both of the areas with computers that were set up in classrooms were put there by female teachers. I don't know if the lack of interest was due to teachers like the author had (although we had no computer-related classes in high school), if it was a social thing, or if there just wasn't interest there to begin with. I was heads-down learning to program and soaking up information - <USER2> wasn't attuned to others around me. I didn't understand why everyone else wasn't this passionate about it. Obviously, social interaction wasn't my strong suit going through school.

I had access to TRS-80 Level I's, and Apple ][e's. My parents bought me a TRS-80 Color Computer, and I purchased an assembler cartridge and was off to the races. I look back fondly as that fog of ignorance slowly lifted and I realized what these incredible machines could do.

I remember maybe two or three women in my computer science classes in college. That changed when I got my first job (in a university setting, where I'm still employed). Developers here are roughly 60/40 male/female. System admins and networking personnel skew wildly male.

<comment><USER17> I also graduated high school in 1984. By that time, even my small-town American school had a room full of TRS-80s (cassette tape storage!) and a semester-long class in BASIC.

I remember the class being evenly split between boys and girls, and nobody finding that remarkable--some of us even had moms or aunts who worked with punchcards and mainframes.

The top students in the class were the same diligent girls who prevailed in the honors math and English classes; again, not provoking comment. The understanding was that we were acquiring practical skills for a drab something vaguely understood as "business," so intense interest in programming would have seemed very strange.

By the early Nineties, I noticed that programming had obtained this alienating macho reputation, which I find ironic considering how much GUIs made it so much more accessible, and the Web made it so much more interesting. I haven't read a thorough treatment of this period of computing history--any suggestions?

<comment><USER16> I think the difference might have to do with whether or not a class was being taught vs. simple self-discovery. Making no judgements, but it's been my experience that men are more likely to develop on projects outside of work. I have no idea why, maybe it's just a statistical aberration, but that's what I've seen through the years.

</comment></comment></comment><comment><USER18> I found this an interesting read. The higher level math teacher in my high school was a woman and she also taught the nascent "computer" class (which was BASIC programming on Teletypes that dialed in at 110 Baud to a mainframe)

I found myself in friendly competition with women in both Algebra II and Calculus. Our high school produced a number of women engineers and computer science majors as well.

Is that correlation ? causation? Or is it just modelling? I don't know. I watched my kids grow up and saw that they took cues about what they were expected _to be able to do_ from the environment around them. I don't think there is much debate that people try to live up to the expectations put on them by people they look up to.

So to the extent that her message is "We should mindfully decide to have expectations that anyone, regardless of gender, can excel in STEM." I really can't see any harm in that.

</comment><comment><USER19> > The other thing he liked to tell us, though, was that girls shouldn't bother > taking math, because we were just going to be housewives anyway.

This, this this. US society took a socially conservative swing in the 80s as peak women's lib began erroding.

</comment><comment><USER20> To be honest, whilst I don't want to take anything away from the author's story, and I accept that different social expectations would've played a big part, I'd suspect that the main difference was because of gaming culture.

Perhaps some have forgotten, but the gateway drug for many people getting into computers was games, especially in the 80s. Gaming culture at the time was heavily skewed towards boys and young men. I'm sure there were plenty of girls and women who played games too, but on average it seemed to be more of a male activity. Current gaming culture is much more diverse, so don't get things twisted, I'm talking about how things were back then. I think if you can explain the major influences on the gamer diversity landscape back then you can mostly explain the computing diversity landscape right now.

<comment><USER10> If you accept that the early-mid 80s boy teenager became comfortable with computers more than the girls did thesis, gaming is almost certainly part of that. Gateway drug and all that as you say.

I got into computers a wee bit earlier myself but you just need to watch War Games for an anecdotal example.

</comment></comment><comment><USER21> That's a very interesting hypothesis. It needs a little expansion to address the reported "suddenly in 1984" aspect. I wonder if, around that time, there was a change in many colleges that required more advanced math (or some other topic) where HS teacher biases are stronger (or more impactful). Very neat read.

<comment><USER13> 1984 was about when the entire home-computer game industry collapsed, and presumably, many people's dreams of riches.

<comment><USER22> An interesting thought, however I would argue that the vast majority of programming jobs at the time were not with game companies but at a bank or insurance company maintaining some LOB app.

<comment><USER13> Indeed but writing a game was something you could do in school. I know I was inspired by news reports of teenagers getting rich from games they'd written.

</comment></comment></comment></comment><comment><USER23> >I listened to (and played) jazz, often the kind inspired by Lord of the Rings

I want to know more about this part.

<comment><USER24> haha, I've encountered this. it's a trip! Check out the free samples:

[https://smile.amazon.com/Lord-Rings- Vol-1/dp/B00OZTPQZG/](https://smile.amazon.com/Lord-Rings- Vol-1/dp/B00OZTPQZG/)

</comment></comment><comment><USER25> This articles touches on an interesting subject, whether female-targeted advertising and gender-based 'cultural' events are really the best way to recruit more women - or the lack of which is why the divide exists in the first place.

There's always this implied assumption, such as in the Planet Money podcast she referenced, that the cause of the problem is obvious and known. But if it was that simple we would have likely made a lot more progress with the issue by now.

</comment><comment><USER9> Doesn't speak to gender bias, but just plain access to computers was a big factor in the 80's. Non technical parents might be hard to talk into the expense. Among my largish circle of friends, only 2 of us had home computers. And, if your high school had a nice system with various development environments (C, Pascal, Fortran, etc), you had options even those with home computers didn't.

<comment><USER11> If you had a computer in the 80s you at least had BASIC. Higher level compilers tended to be business tools (with business prices), but near _everything_ shipped with BASIC. Often burned into the ROM.

The exception, appearing late in the decade, was the Mac. The Mac had something better: Hypercard.

<comment><USER9> Yes, but that's what I mean. Having access to something besides BASIC gave some people a leg up. It was also fairly common to not have any persistent storage, which made the BASIC much less useful. You could buy it, of course, but it wasn't cheap. Similar for printers.

<comment><USER11> Floppy drives weren't that uncommon. Or even those horrible audio cassette tape systems. It depends a bit on the era I guess. If you're talking mid 70s Altair type computers then compiling a program practically required access to someone with an EE degree. By the late 70s though you're looking at stuff like the Apple II and the Commodore 64 which were usually sold with some sort of mass storage option.

Only knowing BASIC wasn't nearly the handicap it would become either. Most people were in the same boat.

As for the price, that's true of everything computer related in the 80s. If you were buying a computer in the first place you were more likely to be able to scrounge together a couple hundred more bucks for the disk drive and printer.

<comment><USER9> I'm speaking from my own experience, so perhaps biased. I felt my access to a minicomputer put me way ahead of my peers. And many did have parents that paid for a computer, but not for the tape drive, or floppy.

</comment></comment></comment></comment></comment><comment><USER26> Is it bothering anyone else that the article itself has no apostrophe in the title, and the HN post added one in the wrong place?

</comment><comment><USER27> From about 1983 onwards, home computers were commonplace in the UK. This was mainly the Sinclair Spectrum (a device that, perhaps, caused a mini industrial revolution in the UK by teaching a generation how to code (and how to hack hardware)), with a smattering of Acorns, BBC Micros (also an Acorn, really) and Commodore 64s.

I learned Z80 assembler and built some add-on boards on a Spectrum and never looked back.

</comment><comment><USER28> This article makes it even more interesting that math majors have risen in terms of female distribution at the same time CS has dropped.

<comment><USER10> It may be worth noting that, at a lot of schools CS was (is?) part of the math department as opposed to engineering. It's plausible to me that as CS became more about programming (and brought a lot of associated cultural baggage with it), people who were in CS essentially for pure math reasons switched out of CS.

<comment><USER29> I wonder whether there was a point at which computer science departments began to become independent of math departments, and when that occurred?

<comment><USER10> It seems to vary a lot by school for historical reasons though I haven't studied the subject. Some schools it's been connected to electrical engineering forever. Other schools it grew out of math. There are areas of EE that have very little to do with computers, especially decades ago, so I suspect that a lot of it is historical happenstance.

</comment></comment></comment></comment><comment><USER29> The author discusses how people saying "math isn't for girls" was part of why she didn't go into a computational field.

I'm surprised there isn't more discussion in the comments here of how women are discouraged from entering tech by the assertion and defense of the notion that "women are biologically unsuited for software development".

</comment><comment><USER30> Nothing about computers back then was social. There was no social component. Programs done by yourself, at a keypunch. Output read by yourself. Hard to study in groups. You can't really have a debate about the sign bit.

Pre-wed majors were social.. Comp sci was not

<comment><USER31> I was a CS student at the same time as the author. Undergraduate programming was done in rooms with multiple terminals so it could be social if you wanted it to be.</comment></comment>


The White House bunker uses Stormpulse [fast fwd to 3:15] - <AUTHOR> http://www.whitehouse.gov/blog/2009/12/18/inside-situation-room

<comment><USER2> That's awesome! So you've got special government pricing tiers now too, eh?

<comment><AUTHOR> No, but we're thinking fast.</comment></comment>


Tell HN: GitHub deleted anti-censorship activist repositories - <AUTHOR> Github just deleted ValdikSS [1] account and all of his repositories.
Including GoodbyeDPI, bypassing some DPI-based censorship, and Super-UEFIinSecureBoot-Disk, allowing to boot things when secure boot is enabled. The interesting thing is that he recently published some work [2] breaking UEFI secure boot (not on github, but on zeronet), basically undermining Microsoft, current owner of Github and big pusher of UEFI.
His twitter account confirming that: twitter.com/ValdikSS
[1] https://github.com/ValdikSS
[2] https://habr.com/en/post/446238/ <comment><USER2> No, Github DID NOT delete my account. My account is hidden from public (shadowban).

No, this is likely not because of GoodbyeDPI or Super UEFIinSecureBoot Disk.

Most probably it's because of someone has been spamming from my ISP's /24 IP range.

>His twitter account confirming that: twitter.com/ValdikSS

No, learn to read.

<comment><USER3> I want to upvote you because you're the original author and thus your comment is super relevent, but I think the last sentence of your post violates this site's guidelines. What in your tweet was misinterpreted?

<comment><USER2> >but I think the last sentence of your post violates this site's guidelines

I'm really getting pissed off when people overinterpret other people texts and create "news" based on their biased misinterpretation. What I stated in twitter post is that any company can do anything with your data or account, and you should not rely on any free service on the internet. That's it, only that. I did not say that my github account is deleted or that the reason behind that is one of my repository.

Moreover, for some reason people tend to read only that first tweet while what I wanted to say is in next 5 tweets too.

My primary language is Russian, and I'm usually very cautious of my written language and always try to write any texts (emails, blog posts, Russian craiglist listings) as clear, unambiguously and literate as possible, but always see people who just don't read. This is not an insult, I mean it literally: PLEASE learn to read in full.

<comment><USER4> > This is not an insult, I mean it literally: PLEASE learn to read in full.

I find it amusing that wanting other people to learn to read can be and often is considered insulting. Perhaps there's also a bit of a culture clash - Russians are relatively direct.

Spending your time trying to write clearly and unambiguously likely won't be appreciated much, but it does make the world a better place.

<comment><USER5> > I find it amusing that wanting other people to learn to read can be and > often is considered insulting.

It's an insult when that person does know how to do it.

This issue wasn't related with his capacity to read either, which further enhance how it was used as an insult.

It was a misunderstanding, that's all. No one is specifically responsible for it.

<comment><USER6> I don't see what your are arguing at all. I see full intend of abusing the "misunderstanding" to push fake news. We should be more cautious to the adversary trends lately instead of focusing on someone's own feeling.

</comment></comment></comment></comment></comment></comment><comment><USER7> One of the most terrifying parts of 1984 (the Orwell novel, not the year) for me was the memory hole - a physical hole in every office where paper containing illegal ideas or "wrong" information was dumped to be immediately incinerated. So much of what we know about the past and who we are today comes from the written record and interpretations thereof - it was basically erasing history as it happened.

For a long time, we didn't really have to worry about this sort of thing, because the physical infrastructure required for such a system didn't exist, would be prohibitively expensive to create, and would likely lead to massive protests if someone tried to create it.

But now we are in the digital age, and we have slowly been creating our own memory hole infrastructure, bit by bit, in the form of centralized cloud services. This deletion is an example.

Now, these service providers should be (have to be) allowed to remove whatever they want from their platform, but the fact that they can do so should be front and center in everyone's mind when they post content to them, be it code or text or video. We should be patronizing alternatives to github, youtube, facebook, and all other large centralized data stores as much as possible.

<comment><USER8> Since git users keep complete copies as a matter of course, the effect of github deletions is less dramatic. I realize this doesn't help for related information such as issue discussion.

<comment> crooked-v On this note, I'm surprised there's still no de facto standard for having web UI issues associated with a repo actually be powered off text files committed in a subfolder.

<comment><USER9> There have been a few different projects for tracking issues as objects in Git storage, but they all do things in slightly different (incompatible) ways and none have gained enough mindshare to be commonly used. My guess is that none will ever gain enough mindshare without being packaged in with git itself, either, so we got ourselves a chicken and egg problem.

</comment></comment></comment></comment><comment><USER10> I'll just leave this here

[https://web.archive.org/web/20190412171819/https:/twitter.co...](https://web.archive.org/web/20190412171819/https:/twitter.com/ValdikSS/status/1116066219281592320)

[https://web.archive.org/web/*/https://github.com/ValdikSS](https://web.archive.org/web/*/https://github.com/ValdikSS)

</comment><comment><USER11> Unfortunately we live in a time where there is no money in doing the right thing. If you want to work on replacing these monopolies, save up your money and try to budget the best you can. It's sad that a decentralized GitHub doesn't exist yet backed by IPFS. It's unfortunate the direction browser companies is more invasive web technologies that enable sites to track your every move. You are competing against billions, if not trillions, of dollars when you want to challenge the status quo. These companies know that eventually you'll need money and they'll buy you and all your friends up to stop making things better and to join them in their mission.

<comment><USER12> There is a decentralized GitHub: [https://github.com/noffle/git-ssb- intro](https://github.com/noffle/git-ssb-intro)

<comment><USER11> It isn't even open source and appears to have very little active development. Very poor quality overall. No one would switch away for something like this.

</comment></comment></comment><comment><USER13> This person has PERSONALLY helped millions of Iranians to get out of the internet censorship there.

So much love and respect for you, ValdikSS.

</comment><comment><USER14> The underlying theory is still about [1] There is some code of use get it quick [2] I also found an MS blurb about UEFI [3]

This apparently requires a Kaspersky rescue GRUB

" Red Hat GRUB Secure Boot repository[2], the only problem—PE header parser is missing. GRUB gets parsed header from shim, in a response to a function call via a special protocol. This could be easily fixed by porting the appropriate code from the shim or PreLoader to GRUB."

[1] [https://habr.com/en/post/446238/](https://habr.com/en/post/446238/)

[2] [https://github.com/rhboot/grub2/tree/grub-2.02-sb](https://github.com/rhboot/grub2/tree/grub-2.02-sb)

[3] [https://techcommunity.microsoft.com/t5/Windows-Hardware- Cert...](https://techcommunity.microsoft.com/t5/Windows-Hardware- Certification/Microsoft-UEFI-CA-Signing-policy- updates/ba-p/364828?advanced=false&collapse_discussion=true&q=uefi&search_type=thread)

</comment><comment><USER15> He was shadowbanned, not deleted.

Also, not as righteous as everyone makes him out to be. The dude was hosting torrents on things like Christchurch shootings in his repos. His content probably violated some terms of service.

<comment><USER16> > The dude was hosting torrents on things like Christchurch shootings in his > repos.

He had links in gists. What terms does this violate? Shouldn't they remove it or warn him rather than locking / shadowbanning his whole account?

<comment><USER15> He was warned several times before

<comment><USER2> That's not true.

<comment><USER15> From your Twitter:

"I have other torrents in gists, and I used to have blocked repository for which Github contacted me prior to blocking this exact repository, asking to remove some files from it. This time I've got no notifications and got my account (not a repo/gist/etc) shadowed."

<comment><USER2> It was only once when my repository got take down by government request, and that time I got a notification prior any actions from Github, after which they restricted access to only said repository from Russia only. I never had problems with data (incl. bittorrent links) in gists or warnings about that.

</comment></comment></comment></comment></comment></comment><comment><USER17> Apparently the account is not deleted but shadowbanned, according to his Twitter: the guy can still create issues and repos, only they're invisible.

<comment><USER18> TIL that github shadowbans.

<comment><USER9> It's the hottest new form of censorship.

</comment></comment></comment><comment><USER19> Hoping (s)he reposts to Gitlab, or sets up a self-hosted instance, it's a shame this he is being blocked, though without the weight of github itself, it's unlikely to get past a lot of the nation state firewalls originally done so with.

</comment><comment><USER20> Remember when Microsoft bought Github? Remember when lots of people said it was perfectly ok and nothing shady would happen as a result?

For every act of evil that we see Microsoft commit there are 20 that we don't see. Remember that.

<comment><USER21> Before you start blaming Microsoft for this just get some popcorn and read the current threads.

Sidenote: Github had these same rules and did ban people long before Microsoft was in the picture. I wouldn't be too quick to conclude Microsoft made the difference here.

</comment></comment><comment><USER22> Would some of these tools fall under the DCMA by virtue of "circumventing access-control measures" [1]? If so some of the hate being directed at Microsoft might be better directed at US lawmakers.

[1] [http://www.dmlp.org/legal-guide/circumventing-copyright- cont...](http://www.dmlp.org/legal-guide/circumventing-copyright-controls)

</comment><comment><USER23> Well, this kind of behavior was predicted the very moment GitHub announced acquisition by Microsoft. No way they make something good for the humanity.

</comment><comment><USER24> > [flagged] Tell HN: GitHub deleted anti-censorship activist repositories

Why was this thread flagged? A misleading thread title?

</comment><comment><USER25> So everyone start putting the content of that repo (I am sure someone forked it) in every one of your repos, especially ones other people use, and see how GitHub reacts.

</comment><comment><USER26> Didn't think Microsoft would move so quickly to censor Github, but alas... this is why I moved to gitlab.</comment>


Programmers and Painted Nails - <AUTHOR> http://clarebayley.com/2014/01/programmers-and-painted-nails/

<comment><USER2> I understand why people where offended it was a gift at a tech conference. Its not that it matters if you paint your nails or not (man or women) but there is usually a lot of inappriopiate to venue advertising to women (think pink biros, and pink science stuff) and I understand the feeling to nip that in the bud. Btw to all the straight males report they paint their nails, anyone use nail art blogs? I've hear of someone thinking about a program for designing nail art. It seems a technically interesting problemset. Scan nail size by finger, or input it. I've not read of any studies on how much variance is there on fingernail size. (though im sure someone has). Then consider what is the smallest paintable size for the users "brush".

<comment><USER3> I read a few blogs as well as subreddits, but at least for now, lack the skill to do real 'art' myself.

A program would be an interesting exercise, I guess.

As for 'inappropriate' advertising to women, I'd say that stuff shouldn't /not/exist any more than ones pitched towards any other specific group too, but the neutral products should be done in a way not to exclude anyone, with the expectation that people will eventually gravitate towards them as they serve different functions - for people already engaged vs getting that initial engagement.

</comment></comment><comment><USER4> > I mean that if a woman walks into a Google mixer with long pretty hair and a > skirt, people assume she works in sales. If she walks in with a ponytail and > a t-shirt and jeans, people are much more likely to believe she's a > programmer.

I am yet to meet a programmer that voluntarily wears a suit. So unless it's a wedding, funeral or HR hoop jumping, when I see a men in a suit I assume he is rather some kind of a salesperson not a programmer. That heuristic served me well in bizarre world of social interactions this far.

<comment><USER5> Yeah, but you won't always be right - do you like being wrong some of the time because you jump to conclusions?

How about deferring judgement until you interact verbally with the person?

How about not using superficial visual cues to infer social and labor roles/identities?

I am a straight(ish, ahem) guy who from time to time paints his nails. Q: What would you infer from that? A: Don't bother, cuz I don't fit into your boxes, and guess what, no one else does (including you).

<comment><USER4> > Yeah, but you won't always be right - do you like being wrong some of the > time because you jump to conclusions?

Yeah. But it takes literally 5 seconds to readjust as new information comes in. If a guy in a suit turns out to be plumber I won't hesitate to ask his card if I am in need of some plumbing service at the moment. On the other hand if I'm right I'm better prepared to spot and fend off attempt to sell me something.

> How about deferring judgement until you interact verbally with the person?

It's impossible to do that without closing your eyes. You use all your senses to figure out environment around you. People are large part of it. How somebody looks, smells or sounds is an information that can allow you to predict things. If I smell alcohol from someone I don't have to wait till he speaks something coherent to decide what actions should I take.

> I am a straight(ish, ahem) guy who from time to time paints his nails. Q: > What would you infer from that?

If I saw you in public with nails painted I'd just think you are daring individual. It might be positive, it might be negative. I'd be more curious but also more cautioned if I ever were to enter verbal contact with you.

<comment><USER3> This sounds about right. People are generally aware of how they look and act and what that communicates to others; it is always possible to adjust people's perceptions through words and actions, but the initial impression is, for most people, at least partly a calculated thing.

By all means, people should look however they prefer to, and ideally many knee-jerk reactions to things would be less so, but the world isn't ideal. I strongly prefer people who do reserve their judgement of someone until a more complete perception of them has been made, but I acknowledge that it isn't something I always do, by any means. If I see someone in a suit, my snap judgement thought is very unlikely to be 'hacker' unless they are discussing or engaged in something relevant (just as it's unlikely to be 'investment banker' for someone in a band tshirt and scruffy jeans). However, I don't discount the possibility by any means.

>If I saw you in public with nails painted I'd just think you are daring individual. It might be positive, it might be negative. I'd be more curious but also more cautioned if I ever were to enter verbal contact with you.

I'd be perfectly fine with this reaction.

I realise I've probably been stereotyped about it, but as far as I can see, it's never actually affected me directly.

</comment></comment></comment></comment><comment><USER3> As a straight male who paints his nails, I find people getting upset over this issue (and the more general issue of gender stereotypes in tech at all) ridiculous, both people who assume negatively and positively.

</comment><comment><USER6> Some people just seem to want to take offense where none is intended.

<comment><USER5> Don't know why you're being downvoted, this type of person definitely exists.

</comment></comment><comment><USER7> i think it's cute when men paint their nails.

<comment><USER3> I understand and appreciate that, but I do hope some day it will be considered as normal and acceptable as it is for a woman to. It's just self-expression, and although it may seem strange, I don't do it to stand out even though such an action naturally does cause me to, and I'd rather I was able to without being 'unusual'. I'm far more confident than when I started, but still feel self-conscious from time to time.</comment></comment>


Ask HN: An inexpensive way to stay in the Bay Area for a week or two? - <AUTHOR>

I am considering driving down to the Bay Area next week for a week or two for some intensified networking and meetings; being on a very tight budget, can't really afford conventional accommodation options. Any reasonable hacks for staying somewhere around the Bay Area for cheap? :) <comment><USER2> I'm currently in the same boat as you - staying at an EconoLodge near Oakland airport... Couchsurfing would be great it you're willing to relocate a few times during the trip - unless you find an awesome host (!), and AirBnB is actually more expensive than this hotel for a week...

The short term market here is pretty under-served actually - especially since there are probably plenty of people in our situation.

</comment><comment><USER3> <http://www.couchsurfing.org/>

</comment><comment><USER4> There's always camping:

[http://www.parks.ca.gov/pages/737/files/august%2017%20geoloc...](http://www.parks.ca.gov/pages/737/files/august%2017%20geoloc%20web_camping.pdf)

</comment><comment><USER5> Try airbnb.com if you haven't already :).

</comment><comment><USER6> Do you have any social network contact here? Plus, where are most of your meetings? Peninsula or the city?

</comment><comment><USER7> Youth hostels.

<comment><USER8> Depending on age a youth hostel might not be an option. The ones I stayed in when I was in Europe wouldn't let anybody over 30(25 in some cases) stay.</comment></comment>


VW accused of ruining Mexican crops with weather-altering technology (2018) - <AUTHOR> https://money.cnn.com/2018/08/23/news/companies/vw-volkswagen-mexico-drought/index.html <comment><USER2> Reached out on twitter to see if my friends in the car business know if any of the Big 3 are using these anti-hail cannons. If true, talk about unintended consequences.

Wouldn't it be cheaper to cover the new cars in plastic tarps?</comment>