Ask HN: What will be a good naming strategy for a Server - <AUTHOR>

We've been having a funny discussion in the office about Christening our 3 new dedicated servers. Any pointers on how you named yours? <comment><USER2> You have two choices, meaningful names (e.g. "web server," "primary database") or meaningless names (e.g. "server1," "server2," "James," "Bob," "Sarah," etc).

A lot of people recommend AGAINST meaningful names since attackers can use them to better target their attacks (although arguably it is normally trivial to figure out what is what anyway).

If you're going to have meaningless names then I just leave the default (e.g. rack123.server456) since no matter if you use planets, characters, or toys you'll still ultimately end up using its function to describe it or its IP address anyway.

Realistically your servers and their purpose should be tracked internally via some kind of system (be it Google Apps Spreadsheet, intranet page, resource tracking system, or similar). Which makes the actual host name meaningless.

</comment><comment><USER3> Planet names (Jupiter, Mercury, Saturn , etc etc) or Chemical elements name (Sulfur, Sodium, etc etc)

<comment><USER4> On a previous job I used to great effect the list of bodies of the Solar system (planets, moons, asteroids, etc.)

That led to memorable names such as Mars, Venus, Pluto and Ganymede that didn't conflict much with other namespaces.

</comment></comment><comment><USER5> <data center location><no><environment><purpose><no>

e.g. lon1prodapp001, lon1testdbs001, nyc1testweb001

And here's a regex that describes it: <http://rubular.com/r/rdEZU9qJ6L>

I hate meaningless server names. It's cute for the first 3 but once you're over 10 you won't remember the difference between the 'obsidian' and 'sovite' servers. Which one is production and which one is dev test again?

At least with a logical naming scheme, you'll have a reasonable idea whether you're even on the right server or not.

</comment><comment><USER6> It depends on how many servers you have, and how many sites.

If you have lots of servers you can only use machine generated names with some kind of role indicator. For fewer servers you can pick something nicer.

</comment><comment><USER7> For systems consisting of "many" (5+) servers all providing more or less the same functionality, I usually just go with numbering them (s1 .. sN).

For fewer and more specialised machines I'll think of something I like, my private machines are named after the deities of the Cthulhu Mythos (azathoth, cthulhu, shub, hastur, lloygor, nyarlathotep), while some of our Office servers get their names based on dinosaurs and other prehistoric animals.

</comment><comment><USER8> I name all my computers after Tolkien characters, I have a friend who names all of his after breakfast foods, my alma mater named their servers after Norse gods, all the computers where my wife worked were named after sci-fi starships. If you can't find a theme you all like, naming them something boring like `file` `print` `db`, etc. would probably work too.

<comment><USER8> If you're looking for something a little less nerdy than some of those suggestions, why not names of streets or neighbourhoods in your city? The main key is that you want a theme with some headroom (you don't want to run out of names at five or six), and you want names that are fairly short and aren't easily misspelled.

</comment></comment><comment><USER9> Datacenter location followed by rack id and then the server id. Makes it quick and easy to find out just where the server is.

</comment><comment><USER10> Named them after Asimov characters. QT1 is the webserver, Speedy is the memcache server, and TheBrain is the db server

</comment><comment><USER11> Planets of the starwars universe, or knights of the round table.</comment>


The Art of Stealth Studying: How To Earn a 4.0 With Only 1.0 Hours of Work - <AUTHOR> http://calnewport.com/blog/2007/10/03/the-art-of-stealth-studying-how-to-earn-a-40-with-only-10-hours-of-work/

<comment> steve-howard The problem I've always had with Cal Newport's advice is that it generally boils down to "if you're having problems in school, first get extremely organized and then it's a piece of cake!" Organization is something that is built up with a ton of practice and patience, and requires substantial motivation to set in place. For someone who's having trouble finding the motivation to keep going, that kind of advice is like saying "if you're so fat, just eat less and exercise more!"

If I had the capacity to actively pay attention at all times in every class and put in 1 hour of studying every day without fail, I'd have a 4.0 too. This is not a remarkable fact to me.

<comment><USER2> I figured any piece of advice comes with an unspoken disclaimer: "those not willing to make changes in their life need not apply".

<comment><USER3> True. However, the problem is that that disclaimer is often a used as a loophole for not giving useful advice.

For instance, here's a foolproof plan to ensure that every piece of software that you write is 100% bug free. If you follow these two, simple steps, every piece of software you ever write will be perfect on the day it's delivered.

All you need to do is:

1\. Write a program that looks through your source code and finds all the bugs in it.

2\. Fix all those bugs.

I keep telling this to people, but they're so stubborn that they won't make these two changes in their build process. So, if you ever find a bug in someone's software, know that it's not because coding bug free programs is hard. It's because they don't have the self-discipline to follow through on my simple prescription.

<comment><USER2> On the one hand, I see what you mean and have some empathy for this position. On the other hand, it's very telling that you used a Herculean feat in your analogy: it suggests to me that you perceive the act of adopting some new habits as also being a Herculean feat.

I don't see it this way. Of course, I spent over a decade in my youth studying a musical instrument, and I think that experience taught me how easy it is to program new habits into the human mind. It all boils down to a little repetition, but also entails making sure that you're not repeating bad habits. ("Practice doesn't make perfect. Practice makes permanent. Perfect practice makes perfect.")

Sometimes it takes a little faith, but things do become automatic if you repeat them for surprisingly little amount of time, and this ends up reducing your cognitive load so that you can move on to focusing on new aspects.

<comment><USER4> I've lost a significant amount of weight twice (> 80lbs) and, externally, I seem to have also changed my behavior in a substantial way. I am a much better student than I was before in part because of my own motivation and determination. As determined as I am though, I still run into academic problems. Is it because of my own work ethic? I don't think so.

I don't perceive losing weight to be a herculean feat, but that's because I have shown myself that it's something I can overcome. Changing how my mind works? Is that a herculean feat? I don't know, but I seem to have difficulties with it which I cannot immediately work around with a "little repetition."

Please give me a time in your life when you've been able to make a significant intellectual change from just "a little repetition" and "making sure that you're not repeating bad habits."

<comment><USER2> I would entertain your challenge without preamble if it were not based on a premise that I do not accept: specifically, that any of this has to do with changing how your mind works. I understand that many perceive it that way, but I do not.

Rather, I see it as leveraging how my mind works. Note how this is almost exactly the opposite world view. I accept that my mind includes within it a mechanism for habit automation. Of course that is only one of many tools in the metacognitive toolbox. Another powerful tool is the ability to be brutally honest with yourself about what your priorities are in practice, what you think they should be, and recognizing when your actions are working against the priorities you would like to have. There are more. Metacognition is a bottomless pit of bootstrapping power.

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

A year ago, after coming to grips with the fact that having a toddler and a relationship meant that I was no longer getting time for myself, I made myself a morning person. I went from a life-long habit of dragging myself out of bed just in time to rush to work to someone who routinely gets out of bed at 5am and does something productive for myself before my son wakes up. Brutal honesty about my priorities and about a month of consistent practice.

</comment></comment></comment></comment></comment></comment><comment><USER5> I'm not familiar with the author, but this reads like a 'how to lose twenty pounds with only an hour of exercise a week!' blurb.

I don't care if the advice itself is sound; without data and actual proof, its not worth much to me.

</comment><comment><USER6> Advice like this (which itself is good) makes me wonder how much higher education is missing. If a 4.0 is possible with 1.0 hours of work, then surely the expectations of the students are far too low. Its great that its possible for a focused student to achieve a 4.0 with so little work, but doesn't that just mean that all the students should be achieving so much more?

Perhaps there should be a compulsory 101 course that just teaches studying skills (some places may do this already). It seems like that would boost the overall gain from the education experience.

<comment><USER7> The title is a bit misleading and I'm not entirely sure what the "1 hour" actually refers to. The author suggests studying 10 minutes at a time, preferable twice a day most days of the week (so that's 1-2 hour a week). He also suggests going to every office hour (so that's at least another hour per week). That's in addition to treating class like you are studying (2-4 hours per week).

In reality, this is "how to get a 4.0 without cramming".

</comment></comment><comment><USER8> The reality is work is quite easy at college if you have the maturity to handle your independence. I'm at a UC school double majoring in CS and Econ and I probably do less than an hour of studying to prepare for midterms and finals. I don't have a 4.0(although I am close), but I instead manage to put 6 or 7 courses into a quarter schedule. I think it really just comes down to doing the learning NOW. Don't understand it? Interrupt the teacher in a 100 person lecture hall. You're here for yourself, and the closer you can put your understanding of the material to when it is being taught, the better off you are.

<comment><USER9> I went to Berkeley with EECS major and from what I could see 1 hour per week would be impossible unless you manage to somehow avoid taking any of the difficult classes, which would need to be done very strategically. Maybe you spent time in office hours instead, or having friends explain stuff to you, but I would include those in "studying time". If I'm wrong, I'd love to know how you completed major programming assignments in say compilers or operating systems, or prepared for your algorithms exams with just 1 hour per week. Sometimes it took me a couple hours just to fully understand what the professor had assigned due to language barrier (theirs), grammar (theirs), and other issues.

I also took an upper division economics class at Berkeley and that took far more than an hour of studying. Even at community college I studied my econ classes for more than an hour per week. Unless you have a photographic memory I'm not sure how you can avoid it and still get good grades. Please explain your technique.

<comment><USER8> I am considering my "study time" only that which is done outside of assigned projects. My algorithms class assigns homework and lab projects which I take seriously and approach with the idea that I don't want to have to look at this material again before an exam. So, in this sense, I'm always studying, it's just that almost none of it is actual traditional study time. I don't do office hours(with as many courses as I take, they always conflict). I think maybe it's just that our definition of studying is different, I consider studying to be the period of time above and beyond lectures, homework, and projects. It is this piece of time that I can take almost to zero as long as I approach the lectures, homework, and projects properly.

<comment><USER10> By that extremely liberal definition of studying, I "studied" no more than an hour or two in 7 years of undergrad + law school...

Studying is studying. It doesn't matter if it's assigned studying or not.

</comment></comment></comment></comment><comment><USER11> He should add a spaced repetition system to his study plan. That way, you'll only need to study the material as needed as time goes by.

Wired have a good article on how spaced repetition work, the history of it, and so on: [http://www.wired.com/medtech/health/magazine/16-05/ff_woznia...](http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=all)

<comment><USER12> I recently wrote a py script that turns markdown notes into Anki flashcard decks. If there is any interest, I could make it publicly available.

I still never feel like studying.

<comment><USER13> I will be very much interested.

</comment></comment></comment><comment><USER14> I guess it works some places and not others.

Good luck at MIT getting through your PSETs in an hour a week- I don't care how smart you are.

Yet, I didn't go to MIT and I was definitely able to get by in some classes with good grades putting in significantly less effort that is generally said is needed in college.

<comment><USER15> Cal (the author) got his PhD at MIT.

<comment><USER16> Which is not undergrad and has a significantly smaller emphasis on grades.

</comment></comment></comment><comment><USER17> I think this sort of approach depends heavily on how good your attention span is -- that is, can you focus deeply at will for a certain period of time, even if it's only ten minutes -- and how good your memory is.

I've spent two hours getting twenty minutes of work done because my mind wouldn't stop wandering, and my memory isn't so hot so I often need to review things. If I could focus like a laser and I had near-photographic memory, my life would be very different and this would sound possible to me. As it is, it doesn't.

</comment><comment><USER18> I was sceptical as I read the title but it turns out I'm already practically doing the same thing. Only instead of using printed out study guides, I load them up on my smartphone. This way I never waste any time waiting for anyone or anything. I'm always learning something.

However, this doesn't work for every kind of material. It works fine for classes like History and Law but it doesn't work quite as well for Pure Mathematics. That all from self experience, though.

</comment><comment><USER19> Cal Newport: I implore you to earn a 4.0 in CMU's 15-251 ... I dare you ...

<comment><USER20> you aware that he's a PhD grad from MIT?

<http://calnewport.com/info/>

no need to take it personal

<comment><USER21> Citation of a CS PhD from MIT does not constitute proof that he could earn a 4.0 in Great Theoretical Ideas in Computer Science at CMU studying only an hour a week.

no need to take it personally

<comment><USER20> seems like he's done ok grade wise in life, whether he could or couldn't get an A in some supertough class at CMU,

don't like his methods, don't use them

give him a little credit for accumlating and sharing alot of different strategies to do well in some pretty tough academic settings

</comment></comment></comment></comment><comment><USER22> I don't agree that this is some sort of foolproof way of getting out of doing any work studying, but I definitely think this method could be really useful.

</comment><comment><USER23> So all the prep work involved with getting this "study sheet" done doesn't actually contribute to you learning? I call shenanigans!

<comment><USER24> I think you're supposed to do the study sheet in class so that it doesn't use up any extra time.

<comment><USER23> Isn't that what "taking notes" is?</comment></comment></comment>


Living with Cancer in Silicon Valley - <AUTHOR> http://radiowalker.wordpress.com/2009/03/05/living-with-cancer-in-silicon-valley/

<comment><USER2> Very positive article, but also a humbling balance to the hard work we do - perhaps to be immortal.</comment>


Don't delay building your startup culture - <AUTHOR> https://www.techinasia.com/building-startup-culture/ <comment><USER2> I don't understand all the "culture" moralizing that's been going on for the last year or two.

Here's an inverse culture code for Techinasia [https://www.techinasia.com/culture/](https://www.techinasia.com/culture/) :

\- We are obsessed with our competitors not our customers. \- We don't believe in work life balance, our work consumes every facet of our lives. \- We don't communicate within the team - whatever it is, figure it out yourself. \- We don't really care about data or metrics. They're just numbers \- get things done whenever, there's never a rush

You would never see anything like that on a list of corporate values. Who doesn't want to communicate transparently? Or make decisions backed by data? Since those are things that just about everyone pays lip service to, it doesn't differentiate you, and it won't attract 10x A-player ninja rock stars.

My theory is that it's just executives / founders feeding their egos - "My company is special! We have values!". It wouldn't be so goofy if we didn't have to hear about it endlessly like it was this enormous gift to the world</comment>


Antiwar Movement Spreads Among Tech Workers - <AUTHOR> https://blogs.scientificamerican.com/cross-check/antiwar-movement-spreads-among-tech-workers/ <comment><USER2> It's a shame the article fails to mention the history of Silicon Valley and the foundation of the tech sector being built almost entirely on Military R&D:

Steve Blank "Secret History of Silicon Valley" [https://m.youtube.com/watch?v=ZTC_RxWN_xo](https://m.youtube.com/watch?v=ZTC_RxWN_xo)

Post WWII, 90%+ of R&D was military, a shockingly high number.

Coinciding with the year the Berlin Wall fell in 1989 saw that military R&D proportion fall to rough parity:

[https://www.cove.org.au/trenchline/article-the-v-twin- effect...](https://www.cove.org.au/trenchline/article-the-v-twin-effect/)

Today, Military R&D has inverted compared to that post WWII, early Cold War environment making it only about 10% of R&D.

But that raises the problem of duel use commercial technology.

Commercial tech being combined or adapted for military purposes.

Personally, I'm far more concerned with the export of commercial off the shelf tech modified for mass surveillance and control than I'm worried about kinetic weapon systems.

Defence/Military money helped found Silicon Valley/Tech.

In-Q-Tel(CIA) has been in the Valley funding startups for 2 decades: [https://www.iqt.org](https://www.iqt.org)

Hacking 4 Defense at Stanford is a more recent addition that leverages the increasing reliance of the military on commercial off this shelf tech(disclosure: I have had some involvement in H4D with their educator's course).

What's OK and what isn't for modifying commercial off the shelf tech for Defence/military use?

What are the perceived black/white/grey delineations working in this space?

<comment><USER3> That is one of my favorite videos.

However, in this context, what do you propose? WWII was a "real war", it was easy to see you were on the good side and that it was worth fighting. Besides, that huge ("world") war already was in progress. Right now the situation is not exactly comparable?

What I see from this is that somebody else - government or whatever - has a function, and relying on business alone won't work. They won't fund when returns are uncertain, no crazy ideas, no unlimited "costs don't matter" funding. What I also find interesting is that that was unlimited debt-based spending, anyone who had something that looked like an idea got funded to do whatever it took. And it worked, or is anybody still concerned about the amount of debt the US took on during WWII? So either we find a way for similar initiatives in peace times - or we wait for another huge war (or a similarly bad crisis) to convince the tax payers, but also motivate those doing the research, to get another round of innovation started with a similar disregard for debt, cost and plannability?

<comment><USER2> Good points.

The defence sector simply can't afford to fund every "good idea".

Especially every idea, once selected, that leads to multi-decade and multi- billion(trillion in case of F35) lock in.

My thoughts, and hands on experience with military innovation, is focused on the bottom end.

Both in terms of "user" rank and budget for prototype capability.

I genuinely applaud those in the civilian tech sector who vote with their feet on moral/ethical perceptions.

However, it doesn't hurt to understand history. Both the early generations of Silicon Valley and tech sector history as well as the last generation(dot.com bubble).

Money is flowing now, but all bubbles pop.

Especially Saudi oil money(40 years ago it was the soon to be deposed Iranian Shah's money propping up Grumman and others).

When money gets tight, moral/ethical protest becomes less affordable.

I put my time where my mouth is and try to teach young serving members of the military how to innovate themselves(at least an introduction to it), rather than paying contractors to do it for them.

I can assure you the projects we've been working on have all been quite practical and ethical to work on.

One concept I push is "Its always H-Hour" stolen from my old employer Amazon "It's still Day 1".

Creating a sustainable sense of urgency and bias for action, but with an emphasis on resource austerity. We don't have a Manhattan Project budget. We sometimes borrow things temporarily.

The Indian austere innovation concept of Jugaad comes to mind.

Personally, I think the answer is a mashup of H4D using a StartUp Weekend-like intro, Jugaad like resource austerity, and a YC like innovation community and pipeline. And perhaps something on the high end akin to the Israeli Talpiot Program.

I sincerely hope those ethically opposed to working on defence projects can continue to afford to do so.

As that will mean the tech sector is still awash with opportunity anD cash which will help nudge defence towards conducting more internal adaptation of commercial tech instead of relying on civilian contractors.

I'd certainly prefer we don't see another peer or near peer level major global conflict.

But conflict seems eternally intertwined with the human condition. At least for now.

</comment></comment></comment><comment><USER4> I don't blame them, some of the stats in this article are astounding.

"The US is militarily involved in 76 countries."*

"The U.S. spends more on arms and armies than the next seven biggest spenders combined"

"U.S. and allied airstrikes in Syria and Iraq killed 6,000 civilians"

*7 countries with drone strikes, 15 countries with combat troops (?!), 44 with military bases, and 58 with with counterterroism training programs, 2015-2017

<comment><USER5> One of the major problems with statistics like these is that they don't talk about the context of the relationships here.

Since the 90s, the Executive branch and US Congress has used the Military to do a lot of non-military stuff, that arguably the State Department or other non-military organizations should be doing.

There are a lot of reasons for this:

1\. At 600,000+ FTE's, the DoD has the largest number of personnel in the Federal Government

2\. Military members are trained not just for their specialty, but to do a wide variety of administrative, management, financial and medical tasks that can be used in non-military capacities.

3\. It's often easier to tack on money for non-military specific functions to augment military organizations, than it is to create new organizations.

As a result of this, the DoD is constantly asked to do things that are not directly related to combat in support of international relations, international logistics, basic services and basic research worldwide.

<comment><USER4> Absolutely, the military continues to take on a variety of non-military functions. That being said, it does not detract from the point that the first use case is for war, and as long as these many other org exist under the DoD structure, the first case will be for war, always.

<comment><USER6> As bluntly as you want to state that it doesnt become a better of an argument. What would be your alternative. The above poster seems to have given a pretty clear reason why we would want the military to take on these tasks (variety of skill in personel). Do you have a cheaper better way?

This sound like the most efficient thing that the government has done. Its probably also a good way to instill compassion in our ranks by having them perform civilian tasks. Instead of everyone just being something they shoot or dont shoot in these countries.

<comment><USER4> Rollout the "non-military stuff" and move the "wide variety of administrative, management, financial and medical tasks" into a proper group like the State Department or some new group with no final militaristic consideration. Doing this would take political capital, which is why it's not popular practice.

The issue is that the military takes on so many roles that it becomes our first choice in dealing with problems, whether they require the military or not. So we go at problems with the military mindset, then we're surprised when we find a military solution.

Let's go in for peace, diplomacy and honest-to-god negotiation instead of imposing our will on countries with air superiority and more guns than people. Maybe we'd foster a little less resentment in countries we're in if we stopping occupying their airspace and bombing them 10,000 feet and 400mi away.

<comment><USER7> > move the "wide variety of administrative, management, financial and medical > tasks" into a proper group like the State Department or some new group with > no final militaristic consideration.

These skills aren't distinct from the skills a military needs to function. Logistics is a huge component of warfare, for example - and would you prefer that combat medics be civilians? Elsewhere in the thread people are commenting about dual-use technology - these are all dual-use skills.

</comment></comment></comment></comment></comment></comment><comment><USER8> I don't think it's anti-war per se, just anti-current-US-MIC-activities. Given an enemy worth fighting, I don't think the sentiment would be that strong. Who really wants to work on tech focused on bombing brown people far away?

No matter, the budget is vast to train up people in house, plenty of young people will relish the tech for the tech's sake.

</comment><comment><USER9> The tech community as a whole has always been anti-war from time immemorial, but in the past the vast majority of tech funding came from the govt and so tech companies were always involved in one way and another in building war machines so as to make money, but in recent times with the vc in tech funding more tech companies, they no longer really need to build war machines to make money, I mean the top five tech companies in the world presently are majorly consumer tech, so tech companies and the workers who make them up can say fuck you to the government sponsored tech contracts and fuck you to war in general.

</comment><comment><USER10> Are companies like Raytheon, Northrop Grumman, Palantir, Lockheed Martin, and General Dynamics not tech companies?

Why do people think DARPA funds those challenges?

</comment><comment><USER11> Of the two systems they list, there is a nuance and a difference between the two, one is an _facilitating_ technology which just makes the DoD work better and another directly helps them kill better. A similar difference is the difference between someone who say designs bombs vs designs bomb hard armor that lessens soldier deaths on our sides. It's similar to what anti-war people have done for years during drafts, which was to volunteer for medical service as opposed to fighting.

It's a hard decision to make, and an easy thing to say is just if you do anything for the DoD, you're making it easier for them to kill people and hence it's wrong. Blanket statements like these however put people like janitors and paper pushers in the same bucket as those who manufacture arms that are shipped to Saudi Arabia.

<comment><USER12> _" Blanket statements like these however put people like janitors and paper pushers in the same bucket as those who manufacture arms that are shipped to Saudi Arabia."_

What's that saying about wars being won more through logistics than through arms?

If you are working for a startup that merely delivers pizza to the troops, sure, you can't seriously be put in the same category as a torturer in Abu Ghraib. But you're still (indirectly) helping the military kill people.

Whether that sort of indirect support weighs heavily on your conscience is something everyone has to decide for themselves. Personally, I don't want anything to do with the military or military contractors, even if in an ostensibly peaceful capacity.

<comment><USER11> I mean by paying your taxes you also fund the Pentagon. By publishing research that others can read including military engineer s, you're helping the Pentagon. By supporting things like Veteran Affairs, your easing the pain of those in the military by making it clear to them they'll receive some compensation once they make it out.

And even then, by living in the US, you benefit somewhat from the military defending our borders and being a ward against threats of invasion. I am against most military spending because that ends up inflating contractor salaries, as is our constantly meddling in other countries including other democracies, but so many turn this into a blanket opposition to the idea of the military full stop, which doesn't make sense in our world today, especially when everyone in this country essentially thrives due to it.

</comment></comment></comment><comment><USER13> This is a pretty interesting shift.

Is it a general trend such as it happening in Engineering, and/or sciences or is it localised to just tech?

Perhaps the younger generation is more anti war?

Thoughts?

<comment><USER14> I think this shift is a result of the immorality of American warfare over recent decades.

If the last war we had participated in was WWII and the cold war then who would object to advancing our weaponry in case we had to fight a terrible war again? Conversely, if we are routinely killing civilians in pointless decades long engagements in the Middle East, supporting both sides of civil wars in foreign lands, selling weapon systems to brutal monarchies, etc it's easier to see why people have doubts about participating.

<comment><USER15> The Cold War produced plenty of immoral conflicts. Is it seriously arguable that Viet Nam was a genocide? Justifiable wars since WWII are the exception.

<comment><USER16> Genocide: "Any of the following acts committed with intent to destroy, in whole or in part, a national, ethnical, racial or religious group, as such: killing members of the group; causing serious bodily or mental harm to members of the group; deliberately inflicting on the group conditions of life, calculated to bring about its physical destruction in whole or in part; imposing measures intended to prevent births within the group; [and] forcibly transferring children of the group to another group."

The Vietnam War was immoral in many ways, but it was not a genocide. Throwing that term around willy-nilly cheapens it. Please don't.

<comment><USER15> The use of Agent Orange fits your pasted description quite well, as does the My Lai massacre and similar atrocities now anonymous to history.

<comment><USER16> "...committed with intent to destroy, in whole or in part, a national, ethnical, racial or religious group..."

A massacre is not genocide, neither is irresponsible environmental damage. It needs to have a specific intent and exist in a context that (is intended to) produce such massacres on a large scale.

e.g. German "reprisals" in France after partisan attacks were war crimes, but not genocide.

</comment></comment></comment></comment></comment></comment><comment><USER17> what do you think our rivals are doing right now? Sitting on their hands refusing to develop advanced threats?

We _must_ protect our country. Let's not be naive to the fact that we have enemies who want to destroy us, or overtake us in power and influence if we're weak.

Personally I want the smartest people in the industry working on protecting our country and developing this tech.

Which do you trust more, a self-flying UAV with deadly cargo developed by Google or some random government contractor?

<comment><USER18> Defend this country from what? The most relevant threats I see to the country today are erosions of our traditions of civil discourse which is fundamental to a functioning democracy (e.g we disagree, and through civil discourse we identify the precise ways we disagree, then we peacefully elect representatives to represent our points of view without resorting to violence. If we lose the ability to peacefully disagree or fairly elect our representatives, we are left with only one option and that leads to the destruction of our democracy and then our country is gone one way or another)

and secondly the threat of large-scale conflict with an adversary with a comparable military.

I just don't see how increasing the efficiency of an already effective drone program protects against either of those threats. And as to the question of wanting people at google to work on it... I don't think this sort of thing is what people join google to do. People interested in weapon systems probably go and work for known defense contractors and those companies do reasonably good work within the confines of their structure.

<comment><USER17> We must protect ourselves from threats from without and without. It doesn't make one any more or less important than the other.

</comment></comment></comment><comment><USER19> Computers are war machines. They arguably won WWII, eh? Code-breaking and modeling physics of nuclear bombs.

And today, of course, WWIII is playing out on the Internet and the screens of our phones.

In the general case, from first principles, we have the automation of human intentions. If those intentions are harmonious and ecological, all is presumably well. If those intentions conflict, however, we have automated war: drones and IEDs, and eventually Skynet and Terminators, and then just vast robot wars.

I don't think there's a a stable equilibrium between these two strange attractors.

(FWIW we have technology for harmonizing human intentions. We just have to use it.)</comment>


Sudoku in 201 lines - <AUTHOR> http://pastie.caboo.se/172637 I got bored at work and had a go at a sudoku solver in Ruby. It can solve most medium difficulty puzzles. Any tips on improving my code would be appreciated! <comment><USER2> I should have read the comment before the code. I was just coming to the conclusion that the code could not solve the harder sudokus.

The wikipedia article on "Algorithmics of Sudoku" is a start for tips. There is a Scientific American article that has a good overview of the problem... [http://www.cs.utexas.edu/~kuipers/readings/Sudoku- sciam-06.p...](http://www.cs.utexas.edu/~kuipers/readings/Sudoku-sciam-06.pdf)

Don't google for Lispers writing solvers. They will make you feel all bloated.

</comment><comment><AUTHOR> I got bored at work and had a go at a sudoku solver in Ruby. It can solve most medium difficulty puzzles. Any tips on improving my code would be appreciated!

<comment><USER3> Peter Norvig's solution is more elegant (he just brute forces it), it works on all puzzles and is just 100 lines of Python

<http://norvig.com/sudoku.html>

<comment><USER4> glad someone mentioned it. there is no point in NOT brute forcing a problem such as this when it doesn't really take all that much brute force to begin with. What good is a sudoku solving algorithm? Algorithm's are to eliminate the need for brute force when brute force would take too long/require too much resources.

<comment><AUTHOR> Hmm.. good point. I didn't really consider brute force to be viable. Is it actually necessary on some of the harder puzzles? Or can they be deduced solely using logic and without 'guessing'?

<comment><USER4> I'm not positive because I don't really play the puzzles a lot. But i think some of them require mentally filling in a space and seeing if it leads to a contradiction.</comment></comment></comment></comment></comment>


Mood Lamp - Which color do you feel today? - <AUTHOR> https://vimeo.com/62684353

<comment><AUTHOR> An IKEA lamp becomes a Natural Interaction system which senses human emotional states through facial expression. It uses OpenCV for image processing and analysis to identify emotional state through the movements of face's fiducial points. The lamp, made with Arduino, change its color to represent the user's current emotion.

Published paper:

[http://link.springer.com/chapter/10.1007/978-3-319-23231-7_1...](http://link.springer.com/chapter/10.1007/978-3-319-23231-7_19#)

[http://arxiv.org/abs/1505.04260](http://arxiv.org/abs/1505.04260)</comment>


Ask HN: Girlfriend making the hacker switch. - <AUTHOR>

My girlfriend recently told me she would like to get into the wonderful world of computers. I work in computer and am enjoying the prospect of this. However, I am not sure where she should start. I asked her what she would like to do and she has said webpages. What is the best course for easing her into this shark tank? <comment><USER2> Well, she's not going to get anywhere if she can't ask questions for herself...

</comment><comment><USER3> A few tips from a female hacker to your girlfriend:

* Start using open source software -- the easiest place to start is developing on something that you already like and use, and which has an established developer community. Use lots of different things, then check out the communities and try a few on for size. Something will stick.

* DO NOT use your boyfriend or anyone else as your proxy to avoid jumping in the deep end. When you put someone else between you and the communities you would like to participate in, you give up most of the benefits of participating in a hacker community, such as creating relationships that help you grow and learn, seeing what others are doing up close, and so on. We like newbies, and we don't bite.

* AVOID GIRL GROUPS. Don't fall into the trap of joining "$technology Women" groups. They limit more than they help. I blogged about this effect here: <http://binaryredneck.net/node/55> \-- it's a bit long to discuss adequately in a comment.

* Scratch your itch. If you show up to get closer to your boyfriend or have more in common with him, walk away now. If you don't _care_ about hacking, you won't be good at it, and you'll both end up grumpy. Trust me, I see it frequently. On the other hand, if you have passion, you'll find your niche, I guarantee it.

* Don't be afraid to break stuff. This is one place guys have an advantage over us -- the strategies traditionally taught to women (at least in my experience) are comparatively conservative. That is, guys don't read the directions, even if it means spending twelve hours doing something wrong before they've built whatever they just bought. Chicks often feel they need to really understand something before they attempt it.

The healthy response is somewhere in the middle of course, but failing that, the reckless guy who doesn't read directions will, in the area of software at least, outperform the chick who is waiting for understanding before she does something. Make use of available documentation, but don't be afraid to try stuff, knowing that it may break. It's software -- the worst you'll have to do is restore from backup, and you learn more by doing than by listening/reading.

* Dive into hacker culture and the hacker community. [Hacker culture has a purpose](<http://binaryredneck.net/node/170>) -- it makes our communities run smoothly. We love to share what we know, we love to learn new things, and we really do like newbies when they are well-behaved (by which I mean that IRC, Stack Exchange, any hacker venue you visit will have its own codes of behavior -- do your best to observe them, take corrections with grace, and never, ever be a [support leech](<http://binaryredneck.net/support-leech>).)

If you haven't gathered by the egregious number of references to my own blog, I'm very passionate about helping new hackers grok hacker culture and find there niche in the community so they can code and build awesome things. Feel free to drop me a line if you want -- my email is (same as my HN user name)@binaryredneck.net</comment>


F1: A Distributed SQL Database That Scales - <AUTHOR> http://research.google.com/pubs/pub41344.html <comment><USER2> Impressive, as one might expect. Some reactions:

\-- Secret sauce

A lot of the magic of F1 comes from Spanner, the distributed storage system. The name "F1" itself is an allusion to "inheriting" some of the properties of Spanner.

\-- Hierarchical tables

What they call hierarchical tables, I would think best be viewed as one-to- many relationships. In guess they've privileged this model in their storage because that's what a lot of their AdWords schema looks like.

\-- Change History

I like the observation that keeping full histories is relatively straightforward with atomic, granular timestamping and indeed that it should be baked in. Every database schema I've ever worked with always goes through a similar evolutionary cycle:

1\. We only need to capture the current state of the model.

2\. Wait, we do need to capture historical states of the model.

3\. Wait, the model is changed, we need to capture historical states and the models that were current.

(You can think of this as taking progressive differentials of incoming transactions).

The F1 designers have baked that right into the database, where it belongs. Weak temporal support has long been the sore point in SQL.

\-- Remote data

I was struck by their observation that most database storage engines are built around the concept of seeks and reads, whereas theirs is necessarily built around batching and pipelining over a network. If I am reading them correctly, their engine takes advantage of having multiple copies of data by sending reads to multiple disk nodes and then working from the first copy that is returned.

<comment><USER3> Your point about change history and its poor support in SQL is spot-on; at my employer we've gone through (1) and (2) and are trying to figure out (3) at the moment.

From what I understand of Datomic temporal support is baked in, but it's about the only database I can think of that does that, and I haven't heard stories about it being used in production for large volumes of data.

<comment><USER2> Snodgrass wrote an entire book about dealing with the temporal blindness of SQL which might help you:

[http://www.cs.arizona.edu/people/rts/tdbbook.pdf](http://www.cs.arizona.edu/people/rts/tdbbook.pdf)

More generally, you can usually build a model that handles (2), the changing state, by generalising your original model. I've done in both of classical ways, having either validity period fields (thus pushing complexity into every query), or by having audit tables (thus relying on triggers).

But building a changing model is hard, because at the schema level, SQL only supports (1). That is, it provides primitives to change the current state of the model.

So you wind up having to build a meta-model. The deficiencies of SQL (and I'm an RDBMS bigot) mean that we wind up building inner platforms. Or outer platforms -- witness migration toolkits.

Yet support for changing models is _essential_. No model is ever constant. Most of my work is for a public-sector client whose legal reporting requirements are _constantly_ changing. You cannot throw away old reports which were made under old regulations; you must be able to recreate the world at any point in time. Which requires either a lot of bookkeeping code or taking periodic snapshots.

Datomic looks neat. I see that I'm not the only one who made the leap from transactional memory to transactional models.

Edit: I just found notes I wrote in 2009 on database languages while looking for something else. Spooky: [http://chester.id.au/2013/08/28/notes-towards-a- set-objectiv...](http://chester.id.au/2013/08/28/notes-towards-a-set- objective-language/)

<comment><USER4> Databases which use MVCC handle (2) - and if they have transactional DDL, then they cover (3). But they don't keep the history permanently. Who wants all that old data?

The one exception to this that i know of is Oracle, which although not fashionable round here, does expose the MVCC log through "flashback queries", where one can simply write "SELECT * FROM USER AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE)":

[http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_...](http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm)

I don't know what the logistics of keeping an infinite history are. I do know that an e-commerce system i worked with before kept a few days, and that that saved our bacon on a couple of occasions.

<comment><USER2> They have the technological underpinnings, but it's not properly exposed _via SQL_. In practice you wind up having to do it all by hand.

What the F1 guys seem to have done is said "well that's just silly, let's take advantage of it".

Oracle is my day job, I've been saved by a flashback query once. A DBA misunderstood a request I was making and applied a dev change to production.

> _I don 't know what the logistics of keeping an infinite history are._

I'd say they're not much different than asking a database developer to be able to generate reports for any given span of time. Or keeping a complete audit trail of changes. Or, more broadly, complete website logs, complete source revision history etc etc.

That is: in theory it creates an infinite downside. In practice it is more valuable than not, especially with the ever-plunging cost of storage.

</comment></comment></comment></comment></comment><comment><USER5> I posted this question on StackOverflow regarding TrueTime (used by Spanner) a few days ago and haven't received any responses:

<[http://stackoverflow.com/questions/18384883/why-is- googles-t...](http://stackoverflow.com/questions/18384883/why-is-googles- truetime-api-hard-to-duplicate>)

However, I think this HN thread seems like it might be a good place to get comments on why my line of reasoning may be incorrect. Does anyone have any thoughts on why building something like Spanner on top of basic Paxos quorums and NTP would be a bad idea?

<comment><USER6> Check this out. [http://muratbuffalo.blogspot.com/2013/08/beyond-truetime- usi...](http://muratbuffalo.blogspot.com/2013/08/beyond-truetime-using- augmentedtime-for.html)

<comment><USER5> Thanks for the link -- I'm working through it now.

</comment></comment></comment><comment><USER7> Can someone enlighten me as to why google doesn't want to make an enterprise play? Many companies tout that they are offering data infrastructures similar to those used at google..why wouldn't google commercialize that technology themselves? It should be pretty obvious as to how that could be of huge financial benefit to the company.

<comment><USER8> > Can someone enlighten me as to why google doesn't want to make an enterprise > play?

They do. They have a range of commercial, including enterprise, offerings (many of which are based on originally-internal technologies, including their MySQL-based distributed database that preceded F1.)

> why wouldn't google commercialize that technology themselves?

They probably will, just as they have commercialized their previous internal storage technologies.

</comment></comment><comment><USER9> This is not new by any mean...

<comment><USER10> The paper was only published in conference proceedings yesterday.

<comment><USER11> See [http://research.google.com/pubs/pub38125.html](http://research.google.com/pubs/pub38125.html)</comment></comment></comment>


Amazon is bringing its biggest weapon to Whole Foods - <AUTHOR> http://www.businessinsider.com/amazon-stock-price-is-bringing-its-biggest-weapon-to-whole-foods-to-make-sure-it-succeeds-2017-9 <comment><USER2> I'm interested to see how other retailers will respond to this.

</comment><comment><USER3> Is anyone else even remotely worried about Amazon's eventual reach?</comment>


Bugs in Samsung IoT Hub Leave Smart Home Open to Attack - <AUTHOR> https://threatpost.com/bugs-in-samsung-iot-hub-leave-smart-home-open-to-attack/134454/ <comment><USER2> _If_ you're going to run IoT devices in your house I highly recommend isolating them to their own VLAN+Wifi SSD to limit their exposure to the rest of your network.

Personally I'm a fan of Ubiquiti's Unifi gear for this. Relatively cheap(~$250 depend on what you get), easy to setup and much better Wifi quality as a bonus. Ars did a pretty good write-up a while back that I liked[1].

[1] [https://arstechnica.com/information- technology/2018/07/enter...](https://arstechnica.com/information- technology/2018/07/enterprise-wi-fi-at-home-part-two-reflecting-on-almost- three-years-with-pro-gear/)

<comment><USER3> > If you're going to run IoT devices in your house I highly recommend > isolating them to their own VLAN+Wifi SSD to limit their exposure to the > rest of your network.

This goes both ways, too. You don't want someone to pivot from an IOT device to your PC, but you also don't want someone to pivot from your PC into an IOT device like a security camera or door lock.

<comment><USER2> Yup, it's pretty trivial to setup the VLAN on Unifi gear to completely isolate the IoT VLAN/SSID to internet only and never see local traffic/devices and vice versa.

</comment></comment></comment><comment><USER4> I'm sorry, but if you have IoT devices controlling your home and they are connected to the Internet, your "smart home" is open to attack _by design_. And since IoT devices are optimized for convenience and sales rather than security, those attacks are likely to succeed and your devices co-opted for other purposes.

<comment><USER5> I'm not a big fan of the Smart Things architecture. It's designed to allow you to create custom device types for devices they don't support, and custom extensions for new behavior, which is great. The problem is, anything you add outside of the stock code will only run on their cloud, and not on the device itself, meaning my motion sensor has to go to the cloud and back before turning on my basement lights. I'm currently looking into alternatives because this is a terrible way of implementing a home hub.

<comment><USER6> If you find a good alternative, could you post here? I know homeassistant.io for control, but I am looking for cloudless LoT (LAN of Things) devices which can (and do) have their firmware updated. Open source firmware if possible. I can't find any.

<comment> w-ll If your familiar with arduino the esp32 and esp8266 and ridiculously cheap and easy to program, have onboard wifi/bluetooth modules, and can easily hook to a relay to make your own smart lamps, switches, etc.

Also MQTT is pretty easy to work with, which many IOT devices use. You could spoof the dns of the mqtt server/broker its trying to reach and run your own.

</comment></comment></comment></comment><comment><USER7> Microsoft (of all people) has a good IoT story with Azure Sphere, where they handle security for 10 years, and the device vendor handles the application. Let's hope the first commercial devices are a good proof point for this security model, so that others step up with open silicon to compete with Microsoft Linux and Microsoft silicon root of trust.</comment>


Forget channel surfing: How Boxfish plans to revolutionize real-time TV search - <AUTHOR> http://arstechnica.com/business/news/2012/05/boxfish-aims-to-modernize-real-time-tv-search.ars <comment><USER2> Part of why people channel surf is because they don't know what they want. Search does not completely fulfill that need.

</comment><comment><USER3> Why doesn't the article have a link? www.boxfish.com</comment>


New method of quantum entanglement increases the information that can be carried - <AUTHOR> http://phys.org/news/2015-06-method-quantum-entanglement-vastly-photon.html <comment><USER2> > _Quantum entanglement could allow users to send data through a network and > know immediately whether that data had made it to its destination without > being intercepted or altered. With hyperentanglement, users could send much > denser packets of information using the same networks._

As I understood the description, they're not claiming that the process of entanglement encodes the information being transmitted, but rather that more information-carrying dimensions can now be entangled, so now those extra dimensions can also enjoy the proposed security benefits. For a system relying on those features, the throughput is effectively increased because more channels are eligible.

</comment><comment><USER3> I wonder how long before we see major internet nodes connected via quantum entanglement.

<comment><USER4> Entanglement can't be used for communication. [https://en.wikipedia.org/wiki/No- communication_theorem](https://en.wikipedia.org/wiki/No-communication_theorem)

<comment><USER5> I was going to post that link. This is the standard theory, isn't it? Most physicists subscribe to this, regardless of their interpretation of quantum mechanics (Copenhagen, De Broglie–Bohm, and so on?)

<comment><USER6> Yes basically if you build say 2 entangled bytes you'll basically get random data out of them every time you measure / set their state you'll basically get random data.

The only way to make the data "make sense" is to share the measurements between both observers on a side channel.

But and that's the big but which i don't understand and couldn't get a decent explanation from anyone who i know has some / more understanding that i do in QPT.

Yes i understand if you got 2 observers Alice and Bob both of them with a pair of say you got a pair of 12 entangled quantum bytes.

Bob can't tell by random measurement if Alice has done something since the state of his 12 qbytes is "random", however if the interpreted say say's Hello World! or I Just Changed It why Bob can't superimpose additional information he has such as the knowledge of the English language to interpolate that Alice actually did something.

On top of that the no information theorem is also tied to the no-cloning theorem which conflicts with well with how some one would explain quantum teleportation.

The explanation I managed to find is that the no-cloning and no-teleportation theorems do not prevent quantum teleportation but rather classical one which means that you cannot encode a quantum state into a classical system and then clone/teleport that information into another quantum system, but you can do it from one quantum system to another which is where my brains starts to scream.

[http://courses.cs.washington.edu/courses/cse599d/06wi/lectur...](http://courses.cs.washington.edu/courses/cse599d/06wi/lecturenotes4.pdf)</comment></comment></comment></comment>


What contextual information would best improve HN discussions understanding? - <AUTHOR> Hello! I'm from France. I find myself misinterpreting some of user's comments because of lack of context or introduction to the comments or personal experiences of authors. Comments currently have 4 pieces of information so far beside text : author's username, vote count, date time and, implicitly, parent comment. According to you, what 5th piece of information would help to better understand author's point of view? As an example, each post could also have the continent or country where the author is currently living in (at the time of writing and posting) <comment><AUTHOR> To better explain why I suggested country : with that information and the date, we can for example infer what was the political system at the time of writing the comment, among many other inferences we could imagine.

<comment><AUTHOR> Another example could be the field in which one declares working in : legal (no more IANAL required :-)), science, driving, engineering, programming, cook-chief, investment, etc</comment></comment>


Show HN: Add texting to your landline in ~5 minutes - <AUTHOR> https://pigeonsms.com <comment><AUTHOR> Hi HN! I made Pigeon SMS to help businesses reach more customers how they want to be reached. You can add text messaging to virtually any landline in ~5 mins with our fully automated signup. You then get awesome features like:

\- Two way sms

\- Groups

\- Keywords

\- Auto responders

\- Templates

\- Scheduled messages

\- Website widget

\- Geo based message

\- Webhooks

\- Lots of other _cool_ stuff

Check out our site. I would love feedback on our landing page and video. I'll keep an eye on the thread for any questions :)

<comment><USER2> Does this require porting the number? If not how are you gaining control of the SMS in the SMS address database?

<comment><AUTHOR> Good question! No, using Pigeon SMS does not require porting the number. We've partnered with upstream carriers to add sms while leaving the voice component intact.

<comment><USER2> So are all American carriers (ILEC/CLEC/SIP Providers) available or do potential customers have to do service availability checks?

<comment><AUTHOR> Nearly all numbers are supported. The only numbers we can't text enable are Bandwidth.com numbers, but that should be resolved in the coming months.</comment></comment></comment></comment></comment>


Maths in a Twist [pdf] - <AUTHOR> http://www.ima.org.uk/_db/_documents/Maths%20in%20a%20Twist%20from%20MT%20August%202016.pdf <comment><USER2> By just stretching, I also think it's a Mobius strip: [http://i.imgur.com/sshZhxs.png](http://i.imgur.com/sshZhxs.png)

The only way to get the arrows to connect right is if three of the square's corners are the same point.

<comment><USER3> The cutting solution is a bit more easy to follow, in my opinion...

[http://imgur.com/gallery/eBQq4](http://imgur.com/gallery/eBQq4)

</comment></comment><comment><USER4> Since it's Colin himself posting this, I guess that he linked to where he intended; but, if you're interested in this article, then you may want to look at more of "Mathematics Today", the publication in which this article appears: [http://www.ima.org.uk/activities/publications/mathematics_to...](http://www.ima.org.uk/activities/publications/mathematics_today.cfm.html) .

</comment><comment><USER5> MAYBE SPOILER

For the last problem you can bend the sheet such as the two arrows point in to the same direction(up) and are in the same side, that is a rectangle. On the side of the arrows(left of the rectangle), the bottom half is an arrow pointing up and the upper half is an arrow also pointing up.

Then you bend the paper such that the lower side meets the center and the wrap around the upper side around the previous bend. I got a cilinder

<comment><USER6> If I've followed you correctly, I don't think you get a cylinder.

<comment><USER5> You are right. In the last step, the top arrow has to be bent outwards and then joined against the bottom arrow, instead of overlapping like I previously did/imagined. The result is a figure with one surface and one edge, like the one NateyJay points out: its a mobius strip.

</comment></comment></comment><comment><USER7> After trying the last puzzle for a while, I think I've concluded it's a torus - is that right?

<comment><AUTHOR> Nope.

 _Added in edit: I 'm not going to answer any other questions or suggestions - I'd love to see the working behind the answers. Why should it be a Torus? Why should it be a Klein Bottle? Why should it be what you claim? Show me your working!_

 _FWIW, as and when I get the chance I will upvote every guess that shows its working._

<comment><USER8> It's a Mobius strip: [http://i.imgur.com/1MVkbta.png](http://i.imgur.com/1MVkbta.png)

<comment><AUTHOR> Interesting. Are you sure a single point can be stretched out to a line? Certainly lines can be stretched or shrunk, but having a point become a line seems a bit of a stretch (if you'll pardon the pun).

It's a nice argument, but is it valid ... ?

<comment><USER8> The idea is that the red point is being identified with the entire line, not stretched. My math is a little rusty, but I think you can make a diagram like [http://i.imgur.com/PchSkyI.png](http://i.imgur.com/PchSkyI.png) and use the fact that Q1 and Q2 are quotient maps to define g and show it's a homeomorphism.

The argument goes something like: there's a universal property on quotient spaces X with quotient map Q which says that if F(a) = F(b) for all a and b in X such that a and b are identified (a ~ b), there's a unique continuous G such that F = G ∘ Q.

So let's take a and b in the top left space. We have a homeomorphism f such that a ~ b if and only if f(a) ~ f(b). Since quotients take equivalent elements to equal elements, Q2(f(a)) = Q2(f(b)). Therefore there's a unique continuous g1 such that Q2 ∘ f = g1 ∘ Q1. We can apply the the same reasoning to Q1 ∘ f^-1 to get a unique continuous g2 such that Q1 ∘ f^-1 = g2 ∘ Q2. Furthermore, g1 and g2 are inverses: g1 ∘ g2 ∘ Q2 = g1 ∘ Q1 ∘ f^-1 = Q2 ∘ f ∘ f^-1 = Q2, and Q2 is surjective. Therefore g = g1 is a homeomorphism.

<comment><USER9> This argument is almost there. The theorem you mentioned about the quotient requires that you are taking a topological quotient on the left of your diagram, which prescribes a specific topology for the quotient space[1] (which you have not demonstrated is the topology you are using). Let Q1: X -> Y. This is the topology such that the open sets for Y are precisely those for which their preimage via Q1 is open in X.

If you think this sounds a lot like continuity, you're right, but it adds one crucial detail: continuity only requires that whatever open sets we have for Y, their preimage is open (so for example you can make Y have the topology of a point, and Q1 would still be continuous). For quotient maps, we require that _any_ set in Y with an open preimage be open, which fixes exactly one topology. This makes sense, because otherwise the quotient could pick from a laundry list of (non-isomorphic) topologies which keep the quotient map continuous, breaking the topological invariance of the quotient map.

[1]: [https://en.wikipedia.org/wiki/Quotient_space_(topology)](https://en.wikipedia.org/wiki/Quotient_space_\(topology\))</comment></comment></comment></comment></comment></comment>


Ask HN: How Does Appodeal (Programmatic Ad Mediation) Work? - <AUTHOR> I put ad banners in mobile apps and I use Admob mediation to show ad from Admob, inmobi, Mopub, MMedia. Recently I heard Appodeal which describes itself as the programmatic ad mediation. I read the official
Q&A: Appodeal's Programmatic Mobile Ad Mediation Approach http://blog.appodeal.com/qa-appodeals-programmatic-mobile-ad-mediation-approach/ but still don't know how it works. The key things I found about Appodeal are:
1. Appodeal claims to choose ads with highest eCPM from Admob, Liverail, Applovin, Mopub, Avocarrot, UnityAds, etc.
2. The ad revenue from Admob will be paid to the app developer directly by Admob (Before you integrate Appodeal into the app, you have to own the Admob account and link it to Appodeal.). Ad revenue from other ad networks will be paid by Appodeal. You don't even need any account of these ad networks.
For #1, I don't know how Appodeal achieves it. As far as I know, in admob/inmobi/mopub's SDK, there is no option for me to set eCPM floor.
For #2, I don't know how ad revenue from other ad networks goes into Appodeal. When I use mopub, I need to have a mopub account, input payment info, add apps in the mopub web console, integrate mopub sdk and use the ad unit id in my app. Mopub will pay me. But with Appodeal, the app developer doesn't need to do these steps. Revenue goes into Appodeal directly. My guessing is Appodeal reuses an ad unit ID for all customers' apps. (Probably it is not correct.)
My questions are:
How does Appodeal work?
Can we trust it? Because Appodeal gets the revenue first and then pays app developers, if it takes half of it, nobody knows.
Update:
There is another programmatic mediation platform called AdtoApp http://www.mobyaffiliates.com/blog/adtoapp-officially-launches-its-programmatic-mediation-platform-for-in-app-advertising/ <comment><AUTHOR> Any comments?</comment>


Parallel Test Execution - <AUTHOR> https://www.atlantbh.com/parallel-test-execution/ <comment><USER2> > Whenever you consider parallelization in computer science, there is a > potential for "race condition" problem.

Since there's specific reference to Computer Science, I feel compelled to point out that race conditions arise from concurrency, not "parallelization" (parallelism). Making a deterministic job concurrent can make it nondeterministic. Making a deterministic job parallel can't. If your job's already nondeterministic, concurrency and parallelism won't change that.

For example, on a machine with a single processor running multiple jobs concurrently, different scheduling/interleaving of those jobs can lead to races, without any parallelism being involved.

Looking at it another way, doing a job in parallel can't introduce a race condition. A job with a race condition is semantically different from a race- free job, regardless of whether they're executed in serial or parallel. There are many ways to change the semantic meaning of a line of code; one way is to change the characters which make up that line; another is to change which programming language is used to evaluate it. There are large semantic differences between, say, the "Java" language and the "Java with threads" language.

See also [https://existentialtype.wordpress.com/2011/03/17/parallelism...](https://existentialtype.wordpress.com/2011/03/17/parallelism- is-not-concurrency/)</comment>


June 19, 240 B.C.: The Earth Is Round, and It's This Big - <AUTHOR> http://www.wired.com/science/discoveries/news/2008/06/dayintech_0619

<comment><USER2> I'm always left stunned when I read about the achievements of Eratosthenes. I've always wondered why he doesn't get the same recognition as Plato or Aristotle, or even Socrates.

<comment><USER3>
      I've always wondered why he doesn't get the same recognition as Plato or Aristotle, or even Socrates.

Very likely because most of his works were destroyed when the Library at Alexandria was razed, and because he wasn't considered the best at any single subject by his contemporaries.

</comment></comment><comment><USER4> There's a flaw in Eratostenes reasoning: you have to assume that the sun is effectively infinitely far away. In Eratosthenes's day there was no way to know this. The one measurement he did does not prove the world is round. It could merely indicate that the sun is nearby. (It makes an interesting exercise to calculate just how near it would have to be, and to design another experiment to eliminate this possibility.)

<comment><USER5> Actually, Aristarchus, a contemporary of Eratosthenes (slightly earlier in fact) determined the ratio distance to the sun/distance to the moon to be about 20 (actual answer is about 390), and that the distance to the moon was about 20 Earth radii (although Archimedes credited him with an approximation closer to 80 Earth radii; the actual value is about 60). This would have validated any assumption about the sun being far enough away to generate essentially parallel rays.

Incidentally, the fact that the world was round was probably already known by Eratosthenes' time, since the Greek society was essentially a group of seafarers, and when you watch a ship go out to sea, in addition to appearing smaller as it gets further away, it also appears to sink downwards. They would doubtless have noticed this, and concluded that the Earth was probably round.

<comment><USER6> I've heard the last bit about the boats too. There is a theory that the common folk never really thought that the earth was flat, but a round earth jived with other theories at various times in history (turtles all the way down!) causing the literate few to reject what simple observation makes clear.

</comment></comment></comment><comment><USER7> There's a clearer explanation of what he did here: [http://www.algonet.se/~sirius/eaae/aol/market/collabor/erath...](http://www.algonet.se/~sirius/eaae/aol/market/collabor/erathost/) and this is a nice experiment to do yourself.

</comment><comment><USER8> _One reason is that Eratosthenes' very own library of Alexandria had been destroyed, and there was no complete backup of its data._

Imagine how much different the world would be today if the Egyptians had practiced disaster recovery.

(Also a good lesson for a few customers of mine.)

<comment><USER9> _library of Alexandria had been destroyed_

I think we're still _recovering_ from that infamous day.

<comment><USER10> I feel sick when I think of all that was lost.

</comment></comment></comment><comment><USER11> There's a kids' picture book about Eratosthenes called The Librarian who Measured the Earth:

<http://www.amazon.com/gp/product/0316515264></comment>


How much a mobile app costs: a buyer's guide - <AUTHOR> http://www.zeusriver.com/blog/2012/10/how-much-a-mobile-app-costs-a-buyers-guide/

<comment><USER2> This is a great list of mobile apps cost. Thanks for sharing. You should also check out [http://www.contussupport.com/mobile-application- development....](http://www.contussupport.com/mobile-application- development.php) . They are another great app development site, that I have come across lately.</comment>


Uber stops self-driving pilot in SF after DMV revokes its cars' registrations - <AUTHOR> http://www.recode.net/2016/12/21/14049064/uber-self-driving-pilot-san-francisco-dmv-revoke <comment><USER2> Why is Uber so belligerent when it comes to complying with laws of the land? I can't think of any other corporation that so blatantly acts in the manner of, "we don't like that law, we're going to ignore it or flaunt it". I know other large corporations will use lobbyists to get laws changed to suit their wants, but Uber just acts as if the law doesn't apply to them in the first case.

In Australia, they single-handedly managed to get themselves their operation legalized, while running as an illegal taxi service in the interim. Only minor fines were applied in a couple of cases prior to the governments rolling over for them, and I think even these applied to the Uber drivers, not to Uber themselves.

<comment><USER3> Obviously Uber has some sort of trick up their sleeve, they're not doing this just to be cowboys, they're way smarter than that.

In a conference call to journalists the other day, Anthony Levandowski said "It's hard to understand why the DMV would seek to require self-driving Ubers to get permits when it accepts that Tesla's autopilot technology does not need them."

Now that Uber has an excuse to take the California DMV to court, they may be able to make the case that according to the wording of DMV regulations, all individual Teslas using autopilot are in fact testing vehicles, and if they do not require a permit, then neither does Uber. Then Uber will be able to test free from the scrutiny of the DMV, or else all users of autopilot need to get testing permits as well.

Or some such nonsense.

<comment><USER4> I do not know Uber's plan, but assuming they're too smart to do something dumb is pretty silly. Everybody makes mistakes, especially companies that may have become arrogant after years of getting their way with little effort.

And besides that, Tesla does have a permit, so that argument quickly becomes very messy and I don't see how it could rule in favor of Uber. If every driver needs the permit (as opposed to every corporation) , that applies to Uber as well. They'd effectively be making the legislation more onerous against themselves.

<comment><USER3> Uber has gotten it's way with a great deal of effort, and a world class legal team who are veterans by now at pushing around regulators. My theory may be incorrect, but I assure you, they've calculated their outs.

Tesla the company has a permit, individual Tesla users do not. If Uber had to get a $150 testing permit, well big deal. If every Tesla driver had to get a permit, that would be a meltdown for Tesla and Tesla owners.

<comment><USER5> I don't think this is true. The average Tesla costs what, $75000? $150 is 0.2% of the purchase price. People buying Teslas aren't people who are bothered by a $150 bar tab, let alone a $150 permit. In addition, many of them have emotional buy-in at this point (aka they have drank the Elon Kool-Aid) and driving a Tesla is as much a part of their identity as anything else. They won't be bothered by paying for a permit or having to go to the DMV to get one.

<comment><USER6> I believe Tesla charges at least $3,000 extra for self-driving Autopilot package. If it comes to it, they might be willing to just reimburse California residents the $150.

</comment></comment></comment></comment></comment></comment><comment><USER7> > _In California an autonomous vehicle is defined as having the capability of > driving "without the active physical control or monitoring" of a person. The > state allows for the driving and testing of autonomous vehicles on public > roadways, but requires the operator to obtain a $150 permit to drive in the > state._

16 test vehicles. $150 for each permit. Is the refusal to register some kind of moral stance?

<comment><USER8> Another HN thread[1] revealed that the permit not only costs $150, but also mandates that Uber report accidents. (And other stuff?)

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

<comment><USER7> I believe self-reporting of accidents was a regulation that Google had to operate under. Funny enough, I just checked where they used to have their monthly accident reports but now it's just a Waymo landing page:

[https://www.google.com/selfdrivingcar/reports/](https://www.google.com/selfdrivingcar/reports/)

Internet archive snapshot:

[https://web-beta.archive.org/web/20161011014050/https://www....](https://web- beta.archive.org/web/20161011014050/https://www.google.com/selfdrivingcar/reports)

Sample report (PDF) [https://web- beta.archive.org/web/20161213211933/http://stati...](https://web- beta.archive.org/web/20161213211933/http://static.googleusercontent.com/media/www.google.com/en//selfdrivingcar/files/reports/report-0516.pdf)

<comment><USER9> The official accident reports are still available, as they always have been, on the California DMV's website.[1]

I remember only a few months ago folks were holding up Google as the model for SDC transparency.[2] How times change!

[1] [https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/auton...](https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/autonomousveh_ol316+)

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

</comment></comment></comment></comment><comment><USER10> Uber's self-driving cars are garbage and they're creating this little drama to fool dumb investors into thinking it's just local government holding them back.

<comment><USER11> Are they wrong?

<comment><USER12> Yes. Government regulation didn't cause Uber's car to beat red light.

<comment><USER13> It was my understanding that a human driver did that.

<comment><USER14> No, the human driver could have _corrected_ the car by stopping at the light. But the autonomous car _choose_ to run through the light. That's on Uber's development team.

</comment></comment></comment></comment></comment><comment><USER15> The likely reason Uber wouldn't play ball is that they wanted to be able to carry paying passengers in their test vehicles, which probably wouldn't be allowed under the test regulations, or even if it was, would leave them open to much more liability if there was an accident.

<comment><USER16> That's probably part of it, but the DMV seems to consider it a "manufacturers testing permit," which means that Volvo would have to be substantially involved in the process on Uber's behalf as they do not already have a permit of their own. [0]

The draft rules also require quite a bit of insurance and items like "autonomous test driver training programs" to be in place for a legal operation. [1]

[0]: [https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/testi...](https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/testing)

[1]: [https://www.dmv.ca.gov/portal/wcm/connect/211897ae-c58a-4f28...](https://www.dmv.ca.gov/portal/wcm/connect/211897ae-c58a-4f28-a2b7-03cbe213e51d/avexpressterms_93016.pdf?MOD=AJPERES)

</comment></comment><comment><USER17> Appears to me that Uber just really did not want to allow a government to dictate _what_ exactly their vehicle & technology actually is. I wonder if their logic is that by applying, they've set a precedent that their vehicle is fully autonomous, and also that local governments can now try to regulate them under this area.

They already fought the existing taxicab legislation, I think they're trying to outrun/ignore autonomous car legislation for as long as possible.

</comment><comment><USER18> Do Tesla drivers have to get that permit as well, a lot of them drive their cars on highways "without the active physical control or monitoring" too?

<comment><USER19> They're supposed to have active physical control and monitoring. That's the difference, Tesla is not a fully self-driving car.

<comment><USER20> Aren't there uber drivers still that are suppose to monitor the situation? How is that different except the government is upset?

<comment><USER21> Tesla is very carefully keeping within the definition of a level 2 autonomous vehicle. For example, Teslas won't shift lanes automatically -- the driver has to tell it to shift lanes. Similarly, Tesla drivers are supposed to keep their hands on the wheel at all times.

The Ubers are level 3 -- the car is responsible for monitoring and making decisions. Significant difference.

<comment><USER20> I definitely should have drawn that conclusion as well - I guess I'm just thinking about the logical progression of vehicles. Eventually Tesla will reach level 3 as well. Does it really make sense for each of those be registered differently with additional associated fees and monitoring? I don't know but it definitely errs on the side of exerting control.

</comment></comment></comment></comment></comment><comment><USER22> It seems like Uber wanted this to happen. But why?

<comment><USER23> My thoughts exactly. I just can't fathom an angle where this works out to their advantage. From what I've seen, this permit is literally a formality, so did they just not want to test in California?

<comment><USER24> They probably want to be able to blame someone else (the DMV) for the reasons they're not actively testing in CA. I wouldn't be surprised to see a proposition next year that wants to allow companies to test their autonomous vehicles without permits, with Uber pushing millions of dollars into advertising into it.

<comment><USER25> Millions for a ballot battle sounds way cheaper than paying $250 per car while in a testing phase? Were they planning to use more than 8000 autopiloted cars like this in the near future?

It'd be cheaper to lobby the legislature anyway, I bet they could get their bill out of the Waze and Means Committee.

<comment><USER24> That argument doesn't really work considering Uber (along with Lyft) spent a combined $8MM in Austin fighting fingerprinting legislation when it would have been significantly cheaper to just fingerprint their drivers.

<comment><USER25> So basically Uber and Lyft are just bad at business. Right. I'll adjust my investments accordingly.

<comment><USER23> Uber will lose over 3 billion dollars this year. It lost 2 billion last year. Personally, that should influence your investments more than them avoiding a $150 permit or an attempt to avoid invading their drivers rights more than they already do.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> At $150 a permit, Uber likely did this to get a ton of free publicity. Judging from the number of articles I've read, it seems to have worked to their advantage.

<comment><USER4> It all seemed like really bad publicity though. Everything I saw described Uber as reckless and having subpar technology.

<comment><USER27> It might make sense if they assumed that they'd be successful. If the press spends all their time talking about how Uber is flaunting the rules by putting out a self driving car into their fleet and all the while this thing performs perfectly, it's fantastic press.

They probably just assumed that their cars weren't going to run red lights and terrorize bicyclists.</comment></comment></comment>


Jor1k: Run Linux in the browser with multicore and network support - <AUTHOR> https://github.com/s-macke/jor1k <comment><USER2> I su'ed to root and then ran rm -rf.

It was really weird how my instincts fought me with every keystroke! I was just sure I was going to screw up someone else's server - not this transient VM in my browser.

It worked, btw -- I got a perfectly unusable system!

<comment> s-macke Actually, this is not the end. Try "echo *" to simulate a "ls" command and "cd" to change the directories. Also the busybox executable is still in memory , so you might be able to extract the binary from /proc/{pid}/mem . Busybox is a single static compiled executable which contains all the basic shell tools. Probaby you can also just paste new executables into the shell via echo and pipes.

<comment><USER3> Is there any hope to save the system during a system reboot? I guess I would need to recreate the kernel binary from RAM memory.

<comment> s-macke In this emulator the kernel is not stored in the filesystem. It is downloaded separately and put into memory. But usually the kernel is at a fixed location in physical memory. So you might be able to receive the kernel image from /dev/mem. But, as far as I know the init routines memory is freed after boot. So I guess crucial information is lost forever.

<comment><USER4> Ah but couldn't you, once you've gotten your essential tools back to a working state, get the missing kernel bits from the internet before you reboot?

It'd be an interesting challenge. Get a linux vm, sudo rm -rf everything, and then see if you can get the system back to more or less the original state.

<comment><USER5> Wouldn't the easier path be to rewrite the filesystem table to undo the deletions? You'd need to be very careful to only write necessary tools into memory, but since deleting files typically only changes the filesystem table and doesn't remove the contents of the sectors, you might be able to get enough of a working system to reinstall what is left. I'd reach for photorec since I'm lazy, but you'd need to bootstrap it with glibc and a few other dependencies. Not sure how you'd mount the ramdisk though... just hexdump, less, and dd would be minimally sufficient, though much, much harder.

<comment> s-macke For this emulator the filesystem is a RAM filesystem and fully managed in Javascript (virtio/9p filesystem as a device). No chance to recover.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Very impressive! You can even start an X11 session (startx), open dillo (a web browser), and open the emulator webpage within itself!

<comment><USER7> Two years ago I started Chromium under Bellard JSLinux. The only version (32) I found that did not require SSE instructions. [https://drive.google.com/open?id=0BwO8xuhb9OwrV1ZzT3ktX3hPb0...](https://drive.google.com/open?id=0BwO8xuhb9OwrV1ZzT3ktX3hPb00)

<comment><USER8> Both this and JSLinux don't implement X86, right?

<comment><USER9> JSLinux is running an X86 emulator. You can start Windows 2000 on it.

</comment></comment></comment></comment><comment><USER10> This is so cool. Now we are able to run operating system in the browser, and we are able to run database in the browser([https://pingcap.com/blog/how-we- compiled-a-golang-database-i...](https://pingcap.com/blog/how-we-compiled-a- golang-database-in-the-browser-using-webassembly/)). So what's next?

<comment><USER11> I heard you like browsers, so I put a browser in your browser.

;)

<comment><USER12> [https://www.browserling.com/](https://www.browserling.com/)

</comment></comment></comment><comment><USER13> Would this be a viable way to use a TAILS-like system without requiring a physical computer to boot it?

<comment><USER14> I think KVM is more appropriate and performant.

</comment></comment><comment><USER15> Boots and runs ok in Chrome on my Android 10 phone, but I guess I need an external keyboard. Android doesn't see any need text input, so no on-screen keyboard.

Does anyone happen to know if there is a general workaround for this situation? I often hit this obstacle in other browser-based emulators.

<comment><USER16> I'd love to know also. I've been goofing with ways to get more use out of the massive display in my Model 3 (while parked obviously).

</comment></comment><comment><USER17> The demo oh-so-briefly freaked me out. It uses the same RFC 1918 subnet I use on my VPN. So for about 10 seconds, I thought something local was leaking to javascript that probably shouldn't.

This is really cool, and performance-wise feels like the (even-then-ancient) surplus PC that I bought ca. fall 1995 to install slackware on. Which is to say, shockingly not-bad when you think about the stack it's sitting on.

<comment> s-macke Actually it was much faster some time ago. At least on Firefox. This emulator is basically a microbenchmark of the switch/case implementation of the browser. Firefox used a computed goto, which is perfect in this case. Now for some reasons it got slower. I have to take a look at the generated code to be really sure about what is happening here and what to do about it.

<comment><USER17> That is really interesting. I was using it in vivaldi on desktop and chrome on android, fwiw. I have to wonder what wasm might help... maybe the additional overhead on the VT and framebuffer would be so high it'd be a wash.

<comment> s-macke WebAssembly does not work on this low level. You cannot choose the switch/case implementation. Also it doesn't support goto. The reason is security and speed. The wasm-binary should be checked in O(n) and not in O(n^2). But I am curious about the future versions of webassembly.

There is already a wasm version of the CPU emulation. I will enable it at some point as default. But there is no speedup yet.

</comment></comment></comment></comment><comment><USER18> Next we need someone to come up with Docker in browser and then you can run almost anything in the browser.

</comment><comment><USER19> Exceptional Atwood's Law example.

[https://blog.codinghorror.com/the-principle-of-least- power/](https://blog.codinghorror.com/the-principle-of-least-power/)

</comment><comment><USER20> Looks really nice!

Seems to work better on Firefox than on Chrome

<comment> s-macke This emulator was optimized for Firefox and its JIT compiler. One or two years ago it was at least three times faster on Firefox than on Chrome. What unfortunately always happens with extreme optimization is that every small change in hardware or software can lead to massive performance problems.

</comment></comment><comment><USER21> ~ $ ping www.google.com

ping: bad address 'www.google.com'

:( I thought it was going to work out of box.

<comment> s-macke It works for me. Maybe you didn't receive IP address from the dhcp server in time. Just refresh the page and try again.</comment></comment>


White House discussing asking foreign visitors for cell phone contacts - <AUTHOR> http://www.cnn.com/2017/01/29/politics/donald-trump-immigrant-policy-social-media-contacts/index.html?utm_content=buffer12af2&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><USER2> >Miller also noted on Saturday that Trump administration officials are discussing the possibility of asking foreign visitors to disclose all websites and social media sites they visit, and to share the contacts in their cell phones. If the foreign visitor declines to share such information, he or she could be denied entry.</comment>


Game About Squares solver as a chrome extension - <AUTHOR> https://chrome.google.com/webstore/detail/game-about-squares-solver/lgndjieeanlbkaoadmbnbeiekblidial?hl=en

<comment><AUTHOR> I guess I should link to the code : [https://github.com/tburette/gameaboutsquaressolver](https://github.com/tburette/gameaboutsquaressolver)

I did this more to play with chrome extension. It's a nice problem to write some AI code: deterministic, single agent, easy to solve some levels but takes some thinking to solve them all.</comment>