Magic mushrooms, illegal in most places, may have therapeutic uses - <AUTHOR> https://www.economist.com/international/2019/06/08/magic-mushrooms-illegal-in-most-places-may-have-therapeutic-uses <comment><USER2> I never really had much of an interest in psychedelics for two (and a half) reasons.

1) I'm a child of the DARE era, which scared me about the big, scary risks associated with mind-altering substances!!!

2) I get severely anxious when I smoke even a little bit too much marijuana.

2.5) I have a diagnosed anxiety disorder (specifically OCD) which I now manage with ERP. But I severely fear losing control of my thoughts.

However, I recently read How To Change Your Mind, and it did reshape my thinking about a lot of the above.

I'm still hesitant to try shrooms or LSD, but the idea of a guided trip with a trained therapist, who will walk me through the more fear-inducing moments, does have an appeal. To think that maybe this would HELP my daily anxieties seems like a dream.

<comment> shaki-dora I suffer from severe depression. The surprise with LSD was actually that it made me happy. I had expected (and got) weird colors etc, but I thought its emotional impact was somewhere from neutral to negative.

In about 8 trips over as many years, I haven't had a bad experience, except one that just went on too long and became exhausting.

Yet I have had friends that are far more psychologically stable react negatively to it.

I've never seen anyone react badly to MDMA, and I think it may actually be more useful for emotional work. LSD makes me generically happy, but I'm more likely to develop a fascination with areal mapping than gaining any introspective.

Marijuana is pure hell. Sleepless nights of mild nausea, intense headaches, and terror nightmares. And mixing it with alcohol drops my blood pressure to syncope/sweating/panic levels.

<comment><USER2> Thank you for sharing. It's interesting to hear how happy it made you. If you don't mind expanding on that feeling I'd love to read more specifics.

<comment> shaki-dora It's just a state of extreme bliss, plus (and distinct) an appreciation for all sorts of suddenly very beautiful things: music, landscapes, people, etc. Sound especially feels incredibly precise and 3-dimensional.

Long term, the effect is rather small. I didn't have any negative hangover as some people apparently do, but rather a sort of low-intensity glow that slowly diminishes. In terms of treating depression, I don't think it made much difference either way. But since I have been suffering for as long as I remember, it was actually the first experience of such strong feelings I now at least know what improvement would feel like.

</comment></comment></comment></comment><comment> shaki-dora The recent interest in Ketamine/MDMA/psychedelics is long overdue. But I can't help feeling the optimism is somewhat too high?

I would encourage everyone to try LSD at some point in their lives. There are just vast parts of culture and humanity that you will suddenly understand. Most striking for me was seeing everyday scenes on the streets–people in cafés, parks, etc.–exactly as they are depicted in impressionist paintings. Or, of course, The Dark Side of the Moon.

But I'm sceptical regarding therapeutic use. Somewhere between 2% and 5% of people have recreationally tried most any given category of drugs. It was explored rather thoroughly in the therapist community in the 60s and 70s. If, indeed, they had the potential to essentially cure any of the diseases we have so far failed abysmally (depression, schizophrenia), no moralising majority would have had the power to suppress them.

What's promising are some less-frequent diseases such as PTSD. PTSD is somewhat unique because it involves memory, a system which we seem to have a much better chance at influencing compared to the evolutionary ancient limbic system of emotions.

Another fun aspect is the use of MDMA in talk therapy. For psychiatrist, it's an absolutely mind-blowing experience. They have often devoted their life to learning to get people to open up to them. And here you give them a pill and the effect is, reliably, like that scene of Robin Williams hitting Matt Damon in Good Will Hunting.

<comment><USER3> I think they provide something no pharmaceuticals do - a rapid and acute shift in perspective. In the face of trauma which creates damaged areas of the brain, the perspective shift can allow us to address root problems that would be otherwise inaccessible.

</comment></comment><comment><USER4> One of the most powerful benefits of psilocybin I don't see talked about very often is in the treatment of ADHD. A tip for researchers: The anxiety reducing effects are probably linked very strongly to emotional regulation which also receives similar positive benefits.

</comment><comment><USER5> Sold over the counter in Amsterdam. It's not really a problem here, I suppose, because the many open canals enforce minimal sobriety

</comment><comment><USER6> Mushrooms, cannabis and LSD are each much safer than alcohol [1]. (Objectively speaking, cocaine, amphetamine and MDMA are, too.) Legalisation for the first three and decriminalisation for the latter makes sense.

(I'm a wine and whiskey person myself. But my subjective choices shouldn't have relevance.)

[1] [https://www.sciencealert.com/researchers-rank- recreational-d...](https://www.sciencealert.com/researchers-rank-recreational- drugs-based-on-how-dangerous-they-are)

</comment><comment><USER7> No shit.

<comment><USER8> Yeah like honestly, pretty much anyone that's had them and didn't have a freakout can tell you that

<comment><USER9> Even the freakouts can be therapeutic depending on the individual's perspective and how they integrate it.

</comment></comment></comment><comment><USER10> It was just decriminalized in Oakland.</comment>


Etsy Wants to Give Female Programmers $5,000 to Attend Hacker School - <AUTHOR> http://techcrunch.com/2012/04/06/etsy-wants-to-give-female-programmers-5000-to-attend-hacker-school/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 <comment><USER2> I realize that I'm going to be in the minority here, but I find it disgusting that it's not just socially acceptable, but downright applauded to discriminate against 50% of the population because - through no fault of their own - they were born with male equipment.

Yes, yes, I understand the argument that it's somehow desirable to change the gender makeup of engineering (although I've yet to see programs aimed at fixing the general balance in elementary school teaching or nursing), but this does nothing to address the problem that there are INDIVIDUALS who might like to apply for a grant but are excluded because of what's inside their underwear.

<comment><USER3> Maybe you're complicating this. It's just a basic principle of capitalism and freedom. Etsy can give away their money to anyone they choose to, if it helps them commercially (or in any other way).

We should consider this socially acceptable for our own good.

<comment><USER2> > Maybe you're complicating this. It's just a basic principle of capitalism > and freedom. Etsy can give away their money to anyone they choose to, if it > helps them commercially (or in any other way).

100% agreed.

I stand for the right for every firm to pass out scholarships, hire, fire, etc. based on all sorts of things: I support the RIGHT of bookstore owners to exclude on race, the RIGHT of golf courses to exclude on sex, etc.

...but once we turn from the topic of what people should be ALLOWED to do, and address what people SHOULD do, I will say that I dislike people who exclude on race, sex, sexual orientation, etc.

Your uncle has the RIGHT to be racist (thought it makes him a jackass), and Etsy has the RIGHT to be sexist and judge people based on the accident of their birth instead of the content of their character.

...and it makes them jackasses.

</comment></comment></comment><comment><USER4> Im going to be "that guy" but this story was already on HN's frontpage yesterday (<http://news.ycombinator.com/item?id=3804508>).

Additionally, as per HN's guideline, I would suggest linking to the original piece of information being <http://www.etsy.com/hacker-grants> and not the TC one.

I tend to do this mistake myself (link to TC posts instead of the original one) but have realized that the HN community prefers to see the original source (from the HN guidelines: Please submit the original source. If a blog post reports on something they found on another site, submit the latter.).

<comment><USER5> Dude! Stop being "that guy"!

Sorry, didn't realize this. Gotta catch up on my HN rss.

</comment></comment><comment><USER6> Grants and scholarships based on minority status are bigoted, yes, but not in a bad way.

Hear me out.

The negative reaction to bigotry arises from a perceived inequality: one group is getting favored over another, and that's unfair. Sure.

But that assumes that both groups started out equal in the first place. If one group were at a disadvantage then giving them a leg up merely equalizes what was already an unequal playing field. So, in this example, men have been and continue to dominate professionally by almost any metric we care to look at across the entire population (salary, job title, etc.). Helping out women in this regard is an attempt to level the playing field.

That said, in practice it is not that easy. Quotas are my favorite anti- pattern in this arena; they simply don't work and do more harm than good. In this case, I'm a little leery because Etsy has financial motivations behind wanting to be seen as women-friendly. A government offering this kind of scholarship as a social contract effort is more neutral to me; a business offering it as a marketing effort is more suspect. Maybe I'm too cynical, though.

<comment><USER2> > But that assumes that both groups started out equal in the first place.

Women get more degrees.

Women live longer.

Women work less, yet collection social security longer.

Women get equal pay for the same experience in the same job.

If Etsy is doing this just as a purely cynical marketing stunt, playing to their female demographic, I could have some respect for them, in the same way that I respect a sleazy salesman, or an alligator.

...but if they think that they're "solving" a "problem" by discriminating against young men, then they're just fools.

<comment><USER6> > Women get equal pay for the same experience in the same job.

That goes against a whole lot of sociological research, including CEO pay in the private sector and professors at the academia level. Where are you getting that idea?

One third of all women are killed by an intimate partner. Women ages 20-24 are disproportionately the victim of non-fatal domestic violence.

Women live longer? Well, okay: that doesn't have to do with pay scale or work inequality, though, right? They don't live longer because someone is deciding to let them live longer, but they do get less money because some institution is deciding they should get less money.

Ultimately, how do any of these facts relate to professional equality?

<comment><USER2> > > Women get equal pay for the same experience in the same job.

> That goes against a whole lot of sociological research

No it doesn't.

Here's a report that the Department of Labor commissioned

[http://www.consad.com/content/reports/Gender%20Wage%20Gap%20...](http://www.consad.com/content/reports/Gender%20Wage%20Gap%20Final%20Report.pdf)

TL;DR: women and men with the same experience and the same job get the same salary. Women, though (a) opt out of the labor force to have and raise kids, and (b) opt out of high paying jobs that are dangerous or require insane time commitments.

Feel free to respond with any actual statistics you may have.

> One third of all women are killed by an intimate partner.

One third.

ONE THIRD??!?

Let's see what the CDC has to say:

<http://www.cdc.gov/nchs/fastats/lcod.htm>

1,219,784 women died in the US in 2009.

3,673 died of homicide.

That means that 0.28% of women were killed by ANYONE.

...yet you claim that 33% of women are killed by their intimate partners.

<comment><USER6> The violence statistic was a mistype: one third of women murdered are murdered by an intimate partner.

Check this out: [http://jec.senate.gov/public/?a=Files.Serve&File_id=9118...](http://jec.senate.gov/public/?a=Files.Serve&File_id=9118a9ef-0771-4777-9c1f-8232fe70a45c)

It refers to your study, but clarifies some stuff.

All other things being equal (skills, experience, etc), resumes with female names were responded to less than resumes with male names.

Women who have children are paid less than men who have children in the same occupation even if they are at the same level.

In nearly every study of gender inequality in pay, there is an unexplained discrepancy that favors men.

</comment></comment></comment></comment></comment><comment><USER7> How would you feel about "Etsy Wants to Give Male Programmers $5,000 to Attend Hacker School"?

It would be in the news all over the country. If you can't switch male/female without feeling like it's wrong one way, it's wrong the other way too.

<comment><USER8> Just because it's wrong one way doesn't make it wrong the other way. It's wrong for Etsy to give male programmers money because women are already underrepresented and, in many ways, disadvantaged in a male dominated hacker culture. It would also not be wrong to give poor black kids a chance (even though it would be wrong to "discriminate" against white kids).

<comment><USER7> The point of non-discrimination is EQUALITY between people of all races and genders. So if you can't switch the sides, they are not equal and it is wrong.

This is just madness. You can give poor black kids a chance by giving them equal rights and rules. Anyway, woman are underrepresented by their own choice and are in no way disadvantaged. I actually feel it is the opposite, that as a woman, I'm in advantage in IT.

</comment></comment></comment><comment><USER9> It's not only sexist but also stating clear that there is a handicap in being a female programmer.</comment>


Could New York City One Day Surpass Silicon Valley? - <AUTHOR> https://blog.brainstation.io/why-new-york-is-poised-to-surpass-silicon-valley/ <comment><USER2> The thing that NYC's got going for it (which the article mentions) is the diversity of its economy. When you're there, you're really at the center of many, many industries, which, at least in theory, gives startups access to a whole range of potential partners, clients, and industries.</comment>


Firefox Mobile Coming To ARMv6 based handsets - <AUTHOR> http://browserfame.com/474/firefox-android-armv6-handset <comment><USER2> I've got an ARMv6 device (ZTE Blade), and lots of stuff isn't available for it. I've stopped looking for games, the good ones are almost universally not available for my phone. I knew I was getting an entry-level phone when I got it and many apps would be slow, but I wasn't aware the app ecosytem was fragmented in that manner.

I'm not really complaining, though, I'm sure most of the stuff that's not available is not available for a reason: if it were compiled for ARMv6, it'd probably run like a dog, and I wouldn't derive much pleasure from it anyway.

<comment><USER3> I'm slightly surprised so much stuff doesn't work on your phone.

The Firefox issues were quite deep:

a) JIT code generation needed to be disabled b) their custom linker didn't respect mmap alignment on 16K boundaries, which is required for the specific cache system of ARMv6 c) their custom ELF relocation compressor had a similar alignment bug

These are not problems that "normal" applications should run into.

<comment><USER2> Well, it's mostly games and other media apps. And I may have overstated my case based on too little/skewed data: many of the games _I_ was interested in were not supported.

Looking at the 24 top-selling games in the Android store, 14 work, the following 10 don't: Osmos HD[1], Minecraft, The Lost Cities, GTA, Asphalt 6, Sonic 4, Jelly Defenders, Modern Warface, Reckless Racing 2 and World of Goo.

[1] works on other phones and not just tablets despite the HD label

<comment><USER3> The issue there is probably VFP support required by some 3D engines.

See for example: [http://forum.unity3d.com/threads/73598-Before-you-buy- Androi...](http://forum.unity3d.com/threads/73598-Before-you-buy-Android-for- Unity-ARMv6-and-what-you-should-know).</comment></comment></comment></comment>


Show HN: Save your side project - <AUTHOR> http://sideprojects.assembly.com <comment><USER2> I don't know how I feel about this project. It feels like their product is a middleman, and sort of (maybe unintentionally) reinforces the idea that people "own" ideas...

When I think about it, it's probably not actually different from just having an open collective that takes on ideas and builds them for clients for free, but this is a distinctively less personal feel... but 10% is (in my opinion) a pretty hefty amount of revenue to share for just hosting.

If I'm understanding correctly, 10% revenue sharing for the simple value proposition of connecting you to people who want to build you app and hosting your app seems like too much.

Maybe I'm just not open minded enough for this to seem like a great idea to me yet

<comment><USER3> I think there are a lot of practical problems with Assembly's model, but it feels to me like an imperfect glimpse into what will someday be a really valuable model. I love the idea of being able to contribute to a project with minimal barriers to entry, and get an automatic stake in its success in return.

<comment><AUTHOR> Hi @semiel. This is our vision and we're hopefully iterating towards a more perfect solution. We've thought intensely about the details but in reality, we're still learning from the community and constantly finding opportunities to improve. My email is firstname.lastname@example.com if you ever want to share specific thoughts - they are helpful.

</comment></comment></comment><comment><USER4> Is this service basically for SAAS type projects that could potentially have a future revenue stream? Or is it also intended for regular open source standalone projects? I've got some stuff in the pipeline where I've been trying to find a way to get more exposure, so I can get people testing it giving me an idea of future development priorities. But I don't see any type of revenue stream, unless I sell support for the projects.

</comment><comment><USER5> Somehow get the assembly newsletter once in a while and I have to say it's a great newsletter. Not because I am so interested in what assembly does but rather because the subject line is so compelling to click on. Almost like it's not a newsletter but a real email. I don't know whether it is the lowcaps which does the trick or the wording but it's nailing it.

<comment><USER6> That's probably because they dogfood and have a database of really good emails :) [https://assembly.com/really-good-emails](https://assembly.com/really-good- emails)

<comment><USER7> I find most of the projects to require mostly Ruby/Rails/JavaScript stack.I guess its high time to learn Ruby/Rails. I am a java developer.Was hardly able to find any project here.

</comment></comment></comment><comment><USER8> Can't say enough about how I feel about Assembly. It's such a great way to launch that idea you had but never got started.

</comment><comment><USER9> This is perfect timing for me. I have a project which is online and has users, yet is languishing because I just don't have time. ([http://think200.com](http://think200.com) \- Test-driven app monitoring.)

I've been considering open-sourcing it and just hoping for the best. So this is a good alternative to investigate first.

<comment><USER10> Awesome. I'll follow up with you over email to chat about Think200 and how we can make it thrive.

<comment><USER9> Thanks! If you create a project, you'll find a rock-solid request queue and user-feedback implementation: [https://www.dropbox.com/s/fz9c8bae97bqxi3/think200-queuing-d...](https://www.dropbox.com/s/fz9c8bae97bqxi3/think200-queuing- demo.mov?dl=0)

The app's about 85% done. I'm very open to how development can progress on this. That being said, I won't be offended if think200 doesn't fit Assembly's model.

</comment></comment></comment><comment><USER11> How will you prevent ownership from being diluted by intentional (or even unintentional) inflation of future bounties?

<comment><USER12> My experience with it a few months ago had this exact issue - there is no standardisation of bounties whatsoever.

Initial work developing the API (10 hours of work, say) would be valued at 5000 credits but then after launch someone tweaking the color of a button might get set at 2000 credits.

Perhaps there needs to be a review process for tasks that go through a list of per-project moderators? Both for reducing cruft, keeping focus on the currently-important stuff, and to normalise bounties across the project's lifetime.

Alternatively, the bounties could be semi-invisible, instead with tasks assigned to various levels of difficulty and importance...

</comment></comment><comment><USER13> Apologies for a shameless plug.

Should you ever find your side project un-savable - for a variety of reasons (commitment issue, personal, emotional, what-not), then you can always take your project to SideProjectors and let others take over. :)

[http://sideprojectors.com](http://sideprojectors.com)

<comment><USER14> I am interested in viewing, but a heads up: the site shows zero entries, even after enabling all first-party scripts and XHR requests. Not sure if third- party scripts are essential, but if they are, consider not depending on them.

</comment></comment><comment><USER15> Is there a way to filter by language?

<comment><AUTHOR> that is coming. We're releasing version 2 of the platform shortly

</comment></comment><comment><USER16> This project is very close to an idea I had in 2009 I really hope it takes off:

[http://justinvincent.com/page/tag/venture- matrix](http://justinvincent.com/page/tag/venture-matrix)

</comment><comment><USER17> Is your focus web apps or would native mobile platforms be a candidate?

<comment><USER10> Pretty much any software product works. A few examples of mobile apps on Assembly:

\- [http://getgigradio.com/](http://getgigradio.com/) \- [http://www.getripple.co/](http://www.getripple.co/) \- [https://assembly.com/meowboard](https://assembly.com/meowboard)</comment></comment>


Emulating Functions in Dart - <AUTHOR> http://www.dartlang.org/articles/emulating-functions/index.html

<comment><USER2> This is how Clojure implements functions on top of Java. It still raises the question: if you can build your own runtime, why not just have first class functions? It seems like all anyone knows how to do is reimplement HotSpot.

<comment><USER3> Dart _has_ first class functions:

[http://blog.sethladd.com/2011/12/learning-functions-for- dart...](http://blog.sethladd.com/2011/12/learning-functions-for-dart.html)

What Gilad describes is a way to make an instance of a class to behave like a function.</comment></comment>


Apple iOS Losing Market Share to Android - <AUTHOR> http://www.geekwithlaptop.com/apple-ios-losing-market-share-to-android

<comment><USER2> It would be interesting to see that graph plotted in raw numbers rather than in percentages. My guess is that iOS isn't actually losing existing customers to Android, but that Android is picking up more of the first time smart phone buyers.

<comment><USER3> It would be useful to consider only people buying Android whose carrier also offers iPhones. That'd remove other variables like "doesn't want to/cannot change carriers".

<comment><USER4> Until the iPhone is actually on other carriers (not just eternally rumored), that's somewhat irrelevant. It'd be interesting for the projected marketshare, though.

</comment></comment></comment><comment><AUTHOR> Also this recent Bloomberg article has less rossy reporting on the difficulties facing Android, despite itself massive growth, and even bigger potential.

[http://www.bloomberg.com/news/2010-09-02/android-app- develop...](http://www.bloomberg.com/news/2010-09-02/android-app-developers- endure-lower-sales-in-search-of-growth.html)

</comment><comment><USER5> McDonalds has more marketshare than In-N-Out, and a bigger menu. However, the people eating at In-N-Out are having a much better experience enjoying their vastly more delicious food :)

<comment><AUTHOR> Terrible argument. Neither Google nor Apple make the "menus", third party developers do. If you can make a high quality Android app, by your own argument, it should be appreciated and rewarded by users starved for quality.

<comment><USER6> Really? It's true that the developers make the "menus" but Google and Apple make the "restaurant," to continue the analogy.

Having recently acquired an Android phone for dev purposes, I find the UI, built-in controls, installing apps, settings, etc. all completely jarring compared to iPhone.

(Off-topic, I love the Android SDK though, and being able to use Eclipse is great.)

<comment><USER7> Is there some catch all term or concept for someone saying "my new thing (or a thing I tried out for a short period) is different from my old thing and therefore uncomfortable to me with my expectations and habits and so I declare it inferior"? I get the feeling we're going to hearing that a lot as the iPhone early adopters shift to Android and after reading so many worthless Windows->Mac, Windows->Linux and Mac->Linux switching stories that just repeat this error at great length it would be good to be able to put a name to this concept and short-circuit it this time.</comment></comment></comment></comment>


Apple are charging you to watch WWDC videos.  - <AUTHOR> http://developer.apple.com/products/videos.html Charging isn't really going to help developer adoption.Seems very short sighted. <comment><USER2> Just like they do every year...?

EDIT: Also, if you went to WWDC, you already get free access.

<comment><USER3> It still feels weird to me for a company to charge for instructional videos on their own platform. Google doesnt' do it with Android - there are heaps of tutorials on YouTube coverring different APIs. Microsoft doesn't do it for their tools either. Google want to sell Android apps, Microsoft wants to sell development tools, Apple want to sell iPhones. Why charge?

<comment><USER4> Do you have any idea how many man-hours go into the preparation of WWDC talks? Sure, other people may give away their development presentations. But then, they're not (IMHO, etc, etc) nearly as informative, polished, or well produced as standard WWDC fare.

Like seemingly everything related to Apple, if you don't perceive -- or just aren't interested in paying for -- the difference in quality, don't buy it. But also please at least consider not insulting the intelligence of those who do and are by claiming the cost isn't justifiable.

<comment><USER5> _Do you have any idea how many man-hours go into the preparation of WWDC talks?_

Because preparing for TechEd, PDC, WPC is cheap, isn't it? Or their presentations are not any good? The truth is Apple knows that people will pay for those things, so they charge for them.

<comment><USER4> _Or their presentations are not any good?_

Yes. Exactly. I'd say "not _as_ good", but whatever you like.

<comment><USER5> Oops. Thanks. I have to improve more in my English.

</comment></comment></comment></comment></comment></comment><comment><USER6> Of course you have to pay, what would be the point of paying 1500$ for WWDC if you can get all the session videos for free?

<comment><USER7> "what would be the point of paying 1500$ for WWDC if you can get all the session videos for free?"

other paid for conferences do release videos of the talks so this argument isn't very persuasive.

</comment></comment><comment><USER8> Just like rag trade fashion costs.</comment>


Supreme Court decided there isn't a Fourth Amendment in public anymore - <AUTHOR> http://www.slate.com/blogs/the_slatest/2016/06/20/sonia_sotomayor_dissent_in_utah_v_strieff_takes_on_police_misconduct.html <comment><USER2> I'm no fan of Sotomayor, but the majority decision is seemingly beyond reason.

</comment><comment><USER3> My first impression was that this title must be exaggerated click-bait.

After reading the article, I'm not so sure. What a decision!

</comment><comment><USER4> This is just galling. I will be correcting anyone who calls this the land of the free, in the future.

<comment><USER5> Not all countries follow the fruit of the poison tree doctrine. Canada for example will allow illegally obtained evidence if the crime is severe enough (among a balance of other factors).

[https://en.wikipedia.org/wiki/R_v_Grant](https://en.wikipedia.org/wiki/R_v_Grant)</comment></comment>


One year of automatic DB migrations from Git - awinter-py https://abe-winter.github.io/2020/08/03/yr-of-git.html <comment><AUTHOR> The reason the author flat out didn't consider SQLAlchemy's alembic seems incorrect? Don't most people simply use a local testing db, generate migrations on that test db then just perform the upgrade on prod if it looks good instead of generating the migration directly on prod?

<comment><USER2> Yes that's how you'd do it. That said, while I really love SQLAlchemy and worked with Alembic for a long time I switched to manually generated SQL-based migrations in all of my projects, as there are simply too many corner-cases that are quite hard to capture with tools like Alembic. Writing plain SQL files gives you much more expressive power and also makes it quite easy to build complex migrations that e.g. involve first some schema changes, then a data migration, and then some more schema changes, which is hard to do with most migration tools.

I also found that the use-case which most of these migration tools optimize for (being somewhat independent of specific SQL dialects) rarely works in practice, except maybe if you stick to the smallest common denominator of all SQL dialects. And that again is wasteful IMO as not using a lot of the functionality that's present e.g. in Postgres can make your life a lot harder.

<comment><USER3> I'm working with dotnet rather than Python, and worked with Entity Framework's automated migrations for years. I say "worked with", but all too often it was "battled with" \- just as you mention, there were just too many corner-cases for anything other than the simplest of databases.

A few years back I switched to plain SQL based migrations (using a lightweight library called DbUp to execute them) - I couldn't be happier with it!

What better tool to express database changes with than SQL? I also like the transparency it brings you - the files are right there for you to read. And I'm a stickler for formatting and convention, so it's great being able to write SQL files that include comments and use my preferred formatting.

</comment></comment></comment><comment><USER4> This is what SSDT dacpacs offer (it's supposed to be an open standard too). Unfortunately they suffer similar issues as you describe (most data migrations are destructive).

I settled on flyway after migrating to postgres a few years ago and haven't looked back. The "this is great" moment came after we automated snapshot and restore of per-dev environments in the release pipelines - this allowed us to roll out the last released version of the product with either a clean database (fast) or a snapshot (slow) to our own individual database in only a few minutes. As a result we could test flyway migrations without the grief caused by breaking (or reverting) a shared 'dev' database.

Since moving on from that team/company, and run head first into dacpacs again, I've found it increasingly difficult to sell my past approach. Few people are genuine data experts, few still DBAs and almost no one is responsible for cross cutting concerns etc. I can't help but think empowering devs to automate migrations, even if it's a hackity SQL parser, is part of the solution and I'd love to see this take off.

</comment><comment><USER5> I really like the workflow GitHub uses for this: [https://github.blog/2020-02-14-automating-mysql-schema- migra...](https://github.blog/2020-02-14-automating-mysql-schema-migrations- with-github-actions-and-more/)

(It makes use of skeema, which allows you to track your schema in a declarative way vs. ALTER TABLE statements.)

<comment> awinter-py skeema is similar -- if I understand it correctly, it keeps 'truth' as a SQL file and diffs it against a live mysql DB

automig diffs the SQL files directly without looking at a live DB

pros & cons to both approaches

<comment><USER6> Skeema author here -- you're correct that a live DB is involved, but the notion of "truth" in Skeema actually depends on what operation you're running :)

In Skeema, you have directories of *.sql files, where each directory defines the desired state of a single "logical schema". A config file in each dir allows you to map that logical schema to one or more live databases, possibly in different environments (prod, stage, etc) and/or possibly different shards in the same environment.

Most commonly, users will want to "push" the filesystem state to the databases, e.g. generate and run DDL that brings the database up to the desired state expressed by the filesystem. But users can also "pull" from a live database, which does the reverse: modifies the filesystem to look like the current state of a live database, essentially doing a schema dump. So the source of truth depends on the direction of the operation.

Skeema also uses the live database as a SQL parser. Instead of needing to parse every type of CREATE statement accurately across many different versions/dialects of MySQL, Percona Server, MariaDB, (and maybe someday Aurora etc), Skeema runs the statements in a temporary location and then introspects the result from information_schema. This avoids an entire possible class of bugs around parser inaccuracies.

That all said, I do wholeheartedly agree that generating DDL from git alone is both useful and really cool! I actually built a "database CI" product around this concept as a GitHub app last June: [https://www.skeema.io/ci/](https://www.skeema.io/ci/)

<comment> awinter-py whoa neat

and agree re parsing -- turned out to be a huge pain. I think someone bundled the postgres parser for python; I wish this were true for every dialect but even so, there are versions to consider.

</comment></comment></comment></comment><comment><USER7> This is definitely better than the traditional rails/django approach to migrations, but the post seems to imply that generating changes against a live DB is a pointless annoyance - I disagree.

If you care about testability - the best way to test your migrations is by testing them directly against the schema they'll actually be applied to.

What if your tool is not the only party making schema changes to the database? What if there was a bug in a previous migration and the database is in a different state than you're assuming? The only way to check for problems like this is to check your actual production state.

</comment><comment><USER8> > and because in general there's no guarantee that the migrations produce > something equivalent to your 'schema.sql' or ORM definition.

I think the solution to this is to not have a schema.sql. Build your development/testing database by running the same migrations you have/will run in production.

There's still the issue of ORM parity, which admittedly is a bit awkward. I try to limit my ORM definitions to the minimal necessary for the ORM to run. If I want a true picture of what the table looks like, I look to the database directly.

<comment><USER7> To me it seems a bizarre approach to have no actual goal state and have your source of truth be a chain of scripts.

Why not:

\- Have an ORM definition/schema.sql explicitly defined

\- Continually test that production_schema+pending_changes=goal_schema

This way, no chain is required: The only scripts you need to keep hanging around are any pending changes yet to be applied. And you can mostly autogenerate any changes required, so the need to cobble together scripts manually is much reduced.

<comment><USER2> You can have both. I usually have numbered SQL scripts that represent up & down migrations (example: [https://github.com/algoneer/algonaut/tree/master/algonaut/mo...](https://github.com/algoneer/algonaut/tree/master/algonaut/models/migrations)). The first migration simply contains the initial data schema, the following migrations contain amendments made during development. As you said it can be confusing to have to look at a series of files to figure out how the schema would look in practice. To alleviate this problem we regularly "compact" our changes by generating a new initial migration representing the current state of the database (this is trivial with most database systems e.g. using the "pgdump" command for Postgres), replacing all migration files and resetting the schema version in the production DB to 1.

In practice it's hard to avoid having incremental migrations, as you need a way to evolve your production schema. Your approach would be awesome of course but I don't know any tool that would be able to robustly come up with a migration by comparing a database schema and a schema specification. Often it's not even possible to derive the necessary changes using such an approach: If you e.g. change the name of a column in your schema.sql, how can the tool know if you want to remove the original column and add a new one instead or simply rename and possibly type-cast it? If you have multiple changes like that it only gets worse. So I'm not very optimistic about that approach.

<comment><USER7> I wrote a tool that does exactly this (migra, mentioned in the post). You obviously have to review the output to catch things like renames, but most of the time, for typical operations like adding a column/updating a view/whatever, it's going to give you what you want.

</comment></comment></comment></comment><comment><USER9> Looks interesting - GitOps for databases. Can I rollback to a specific version?

I think Rails has a combination - migration files + schema file that serves a source of truth [https://edgeguides.rubyonrails.org/active_record_migrations....](https://edgeguides.rubyonrails.org/active_record_migrations.html#what- are-schema-files-for-questionmark). It solves a problem of a cold start, but I'm not sure it can generate a migration from the changes to it.

<comment><USER10> Rails does some basic tracking in the schema_migrations table, which it uses to enable rollbacks via its CLI.

</comment></comment><comment><USER6> Minor nit, but GitHub's gh-ost tool is for performing schema changes, not data migrations. You may be thinking of Shopify's Ghostferry?

Anyway though, your broader point is absolutely correct, re: data migrations typically involve complex custom/company-specific tooling at scale. And it's also difficult to map data migrations to a declarative tool in a way that feels intuitive.

</comment><comment><USER11> I wonder how automig compares to loading the schema definitions from git into scratch databases and feeding them to migra [https://djrobstep.com/docs/migra](https://djrobstep.com/docs/migra)

</comment><comment><USER12> Sorry if that comes off as looking down on people, it is not meant that way, but I'm honestly a bit baffled how I meet many people to this day that still discover schema migration tools as something new/special instead of just learning it as one of the basic tools of a developer.

I haven't written schema migrations by hand on a regular basis in like 12+ years, the very start of my career, so they were probably not even new back then. Am I just living in a bubble where those tools, while certainly not perfect, are heavily relied upon, whereas others prefer to do it (semi-)manually to have full control? How is the state of these tools in different stacks / environments?

<comment><USER13> Perhaps it's just that in some cases, the tool is overkill? In one case, I wrote a super simple shell script to track applied migrations to a database that had until then been managed entirely manually; I didn't feel like it was worth the trouble to try and learn something more complicated just for that use case, since it took me about 15 minutes to write a script that worked well enough: it applied the migration scripts transactionally (transactional DDL rules), in order and did so idempotently.

Granted, I'm not a software developer by trade; just a sysadmin who occasionally uses programming to solve problems. I imagine if I had to deal with actual software development I'd end up learning one of those tools eventually.

</comment></comment><comment><USER14> >> I haven't written a migration in 1+ years

This.

Above should be the goal of every database backed application framework. A really well balanced post (author is super modest).

>> Dialect support is no picnic.

Are you doing SQL statement parsing here for diff of pg ? This can lead to lot of work if you want to add other databases.

@awinter-py : have a look at our approach to schema migrations - we hand a GUI DB application to devs and it generates schema migrations as you change database. The goal is still the same - backend devs should never write schema migrations.

</comment><comment><USER15> I really want schema definition to be declarative; then ask me for a data migration if applying (to a given db) is going to result in data loss (e.g. declaration doesn't include a column that currently exists in db), optional otherwise.

Even when state-aware migrations are needed they could be better, e.g. 'on creating this column, value = other column * 2' rather than in an ordered sequence.

</comment><comment><USER16> Do people often find they're doing schema migrations without having the need to run data migrations as well?

I find writing the alter table commands fairly trivial compared to the data migration that comes along with it.

</comment><comment><USER17> We need a file system API for databases, much like /proc.

<comment><USER18> There is, it's called INFORMATION_SCHEMA and defined by the SQL standard.

[https://www.postgresql.org/docs/current/information- schema.h...](https://www.postgresql.org/docs/current/information-schema.html)

Postgres also has its own schema that is basically manipulated directly by the C runtime:

[https://www.postgresql.org/docs/current/catalogs.html](https://www.postgresql.org/docs/current/catalogs.html)

<comment><USER17> So I can cat the file system API directly from Linux?</comment></comment></comment>


I Trained a Deep Q Network Built in TensorFlow to Play Atari Pong - <AUTHOR> https://www.reddit.com/r/MachineLearning/comments/3y16pa/i_trained_a_deep_q_network_built_in_tensorflow_to/ <comment><USER2> This is simply a transpile / reproduction of the original Torch version from Deepmind, but in TensorFlow. It doesn't really do anything new or different compared to the paper by [Mnih et. al.]([http://www.nature.com/nature/journal/v518/n7540/full/nature1...](http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html)) .

<comment><USER3> Replicating a previous result is still a worthwhile endeavor. Frankly, I don't think the adjective "simply" applies here. This isn't a script kiddie running a binary they found on the web.

P.S. I'm a professional scientist and I think the world would be better if people replicated results more often, and even showcased negative results.

<comment><USER2> I didn't mean it in a condescending way. I was stating that this is not algorithmically new, and is a reproduction of the paper. From the README of the repository, it is not obvious that this is a reproduction. The information is fairly hidden, and the DQN paper is given as a reference. A casual glance might suggest that there is research innovation there.

Here are other reproductions just FYI:

Original Torch version from DeepMind: [github mirror] [https://github.com/kuz/DeepMind-Atari-Deep-Q- Learner](https://github.com/kuz/DeepMind-Atari-Deep-Q-Learner)

Caffe: [https://github.com/muupan/dqn-in-the- caffe](https://github.com/muupan/dqn-in-the-caffe)

Theano: [https://github.com/spragunr/deep_q_rl](https://github.com/spragunr/deep_q_rl)

Neon: [https://github.com/DoctorTeeth/dqn](https://github.com/DoctorTeeth/dqn)

</comment></comment></comment><comment><USER4> Would be interesting to see if it could be regularized to make it a bit less twitchy. (E.g. by giving a fitness bonus to no action / and-or penalizing many changes of direction within some time window.)

</comment><comment><USER5> Github page: [https://github.com/asrivat1/DeepLearningVideoGames](https://github.com/asrivat1/DeepLearningVideoGames)</comment>


Ask YC: SMS Application, any help? - <AUTHOR>

I am building an application that will need to send and receive text messages. i will like to know the best way to do that? i am thinking along the lines of an SMS server like Kannel. <comment><USER2> I posted a similar question a while ago, and had a good response... <http://news.ycombinator.com/item?id=119395>

</comment><comment><USER3> Could you make it less "push", so that when someone sent a special message to <http://www.textmarks.com/> service, then textmark was configured to fetch the info from your URL, and respond ?

Are you sure that in West Africa receiving text messages will be free, and that you will be able to do international text messages ?

</comment><comment> hafeez-bana We use a number of SMS providers. By far the easiest to integrate with is clickatell.

J-mango does SMS as well - both income and outgoing. Check out the video at <http://www.j-mango.com>

</comment><comment><USER4> There are loads of services that bulk sell SMSs. You just fire off some XML to their servers and they'll send the message and then when you receive one, they just fire some XML back to you.

</comment><comment><USER5> Shortcodes can be quite costly. Some people use <http://www.textmarks.com/> instead, which is a tradeoff on usability for being free.</comment>


Behind the scenes of "Back to the future", 1985-1990 - <AUTHOR> http://www.retronaut.co/2012/05/behind-the-scenes-of-back-to-the-future-1985-1990/

<comment><USER2> It's interesting to see the transition from physical models to blue screen based action. The models of the trains and the DeLorean are great and remarkably intricate, whilst the blue screen shots are being used for some of the more difficult flying scenes.

</comment><comment><USER3> Crazy! Back to The Future was released in mid-1985 and things have changed a lot. The models, the camera equipment... makes you appreciate the film even more knowing how it was put together.

</comment><comment><USER4> Good times. Now it's all green shit in background.</comment>


What to do when the passion for knowledge, affects your productivity ? - <AUTHOR>

Hi all,
I have always wanted to be a developer, but i have tried and i have found myself not good enough for complex situations, however i understand enough for writing, adapting, translating small guides, tutorials and other documentation of the languaje i try to learn.
I think i have identified the problem: My passion for information, my inability to stop it, and the subsequent result of  "wasted time" that i should use for developing my skills.
I think being up to date is important for a developer, but how would you manage this problem ? May be i should focus myself in other areas such as the documentation ?
I think i need an advice.
Hernan. <comment><USER2> You are doing learning wrong. Developing is not about books, tutorials videos etc... is about thinking. Start writing some code WITHOUT any sort of help except for the code of some projects similar to what you want to do. You will have to think with your own head and you will learn how other people approached similar problems and you will also learn how to overcome them.

Keeping up to date is important but it's not your job. Also, if you don't have a base, there is not much to keep up to date. Just choose a starting point and do something concrete. Everything has a starting point and will one day need an update but don't worry about that now.

<comment><AUTHOR> Thanks for the reply.

I think i have tried that approach, but it is hard to apply the things i understand. I know there is something "missing".

I will try to write on my own a web-application that already exist and see how far i can go.</comment></comment>


Chrome browser will detect what URL you copied - <AUTHOR> If you're visiting a webpage that contains UTM paramters like:
https://www.w3schools.com/?utm_source=facebook
You can try use your mouse to select and copy: https://www.w3schools.com/
Paste it in a new tab, you'll find that the UTM parameters are also be copied! You have no way to copy the URL that without UTM parameters.
Chrome version: 66.0.3359.139 <comment><USER2> I can't confirm this. Same Chrome version. Copying from this text as well as copying from the address bar after visiting the site, I get exactly the part I copied.

<comment><USER3> It does work for me.

Load [https://www.w3schools.com/?utm_source=facebook](https://www.w3schools.com/?utm_source=facebook) in a new tab.

Highlight "[https://www.w3schools.com"](https://www.w3schools.com") in the URL in the address bar.

Copy.

Paste in to Notepad and get "[https://www.w3schools.com/?utm_source=facebook"](https://www.w3schools.com/?utm_source=facebook").

However, it's _any_ GET vars that seem to be copied. Doing the same thing on [https://www.w3schools.com/?abcdef=facebook](https://www.w3schools.com/?abcdef=facebook) has the same effect. It only seems to happen on W3Schools too. I suspect it's the site trying to be do something rather than anything nefarious by Chrome.

</comment></comment><comment><USER4> It's not just when GET params are in the URL. If you try any URL with a path that follows, e.g. [http://www.bbc.co.uk/news/business-44065422](http://www.bbc.co.uk/news/business-44065422) and then copy the protocol and domain ([http://www.bbc.co.uk](http://www.bbc.co.uk)), the entire domain is added to the clipboard

</comment><comment><USER5> Might be some custom JS on the page you are looking at - what exact URL was it?

<comment><USER4> Nope. Confirmed on any website

</comment></comment><comment><USER6> CNR on Chrome 66 or Chrome 68 (Ubuntu Linux)</comment>


Proposal Would Force the Internet Archive and Other Platforms to Censor the Web - <AUTHOR> https://blog.archive.org/2016/06/02/copyright-offices-proposed-notice-and-staydown-system-would-force-the-internet-archive-and-other-platforms-to-censor-the-web/ <comment><USER2> that's sad. beside, internet archive respect robots retroactively, so there's that.</comment>


How Gov.uk Notify reliably sends text messages to users - <AUTHOR> https://gds.blog.gov.uk/2020/04/03/how-gov-uk-notify-reliably-sends-text-messages-to-users/ <comment><USER2> One of the most important parts about this is that they applied backpressure to the load balancing process:

> We also decided that if a provider is slow to deliver messages, measured in > the same way as before, we would reduce their share of the load by 10 > percentage points

When doing systems design this is a critical piece to include in almost all load balancing aspects. Because a ton of time you will start with 100% of traffic load balanced between two boxes but what happens when one box fails or slows down? You don't want to overwhelm anything which leads to cascading failures.

<comment><USER3> Load balancers rule the world.

</comment></comment><comment><USER4> We are facing the issue of SMS not getting delivered and have implemented failovers (Messagebird, Nexmo, Twilio) when we detect delivery problems. However we have a problem that frequently we get sent positive delivery receipts despite the SMS not being delivered. This makes it hard to know if we should fail over. Has anyone good solutions fur this?

<comment><USER5> Who do you get false positives from the most?

<comment><USER6> For me personally it was Messagebird. Two failed demos because of this and the response from them where non-existent. I was even contacted by one of their sales people after I wrote my last "angry I'm leaving" email asking me if I was interested in using their services.

<comment><USER7> Yes, similar position with Messagebird. Lack of transparency in their reporting/insights vs Twiliio. That said, our Twilio pricing is 2-3x Messagebird.

</comment></comment></comment></comment><comment><USER8> On a side note, I'm a huge fan of the standardized design language of all UK Government sites.

They really nailed the aesthetic and the consistency is unmatched.

Edit: I'm impressed at this tooling.[1]

1: [https://www.gov.uk/service-toolkit#gov-uk- services](https://www.gov.uk/service-toolkit#gov-uk-services)

<comment><AUTHOR> That's the GOV.UK Design System in play: [https://design- system.service.gov.uk/](https://design-system.service.gov.uk/)

(I helped to start the current incarnation of that, and it's probably the thing in my career that I'm most proud of.)

<comment><USER9> So that's where Canada.ca aesthetic comes from.

<comment><AUTHOR> Also [https://www.govt.nz/](https://www.govt.nz/) and [https://www.gov.au/](https://www.gov.au/).

</comment></comment></comment></comment><comment><USER10> I'm glad that they improved their delivery, but one thing I find frustrating about our industry is how often we all seem to be reinventing the wheel. I mean, there are _tons_ of well-described load balancing algorithms with various pros/cons. From the article it sounds like they just figured out their load balancing algorithm through trial and error, rather than researching load balancing algorithms first, then tweaking them based on real world performance.

<comment><USER11> Yeah but what looks better on your CV?

"Developed and researched a novel algorithm to reliably send messages under intense load"

Or

"Tried 5 off the shelf solutions, picked 1 that seemed okay, and moved on with my life"

That's why we keep reinventing the wheel. Also it's fun and we all think we're the smartest.

<comment><USER12> As a hiring manager, I know which one I'd rather see on a resume. Though I understand why an individual would choose the former.

<comment><USER13> This is the stuff most of us have to deal on daily basis. Do I just google the it and move on, or maybe I should try to come up with it my self? Every time I google, I don't feel any good at all.In fact,I don't feel anything.When I come up with some solution myself,It elevates my motivation and I always learn something new. As a manager though,I sometimes allow to do this stuff,while on other occasions I specifically tell not to spend time on some creative stuff and just get something off the shelve.

</comment></comment></comment></comment><comment><USER14> Here's the full source code if anyone wants to take a look:

[https://github.com/alphagov/notifications- api](https://github.com/alphagov/notifications-api)

</comment><comment><USER15> One interesting thing that I read the other day from a lead developer at Gov.uk was about how fast they managed to built a service within a couple of hours[1]

What I also really like about Gov.uk is that they seem to have their apps open source[2]

[1][https://twitter.com/RichardTowers/status/1243904365506760709](https://twitter.com/RichardTowers/status/1243904365506760709) [2][https://github.com/alphagov](https://github.com/alphagov)

<comment><AUTHOR> [https://www.gov.uk/service-manual/technology/making- source-c...](https://www.gov.uk/service-manual/technology/making-source-code- open-and-reusable)

When you create new source code, you must make it open so that other developers (including those outside government) can:

\- benefit from your work and build on it

\- learn from your experiences

\- find uses for your code which you hadn't found

</comment></comment><comment><USER16> I see everyone is focusing on 3rd party providers.

Here is another solution: smstools ([https://packages.debian.org/buster/smstools](https://packages.debian.org/buster/smstools)), and a bunch of SMS modems pluggined into a USB hob. A SMS modem can send SMS in under 5 seconds. They say 200,000 a day max, so lets say you want to cope with sending 200,000 in 4 hours.

That's a little under 14 per second, so lets say 15 per second. You need 75 modems[0] to do that, or about AUD$4,000 worth of modems. Sorry for the AUD$ - I'm Australian. You will also need SIM's - or about AUD$1,500 worth. Don't worry about having 75 modems in one spot, the mobile phone network is designed to cope with a stadium of people all sending at the same time.

Perhaps you want to shard it for reliability - maybe 5 machines, so add another AUD$5000 for a NUC or similar all with a minimal Debian install + a web server or whatever for whatever delivery mechanism you are going to use to get the SMS's to the servers. That's AUD$10.5K total. Write some glue code - which is a week tops and job done.

The one question I'd be asking is how does that compare to using the cloud. Third party providers charge around AUD$0.05 per SMS. They say a minimum of 100,000 SMS's per day - or AUD$150K / month. The cost for the non cloud solution is AUD$10.5K for the first month, then $1,500 / month after that for the pre-paid SIMS.

Downsides: when it breaks (and it will), you will have to diagnose what's going on. That can be hard if the cause is a welding shop starting up next door. You are also going have to deal with the telco's screwing up their SMS infrastructure which seems to happen in Australia every 12 months or so. But you can fight that to some extent by geographically distributing your NUC's and using several different telco's servicing each NUC. That way it becomes more obvious what failed. Finally, instead of NUC's use industrial rated PC [1] to get your reliability up.

[0] [https://www.ebay.co.uk/itm/283828240407](https://www.ebay.co.uk/itm/283828240407) You need the version with an 'S' (for serial interface) suffix, although you can often just change the firmware.

[1] [https://fit-iot.com/web/products/fitlet2/](https://fit- iot.com/web/products/fitlet2/), industrial temperature rated. So, no stinking air conditioning required. :D

<comment><USER17> Why not just buy a sim box instead?

<comment><USER16> I've used Hypermedia's SIM boxes. They are pretty good - neat install, didn't break for a long while, well documented. Also very expensive what what they did, but hey you are paying for a boxed solution, right?

Maybe when I was young. But I have grey hair now. I'm sure some of it is grey because over the years I've made too many on off purchases of specialised boxes promising to do everything I needed at the time. The expensive, nerve racking disasters I've had in IT were caused by boxes like that - raid arrays that used some "high speed" proprietary format, IBM SCSI boxes that needed specialised IBM disks whose firmware bug happened to spray shit across the data flowing across the SCSI bus on occasion, hell even specialised Telco APN's they work for a few years then didn't, and after 6 months they admitted they had fired the people who set it up.

When that Hypermedia box died (and they all do eventually), I phone up the suppler - and a replacement was an order, payment, international freight, and customs away. That was weeks. So we are down for weeks.

The alternative is to make do with off the shelf retail components that is sold to ordinary punters every day. Yes, the components aren't as reliable. You also have to provide glue - but you write the glue or use open source, so visibility into problems is excellent and the response time is amazing. And they are dirt cheap, so you can keep a couple of hot spares on the shelf (as you would if you had 75 modems). Failing that getting new ones is just a case of going down to you local retail outlet and picking one off the shelf. And they actually have _less_ bugs, partially because there of millions of them out there, and partially because a retail brand will be overwhelmed if their channel fills up with failures.

I saw a misbehaving IBM SAN take out video production house once, and the 100 people who worked there. (Turns out movie length video editing pushes a SAN very hard.) I didn't make that purchasing decision, but I may well have back then. There but for the grace of god go I. I've came close enough as it is.

So no 128 x SIM boxes for me thanks.

For what it's worth, a one off expensive box is worth it if the purchase price includes a man carrying the requisite spares on your door step with 8 business hours when it breaks. Big companies like Dell, HP and IBM do that for their big iron. (In an amazing coincidence, the boxes they are willing to cover with that sort of service for 5 years at a moderate increment in the purchase price almost never break.)

The other time I'm now willing to purchase specialised boxes is if they are mostly open source (so I have visibility, and very little bespoke poorly road tested complex code), and I'm purchasing 100's of them so I can realistically price in keeping a bunch of them on the shelf in the initial purchase.

</comment></comment></comment><comment> 867-5309 I thought this might have explained the mechanics behind the recent GOV_UK CORONAVIRUS ALERT, but alas. It didn't even namedrop the SMS providers

<comment><USER18> From what I've heard (could be wrong) the government literally just said to all the networks 'send this to everyone' and let the individual networks handle it.

Apparently they could've set up a system like in Japan where your phone gets emergency alerts (which I actually experienced when I visited on vacation a few years ago on my iPhone from the UK) and are handled specifically by the mobile operating system but the government were too cheap to set it up.

[https://www.theguardian.com/world/2020/mar/23/government- ign...](https://www.theguardian.com/world/2020/mar/23/government-ignored- advice-set-up-uk-emergency-alert-system)

<comment><USER19> I think this is just GSM Cell Broadcast [1].

It seems strange that it would be complicated or expensive to set up. I've used cheap, aimed-at-tourist SIMs in developing countries where cell broadcast was used to send news and adverts, which is very annoying.

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

<comment><USER18> Which countries where they? That does sound annoying. Does it happen with standard network SIM cards?

<comment><USER19> I don't know if it happens to everyone, or if I chose the worst network provider from the booths at the airport.

I can't really remember the country, it was years / 20 countries ago. Possibly Vietnam.

</comment></comment></comment></comment></comment><comment><USER20> What if aws was govt? - [https://www.cloud.service.gov.uk/](https://www.cloud.service.gov.uk/)

</comment><comment><USER21> Take note USDS/18F! Something to consider instead of Govdelivery.

</comment><comment><USER22> What's interesting is that this looks like a service anyone can use. API and everything.

[https://www.notifications.service.gov.uk/](https://www.notifications.service.gov.uk/)

<comment><USER23> It's open source, and Australia and Canada have both deployed instances. Would love to see a US (or state run) instance.

<comment><USER24> United States Alert Message Service as a branch of USPS?

<comment><USER21> You'd want it under the authority of GSA (like Login.gov), as a foundational service (messaging.gov).

</comment></comment></comment></comment><comment><USER25> This topic reminds me of the story in Hawaii when they sent out a broadcast false alarm SMS alert to everyone about North Korean missiles

If I remember correctly it was due to a poorly designed drop down menu & missing confirmation challenge box. "Test Send" and "Send Send" were right on top of each other in a 10point font lol.

[1] [https://en.wikipedia.org/wiki/2018_Hawaii_false_missile_aler...](https://en.wikipedia.org/wiki/2018_Hawaii_false_missile_alert)

</comment><comment><USER26> Before we get too carried away; its worth seeing how the system coped with unprecedented pressure:

[https://www.bbc.co.uk/news/technology-52037573](https://www.bbc.co.uk/news/technology-52037573)

"Millions of mobile users in the UK have yet to receive the government's text message alert about coronavirus. The SMS - telling people to stay at home - began being sent early on Tuesday morning. But Vodafone has confirmed it only expects to complete the process later this Wednesday...."

<comment><USER27> Just in case it wasn't clear from discussion elsewhere on this post, Notify didn't send out the text message mentioned in the news. That message was sent directly by the networks at request of the government.

</comment></comment><comment><USER28> It is a really useful service! I used their email service to get updates on potential travel destinations in the past months when Covid-19 started to be a thing.

</comment><comment><USER29> Not to diminish anything but 100 to 200k messages per day is not really huge in relative scale of things. Several private services and government orgs in China and India easily send 10x or more of that number.

<comment><USER22> They never said 100-200k was the limit, but rather that's how many they're usually sending out per day.

It could be a limit, but I don't see anything that indicates there's a correlation.

<comment><USER30> Definitely not a limit, on March 28th they sent 637k SMS messages.

[https://www.gov.uk/performance/govuk- notify](https://www.gov.uk/performance/govuk-notify)

I've used Notify on several projects over the last couple of years, it's a really nice service and has never caused us any problem whosoever.

</comment></comment></comment><comment><USER31> Is there a particular reason why, judging from the graphs, the rate suddenly drops every 6 minutes or so? Batching or something like it?

<comment><USER27> Hey, I'm the person who wrote the blog. I was slightly interested in the pattern too but didn't take the time to look into it. I assumed it was either something to do with a service sending us traffic in that pattern or maybe just something to do with Grafana. It could also be some unexplained behaviour in our system, maybe something to do with how we are pulling items off the queue. If I find some time next week I might take a proper look though!

<comment><USER32> If you're using Prometheus and restarting servers regularly (a default behaviour for gunicorn for example) then you'll lose a little data, up to your Prometheus scrape period, ever restart.

My team found this pretty annoying for monitoring a Django site so we've ended up moving to a statsd push-based metrics approach and are finding numbers generally easier to trust and reason about.

</comment></comment></comment><comment><USER33> As a user of Notify, I can vouch for the reliability of the service. It's rock solid.

<comment><USER34> It is interesting the article didn't mention the incident 2 weeks ago when it had problems with a 7-fold increase in volume. Though it did well under the strain. [https://status.notifications.service.gov.uk/incidents/jpwxyt...](https://status.notifications.service.gov.uk/incidents/jpwxytmst2tx)

<comment><USER27> Hey, I'm the one who wrote the blog post. This was originally a talk a colleague on my team gave internally about 2 months ago and then I wrote it up as a blog post a few weeks back, before we had that big incident so there wasn't any particular thought on not mentioning it.

As the postmortem mentioned, it wasn't related to any of this load balancing work or our providers, it was us running into trouble with a different part of our system. That was a busy week (both in terms of numbers as you can see on [https://www.gov.uk/performance/govuk-notify/notifications- by...](https://www.gov.uk/performance/govuk-notify/notifications-by-type) but also in terms of us fighting fires).

</comment></comment></comment><comment><USER35> I'm not sure I'd advocate for this design... The traffic sharing and backoff seems crude... The "10% per minute" doesn't prevent sudden increases in load killing both providers.

I would design it like this:

Put all requests into a distributed queue, for example persistent pubsub.

Have workers take work from that queue.

Each worker should send a new request to a provider if the rate of requests sent in the past minute is < 2x the rate of requests in the previous minute, and the number of _in flight_ requests is < 10x the average of the past minute, and the rate of errors, including timeouts, is <1%. If both providers are eligible, send to whichever has had the fewest requests in 24h.

This prevents flooding/DoSing a badly configured provider (a well configured provider would have ingress ratelimiting, and you could do away with all the above logic).

Have alerting on the age of the oldest item in the queue, and a monitoring dashboard showing dispatch rate to each provider, with response error codes.

All the state is local to the worker, and doesn't need persisting. If a worker crashes, the item doesn't get acknowledged to pubsub, and will be retried. If you like, you can autoscale the number of workers based on their cpu utilization.

I'd expect the above to scale to 10k qps per worker, and 5Mqps for 1000 workers before needing a redesign.</comment>


Amazon, Berkshire, and JPM appoint Atul Gawande as CEO of new Healthcare Co - <AUTHOR> https://www.businesswire.com/news/home/20180620005747/en/Amazon-Berkshire-Hathaway-JPMorgan-Chase-appoint-Dr. <comment><USER2> This is the kind of healthcare CEO most health tech startups should have -- someone who lives and breathes the system, intimately knows it's flaws but still has the vision and desire to change it. That is the rare and valuable skill in healthcare -- even more rare than engineering or operations skill

Rushika Fernandopulle, the healthcare CEO I most admire, fits this profile

</comment><comment><AUTHOR> The new company will be based in Boston. I wonder if this is a harbinger of Amazon's HQ2 opening in Boston as well.

<comment><USER2> Maybe, but that's where Atul is and Boston is an epicenter of healthcare innovation</comment></comment>


vcsh – Version Control System for $HOME - <AUTHOR> https://github.com/RichiH/vcsh/ <comment><USER2> Also check out "myrepos" \- it works quite well with vcsh.

[https://myrepos.branchable.com/](https://myrepos.branchable.com/)

</comment><comment><USER3> What I do is just have a ~/git/dotfiles repo, and then 'ln -s ~/git/dotfiles/vimrc ~/.vimrc' (and there is a script to dot his in the repo). Same with .bashrc, etc. You an use the same repo or different repos.

How is this better?

<comment><USER4> This eliminates the ln -s ~git/dotfiles/vimrc ~/.vimrc step. Or more specifically, allows you to have any number of subsets of files contained in a single directory (or subdir) as members of different repositories.

<comment><USER3> Yeah, but I'd rather just have a 5 line shell script in my repo listing all the files it manages, rather than entirely new tool. I think it's overkill for dotfiles. A shell script works.

</comment></comment></comment><comment><USER5> Have a look at homeshick [1] as well, it seems to have similar functionality.

[1]: [https://github.com/andsens/homeshick](https://github.com/andsens/homeshick)</comment>


Ask HN: If you could redo your 20s, what would you do differently? - <AUTHOR> <comment><USER2> I would ruminate less and act more, instead of driving myself into anxiety and depression through overthinking how to 'optimize' life.

I would focus on the guitar, start the band, and give it my all, in stead of talking myself into something safe and sensible and selling the guitar.

I would stick with electrical engineering in college, instead of abandoning it halfway through because I thought I 'wasn't smart enough'.

I would stop worrying about trying to control how others see and think of me, instead of driving myself into anxiety, depression, and obesity through trying to convince others I was something I wasn't.

</comment><comment><USER3> Say "yes" more, try more things, try things at least 3 times before giving up.

Also, I had so many ideas that I didn't get around to trying until my 30s, and it was mostly because instead of just going for it, I would share them with others first, and get talked out of it for various fear-related reasons.

I would tell more people more things about what I've already done, and fewer people fewer things that I haven't done yet but am planning, unless they themselves were good at those things or involved in my plans.

<comment><AUTHOR> Were these ideas around tech related projects or other things?

<comment><USER3> Off the top of my head:

Minimizing my money requirements and living minimally.

Getting a car I can sleep in comfortably and doing that.

Less time professional work, more on personal projects.

Intimacy with multiple people people long-term.

De-compartmentalizing my relationships.

Un-separating beliefs, passion, art, work, love.

Living outdoors more.

Opting out of things I don't want to be supporting.

Spending more time socializing, talking with people.

</comment></comment></comment><comment><USER4> Probably not a thing. My 20s were hard. I am who I am because of my life experiences, and I like who I am. If I could go back, the only thing I'd hope to do is hidden investments that would mature around now. Early retirement sounds pretty good.

</comment><comment><USER5> \- Ratio between thinking and doing. People call it overthinking, I don't, because in some cases, I prevented myself some nasty situations (e.g. any form of addiction, scams and similar things). So it has been beneficial as well, but I think it took more than it gave me back.

\- Less relationships and more dating. Though, it might be the case that I'd want it the other way around since I did this once in my life and got tired about it after 5 weeks (traveling, having intimacy -- kissing and/or sex -- with one woman per week). I think this points serves to show that even if I could redo life, it doesn't mean it'd be better at all points.

\- Not study as much and get a job ASAP. I started a first serious freelance job around 27 (being a TA before). In retrospect, I should've ditched my extracurricular study stuff and started making money at 22 and invest 50% of it. Preferably, I'd have gotten a job at 16 (20 hours per week) and started investing 50% of that. I don't regret investing late, despite the fact that I don't have the amazing compound interest of a 16 year old. But I do regret not having any focus on building up some capital. Especially because I don't have access to high paying jobs, despite being a programmer and despite delivering good work (I am terrible at job interviews as I'm simply myself and find it hard to apply to one role). I have some now and have needed to rely on it at times and it saved me a ton of stress and related mental health issues (potentially caused by stress [1]).

[1] I know because there has been one time where I did get hit by stress for a bit too long (6 months). If it would go unchecked for a couple of years, then a moderate depression might be what you're looking at.

</comment><comment><USER6> If I had to stick with technology, I would have forced myself to master either of one of the following programming languages, that is C++ or Java.

After all these years, here I am trying to master my craft (in web development), because this thing was told to me that is the job of the future, but no one told me that it evolves so fast that whatever you learn today, in 3 months time becomes obsolete, let alone ancient!

Now, if I had to choose between technology and anything else, I would choose the latter 100 times!

It would be nice to become 16 to 20 again and give myself the chance to choose a much more traditional job, something that involves hands and creativity.

I know it's never too late, but there are not so many opportunities anymore I'm afraid...

</comment><comment><USER7> I would unapologetically be myself more and give less weight to whether that would be considered normal among my peers. Had I just relaxed and only cared about what I actually cared about, I'd be much further along into my 30's.

<comment><USER8> If you're willing to share, what would you have changed specifically that wasn't normal among peers that would've made your 30s better? Mindset? Career path? Relationships?

</comment></comment><comment><USER9> I wish I would have gone to work at an actual tech company instead of being stuck where I am today. I would not get married or have kids. I would try to make as much money as possible so I could retire early and buy land.

</comment><comment><USER10> Start traveling and living outside the USA earlier (was 27 when I first left North America). I'm happy I started when I did, but would've loved to have started when I was in my early 20's. Working fully remote along the way.

</comment><comment><USER11> Nothing and everything. I had several very clear life changing decisions - choosing to move to Germany, choosing to stay here permanently. Those were conscious choices which I made and they drastically changed the course of my life in a very exacting way. So a recap of my 20s was: finished my degree, moved to Germany, my girlfriend moved with me from France, got a job here, bought a house, and bunch of small stuff but those are the big ones. I always think about what would have been/could have been had I not made the choices I did. But I am happy with where I'm at, feels right.

</comment><comment><USER12> I'd start a disco band, hire Donna Summers as my lead singer, get rich, and retire at 30.

</comment><comment><USER13> Hired an ADHD coach to help me through the administrivia required for getting treatment.

</comment><comment><USER14> I would have gotten help with my mental health problems earlier

</comment><comment><USER15> I would start a ketogenic diet and practice intermittent fasting

</comment><comment><USER16> If I could do it over, I would find a good mentor.

</comment><comment><USER17> buy more Bitcoin</comment>


How To Create Deep Customer Loyalty - <AUTHOR> http://blogs.bnet.com/salesmachine/?p=4891&tag=nl.e808

<comment><USER2> The site's "mobile optimized" version awesomely prevents iPhones from reading it. Here's the cached version.

[http://220.127.116.11/search?oe=UTF-8&hl=en&q=cache%...](http://220.127.116.11/search?oe=UTF-8&hl=en&q=cache%3AoS0ZsJvS9D8J%3Ablogs.bnet.com%2Fsalesmachine%2F%3Fp%3D4891)

</comment><comment><AUTHOR> Turn customers into partners....The art of selling is allowing your customer to feel like you ARE NOT selling and instead partnering for the common cause of whatever it is that you are developing.....</comment>


The Ice Cream: A Recipe from 1687 - <AUTHOR> https://rarecooking.com/2019/07/10/the-ice-cream/ <comment><USER2> My dad grew up in rural Iowa almost 100 years ago. He didn't have electricity or running water and no air conditioning or refrigeration. Ice cream was a rare treat that could be bought on a trip into town or perhaps made in the winter.

Ice was available in the winter, and also in the summer because large blocks of ice would be cut from frozen ponds during the winter and stored in ice houses. These ice houses here partially underground structures, like a barn but buried up to their roof underground.

I saw an ice house that was no longer in use as a young child, and as I recall (I would have been perhaps seven years old) I was told that it was filled with sawdust, hay, or straw to insulate the blocks of ice.

Today, the reported underground temperature in Iowa at 40 inches is about 65°F (18°C) and deeper it can reaches a steady state temperature of 45 to 50°F (7 to 13 °C). I don't know how late into summer those ice blocks survived.

I remember growing up that my father greatly enjoyed making homemade ice cream; I suppose it connected him to the happy times of his quite difficult childhood.

<comment><USER3> Stately homes in the UK often have an ice-house in the grounds somewhere. I think they're sited to make use of underground water, as in the use of underground streams in the Yakhchal. A damp shaded spot can be surprisingly cool in Summer.

As an aside the Ancient Greeks had a type of wine cooler that worked on evaporative cooling using an exterior porous pot and an internal glazed pot, with wet sand placed in the gap.

<comment><USER4> > As an aside the Ancient Greeks had a type of wine cooler that worked on > evaporative cooling using an exterior porous pot and an internal glazed pot, > with wet sand placed in the gap.

[https://en.wikipedia.org/wiki/Pot-in- pot_refrigerator](https://en.wikipedia.org/wiki/Pot-in-pot_refrigerator)

Still in use today, especially in the "developing world" \- usually as a means to keep certain medicines and drugs cooled that would go bad without it.

</comment></comment></comment><comment><USER5> The original recipe consists of one sentence about the ingredients and then a long description of a method for freezing it. The reworked recipe is just a fairly normal ice cream recipe with some added rosewater.

> If you recreate the recipe using the original method, please let me know how > it goes in the comments!

So really the only thing they got from the recipe is that perhaps rosewater is a possible ingredient for ice cream?

<comment><USER6> I was a little disappointed at the write up too. They're cutting the cream with milk (typical in modern recipes) without explanation beyond what sounds like "I tossed the recipe and adopted a modern one".

There is no discussion of why the old version doesn't turn into a solid block of ice. (Fat content from using straight cream? Short chilling time?)

The interesting thing here would be the texture if you'd actually followed the recipe (after researching fat content of cream at the time).

<comment><USER7> I can almost guarantee that there was not 3/4c sugar used in the ice cream in the 17th century. Sweets were no where that sweet. They would have just used heavier cream instead I bet (since the sugar helps with texture in the lower fat modern ice cream recipes).

<comment><USER6> Any idea what the fat content of cream would have been? I know they've got single/double cream in England and light/heavy cream on this side of the pond, but no idea what it actually is if you make it the old fashioned way. (Skimming the top off of cows milk?)

<comment><USER8> Taking all the visible cream from whole milk that has been left to stand and separate gets you 15 - 20% fat, depending on the breed of cattle and what they've been eating.

That's comparable to what the UK calls "single cream" (18%) and the US calls "light cream" (18% minimum, can be up to 29%).

<comment><USER9> You can increase that ratio considerably if you take off most, but not all, the cream.

</comment></comment></comment></comment></comment></comment><comment><USER10> The original recipe sounds like it would have more of the texture of a smoothie or slushy than ice cream. Not doing that seems like missing half the recipe.

</comment><comment><USER11> Persian ice cream tradition since 500 BC:

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

<comment><USER12> They must have really liked ice cream to go through the trouble of transporting/storing ice in Iran 2500 years ago. The logistic must have been impressive.

<comment><USER13> There are plenty of mountains in Iran. Can't be _that_ hard to water freeze over winter, and then bring large blocks of ice down the mountainside with a sturdy cart come spring.

Bothersome, yes, but not that incredible.

Edit: They had building where water was frozen during winter and ice stored during summer: [https://en.wikipedia.org/wiki/Yakhcha](https://en.wikipedia.org/wiki/Yakhcha)

<comment><USER14> Here's a working link :) Such an amazing structure!

[https://en.wikipedia.org/wiki/Yakhch%C4%81l](https://en.wikipedia.org/wiki/Yakhch%C4%81l)

</comment></comment></comment></comment><comment><USER15> www.icecreamhistory.net. Retrieved 31 August 2018. "History of ice creams begun around 500 B.C. in the Persian Empire where ice was used in combination with grape juices, fruits, and other flavors to produce very expensive and hard to produce summertime treats." [https://en.wikipedia.org/wiki/Ice_cream#History](https://en.wikipedia.org/wiki/Ice_cream#History)

<comment><USER16> Still amazes me how the Persians invented a way to create and then store ice through the summer months for these treats.

[https://en.wikipedia.org/wiki/Yakhch%C4%81l](https://en.wikipedia.org/wiki/Yakhch%C4%81l)

<comment><USER17> Unfortunate how these traditional building methods for cooling have been replaced by loud and wasteful ACs etcs

</comment></comment></comment><comment><USER18> I'm unfamiliar with a convention in the updated ingredients list - what's "3 T rosewater"? I'm guessing it's probably tsp - teaspoons - but one doesn't want to overdo the rosewater! Clearly this is something I'm expected to understand, but I've never seen it before.

<comment><USER19> The convention is that capital T is tablespoons and lowercase t is teaspoons.

</comment></comment><comment><USER20> The original mentions "Roach Allom", but the update says nothing about it. What is it?

<comment><USER21> Potassium aluminum sulfate, the salt used to keep the ice cold for longer.

</comment></comment><comment><USER22> Interesting how the ingredients did not change that much to nowadays. 2 parts cream for 1 part milk is still widely used. The amount of sugar may be a little bit different but is still widely correct too.

<comment><USER6> The original recipe (quoted in the article) called for all cream and only "sugar rosewater" for sweetening (no amount specified), frozen on salted ice for one hour with no churning or mixing.

The "updated" recipe was just a standard, modern ice cream recipe with some rosewater added, churned in a modern ice cream machine and then frozen for two hours.</comment></comment>


London Mayoral Elections 2016: A site to help voters decide - <AUTHOR> https://www.getagent.co.uk/london-mayor/ <comment><USER2> This is nice - I hadn't even considered anybody but Labour/Conservative and this gave some flavour as to where their focuses lie. Disappointed that none of them want to expand LHR though.

<comment><USER3> > I hadn't even considered anybody but Labour/Conservative

See this: [https://www.londonelects.org.uk/im-voter/how- vote](https://www.londonelects.org.uk/im-voter/how-vote)

And note that "You have 2 choices for Mayor" so you don't have to confine your vote to the usual two big parties for tactical reasons. If you vote for a "small" party with little chance it's not wasted, you have a second choice as backup.

Preferential voting: It's a good thing!

<comment><USER4> [https://www.londonelects.org.uk/im-voter/counting- votes](https://www.londonelects.org.uk/im-voter/counting-votes)

> If a candidate receives more than half of all the first choice votes they > are elected immediately

There is far more choice on the centre and left than there is on the right. The two leaders in the polls are neck and neck.

If you are centre-left, you may wish to be defensive and put your vote for the most likely to win, and your second on the one you believe in.

It still sucks.

<comment><USER3> If a candidate of the _x_ tendency gets more than half the first choice votes cast, I think it's pretty-much game over for the _anti-x_ tendency whatever the voting system, or does the math disagree with me?

</comment></comment></comment></comment><comment><USER5> Very nicely done - wish there was something like this for the general election too!

Also checked out your main product (getagent) and it looked great - we're actually just in the process of selling our house but hadn't heard of you guys so have already gone through most of the process, but worryingly, the agent we're using isn't in the top 8 list that you guys recommended...

Anyway congrats, you successfully 'growth hacked' me :)

</comment><comment><USER6> Is Tfl the focus of the election ? I would vote for anybody who decides to build more bike leans and pedestrian-only places instead.

<comment><USER7> The Green Party then?

The London Cycling Campaign should be more informed than I am, since I left London last year: [http://lcc.org.uk/articles/sadiq-and-zac-wobbly-cycling- why-...](http://lcc.org.uk/articles/sadiq-and-zac-wobbly-cycling-why-you-need- to-sign-for-cycling-now)

</comment></comment><comment><USER8> Can we get the same thing for the EU referendum?

<comment><USER9> Here Here!!

</comment></comment><comment><USER9> Great - made me question who to vote for!

</comment><comment><USER10> Normally we'd bury this for being garden-variety politics, but it looks like it might be an interesting approach to helping voters decide, so we'll treat it as a possibly interesting website instead and change the title from "London Mayoral Elections 2016: Who Should You Vote For?" to emphasize that.

<comment><USER7> Sites like this have been around for a few years, or decades in the case of the Netherlands [1].

Unlock Democracy did a much better one — without any "opinion" after each statement — for last year's election: [2] (If anyone wants to try it, a valid postcode in England should be B94 5PJ, or make your own at [3].)

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

[2] [http://election2015.votematch.org/](http://election2015.votematch.org/)

[3] [http://www.doogal.co.uk/PostcodeGenerator.php](http://www.doogal.co.uk/PostcodeGenerator.php)</comment></comment>


Ask HN: Arduino to measure height above water? - <AUTHOR> Can you think of a good way to make this:
https://woosports.com/kite/
using an Arduino, but not using accelerometers. <comment><USER2> Accelerometers are a great choice of sensor in this application imo, why not use them?

GPS would be an alternative, but pricier and probably less reliable. There are of course a variety of ways to measure height above water like ultrasonic or radar sensors but good luck water sealing them and keeping them oriented downward in this application.

<comment><AUTHOR> Putting two Woos on one board gives two different height readings. So they are not perfect.

They also mis-read jumps.

Just wondered if there was a different way of measuring height.

[edit] Boards fall off feet, then get washed around in the surf. This seems to fool the sensors quite a lot.

</comment></comment><comment><USER3> If the water is at the same height as local sea level, then pressure sensor can be used. If properly calibrated it can detect changes of several meters.</comment>


Ask HN: What is the best way to deploy changes to code? - <AUTHOR>

Have you had good experiences with any particular tools for code deployment? What principles should I adhere to when deploying changes? Is there a good way to combine unit testing with deployment?<p>My hope is to devise a mechanism to ensure that what is in our code-base stays in sync with what is in the working environment with minimal complexity and reduced change associated risks. I don't want to be too specific or else this would become more of a stackoverflow or google question - if it hasn't already. <comment><USER2> We use Jenkins to push + github for storage and branches. To keep it brief the general process is we code on master, cut a branch when we have features to go out. QA always builds from master, staging and production from the branch. If everything checks out on QA and staging, we push it to production.

We try release as often as possible, the bigger the change the bigger the risk so we typically do a prod push at least every second day.

<comment><USER3> OP: Furthermore, if using github, consider using hooks to build automatically after a commit. And have errors flash on your phone/email when something goes wrong during any step till deployment. Automate as much as possible.</comment></comment>