1859's "Great Auroral Storm"—the week the Sun touched the earth - <AUTHOR> http://arstechnica.com/science/news/2012/05/1859s-great-auroral-stormthe-week-the-sun-touched-the-earth.ars <comment><USER2> Why so much emphasis on the negative aspects of aurorae? More constructive would be to devise ways of harnessing the solar wind. Just consider: no lossy conversion from one form of energy to another; solar wind is 'electricity'.

In the 1950s, SF writer Murray Leinster already had the idea of drawing energy from the ionosphere (for spacecraft 'landing grids').

Scientific American in 1974 had an Amateur Scientist article about electrostatic motors, which are powered by atmospheric electricity. (And how many times in history has a curiosity led on to something with rather more tangible benefits...? (<http://en.wikipedia.org/wiki/Aeolipile)>)

And recent experiments with lasers demonstrate that it is possible to open up a channel of ionized air to direct lightning ([http://www.newscientist.com/article/mg21328584.200-lightning...](http://www.newscientist.com/article/mg21328584.200-lightning- directed-by-laser-beams.html)).

All that free electricity above us, wasted on pretty colored lights... ;-)

<comment><USER3> Aurora is like fire; taming it would serve us yes, but it is easy to predict when they will occur, and that seems a problem with continuity of electricity supply.

<comment><USER2> That's a very apt description of the problem!

Technology should be developed to tap the ionosphere, where there's a fairly constant stream of electrons. I think the biggest obstacle in the past was storage: breakthroughs were needed in material science to be able to construct suitable capacitors. But I wonder if anyone's looked at this problem recently...

</comment></comment></comment><comment><USER4> Made me wonder how you could prepare for something like this. If you had warning, and a metal box, would throwing all of your electronics in there be good enough to save them?

I'm thinking computer, phone, stuff like that.

Either way, I'm guessing the internet would be down for quite a while. Not to mention what this would do to our electrical infrastructure.

Hmm. I wonder if the fields would strong enough to kill the computers in cars.

This might make for a good near-future apocalyptic scenario. It doesn't sound _too_ scary, but then you start thinking of the possibilities.

Think I'll go make myself a tinfoil hat :D.

<comment><USER5> > Think I'll go make myself a tinfoil hat :D.

Aluminum can _attract_ radio waves. Among other things. I wouldn't recommend it.

([http://web.archive.org/web/20100708230258/http://people.csai...](http://web.archive.org/web/20100708230258/http://people.csail.mit.edu/rahimi/helmet/))

>If you had warning, and a metal box, would throwing all of your electronics in there be good enough to save them?

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

<comment><USER6> A Faraday cage will not work, the frequency is too low. You'd need some Mu- metal.

</comment></comment></comment><comment><USER7> One wonders if we would not be mourning the loss of life in the International Space Station. In 2004 a program to beef up the shielding was kicked off [1] but nobody would commit to saying it would keep the crew alive in a 'Carrington' type event.

My hope is that by the time the next one comes we have both a way to shield satellites and a way to launch replacements quickly.

[1] [http://www.nasa.gov/vision/space/travelinginspace/radiation_...](http://www.nasa.gov/vision/space/travelinginspace/radiation_shielding.html)

<comment><USER8> While the technology might be available there is also something called as economic cost. A lot of what we have today is because we are building something on top of something.

If everything were to go away starting from scratch is not going to be very economically viable.

Add to this the external woes. Loss of electronic life means, several millions will loose jobs and will have to fall back on manual work. The population of the planet has increased substantially. Food, medical and other needs have increased. Much of that scalability depends on electronic means to controlling stuff.

Disruption on a massive level only means extreme chaos.

<comment><USER9> But we have all the blueprints and know how - we don't have to build everything from scratch (most of the time is spent on R&D, building the stuff is actually the easy part). Organize the military and the civilians to start rebuilding everything and we're back on track in several months for sure (except for the satellites, maybe)...

<comment><USER8> Firstly a lot of information today is on hard drives.

We are talking of a massive solar flare. Electronic equipment down, hard disks fried, access to energy limited, communication equipment down. Information in books is safe, but how much of modern information today is in printed books?

If you look at the whole equation. There are going to chained failures of systems. Each depending on other to recover. While none can at the moment.

A scary situation though.

<comment><USER10> Hard drives sit in their own Faraday Cage. <http://en.wikipedia.org/wiki/Faraday_cage>. So they are a lot more protected than you might think. Induction in long power cables is a problem, but things have to get ridiculous before surge protectors become useless.

</comment></comment></comment></comment></comment><comment><USER11> I like how they still use Comic Sans in 1859.

<comment><USER12> Funny, this does look like Comic Sans. Any reasonable explanation for this? I can only imagine that the text was added onto the digital image recently.

</comment></comment><comment><USER13> This event was mentioned on the Nova show Secrets of the Sun, which aired a few days ago: <http://www.pbs.org/wgbh/nova/space/secrets-sun.html></comment>


House Passes Amendments Blocking Funding for Undermining Encryption - <AUTHOR> http://massie.house.gov/press-release/press-release-house-passes-massie-amendment-strengthen-privacy-and-security

<comment><USER2> The summary at [https://www.congress.gov/amendment/114th-congress/house- amen...](https://www.congress.gov/amendment/114th-congress/house- amendment/342), and the bill it is attached to, imply that only funding from only NIST to consult with the NSA/CIA is blocked. Wouldn't this sort of thing be coming out of the NSA's budget anyway? Seems like an easy loophole.

Edit: the loophole is even bigger than that! I listened to the discussion ([http://www.c-span.org/video/?326244-2/us-house-debate- fy-201...](http://www.c-span.org/video/?326244-2/us-house-debate- fy-2016-spending) around 3:16) where Massie says that the bill doesn't prevent collaborating with the NSA to strengthen encryption, only to weaken it. But the NSA can just claim they are helping to strengthen encryption... in fact that's probably exactly what they did when they first introduced DUAL_EC_DRBG to NIST in the first place.

<comment><USER3> This is actually (as far as I can tell) the normal way that Congress buts into the actions of an agency.

NSA would be covered on a separate budget, and in any event there are at least theoretical reason why you'd want the foreign intelligence arm of the nation to be able to weaken encryption abroad, especially when that foreign intelligence agency has the statutory _duty_ to be able to break the codes of the U.S.'s adversaries.

NIST has no such statutory duty, and their budget is handled as part of the normal public Congressional budget process. So what this would do is to prevent the use of NIST-funded activities (e.g. crypto competitions, labor time of NIST employees, etc.) to consult with NSA to deliberately weaken encryption standards.

Even though NSA _could_ fund such actions internally to them, they wouldn't be able to publish such a subverted standard under the imprimatur of NIST the way that Dual EC DRBG was done.

As far as the loophole, the option "Agency A could just _claim_ to be doing legal thing X instead of illegal thing Y" applies to almost all agencies for nearly all illegal things. Fraud is still a crime, even for the NSA; if you're going to assume that NSA will simply break the law then legal changes as a way to stop NSA are irrelevant anyways.

In the case of Dual EC DRBG it appears to have been obvious early on that it was weak and even probably backdoored. Schneier wrote as much about it in a Wired article back in 2007. It's notable that NIST complicity was evident here, which is why something like this amendment is needed. But I can't find anything that claims NSA flat-out lied either, and much of Snowden's own leaks have revealed an NSA studiously trying to stay within (but only barely within) the lines.

<comment><USER4> > Fraud is still a crime, even for the NSA; if you're going to assume that NSA > will simply break the law then legal changes as a way to stop NSA are > irrelevant anyways.

You said it all right there.

</comment></comment></comment><comment><USER5> This seems to imply that the following could be a plausible chain of events:

1\. some of the NSA Suite A ciphers get reverse-engineered by foreign citizens;

2\. isomorphic algorithms with equivalent guarantees to those Suite A ciphers are developed, again out-of-country;

3\. those algorithms are put into a piece of open-source software and posted online, allowing _anyone_ to use them;

4\. industry across the world decides that these "new" ciphers are _really good_ and widely adopts them (e.g. incorporating the code into OpenSSL et al), to the point that they become a de-facto standard;

5\. flaws are found in other current ciphers, such that the isomorphic-to- Suite-A ciphers we now have access to become the only conscionably recommendable choices;

Then, at that point, it seems like NIST could now choose to put these isomorphic-to-Suite-A ciphers into a standard, and the NSA couldn't say no. Is that right?

<comment><USER6> That would be nice. But it seems like US diplomacy has been deployed against anyone claiming to be more secure than US tech companies. It's just crickets out there. Certainly all the Five Eyes's tech companies have been nailed down.

It might happen, but it won't come from a major established tech company in the Americasphere.

</comment></comment><comment><USER7> Like I said in a reply to another comment, see the list of No votes here: [https://www.govtrack.us/congress/votes/114-2015/h290](https://www.govtrack.us/congress/votes/114-2015/h290)

<comment><USER8> Too bad this contradicts the favorite talking point of "it's Republicans who hate sound technology decisions"...

<comment><USER9> That's not as true anymore, plenty of news coverage in the past month of the last NSA limiting bill mentioned how the younger republicans are now more libertarian leaning and anti-surveillance. While the older republicans are still the hardcore national security hawks.

There is some hope for the younger generations it seems, The people who have a better grasp of technology than the older crowd.

<comment><USER4> > There is some hope for the younger generations it seems, The people who have > a better grasp of technology than the older crowd.

While I agree there is reason for hope, the younger more Libertarian crowd concerns me more, even if I agree with them on surveillance.

</comment></comment></comment></comment><comment><USER10> And what is the penalty when NSA continues to do so, assuming they're even found out? Especially when they can just retroactively claim that the people doing so were on overhead for other projects. Or if they simply fund those type of projects through shell companies with reserves from drug running / insider trading?

The only way to fix this mess is to defund and dismantle the whole damned agency.

</comment><comment><USER11> Who are the 43 people who voted against and why? Are there any good sites for public discourse with house & senators about why they vote a certain way?

<comment><USER7> Here are the votes: [https://www.govtrack.us/congress/votes/114-2015/h290](https://www.govtrack.us/congress/votes/114-2015/h290)

<comment><USER11> Wow, that's a great site. Wish there was an open community discussion where I could say.. send messages to my representative who then sends them to the Congress person after filtering messages from a voting group.

I understand that's what representatives are supposed to do, but there's an awful lot of people with opinions..

</comment></comment></comment><comment><USER12> It was a fairly hair-brained scheme to begin with...

NSA: Hey guys - you should totally use this suboptimal encryption standard with these constants we somehow created.

Everyone: Uh... we're good. Thanks...

</comment><comment><USER13> Bah, one of the No votes was my house rep. Time to set aside an hour to write some letters of disappointment on Monday.

</comment><comment><USER14> The posted URL gives a 404 error. It looks like the intent was to point to this press release:

[http://massie.house.gov/press-release/press-release-house- pa...](http://massie.house.gov/press-release/press-release-house-passes- massie-amendment-strengthen-privacy-and-security)

Excerpt:

 _The 383-43 vote represents a victory for electronic privacy advocates. Massie 's amendment would prevent the National Institute of Standards and Technology (NIST) from cooperating with the NSA to weaken encryption standards for the purpose of facilitating electronic surveillance.

"When our government weakens encryption software to spy on citizens, it puts everyone at risk. Hackers can exploit weak encryption to gain access to Americans' confidential health records and financial information," said Congressman Massie. "The NIST charter is to establish dependable standards, not to compromise standards for the purpose of spying."_

<comment><USER15> Thanks. Url changed from [http://massie.house.gov/press-release/press-release- house-pa...](http://massie.house.gov/press-release/press-release-house-passes- massie-amendment-strhttp://massie.house.gov/press-release/press-release-house- passes-massie-amendment-strengthen-privacy-and-securityengthen-privacy-and- security).

</comment></comment><comment><USER16> You borked the URL a bit there. :)

[http://massie.house.gov/press-release/press-release-house- pa...](http://massie.house.gov/press-release/press-release-house-passes- massie-amendment-strengthen-privacy-and-security)</comment>


Director of IT and Operations at Chef on what it means to be secure [audio] - <AUTHOR> https://www.strongdm.com/ben-rockwood/ <comment><AUTHOR> "In some cases, it's not technical debt, its incompetence."</comment>


Ask HN: Is running a VM windows 10 on a Linux OS (Ubuntu) secure? - <AUTHOR> I know that windows has a lot of information that they collect in order to make your experience 'easier' such as assigning ID's in order to target ad's at you when you are browsing. Does the same apply if i run a VM of windows? <comment><USER2> What's your threat model?

Also, what's that thing about the tracking IDs? do you see that on your browsing traffic? (are you sure you're not confusing Microsoft with Google and Facebook, who track you all across the Internet?)

<comment><AUTHOR> Hi,

The information about the tracking ID's can be found here

[https://support.microsoft.com/en-gb/help/4459081/general- pri...](https://support.microsoft.com/en-gb/help/4459081/general-privacy- settings-in-windows-10-microsoft-privacy)

<comment><USER2> That's "only" for Windows Apps that explicitly use it, which means I'm sure there are easier ways to avoid being tracked by that... and it's probably your least tracking concern if you're online anyway.

</comment></comment></comment><comment><USER3> While running Windows, as long as it isn't some modified version of it, there's always a risk that Microsoft could be collecting information about you. A VM is supposed to simulate a computer as accurately as possible, and shouldn't have any impact on the information Microsoft can collect about you.

I wouldn't say it's insecure though, it's mostly a matter of privacy.

<comment><AUTHOR> Sorry yes, i should have been more clear. I don't like the idea of windows collecting and collating information about me. It is a matter of privacy over security

</comment></comment><comment><USER4> noone can answer you if it is "secure" because that highly depends on your perspective and usecase! I would argue that running windows is inherently insecure ;)

but i would also argue that its way more secure than needed for 99% of the users

<comment><USER4> also: running any other OS doesnt make it any more secure. in most cases the user is the weakpoint of the system

</comment></comment><comment><USER5> Yes. Windows does what it's programmed to do wherever it runs.

<comment><AUTHOR> Okay, What about if i flipped it around and ran a virtual linux OS on windows? would this act in the same way, i.e what information (if any) would windows be able to extract from the VM?

Sorry if this seems trivial, i am new to all of this

<comment><USER5> Windows shouldn't be able to extract any information from there, only shared disks (if any) and the telemetry of the virtualization software (if there is such a thing, I don't use Windows.)</comment></comment></comment>


Developers suck at judging their own performance in interviews - <AUTHOR> https://medium.freecodecamp.com/people-cant-gauge-their-own-interview-performance-and-that-makes-them-harder-to-hire-96cd51601437#.3wcfyezbb <comment><USER2> In general the interview process for hiring develops is terrible. The usual flow looks like this:

1\. Non technical recruiter screens resumes for keywords or similar job titles for previous jobs.

2\. Basic CS questions that can be memorized (see cracking the coding interview book) are asked as a screener question.

3\. Some more involved question, or short take home project is assigned that more often than not does not reflect what a developer would actually most often do in the real world.

4\. Developers decide whether the candidate is a good "cultural fit"

What ends up happening is that developers need to maintain two skill sets: the actual day-to-day development skills, and the interview process skills.

I'm not sure what the fix is for the hiring process. How do other successful, mature industries handle this process?</comment>


Micro SaaS Ideas You'll Want to Steal - <AUTHOR> https://www.budibase.com/blog/micro-saas-ideas/ <comment><USER2> 1\. CRM for freelancers, there are so many tools already and becoming anything more than a me too would be luck.

2\. Content Planner - it seems to me that should be a job role, akin to *Editor and not so much a SaaS. Of course, it would help if much more online content had an editor anyway. So many grammar/usage/spelling errors these days.

3\. Instagram Post Automator - I'm surprised it doesn't already exist. Much like CRM variations.

4\. OKR - I'm not sure how you'd outcompete incumbents here, but of the options so far probably the most interesting.

5\. Coffee/Tea round app - Probably easy enough to make, not sure if even $2 would be a reasonable price and actually make any money.

6\. Bookmarks For Designers - Interesting idea... a more generic Bookmarks for X as a trended social graph of sites for a given subject would be cool overall. I know that I bookmark a lot of things and then never get back to them. When I finally do, it's been forked twice, and 2/3 abandoned for yet another renamed clone/fork of what I was looking for. Something like the original Yahoo would be pretty cool to see again.

I'd like to get something started for side income myself, but honestly a bit lazy about it, and more insecure about keeping it separate from my personal self in terms of liability.

<comment><USER3> Direct Instagram publishing through the Graph API is reserved only for certain Facebook premium marketing partners. Facebook did this through a beta program over a year ago then stopped handing access to other organizations. They may offer it in the future bit it's closed for the moment.

<comment><USER2> Shame... one could do something people could run on their own desktop with puppeteer or similar, but even then would have a bit of risk for failure.

<comment><USER3> Interestingly, there's a whole underground industry of services that provide this functionality by having banks of automated Android phones (not sure if physical or virtualized) to post on behalf of the user through the mobile Instagram app. Problem is you have to give them your direct Instagram credentials, and you run the risk of Instagram detecting this and banning your account (has happened.)

<comment><USER4> AFAIK this still can be fully virtualized, but you run heavy risk of a sudden spam detection change and resulting permanent bans.

Source: done it.

</comment></comment></comment></comment></comment><comment><USER5> A problem with some of my own "micro" SaaS ideas: what happens when a service that I encouraged people to put their data into and depend upon, turns out to not be financially viable for me to keep operating?

(All the microstartup ideas, I'd have to bang out, unfunded, and throw against the wall, to see what sticks.)

<comment><USER6> Change the pricing plan, and/or revenue model? Or discontinue the service, preferably with a timely notice and with good support for people to get their data out.

</comment></comment><comment><USER7> Very interesting; great ideas. I need to start coding :) I can't believe that there is no freelancer CRM out there. What type of functionality would set this apart from 'normal' CRM? Hours / billing?

<comment><USER8> There is at least one freelancer CRM that I know of ([https://cushionapp.com/](https://cushionapp.com/)), but it's definitely not a crowded space.

<comment><USER9> There's also Pancake ([https://www.pancakeapp.com/](https://www.pancakeapp.com/)), Thrive Solo ([http://thrivesolo.com/](http://thrivesolo.com/)), Duet ([https://duetapp.com/](https://duetapp.com/)), Invoice Ninja ([https://www.invoiceninja.com/](https://www.invoiceninja.com/)), Flowlu ([https://www.flowlu.com](https://www.flowlu.com)), Plutio ([https://www.plutio.com/](https://www.plutio.com/)), and Freelance Suite ([http://freelancesuite.com/](http://freelancesuite.com/)), and those are just the ones I've tried.

</comment></comment></comment><comment><USER10> What makes these ideas "micro"? They seem like normal SaaS to me.

<comment><USER11> They're not seventh-round worthy, perhaps.

</comment></comment><comment><USER12> Could really do with the freelancer CRM actually, i haven't seen anything out there thats not targeted at enterpise.</comment>


A gallery of large graphs - <AUTHOR> http://www2.research.att.com/~yifanhu/GALLERY/GRAPHS/index.html

<comment><USER2> Cool stuff, but it would be cooler with more context as to what each graph represented.

<comment><AUTHOR> If you click on a thumbnail, then on the "click here for this matrix" link, you get a bunch of additional information.</comment></comment>


Show HN: a compiler from Python syntax to JavaScript syntax (like CoffeeScript) - <AUTHOR> http://pyxc.org <comment><USER2> I built something similar a while back (guess it's been in use for about two years now -- built it to support my company's product): <http://github.com/daeken/Pyvascript>

Key difference between Pyvascript and the other compilers I've seen is a facility for macros performing arbitrary AST manipulations. E.g. in the Pylons environment, you can use _uriOf(Controller.someAction) to have it generate a url in your JS code at compile-time.

Always nice to see competition among compilers, though.

</comment><comment><USER3> I think that python is sufficiently different from javascript that you'll need to provide your own documentation beyond explaining the transformation.

Coffeescript is mostly just javascript shorthand; Python on the otherhand has language features with no javascript equivalent (I'm thinking keyword arguments, generator functions, classes, and especially super() here)

That being said, I think to make this project really work you're going to be responsible for documenting the dom, and providing support for libraries like jQuery.

<comment><USER4> At first blush, I'd say this similar to Coffeescript in that it's meant to be javascript shorthand also.

<comment><AUTHOR> Exactly. It's purely syntax to syntax.

Thanks for the confusion -- I've made the first paragraphs more clear about PJ's scope.

Title changed: s/compiler/syntax cross-compiler/ EDIT: title changed again

<comment><USER4> I guess defining what you consider syntax features vs. Python language/runtime would be appropriate for the docs.

ie. 2 * * 1024? print object.__mro__? slice objects? __call__? etc.

<comment><AUTHOR> Here's the decision procedure:

If there's no collateral damage and the JS is clear (e.g. 2 __8 -- > Math.pow(2, 8)): do it.

If there's no proper way to express the JS in Python (e.g. instanceof and typeof keywords): do it

If it's really important (only "print" and "self"): do it

Else: DON'T

These few special cases that mess with your code are all mentioned in a section on the the main page.

And you can easily remove them from the transformations if you want.

</comment></comment></comment></comment></comment><comment><USER5> Here's my thing like this for Ruby:

<http://github.com/jedediah/prettyscript>

I abandoned it when CoffeeScript appeared, but you might find something interesting there.

</comment><comment><USER6> This is a really neat idea, and I'm definitely going to look into this more when I have time, but I have a small nit to pick.

print(...) is a common debugging, or output call in python, and I can see how in many use cases that would translate to console.log in javascript.

However, some browsers don't support console.log, and in serverside javascript, objects like console and window are not available. I don't know of any common output technique that would work in all browsers as well as with node.js and ringo. Depending on how much you care about supporting serverside js and different browsers, this may be a non-issue.

<comment><AUTHOR> Thanks. I'll change

      pj.transformations.special.Call_print

to have the emitted code check if you've defined a print function, using console.log only if you haven't.

      ((typeof print !== "undefined" && print !== null) || console.log)(...)

</comment></comment><comment><AUTHOR> Feedback welcome. And if you encounter any problems, I'll fix 'em quickly.

</comment><comment><USER7> I wrote one of these for a project. The trouble is that to write functioning python code, even for just the primitives, you have to add a lot of extra scaffolding. I eventually stopped working on it since Pyjamas seemed to be doing a much more complete job (<http://pyjs.org/>).

I may still write a limited one for use in creating code blocks in my project MongoAlchemy (<http://mongoalchemy.org/>).

</comment><comment><USER8> A more conservative (i.e. closer to the generated javascript) approach is pythonicjavascript (<http://code.google.com/p/pythonicjavascript/>). Personally I prefer making Javascript look more like Python (<http://classy.pocoo.org/>) than creating yet another language variant with subtle differences from the original.

</comment><comment><USER9> For which use cases this compiler would be helpful? I believe python and JavaScript are typically used for different purposes.

That being said, it looks fantastic. :)

Disclaimer - I do not know JavaScript.

<comment><USER10> Better way of writing javascript (just like coffe script).

You can embed this in a web app and write your client-side code in python- syntax. Would work specially well if you server-side code is also in python.

</comment></comment><comment><USER11> on the flip side, here's an experiment for converting JavaScript to Python, and then if it turns out to be valid RPython (a subset of Python where among other things the types of variables don't change), converts it to a native executable.

[http://mozakai.blogspot.com/2010/07/experiments-with- static-...](http://mozakai.blogspot.com/2010/07/experiments-with-static- javascript-as.html)</comment>


Best Job in America? Online Employee - <AUTHOR> http://www.msnbc.msn.com-64.us/read/?Article=57399

<comment><USER2> That was not cool. Froze my browser (FF, linux).

I'd flag the hell out of this if I could.</comment>


Are there any alternatives to Crocodoc? - <AUTHOR>

I worry about their recent acquisition by Box.  We have a large doc db that we use Crocodoc with to view and wonder if there may be issues (ie. new api limits/integration changes) with the new owner.<p>Anyone know alternatives, especially ones that can read doc, docx, ppt, etc. <comment><USER2> You really shouldn't have any reason to worry. Box has stated pretty loudly that they're going to keep all the current customers up and running.</comment>


Toy Robot building blocks, without any programming - <AUTHOR> http://www.youtube.com/watch?v=4EDsLayRKQA

<comment><AUTHOR> <http://www.modrobotics.com/></comment>


Leapfrog Probing for open addressing hash tables - <AUTHOR> http://preshing.com/20160314/leapfrog-probing/ <comment><USER2> The author doesn't mention deletion (which is actually the most problematic part of open-addressing hash maps). If you use gravestones (which is the solution most people take) you end up with wasted space. You can optimise it slightly by retaining the stored key in the gravestone so if the key is set again, you can reuse that spot. However, and more optimisation starts causing orphaning problems. This is why I much prefer buckets because lots of removals don't incur a sudden performance penalty.

Also, I can see that if your first delta hits another probe chain's beginning, then you'll end up with the same chain. This is slightly solved by quadratic probing, where your first and second multipliers have differing effects on the output so two chains that meet once aren't forever locked together. Maybe if you incorporated some of the quadratic effect into Leapfrog this issue might be alleviated.

</comment><comment><USER3> It would have been nice to have some context with regards to the algorithm being explored. Although some ideas seem pretty clever, I've too often seen code implementing this in a haphazard way (buggy, no comments). This leaves the next programmer scratching their head and wondering ... why? Unless you have very specific performance and memory constraints, I do not see the need for such structures in most every programmers daily business.

<comment><USER4> This is a very unproductive comment / view-point. I find the anti-learning stance troubling.

This is a link to a very technical article hash table implementation a pretty popular data structure. Right at the top it tells you that's what it's about. Also, if you bother to check the side of the article when it list recent article or go look at the other blog post you'll see it's a follow up on a previous article on lock-free hash tables that use this method. That's more then plenty of context if you just give it more then 5 seconds.

> Although some ideas seem pretty clever, I've too often seen code > implementing this in a haphazard way (buggy, no comments). This leaves the > next programmer scratching their head and wondering ... why? Unless you have > very specific performance and memory constraints, I do not see the need for > such structures in most every programmers daily business.

Again, right in the article... the guy tells you that the common implementation of using a linked list for buckets in hash table is performance unfriendly (cache unfriendly) on modern machines.

Just because you don't see a need for it in your daily business, doesn't mean others do not there are plenty of cases where linear probing hash tables make sense. This includes any kind of GPU computing, databases, or anywhere your bottle neck is a particular lookup data structure. And yeah, those are all niche use cases, but they numerous and important enough where somebody might learn something.

<comment><USER3> I don't think this type of information shouldn't be disseminated. I wanted more context as to the use of the structure, or what brings the author to demonstrate it. Not having such context, I then express some concerns with the shoddy implementation I've seen in other code bases associated with this structure. Not to say this is not useful, OR that all implementation of hash tables are sloppy of course. Also, I clearly think it does have it's use, I just wanted more background info from the author. The article is otherwise very well written and explains fairly clearly the structure and some caveats.

</comment></comment></comment><comment><USER5> Also an interesting variation on hash tables is the Cuckoo Hash ([https://en.wikipedia.org/wiki/Cuckoo_hashing](https://en.wikipedia.org/wiki/Cuckoo_hashing)). However, I don't think it makes a lot of effort in keeping marching keys near to each other, so I suspect Leapfrog probing might cause less cache misses.

<comment><USER6> Cuckoo needs double space, and even if you add those two tables one after the other, it begs for cache misses with larger arrays, besides needing a much lower fill rate than leapfrog, which only needs 2 bytes extra. leapfrog looks really promising

<comment><USER7> I'm not sure how Cuckoo hashing would compare with regard to cache misses, but it doesn't take double space. Each element makes can use a second hash function and in space efficient implementations (with a third hash function, etc.) the space utilization is over 90%.

See the conclusion of "Space efficient hash tables with worst case constant access time" ([http://www.itu.dk/people/pagh/papers/d-cuckoo.pdf);](http://www.itu.dk/people/pagh/papers/d-cuckoo.pdf\);) it starts:

> From a practical point of view, d-ary Cuckoo Hashing seems a very > advantageous approach to space efficient hash tables with worst case > constant access time. Both worst case access time and average insertion time > are very good.

</comment></comment></comment><comment><USER8> I had a moment of panic where I had interpreted this as a security vulnerability in Leapfrog computer toys.</comment>


How do you deal with office politics? - <AUTHOR> and when incompetent people kiss ass and get promoted while people who work hard and get things done are more often than not sidelined. <comment><USER2> An approach which I've had much success with is to make friends with people much higher in the chain and 100% ignore the office politics bullshit happening at your level. i.e. don't participate in rumour spreading, never talk negatively about co-workers, try and be positive even under adversity. Also, maximize your social, non-work, contact with co-workers. Go with colleagues when they get coffee, regularly go to Friday night drinks.

If there's only 1-2 layers between you and the CEO, then try and talk when him or her on a regular basis. Make an effort to remember what they are doing in life (perhaps he / she takes their kids to football practice multiple times a week). If you're in a larger organisation make an effort to become friendly with people outside of the Engineering chain of command.

</comment><comment><USER3> Unfortunately, getting promoted, and moving up the chain has nothing to do with how hard you work or how qualified you are at doing the job. It has everything to do with what how people __think __how hard you are working and how much they __think __you know. Moving up in corporate culture in most places is a popularity contest. Not to different from joint the popular group in high school. This is a cynical view, but it is what I have observed in my now 30 years experience in the corporate world.

Don't try to change it. Don't try and be part of the problem, it is not worth the punishment your self worth will endure.

Best solution is to get really good at whatever it is you do to the point where you hold the cards and they are the ones that are begging you to join them. Then you can dictate the work environment that you will put up with.

Or just start your own company and attempt to foster the work environment you wish you had for your employees. This is the path I choose and it is extremely rewarding - even though I don't make as much money as I could if joined the program.

</comment><comment><USER4> My aunt used to play it like a game, pitting people against each other and then sitting back to watch the fireworks. I myself an am extreme introvert and can't really tolerate being around people for more than 90 minutes without getting physically ill. What has worked for me is being well-mannered polite and pleasant almost all the time so that when I give my short, concise answers, it is not interpreted as rudeness. I focus on the satisfaction of the work I do, the adequecy of my pay, and the other small things I enjoy about my job. I make it a point to excercise daily. In the past I had jobs where stuff like that was intolerable and there was an added component of bullying. I nuked that job with only a vague 'Going back to school' plan. I was unemployed for several months and looked like I might have to move back into my car. But I didn't and have never regretted it. If it is that bad, like a shitty bf or gf, dump the muthafucker already. Or at least start working on your exit plan.

</comment><comment><USER5> You take what you have (good or not), and make the best of it. That includes what you choose to do with your reaction to things. We all have emotions, and emotional reactions to situations. Recognize that, respect the emotion, and then move beyond it to something positive, productive, constructive.

It's not easy. With practice it becomes easier.

</comment><comment><USER6> 1.Be upfront , and talk to your supervisors or better yet the person who got promoted and let them know that it's not okay (preferably in a social setting) Give them some time to reflect on their actions and if they continue to kiss ass , let them be their own person. People who are higher up value loyalty more than they show.

2\. Work your butt off , get noticed and then quit to join a more conducive work environment.

3.Team up with colleagues and ask an immediate supervisor the same question you posted here. Ask them in a way that doesn't seem like you're complaining. You'd be surprised at what may come out of that conversation.

4\. Above all , use the rationality principle , cut your losses and move on.

</comment><comment><USER7> You accept the fact that life is't fair, and that you deserve only that which you bargained for. Plus the fact that people are emotional creatures.

</comment><comment><USER8> I just find comfort in the fact that mid-age adults are just tall children :)

</comment><comment><USER9> I am yet to find some effective way of dealing with this problem - long term plan: retirement at age 40.</comment>


AndroWish: Tcl/Tk on Android - <AUTHOR> http://www.androwish.org/index.html/home <comment><USER2> Kind of sad the UI wasn't fixed. TCL/TK looked old and archaic a decade ago on desktop machines, and still looks really bad here: [http://www.androwish.org/index.html/wiki?name=Example+Script...](http://www.androwish.org/index.html/wiki?name=Example+Scripts)

It is old Sun technology that Sun abandoned to work only on Java and if you are familiar with how bad and ugly the original Java UIs were (AWT, Applets, etc.) you already know what it looks like.

To match modern Android UIs they have to rip out a lot of chrome and needless borders and decoration and make the whole thing a lot cleaner, then redo everything to try to follow a consistent design grid of touchable items. Android designs follow a 48dp grid (dp being a pixel that scales with screen density) to keep things consistent and the right size to touch. In the screenshots above you often see things like inconsistent spacing and tiny microscopic checkboxes (which are not even consistent checkboxes with the rest of Android so increase user friction).

<comment><USER3> They did fix the tech with TTK/Tile. The thing is, the default themes for it are decent, but they're still far from what Qt does. And even Qt isn't perfect.

Here's how things look with Tile: [http://tktable.sourceforge.net/tile/](http://tktable.sourceforge.net/tile/) (click Screenshots on the left).

<comment><USER4> This:

[http://www.mcvoy.com/lm/bitmover/lm/gui/gui.html](http://www.mcvoy.com/lm/bitmover/lm/gui/gui.html)

is done with Tk. It's possible to make it look semi decent and not that hard. We should have picked some better fonts.

</comment></comment></comment><comment><USER5> I made Hecl work on Android, but it has kind of languished, unfortunately:

[http://www.hecl.org/](http://www.hecl.org/)

</comment><comment><USER6> Nice to see Fossil SCM being used as the website host. Thanks SQLite creator!

<comment><USER7> ...and former TCT (Tcl Core Team) member.

(This is drh (Richard Hipp) for those that don't know off the top of their head who the principal of SQLite is... [http://en.wikipedia.org/wiki/D._Richard_Hipp](http://en.wikipedia.org/wiki/D._Richard_Hipp))

</comment></comment><comment><USER8> John Ousterhout is a professor who really did some amazing programming back in the 90s! Can't think of many people coming close in terms of productivity.

<comment><USER9> INteresting:

[http://en.wikipedia.org/wiki/Ousterhout%27s_dichotomy](http://en.wikipedia.org/wiki/Ousterhout%27s_dichotomy)

Ousterhout's dichotomy is computer scientist John Ousterhout's claim[1] that high-level programming languages tend to fall into two groups, each with distinct properties and uses: system programming languages and scripting languages

</comment></comment><comment><USER10> Fossil.. it deserves more attention than it has now. Maybe Git is more powerful, but Fossil is a pearl of software engineering

</comment><comment><USER11> I realize I am raining on the parade a little bit but,

As a person who has worked with TCL, I would hate to see it anywhere other than where I have run into it before (IC design). It is an almost-lisp that has way too many idiosyncrasies and bad quirks.

<comment><USER4> Yeah, agreed, and we still use it so we made a little C like language that compiles to tcl byte codes. Makes coding there far far more pleasant (for me at least).

[http://www.mcvoy.com/lm/L/L.html](http://www.mcvoy.com/lm/L/L.html)

<comment><USER11> Excuse me for asking, but are you doing IC?

If not, what is tying you to TCL? legacy software? Also, why not just interface away from TCL?

I'm trying not to be too negative on TCL, but it's just not worth the trouble. Now, if someone built a lisp on top of tcl, I might use it, but things like having a { in the comments or spacing out opening {s for a loop is a ridiculous problem for a parser to fall down on (with a non-intuitive error message to boot).

Also, you guys are throwing away the good (lispy) parts of tcl by having a C like language (the syntactic consistency, meta-programming by creating variables dynamically,etc)... Also, I bet people have to do some "training" to get up to speed on which parts of the C-like language are which, which generally leads to

Not to sound arrogant, but if I was working with you guys, my first 20% time project would be to convert whatever it was that was tying us to TCL to something else, unless it was super duper impossible (like it was in IC). It's just a productivity killer, in my experience.

<comment><USER4> Sorry, didn't see this until now. We do cross platform gui apps in L/Tk for our source management system. We're pretty small so doing native apps for Windows/Mac/Linux is a lot more work than doing it once. Yeah, the hassle of making them look good is true but not as true as people claim it is (see my other post above).

We looked at Qt and I didn't want to bite of C++ on all our ancient platforms we support.

I'm a C kinda guy, I like looking at things and understanding it quickly (when going into new code I tend to read the .h files and find the structure definitions, that tells me a lot). Most scripting languages don't have structs (they use a hash instead which means you never really know what is in there unless you find every single assignment to it and memorize all the keys).

<comment><USER11> Hey thanks for the reply, was very curious what you were using it for...

So, this is pretty crazy, but why not try a small rewrite of some non-trivial functionality in Go? Other than being a language hipster (which I admit I am a little bit), I point to these reasons:

1\. Go's ease of cross-compilation is outstanding, so much so that everything else I think of (java, python, C/C++) are not as easy

[http://dave.cheney.net/2012/09/08/an-introduction-to- cross-c...](http://dave.cheney.net/2012/09/08/an-introduction-to-cross- compilation-with-go)

2\. Go is trying to be used in a "systems language" context, so it's relatively quick

3\. It's not C++, and is relatively safer

If you're with me till now, then you've realized the real problem with something like Go for this is the GUI library -- unfortunately there are not enough that have been around long enough to be as stable/trusted as TCL/TK.... so that's a bit of a problem.

You could also make the UI to your app a website, rather than a GUI application?

\</comment></comment></comment></comment></comment><comment></comment><comment>-- OR </comment><comment></comment><comment>--

What about a your-app-is-a-website type framework like TideSDK?

[http://www.tidesdk.org/](http://www.tidesdk.org/)

You can encapsulate and separate your engine code (which is doing the heavy listing), and just have the client be something that sits on top of it.

Sorry, these solutions are quite pie-in-the-sky and I'm sure that you guys are focusing on getting things done (for which L/Tk is perfectly fine), but if you guys are small, I think you might have the agility to move onto a different solution, and I can't help but suggest these things, because I think working on a TCL/TK stack might get things done, but you're gaining experience in a technology that is thoroughly antiquated... So yes, you'll get things done, and you guys will do a great job, but at the end of the day, when it comes time to move to something else, not a lot of the knowledge you gained will be useful?

<comment><USER4> So moving to anything is a pile of work, we have 10 different guis in L/Tk:

      bk citool - graphical check-in tool
      bk csettool - graphical changeset browser
      bk difftool - graphical differences viewer
      bk fm3tool - three-way merge tool
      bk fmtool - side-by-side merge tool
      bk helptool - graphical front-end to the help system
      bk renametool - graphical tool for finding renames
      bk revtool - graphical history browser
      bk setuptool - graphical front-end to the setup command
      bk explorer - file/repo/branch explorer

which is about 26,000 lines of code.

We're trying to relaunch the company, we've never done any marketing, just coasted on the rep we got from having the Linux kernel use us for a while. Rewriting all the guis is a big task - we need to focus on stuff that will make money or the whole thing will be a moot point :)

And we're gonna open source L pretty soon here so maybe that will breath a little life into the tcl/tk ecosystem (and maybe not, I have no way of knowing). L is pretty pleasant, it has replaced perl as my goto scripting language. I'd love it if gcc had an L dialect.

</comment></comment><comment><USER12> It is somewhat confusing whether this is a wishlist or done-list :)

<comment><USER13> You are probably joking but...wish it the "gui" executable for Tcl.</comment></comment>


Pharo 8.0 - <AUTHOR> http://pharo.org/news/pharo8.0-released <comment><USER2> As a long time Ruby developer I frequently hear older developers talking fondly about their experiences working with Smalltalk long ago. When I saw this post, I was curious enough to watch a video just now by a respected Ruby dev (who's admittedly new to Smalltalk and using an older version of Pharo): [https://www.youtube.com/watch?v=HOuZyOKa91o](https://www.youtube.com/watch?v=HOuZyOKa91o). The video is short, but it looks to me like the advantage of developing in this environment is mainly that you can write a test, run it in a kind of debug mode, and when the environment encounters something it doesn't understand it gives you some options for creating something new like an object or a method to solve the problem. This seems kind of cool, but I feel like there must be more to it. Can anyone better explain the selling point, or share a video that highlights how this environment is so cool?

<comment><USER3> There is no single selling point. Here are some surface things that I immediately liked:

1\. You can download a single zip file (Pharo Standalone) and it will give you all the tools of a modern IDE without shitting all over your system and with faster startup than Atom, VS Code or even LINQPad.

2\. The environment retains all its state across restarts. The editor stuff, the running state of the program - everything.

3\. You have the same capabilities as the people who developed the language. You program, the run-time environment and the editor itself can be browsed and edited by the same set of tools, without any extra hoops. There is very little "magic".

4\. The syntax of the language is designed so that you can create DSLs without using macros or pre-processors.

5\. It's the only environment in my recent memory where I can do stuff without opening the web browser to search for something every 5 minutes.

6\. IMO, breaking the system into four-tier structure made the whole thing much more tractable than infinitely nested directories or namespace hierarchies. I also like that there is no need to manage files with code.

</comment></comment><comment><USER4> Pharo always looks cute, but does anyone here use it, even for toy stuff?

<comment><USER5> "The future is already here – it's just not evenly distributed." \- William Gibson

I did some work in Smalltalk (working on a mod of Scratch 1.4, which was written in Squeak Smalltalk from the turn of the century). Once you got used to it, it was amazing. The environment is lively, and you can debug into everything.

The tech is great; it is just that the community of people who know it is relatively small. If you wanted to develop an open-source project in it, you may have a harder time finding other developers to help.

On the other hand, if you wanted to make a cross-platform desktop application that doesn't look native (which, given the prevalence of Electron, doesn't seem to matter too much to people), this would be an excellent choice.

I wish I could do more development with Pharo. I also think the web framework Seaside would be fun to work with. [http://seaside.st/](http://seaside.st/)

We just need to go back in time to twenty years or so and take a different fork ...

<comment><USER6> > On the other hand, if you wanted to make a cross-platform desktop > application that doesn't look native (which, given the prevalence of > Electron, doesn't seem to matter too much to people), this would be an > excellent choice.

Yeah, as if people are going to install a whole virtual machine to run a chat application...

Wait...

<comment><USER7> > Yeah, as if people are going to install a whole virtual machine to run a > chat application...

You can install an application that launches the VM with the desired image and the user will never know the app is running inside a Smalltalk VM.

<comment><USER8> i think they were being sarcastic, because slack is JavaScript in a VM (Electron) to run a chat application.

</comment></comment></comment></comment></comment><comment><USER9> 16" MacBook Pro, Catalina, I get ""PharoLauncher.app" can't be opened because Apple cannot check it for malicious software." "This software needs to be updated."

<comment><USER9> For others coming along later, right click, pick "open". If you don't get an "open" button on the dialog, go to system preferences, security, general. You should see a button that says "Pharo Launcher wouldn't open. Open anyway" or something of that nature. Click. Profit!

</comment></comment><comment><USER4> vm doesn't start on Windows - "Unsupported 16-bit Application".

<comment><USER10> I resolved the issue by navigating to the directory where it downloaded the vm's, deleting the folder and unzipping manually. Seems the launcher corrupts the files when it unzips them.

</comment></comment><comment><USER11> Five clicks through from the home page and I still can't seem to find a "Getting started" / "Hello World" example.

<comment><USER12> One click on the "Documentation" tab provides links to several screencasts/tutorials. Are you looking for something specific? "Hello world" doesn't cleanly map to an environment as comprehensive as Pharo because there are so many options. Do you want "hello world" to output to the terminal (Stdio stdout << 'Hello world')? A window? A growl-style popup (UIManager default inform: 'Hello world')? The transcript (Transcript show: 'Hello world')?

</comment></comment><comment><USER13> website down?

<comment><USER14> > This page > ([http://pharo.org/news/pharo8.0-released](http://pharo.org/news/pharo8.0-released)) > is currently offline. However, because the site uses Cloudflare's Always > Online™ technology you can continue to surf a snapshot of the site.

Except that I see a big error page.

Isn't CloudFlare supposed to help with this? The message on top seems to indicate that, but when I (back in the day) tested with CF on my domain it just proxied every request and failed when my server didn't respond, having zero advantage over just using my server directly (in fact, even having the downside that Tor users now couldn't reach my site anymore). Seems like that's still the case.

<comment><USER15> It is optional to let CloudFlare cache the content. I believe you can control it from the CloudFlare control panel as well as affect it from your HTTP headers. So I bet they have the feature enabled on the panel but their HTTP headers tell CloudFlare not to cache the page, maybe accidentally.

<comment><USER16> It is caching the static assets (js, css, png, etc) based on default extensions[1]. The page itself is dynamic, likely for the comment feature at the bottom of the page. If they wanted to cache it, they could probably add some caching headers (have to change the responses on the origin) or a Page Rule in cloudflare (and not have to change anything on the server). But that won't be a good idea if people can login to the page to comment (not sure if CloudFlare can tell if someone is not-logged-in and return a cached version; that would be interesting). I see CF-Cache-Status: DYNAMIC header, which is:

"The resource content type was not cached by default and your current Cloudflare caching configuration doesn't instruct Cloudflare to cache the resource. Instead, the resource was requested from the origin web server. Use Page Rules to implement custom caching options."

[1] [https://support.cloudflare.com/hc/en- us/articles/200172516-U...](https://support.cloudflare.com/hc/en- us/articles/200172516-Understanding-Cloudflare-s- CDN#h_a01982d4-d5b6-4744-bb9b-a71da62c160a)

<comment><USER15> Cookie-based cache by-pass is a premium paid-only feature last time I used CloudFlare.

</comment></comment></comment></comment></comment><comment><USER17> Great. Super. Has it been ported to a "real" VM yet? I'm going off of Wikipedia and the 16-bit windows error below.

I can see that the "radical: always-debug, always-on might need a real VM, but it's apparent there isn't enough base for this to produce a true VM.

Is it really impossible to port to the JVM, the javascript VMs, or something similar? Otherwise I fear this is doomed to toy status.

<comment><USER8> two things. First though, please google before getting all dismissive.

1) YES smalltalk _has_ been ported to the JVM [https://www.redline.st/](https://www.redline.st/) AND you can also run it in the GraalVM [https://www.graalvm.org/](https://www.graalvm.org/)

2) I'm pretty sure the initial JVM was a clone / extension of a Smalltalk VM. Having trouble googling the details, but while you may be having trouble getting it to work on your particular Windows install you might want to consider that you're possibly ignorant of the fact that the Smalltalk VM is not only one of the best available but battle tested over decades.

I would guess that what you're seeing is a particular windows issue that has nothing to do with the VM itself.

<comment><USER17> I did, yes I know that Smalltalk needed a VM, Pharo == smalltalk, and the like.

Wikipedia for Pharo says they have a VM with JIT, etc. I have never heard a peep about the Smalltalk VM in any circumstance as a performant target for any language. Ever.

If it's battle tested and great, why isn't it used for anything else than Smalltalk ports? Is there a python, ruby, javascript, java, etc port to the smalltalk VM?

If it sounds like I'm being dismissive, that's not the point. The point is the Smalltalk ecosystem, like Lisp derivatives, likes to have its own top-to- bottom stack completely isolated from "real" execution platforms.

For Lisp it's so bad that Clojure is rejected by some Lisp purists because it can JVM / JS compile.

IMO, for example, Ruby made a strategic error writing their own VM rather than just embracing the JVM as the main VM, although when Ruby was writing their VM invokedynamic hadn't been added to the JVM. Well, and they should have added some optional typing.

</comment></comment></comment><comment><USER18> So, still no HiDPI/Retina support. This is probably the most requested feature since at least Pharo 4, and nobody seems to be interested in implementing it.

<comment><USER19> I'm on a retina mac, and it looks like this [https://imgur.com/a/iSkHMlJ](https://imgur.com/a/iSkHMlJ) text rendering- wise. Maybe it's my middle age eyes, but it looks fine to me???

<comment><USER20> The Pharo window is significantly pixelated in comparison to the browser window on the left

<comment><USER19> Interesting. Maybe I need new goggles.</comment></comment></comment></comment>


The Meaning of Margaret Mead - <AUTHOR> https://aeon.co/essays/how-margaret-mead-became-a-hate-figure-for-conservatives <comment><USER2> I totally dig some of the ideas that Mead reported, but I wonder how much wishful thinking she was projecting. Others have come after and suggested that it really wasn't a land of free love.

It seems hard to believe that one group of humans could break the rules that bind the rest of humanity. The article talks about it as "non-western", but really most of the Eastern countries have similar rules and restrictions.</comment>


Fake Steve Jobs: So Woz Calls - <AUTHOR> http://fakesteve.blogspot.com/2009/08/so-woz-calls.html

<comment><USER2> He's having way too much fun with this..

</comment><comment><USER3> Click on to the main site and there's a whole series of these.</comment>


What does the NCSC think of password managers? - <AUTHOR> https://www.ncsc.gov.uk/blog-post/what-does-ncsc-think-password-managers <comment><AUTHOR> Simple, sensible advise IMO.

I personally highly recommend 1Password, it's not free or open source - <USER2> it's very well written and designed software by a very responsible and trustworthy company with a good security track record.

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

[https://1password.com/teams](https://1password.com/teams)</comment>


Offer HN: I'll build a free app for a non profit - <AUTHOR> So I'm looking to launch an app dev service focussed around nonprofits (I've been building apps for large co's for many years). To kick things of, test a few hypothesis and the viability of that service idea, I'm looking for a nonprofit that could use a simple app.
I'll be picking 1 that I can work on and build it for free.
All I want is:
- Some feedback on the service idea (will have a few questions along the way)
- Ability to use it as a case study
Extra credit if you're connected to other non profits that you can potentially introduce me to later on.
-
Contact details are in my profile <comment><USER2> Does "viability of the idea" mean you could make a living? Because then it's not viable.

I started a non-profit a few years ago that brings processes and technology from the for-profit sector into the non-profit sector -- moving old NPOs from listserv to MailChimp, for example. Getting them to use HootSuite instead of manually posting is another.

It's incredibly time-consuming and difficult just to get non-profits to redesign a terrible website. There are tons of stakeholders, no budget, and (most importantly) very little bandwidth among decisionmakers.

The unit economics just don't work out. It would take so long to sell a single app that you wouldn't profit at all.

If you're doing this just to do something good and not to make money, then great!!

<comment><AUTHOR> Hopefully it can just cover some basic costs. The goal isn't to build a $1B business round it. Just to cover some basics, so it makes sense to allocate time. If it doesn't work, it doesn't work.

</comment></comment><comment><USER3> Hi There,

I would love to schedule a call with you.

My background, I've been working as a software engineering professional for about 20 years. A few years ago I started volunteering and now sit on the board of Savage Jazz Dance Company (a non-profit offering dance training to underprivileged youth in Oakland). I basically manage all of their technical needs. I rebuilt their website, create a Salesforce account, setup Patreon, etc.

I've also experimented with free app building services for other groups I see value in with out-dated technology. Would be happy to share my learnings from this.

I'm working on a new project myself, designed to run as a non-profit, to replace formal education, recruiting and bootcamps with a new model of knowledge training and knowledge work. It is called 'Bloomguild'.

Bloomguild takes an old approach to knowledge work (apprenticeships in guilds) with cutting edge technology (quantified-self, confidence-based repetition) in a new market framework. Apprentices are paid from the beginning, contribute to the creation of products which have value, and spend time doing project-based learning, as well as topic based learning each session.

More information here: [https://app.slidebean.com/p/yHMZfkKzOq/BloomGuild](https://app.slidebean.com/p/yHMZfkKzOq/BloomGuild)

My contact details are in my profile.

-Denali

</comment><comment><USER4> I don't have a specific idea or non-profit in mind, but as a developer (professional, 10+ years experience making web applications and a few on mobile) that has been working on hobby projects for a long time I have been looking to use my skills to better the world in some way for quite some time.

I would like to offer my services to help build this app (free of charge of course).

</comment><comment><USER5> You might have a look at Open Food Facts ([https://world.openfoodfacts.org](https://world.openfoodfacts.org) and [https://world.openfoodfacts.org/discover](https://world.openfoodfacts.org/discover) [https://world.openfoodfacts.org/contribute](https://world.openfoodfacts.org/contribute) ). Crowdsourced Wikipedia for food. We already have apps (Cordova) and we're doing efforts to redevelop in native on each platform (all is volunteer word).

We've long wanted to create a small game/gamification app to have people make more complex contributions than taking pictures.

pierre at openfoodfacts dot org

<comment><USER6> ^ this.

Helping OpenFoodFacts also helps a lot of apps and other non profits organization who use our database.

</comment></comment><comment><USER7> Build an actual version of this : [http://www.chorus- home.org/](http://www.chorus-home.org/)

Longer video : [https://vimeo.com/179904952](https://vimeo.com/179904952)

Why?

It seems it would a lot of use cases that non profits or any other organisation would have to deal with. I always found it a bit dumb to have to re-invent everything every time you need to spin up something new.

</comment><comment><USER8> I would suggest look at givecamp (you just missed the event that was this past weekend, [http://clevelandgivecamp.org/](http://clevelandgivecamp.org/)) or similar programs. If you are looking for non-profits that need dev services, they would all be at these events.

</comment><comment><USER9> It's a good idea to ask what people need, rather than just dream up a product that nobody wants.

I wonder, though, if this approach is efficient, and what the most efficient way is to figure out what people actually want.

</comment><comment><USER10> If possible, it would be great if you could make it generic, so that more than one non-profit could use it.

</comment><comment><USER11> Why not build a platform...some kind of app that non-profits could plug into and use.

<comment><AUTHOR> that is the goal, but working 1-on-1 with a non profit first allows me to learn all the needs so that the platform can have all the stuff they want vs what I _think_ they want.

<comment><USER12> I've wanted to do work like this too and build sites but then I think why wouldn't they just use Wordpress?</comment></comment></comment>


Coding Horror: Code: It's Trivial - <AUTHOR> http://www.codinghorror.com/blog/archives/001284.html <comment><USER2> That's the weird thing about the coding profession. I'd wager that the vast majority of people here work on solved / "trivial" problems which have established best practices and everything all laid out there for you to find if you bother to look.

And yet we've all encountered so many developers who continually get it wrong.

It's this weird recurring phenomena I've had throughout my career (and I'd wager I'm not alone in this) where I know I'm not an excellent programmer compared to even, say, a random sampling of linux kernel developers _but_ I'm flat out horrified by the incompetence of my peers who seem to find the most asinine solutions to these trivial and well-known problems.

<comment><USER3> I see a lot of this as well.

I put it down to the fact that a lot of programmers take exception at being given advice on how to do things and hence they learn the hard way.

I've been in situations where a programmer has asked me for help, I've given it, only to then be told I was wrong and their approach was much better.

<comment><USER4> _> I put it down to the fact that a lot of programmers take exception at being given advice on how to do things and hence they learn the hard way._

Agreed, but on the other hand, I've noticed that from time to time the initial reaction is being annoyed, and then, after a while, they start to adopt what you told them. The initial reaction probably is an ego-thing, but after some private contemplation, they see things more rationally.

I'm no exception to this, BTW. I too have found things that I've done for years that in hindsight seemed stupid after somebody pointed them out. And yes, I got defensive and annoyed about it. Human nature, I suppose.

</comment></comment></comment><comment><USER5> I really hope nobody with any industry experience thought SO could be cloned in a weekend. That notion screams "The longest program I have ever written was for a CS lab, and I got extra credit for it because I am the awesome."

But, hypothetically supposing that it had been cloned in a weekend, then you'd be staring at the 90% of a software business which does not happen in an IDE. My app _can_ be cloned in a weekend. It has been before, by someone who was PO'ed at me and wanted to drive me out of business. He did a pretty good job in his weekend, too -- I think the user experience of the app was probably better than I managed for 1.0, which took me a week and change.

But the other 90%, yeah, that has taken me about 3 years and a week now. It has had a lot of mental effort, sweat equity, and failing-my-way-forward invested in it. And the _business_ , as distinct from the app, is fairly resistant to cloning.

Somewhere out there, in the forgotten corners of the Internet where not even Googlebot dares to tread, the earstwhile weekend app is probably still wondering what went wrong.

<comment><USER6> ktharavaad (<http://news.ycombinator.com/user?id=ktharavaad>), the user who said he could clone SO in a weekend (<http://news.ycombinator.com/item?id=678501>), hasn't commented on HN since before the weekend (<http://news.ycombinator.com/threads?id=ktharavaad>), so I'm guessing he learnt his lesson.

That said, I think people are making too big a deal out of this. Even the best of us occasionally end up shooting comments from the hip without thinking about them first.

<comment><USER7> Actually.... If you look carefully enough.

This was posted 5 days ago:

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

That being said, yes, I did learn my lessons.

Thanks for keeping me honest!

</comment></comment></comment><comment><USER8> > No, I don't take this claim seriously. Not enough to write a response.

Uhhh, isn't the post his response? Just saying.

<comment><USER9> No. He starts off by conceding the point, basically. The title is "Code: It's Trivial." So assume that you can write all of the code for Stack Overflow in a weekend. He lists 13 things that his team spends time on that are not writing code (at least not in the sense of adding new features or fixing already reported bugs).

His point is that writing code is a relatively small part of even a software business. An important part, but no more important than many other things that must be done for a business to succeed.

<comment><USER10> "So assume that you can write all of the code for Stack Overflow in a weekend."

Only if you're a total idiot.

</comment></comment></comment><comment><USER11> Consider how destructive this kind of attitude is toward the programming profession. By trivializing any project, a programmer is by extension making it seem like programming is easier, and cheaper, than it really is. What starts out as an ego-pumping "hey, I'm smarter than THAT person." turns into a devaluation of the work we all do, all to fulfill some desire for acceptance among non-technical peers. You wouldn't pick the brain surgeon that told you he could get the job done in a fraction of the time his colleagues could muster.

<comment><USER12> I once worked a summer job at Nintendo in Redmond, screwing together refurbished Super Nintendos. One day, the Big Bosses came down and toured the GameBoy line, and they had a kid do a demo using this new "hand you screws" machine so they could see how much it increased productivity.

He rolled up his sleves, took a deep breath, and screwed cases on something like 16 machines in the span of a minute (normal production is about 4). Only afterwards did the ramifications of what he'd just done start to sink in.

Glad I wasn't on that line. Extra glad I wasn't that guy. Lesson learned.

<comment><USER13> That's really interesting! I didn't have any idea Nintendo had assembly lines for refurbishment. Is that a typical refurbishment process?

<comment><USER12> It was actually a pretty cool little assembly line. At one end were pallattes of SNES's that had come in for service. They'd get dropped onto the belt and dissassembled completely by the first 10 or so people, then the individual parts would be tested as they moved along the line. Good parts were collected in bins and eventually moved down the line to assembly stations. Bad parts, stickered lids, and cockroaches would be allowed to roll down the belt and eventually off the end.

Once the pieces were collected, the machines would be re-assembled from scratch as they moved down the line. Some jobs, like screwing on the razor- sharp "tins" were terrible. Routing wires and screwing on lids was OK. My second summer there, I got the prime job on the line: Testing.

My job for the entire summer was to essentially play the first level of Super Mario all day, every day, on every machine that came past. That, plus some simple control tests, plus 8 hours of sitting on a rack running the intro demo of Zelda was enough to verify that a machine was good. Every once in a while the line would stop for whatever reason and I'd keep on "testing" away. I got REALLY good at Super Mario that summer.

</comment></comment></comment></comment><comment><USER14> It's interesting quite how much "defensive" blog content those couple of HN comments sparked off.

<comment><USER15> Almost any response was guaranteed fairly decent coverage from news.yc.

<comment><USER14> True. I was actually looking forward to see the guy attempt the "clone". For all the meta discussion about what exactly "clone" completely entails simply the idea of trying to roll out something along the same lines in a weekend is intriguing.

Could it be done? How would it go down? Would working processes change? Is there stuff to learn about the development process that speed highlights?

It could make a great discussion!

<comment><USER9> I recently read Paul Bucheit's chapter in Founders at Work. I believe AdSense and Gmail were ideas he knocked out in an evening or otherwise in addition to his regular duties. They were not products at that point, of course. But there was enough there that, instead of theoretically defending the idea that the ideas could work in principle, he simply demonstrated them working in reality. No one could argue, then, that those ideas were impractical, and that laid the groundwork for making them into real products.

I think those are good examples of "do it in a weekend" type projects. Prove something can be done, before worrying about making a real product out of it.

(Of course, having all of Google's infrastructure at your disposal is nice for implementing some ideas in a weekend or less. We do have AppEngine, though.)

<comment><USER16> I know many of my better ideas have been done over a weekend or afterhours for a week. The thing is that when its not a "complete project" these things are very easy to bang out. It's the next 6 months where the polish gets added. (side rant: and over those 6 months the frontend guys get all the oohs, ahhs, and credit, despite your having done the core work).

</comment></comment></comment></comment></comment><comment><USER17> Personally, I'd take "I can write that in a weekend" as a compliment. Simplicity takes _so_ much more work than one would think it would.

</comment><comment><USER18> Jeff's conclusion reminded of an adage I read recently about creative work (pardon me for paraphrasing and savagely butchering the author's idea -- I can't seem to find the source now): _"Creative work of high quality is not the end. The real work stars once you're done with your work, for making people interested and know about it is as important as your creation itself."_ In other words, the _real_ work starts once you're done coding.

</comment><comment><USER19> All this talk about cloning Stack Overflow makes it ripe fodder for the next "make an X in 20 minutes" web framework screencast.

<comment><USER20> I would be interested in a web framework that included OpenID login/session management, voting (with several "hot"/"new"/"fabulous" ranking algorithms), user reporting, content tagging and fulltext search, threaded comments, a moderator (not admin) interface, and all of those other things the original response post mentioned as "the stuff you forget about."

I do believe there's some way to stuff all that in without creating a central business-object model (i.e. turning the framework into a CMS.)

</comment></comment><comment><USER21> From "Open source software only comes in one edition: awesome" to "Open-source software remains such a horrible pain in the ass to use". How long did it take? Five days?

<comment><USER22> I reached the same conclusion. It just doesn't make any sense. It's as if two different people wrote the entry.

<comment><USER23> The quote quoted by OP is a quote in a quote.

</comment></comment></comment><comment><USER24> I don't see this as a criticism of the HN comments at all, but as just an excuse to restate that a business (or even just a product) is much more than code.

That said, there can be some competitive advantage due to code, and businesses and products vary in how important the code is. eg Google's pagerank was important (perhaps all important algorithms are only valuable if they are patented... because otherwise they just aren't that hard to copy). For a web2.0 site like SO, I think the code itself is fairly minor, and even the user experience (UI layout, interactions and features), though much more work, is also not that hard to copy. But to copy the business is hard.

The most important competitive advantages for SO are network effects (and potential for further growth); and that people are continuously working on it to improve it.

 _EDIT_ this makes me realize why an academic at uni doubted how much of google's success was due to the algorithm - I now think he was reacting to people in that environment who tend to give too much emphasis to code and to algorithms. In my view, it's clear that a better way of doing things (such as a new algorithm) can be the basis of a product or business. Of course it can. But it's not enough on its own.

</comment><comment><USER25> Code may be trivial, but it's still the critical path.

Even if you do everything else well, your chances of success decrease geometrically with the crappiness of your code. Or...

Success = (A+B+C+...+Z) * SQ^2

where SQ is Software Quality and A thru Z are everything else.

<comment><USER26> The critical path is getting people to pay (repeatedly) for this thing.

</comment></comment><comment><USER27> I like that a lot of the community took the exact same stance that we continually whine about.

Can't you _just_ add feature XYZ to our website?

Can't you _just_ make the buttons cornflower blue?

We (myself included) have become our own worst nightmare :( I am guilty of it too. I wrote a comment a while ago arguing that SO COULD probably be written in a few days.

(btw: I don't like it. That was sarcasm.)

</comment><comment><USER15> We've already seen a partial mea culpa from the original author of the comment. His project[1] now suggests StackOverflow can be cloned in "over the course of the[sic] weekends", instead of, you know, already being finished.

[1]: <http://code.google.com/p/hackerexchange/>

<comment><USER28> Wrong. That was a simple typo he made when he first set up the site, when he was still planning to write in over the weekend.

He didn't back out because he thought it would be too hard. According to him, he backed out because it would be disrespectful.

IMO, if he still thinks he can do it, he should do it and make everyone who is putting him down shut up. And if he fails, so what? At least he will learn a lot.

<comment><USER10> "He didn't back out because he thought it would be too hard. According to him, he backed out because it would be disrespectful."

Excuse my language, but this comment deserves it: I've seen horse-shit with less horse-shit in it.

<comment><USER28> <http://news.ycombinator.com/item?id=684343></comment></comment></comment></comment>


The bigger they are, the harder they f(etch)all - <AUTHOR> http://redislabs.com/blog/i-have-500-million-keys-but-whats-in-my-redis-db

<comment><USER2> This is a first: a title change that is dramatically less informative than the original title. Please do not change the title of submissions. The guidelines are fairly clear on the policy and all you end up doing is making more work for "the ever vigilant deity of community goodness and truth in titling," aka dang.

      > please use the original title, unless it is misleading or linkbait.

[http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html)

<comment><AUTHOR> Sorry - no intent to mislead here... we were debating internally between the two titles and although we finally opted for the 500M one, I guess I liked this one better and it stuck in my subconscious, hence the submission.

The original title: I Have 500 Million Keys But What's In My Redis DB?!?

</comment></comment><comment><USER3> Doesn't this point to a design issue with redis? The single threaded, blocking operation of it _works_ , but it seems to present more problems than it solves for a large quantity of use cases. While it works, and works quickly for a narrow range of use cases, it comes at a huge loss in flexibility when compared to an SQL DB.

While I think it is possible to use redis well, I'm at a loss for what redis does for the _average_ user, that a decent use of SQL doesn't do. My gut feeling is that if people would spend 30 minutes reading up on how to read a postgres query plan maybe they wouldn't reach for redis so quickly.

<comment><USER4> For a simple "fetch one row by pkey" lookup a traditional SQL DB spends something like 2/3 of the execution time _parsing the SQL_. So using a binary protocol's always going to win on performance.

(You may be right, maybe the main value of redis is as a way to work around stupid corporate/DBA policies? I know in theory I could have a single table key / json value in Postgres, but I've never found a company willing to actually do that. Whereas in Redis it's "no, I can't define a schema for the data, because the tool doesn't have one.")

<comment><USER3> You are 100% right about the perf there, but most people don't really need to optimize those lookups, they just like to because engineers like shiny things.

<comment><USER4> I think it's more that engineers are (rightly) lazy. Redis feels very simple - install it, run it, do your key/value operations.

</comment></comment></comment></comment><comment><USER5> From the example:

      Size range
      0-49
      600-649
      ...

Why does the range skip from 0-49 to 600-649? I'm not sure I get this.

<comment><AUTHOR> An alternate explanation (and in this case also the real one :)) is that the database doesn't have any keys at that specific size range.

<comment><USER5> Ah! heh, thanks for the clarification - I somehow expected it to have a row, with a count "0" :)</comment></comment></comment>


Google's NSA alliance: Deals between Silicon Valley and the security state - <AUTHOR> http://www.salon.com/2014/11/16/googles_secret_nsa_alliance_the_terrifying_deals_between_silicon_valley_and_the_security_state/ <comment><USER2> Going out on a limb here, as I posted a pretty lengthy comment on Nation State attacks in the past [1], but does this Google/NSA relationship qualify as _terrifying_? Google finds out it has been targeted by a Nation State, who is actively siphoning off user data and company crown jewels, so they enter into an agreement with the NSA to share information about the attack, and develop technology and methods to prevent future attacks. I would argue that Google _must_ share knowledge of Nation State APTs with the US Government, and other Silicon Valley firms, once they found out the scope included Symantec, Yahoo, and Adobe, Northrop Grumman, etc. NSA/Google/Facebook/Apple/Microsoft/Amazon _should_ be trying to advance countermeasures and leveling up the industry as a whole, because they arguably have some of the most exposed attack surfaces, host most of our data, and have the financial resources and in house expertise to deal with it best. I would be _terrified_ if Google did not have a relationship where it shared intrusions of this scope with the US Government.

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

<comment><USER3> You've interpreted the data in the most positive way possible. Yes, that is one of many ways in which things could have unfolded.

But as the article says, this is all secret. We don't know what exactly Google and the NSA built together in that first agreement shortly after the Chinese hacking scandal. And we don't know what else has happened since then.

Maybe it's all innocuous stuff, as you said. Maybe it isn't. To just assume it is all good or all bad seems unjustified by the amount of actual facts that are public.

<comment><USER4> The problem is, of course, most people will assume "all bad" because of the ongoing narrative.

<comment><USER5> It's a really bad narrative. Given the extreme, illegal erosion in privacy at the hands of the State, it sure seems a lot safer to bet on "all bad" or "pretty bad" when it comes to these tech giants doing deals with the NSA.

</comment></comment></comment></comment><comment><USER6>
        The NSA helps the companies find weaknesses in their
        products. But it also pays the companies not to fix some
        of them. Those weak spots give the agency an entry point
        for spying or attacking foreign governments that install
        the products in their intelligence agencies, their
        militaries, and their critical infrastructure.

That's probably the most frightening thing imaginable, but where is this info coming from? What are the sources on all of these accusations because it feels like a pretty casual mention that all of the hardware/software manufacturers in the US intentionally leave in back doors.

<comment><USER7> As someone who has been very closely involved with Infosec and who has followed all the vulnerability market rumors, I have never heard of "pays the companies to not fix them" before, and I _strongly_ doubt the veracity of that statement.

<comment><USER8> I agree, I think the author is confusing mandatory monetary compensation for FISA/warrants etc with just straight up paying for a company to comply. Companies don't want to be paid especially because the monetary gains aren't worth it and the reputation risks are enormous.

</comment></comment></comment><comment><USER9> I assume the book has a lot better sourcing and footnotes than this excerpt has, because the excerpt has none of either. The only part of this article you need to read is "It's not clear what the NSA and Google built after the China hack. But [thousands of words of speculation and innuendo follow]" It's not clear, as in the author doesn't know.

</comment><comment><USER10> Once again the meme that China was hacking to find dissidents was a lie for propaganda purposes, and the actual motivation was to see who the USG had wiretap orders on, to see if any of China's own spies had been burned.

But, it makes China sound evil when you tell the public that they are doing it for human rights reasons.

[http://www.washingtonpost.com/world/national- security/chines...](http://www.washingtonpost.com/world/national- security/chinese-hackers-who-breached-google-gained-access-to-sensitive-data- us-officials-say/2013/05/20/51330428-be34-11e2-89c9-3be8095fe767_story.html)

<comment><USER11> If you know anything about China activities in Tibet, you would know that China IS evil.

Its important to remember that unlike China or Russia, the US government is tame in comparison with how it handles dissidents.

Guantanamo is bad but nothing in comparison to the political prison camps across China.

No one wants to live in a county where something as simple as an online comment will make you disappear in the middle of the night. This is what we want to keep America from becoming.

There is a list of over one million "missing" Tibetans. A common crime: possessing a picture of the Dalai Lama.

<comment><USER12> <quote> There is a list of over one million "missing" Tibetans. </quote>

I'm going to call BS on this one.

The population of Tibet is only 2.91 million.

[http://en.wikipedia.org/wiki/Tibet_Autonomous_Region#Demogra...](http://en.wikipedia.org/wiki/Tibet_Autonomous_Region#Demographics)

Are you saying they "disappeared" 1/3 of the population?

<comment><USER13> The Axis powers of World War 2 killed at least 7 million _outside_ of "legal" warfare. Ukraine, Anatolia, Congo, Cambodia, and Nigeria have all experienced genocides of 1 million people or larger.

Do not make the mistake of thinking that _anything_ is too monstrous for a national government, particularly one that cannot be held to account by anyone except a strong alliance of other national governments: China, Russia, or the U.S.

The population of "Tibet" includes Han occupiers. It is entirely possible that someone has "vanished" _more_ than 1/3 of Zang (Tibetan) in that region. But some Zang also live outside the nominal political borders of Tibet. And due to forced displacement, and the manner in which Beijing handles China's ethnic minorities, like Zang and Uighurs, or even Han peasants, it is also possible that the "missing" people are still alive, but shoved into a bureaucratic black hole that prevents them from communicating with anyone connected to the rest of the world.

</comment></comment></comment></comment><comment><USER14> It would be ironic if the original attack was actually the NSA pretending to be China as a false flag.

Google then willingly accepts the NSA's 'tailored solution', which was simply a trojan horse to monitor Google assets (I.e. users) from inside the network.

Unlikely but would make a good fictional story nevertheless!

<comment><USER15> Yep fictional, ironic.

> The only things Google seemed certain of was that the campaign was massive > and persistent, and that China was behind it. And not just individual > hackers, but the Chinese government, which had the means and the motive to > launch such a broad assault.

Are we all still so certain that it was the Chinese government? Google must have pulled off some top notch detective work to work that one out, with their extensive overseas network of men on the ground.

</comment></comment><comment><USER16> The article describes two NSA systems almost as something made for Google:

"The cooperative agreement and reference to a "tailored solution" strongly suggest that Google and the NSA built a device or a technique for monitoring intrusions into the company's networks. That would give the NSA valuable information for its so-called active defense system, which uses a combination of automated sensors and algorithms to detect malware or signs of an imminent attack and take action against them. One system, called Turmoil, detects traffic that might pose a threat. Then, another automated system called Turbine decides whether to allow the traffic to pass or to block it. Turbine can also select from a number of offensive software programs and hacking techniques that a human operator can use to disable the source of the malicious traffic."

But if you followed all the news since Snowden appeared, you'd know that the TURMOIL is simply the NSA's global passive internet (and more!) monitoring system and the TURBINE one cog of the global active "attack on the internet" one.

[https://robert.sesek.com/2014/9/unraveling_nsa_s_turbulence_...](https://robert.sesek.com/2014/9/unraveling_nsa_s_turbulence_programs.html)

"TURMOIL is a "high-speed passive collection systems intercept [for] foreign target satellite, microwave, and cable communications as they transit the globe"

"The TURBINE system "provides centralized automated command/control of a large network of active implants""

<comment><USER17> So $random chinese hackers seen from chinese/taiwanese IP space duped Google into allowing the installation of these systems?

Mission accomplished!

</comment></comment><comment><USER18> The fact that nobody blinks when agencies openly admit doing this for _economic interests_ is the part I find terrifying. Could there be a more blatant admission of the unethical nature of military-industrial complex?

</comment><comment><USER19> The two things I got from this story:

\- If anyone of us, that didn't work for Google, had cracked into a sever that breached our servers and just looked around, not destroying data. Wouldn't that be illegal?

\- The NSA is getting access to software and hardware back doors before the public is made aware so they can try and catch Chinese hackers. Doesn't this also give them the access they would need to route all our traffic to their giant datacenter and mine it? Aren't the 'Chinese' hackers giving them a convenient excuse?

</comment><comment><USER20> kudos to shane harris for shedding light on our industry's modern story of _Gleichschaltung_ ([https://en.wikipedia.org/wiki/Gleichschaltung](https://en.wikipedia.org/wiki/Gleichschaltung))

instead of representative democracies regulating, protecting, and/or supporting technology firms and citizens through systems governed by laws and regulations, we're entering an era of opaque and voluntary "partnerships" where all tech companies are equal, but some are more equal than others.

this sort of _coordination_ outside of legal and especially democratic processes has implications for everyone, and should concern us all.

perhaps unsurprisingly, moxie portended these developments in 2010: [https://www.youtube.com/watch?v=Uxz7r4E2li8](https://www.youtube.com/watch?v=Uxz7r4E2li8)

</comment><comment><USER21> Multinationals that give preference to one nation's TLAs have no right to complain when they're penalized for being preferential.

</comment><comment><USER22> Not mentioned in the article, but I believe that around that time Google switched developers 'en masse' to the Mac platform.

<comment><USER23> Not quite correct.

Before the incident, developers could use Windows, Linux or Mac laptop for remote access. After, only Linux and Mac remain as options.

In addition, a mandatory two-factor authentication was introduced.</comment></comment>