Ask HN: Good technical GDPR resources? - <AUTHOR> I am trying to find good technical resources for GDPR. Most of the articles I found up until now are generic guidelines and don't offer hints on how to implement them concretely (outside of some obvious things like having a "forget me" button).
I am working on an IoT startup with a cloud backend on AWS, so my interest is more geared toward how I could design my application from scratch to be compliant.
Examples of questions I have: - How should I design my services/infrastructure to be able to easily retrieve all personal information related to a user? - Are the data points collected by the sensors considered personal information (and thus must be deleted when the user terminate its account)?
Thanks a lot! <comment><USER2> Hopefully we're not talking health/medical IoT devices. If that's the case, please hire a consultancy to help along.

> How should I design my services/infrastructure to be able to easily retrieve > all personal information related to a user?

Details depend on implementation. Might be just a simple API/DB call or more. IIRC your DB data should be encrypted, RDS supports encryption at rest out of the box.

> Are the data points collected by the sensors considered personal information > (and thus must be deleted when the user terminate its account)?

If, by retrieving them, a user can be identified then _yes_. Can you use an UUID and control the info on the AWS side?

A common pattern is to use an envelop encryption scheme (like KMS for instance) and instead of actually _deleting_ the data, you delete the key. This way, the data cannot be decrypted and is considered lost/deleted.

Special care should be taken in order to design your DB in a way to support deletion and data retrieval.

<comment><AUTHOR> Not not medical. > Details depend on implementation. Might be just a simple API/DB call or more. IIRC your DB data should be encrypted, RDS supports encryption at rest out of the box. Make sense, but it's more the scaling of this concept that worries me (when you start to have multiple services and DBs). It's easy to forget one API call. > If, by retrieving them, a user can be identified then yes. Can you use an UUID and control the info on the AWS side? Points will be linked to a user via a UUID yes, but (for example) is the temperature of the room at time X considered personal data?

I like this idea. Downside is that if you want to view the data to debug a problem in production, it's harder.

<comment><USER2> > [...] is the temperature of the room at time X considered personal data?

Temperature alone doesn't say much. By comparison an email address can lead to a specific person.

</comment></comment></comment><comment><USER3> There aren't good tech resources because GDPR isn't tech driven. You have to start from a legal standpoint. The tech will present itself from there, highly dependent on your architecture.

There are of course some basic things you can do without understanding the legal, like how to store PII.

The example questions you have are poor. The first one depends on your infra, entirely. The second on depends on a) details you haven't supplied and b) legal structure around the data itself.

You need a consultant.

</comment><comment><USER4> I'm not sure what you mean by technical and I'm surprised no one else has already listed this:

[https://jacquesmattheij.com/gdpr-hysteria-part-ii-nuts- and-b...](https://jacquesmattheij.com/gdpr-hysteria-part-ii-nuts-and-bolts/)

It's the second of three pieces he did. The other two:

[https://jacquesmattheij.com/gdpr-hysteria/](https://jacquesmattheij.com/gdpr- hysteria/)

[https://jacquesmattheij.com/so-your-start-up-receive-the- nig...](https://jacquesmattheij.com/so-your-start-up-receive-the-nightmare- gdpr-letter/)

</comment><comment><USER5> Complete guide to GDPR compliance:

[https://gdpr.eu/](https://gdpr.eu/)

</comment><comment><USER6> This is probably not the most comprehensive or iron-clad solution. However, it might be of some help to you.

[http://blog.totalcloud.io/benefits-s3-select-protect-data- gd...](http://blog.totalcloud.io/benefits-s3-select-protect-data-gdpr- compliance/)

</comment><comment><USER7> IAB Tech Lab and their Consent Management Platform: [https://github.com/InteractiveAdvertisingBureau/GDPR- Transpa...](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency- and-Consent-Framework)

and their other projects.

</comment><comment><USER8> Have you looked at [https://aws.amazon.com/compliance/gdpr- center/](https://aws.amazon.com/compliance/gdpr-center/) and [https://gdprchecklist.io](https://gdprchecklist.io) ?

<comment><AUTHOR> I was not familiar with the AWS link, I will take a look. Thanks!

</comment></comment><comment><USER9> Search HN itself (at the bottom of this page). One really good article e.g. "GDPR – A Practical Guide for Developers" [https://news.ycombinator.com/item?id=16508435](https://news.ycombinator.com/item?id=16508435)

</comment><comment><USER10> What's a good way to contact you? I agree with you that the majority of articles out there are more general than technical.

<comment><AUTHOR> You can email me at: emile [at] jdis.ca Thanks!</comment></comment>


Facebook Drops 250K on LuckyCal - <AUTHOR> http://www.gototheboard.com/articles/Facebook_Drops_250K_on_Bostons_LuckyCal Facebook invested 250K into Boston based LuckyCal <comment><USER2> That's me!

<comment><USER3> Way to go dude. Neat idea.</comment></comment>


Google Tech Talk: Three Cool Things About The D Programing Language - <AUTHOR> http://www.youtube.com/watch?v=RlVpPstLPEc
<comment><AUTHOR> The slides: <http://erdani.com/d/three-cool-things-about-d.pdf></comment>


Show HN: Hammer is a web development tool for designers and developers - <AUTHOR> http://hammerformac.com/

<comment><USER2> I haven't used Hammer yet but I just have to commend you on the design of your website. Looks great and is really easy to use.

Best of luck!</comment>


Autistic teenager tipped for Nobel Prize - <AUTHOR> http://www.bbc.co.uk/news/uk-22477958

<comment><USER2> It's nice to see more recent information. Most of the previous submissions have been from the same article(s) from two years ago, but with the mother producing a book there's a new rash of information. This is a new interview.

So anyway, here are a few submissions of those earlier items - most have a few comments ...

<https://news.ycombinator.com/item?id=2369094>

<https://news.ycombinator.com/item?id=2373586>

<https://news.ycombinator.com/item?id=2374578>

<https://news.ycombinator.com/item?id=2378099>

<https://news.ycombinator.com/item?id=2379419> <\- More comments

<https://news.ycombinator.com/item?id=2382850> <\- More comments

<https://news.ycombinator.com/item?id=2594284>

<https://news.ycombinator.com/item?id=4523702>

<https://news.ycombinator.com/item?id=5673082>

You can find more about him here: <http://news.google.com/news/search?q=Jacob+Barnett></comment>


"Facebook causes cancer" - <AUTHOR> http://www.badscience.net/2009/02/the-evidence-aric-sigman-ignored/

<comment><USER2> Badscience is almost always worth the time to read. Although it can be a bit depressing.

Taking a look at the article by Aric Sigman it does appear weak. Having said that it's worth reading if only for the accompanying images.

</comment><comment><USER3> This study wouldn't have gotten any attention if it didn't have a bunch of baity headlines attached to it, such as "How using Facebook could raise your risk of cancer" or "Facebook causes cancer."

So prevalent is this in the media now that even scientists are getting in on the action by making scandalous or outrageous claims that are weakly supported by their results just in order to get some attention.

<comment><USER4> To be fair, The "Causes Cancer" rather than other alarmist results from using Facebook et al came from a Daily Mail report - and the Daily Mail is a rag that seems to add a gratuitous "Causes Cancer" or "Cures Cancer" tag to any (even pseudo) scientific report.

<comment><USER5> As Goldacre himself puts it:

"The Daily Mail, as you know, is engaged in a philosophical project of mythic proportions: for many years now it has diligently been sifting through all the inanimate objects in the world, soberly dividing them into the ones which either cause - or cure - cancer."

[http://www.badscience.net/2007/12/a-rather-long-build-up- to-...](http://www.badscience.net/2007/12/a-rather-long-build-up-to-one- punchline/)

<comment><USER3> And which are or aren't going to steal all of our jobs and escalate violence in the UK :)

</comment></comment></comment></comment><comment><USER6> Sigh, the best way to deal with this sort of thing is to ignore it.</comment>


Indieconf 2011 call for presenters - <AUTHOR> http://indieconf.com/cfp.php

<comment><AUTHOR> We're looking for a variety of speakers to tackle the freelancer/independent web space. Developers, designers, and those who are somewhere in between are all welcome.

Last year's event was 18 sessions, with sessions covering tech, business, legal, marketing and financial. This year we'd like to cover more.

If you're interested in being notified when the conference dates are finalized, please sign up at <http://indieconf.com></comment>


Migrating Drupal from LAMP to Windows Azure - <AUTHOR> http://cloud.dzone.com/articles/azure-real-world-migrating

<comment><AUTHOR> Interesting and detailed article _but_ I'd still prefer using Linux, Apache/nginx and MySQL</comment>


Valve announces Source 2 engine, free for developers - <AUTHOR> http://www.polygon.com/2015/3/3/8145273/valve-source-2-announcement-free-developers <comment><USER2> Wow, so many good news for enthusiast game devs in recent days! Now that Valve, Epic, and Unity made their engines free I think soon there'd be much more great games from independent developers.

And it's really nice to see that recently announced Vulkan [1] would be supported as well.

I hope that consequently it'll help get more active support for the new API from major GPU vendors.

[1] [https://news.ycombinator.com/item?id=9136733](https://news.ycombinator.com/item?id=9136733)</comment>


Russian journalist and Kremlin critic Arkady Babchenko shot dead in Kiev - <AUTHOR> https://www.theguardian.com/world/2018/may/29/russian-journalist-arkady-babchenko-shot-dead-in-kiev <comment><USER2> He is very much alive.

Here is the latest article by theguardian:

[https://www.theguardian.com/world/2018/may/30/russian- journa...](https://www.theguardian.com/world/2018/may/30/russian-journalist- arkady-babchenko-who-was-reported-killed-is-still-alive)</comment>


Data Scraping Studio - Point and click screen scraping tool using CSS selectors - <AUTHOR> http://www.datascraping.co/ <comment><AUTHOR> An easy and powerful suite of website scraping. Just point and click element selectors Chrome app to create web scraping agent with instant extracted data preview. And then use the desktop app for advance features like batch crawling, scheduling, multiple website scraping simultaneously and more for FREE

<comment><USER3> I started reading the site trying to learn more, but then an uninteresting popup blocked the its content. As soon as a went to move it out of the way, another popup blocked even more of the content.

In my opinion, these site behaviors lower the tool's value proposition because signing up for emails about the product doesn't meet the acute need - <USER2> - that drove a visitor to the site. It might be better to offer site visitors hospitality.

It sounds interesting, but I never got to the point where I could learn that it was a Chrome app or how it worked.

Anyway, this might make a good "Show HN" if you are looking for additional feedback. [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

Good luck.

<comment><AUTHOR> Agreed with the site hospitality, those popup was added yesterday on demand by users form [https://www.producthunt.com/tech/data-scraping- studio](https://www.producthunt.com/tech/data-scraping-studio) to collect the leads for OS X and API interested users and prioritize accordingly. Will remove after 2-3 days.

Chrome app documentation is available here : [http://www.datascraping.co/doc/39/chrome- extension](http://www.datascraping.co/doc/39/chrome-extension) It was just in Help center > Documentation

If you've installed the Chrome app, it will automatically take you to the tutorial.</comment></comment></comment>


I wrote "ISIS Beer Funds" in a Venmo memo and the feds detained my $42 - <AUTHOR> http://arstechnica.com/tech-policy/2016/04/i-wrote-isis-beer-funds-in-a-venmo-memo-and-the-feds-detained-my-42/ <comment><USER2> This seems somewhat pointless - surely anyone trying to tranfer fudns to a terrorist organisation would not use its real name.

I'd also expect quite a lot of false positives if they're simply flagging all transactions containing the word "ISIS", and not just from jokes.

Isis is also the name of the river flowing through Oxford, and hence a part of the name of many legitimate entities with a connection to the surrounding area. Within the unviersity of Oxford, the technology transfer office is "ISIS innovations", and the men's reserve boat race crew is called Isis. There's an ISIS neutron source at the Rutherford Appleton Laboratory. It also appears in the name of branches of larger organisations (eg. the "Rotary Club of Oxford Isis" and "Oxford Isis Toastmasters"), plus various private businesses (including Isis security and the Isis guest house).

<comment><USER3> The UK Ministry of Defence system for classifying supplier codes is also called ISIS.

[https://www.isisweb.mod.uk/webisis/navigate.do](https://www.isisweb.mod.uk/webisis/navigate.do)

</comment></comment><comment><USER4> "The moral of the story, I guess, is not to buy $42 worth of beer at a bar in the West Village."

Hmmm, not sure sure that's what I would take away from this.

</comment><comment><USER5> I wonder how effective this sort of (brain dead) regulation has been at hindering actual enemies of the state.

It's a shame there is no transparency in this system.

<comment><USER6> We're all potential enemies of this "state", so somewhat effective.

I'm hoping for an entertaining populist civil disobedience campaign over this.

</comment></comment><comment><USER7> Can someone explain the legal justification under which the government can direct a private entity to indefinitely seize a third party's assets with no due process?

<comment><USER8> It's called Civil Forfeiture. The money was arrested and charged with a crime. Since he's not a party the crime, unless he wants to admin being a party to it, he can't defend the cash. Since it can't defend itself, there is no need for the trial as it is going to lose by default; therefore, the cash can be taken. Makes one's blood boil.

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

Cool thing is police now out steal thieves in the U.S. for the group most likely to take your stuff:

[https://www.washingtonpost.com/news/wonk/wp/2015/11/23/cops-...](https://www.washingtonpost.com/news/wonk/wp/2015/11/23/cops- took-more-stuff-from-people-than-burglars-did-last-year/)

<comment><USER7> I don't think that's what's occurring here; no crime is alleged to have occurred, he admitted being party to whatever was going on, and OFAC has directed Venmo to withhold his assets, they haven't directly appropriated them.

</comment></comment></comment><comment><USER9> Let's hope that real ISIS supporters are thoughtless enough to include the word ISIS in their communications.

<comment><USER10> Probably this is at CYA ("Cover Your Ass") security [1] in action. Everybody knows these terms are not very useful on these lists, but also want to make sure they don't end up having to explain why all other names were listed, but the something as obvious as this was left out.

[1] [https://www.schneier.com/blog/archives/2007/02/cya_security_...](https://www.schneier.com/blog/archives/2007/02/cya_security_1.html)

</comment></comment><comment><USER11> No different from being detained and banned from boarding if you joke about a bomb at an airport.

There isn't much incentive for TSA or OFAC agents to apply common sense or attempt to detect irony. Because (1) that requires mental effort, (2) if you get it wrong and decide someone is serious when they were joking, it doesn't hurt you any other than needing to waste some time on paperwork, and (3) if you get it wrong and decide someone is joking when they were serious, then you've put people's lives in jeopardy, terminated your career, and perhaps opened yourself up for legal liability.

<comment><USER12> He's not at the airport. This is a PRIVATE communication between two individuals. It's absurd that this power is available to a government.

<comment><USER13> Where private is defined as "financial transaction through an intermediary who is bound by several laws regarding the laundering or potential illegal use of money".

<comment><USER12> I understand your point. However, this is the modern way of physically handing $10 bucks you owe to your friend. Similarly, a private e-mail, which is now scanned and indexed by the government along with everyone else's e-mail, is the modern equivalent of sending snail mail 50 years ago, in which there was 0% chance any higher power would have read and catalogued your letter.

We shouldn't have to live in the past because the government takes advantage of technological progress with massive power grabs. The potential for devastating abuse is so great. Imagine how this power would have been abused over the past century, if it existed then.

</comment></comment></comment></comment><comment><USER14> It's like rejecting emails as "spam" because they contain the word "spam".

Ridiculous.

</comment><comment><USER15> I don't have much sympathy - that's a pretty dumb thing to write.

Of course in 99.9999% of cases this is just some dumb joke. But look at it from the FBI's (or whoever's) perspective: if this just happens to be the one time it isn't the press will be all over them saying "My God, how could you not take this seriously?" And the first priority of any bureaucracy is the protection of the bureaucracy.

</comment><comment><USER16> I think Venmo is more at fault here than the government.

The government prohibits asset transfers between a certain public list of organizations. This list happens to include an organization called "ISIS". Implementing that prohibition is Venmo's problem.

Venmo then wrote a program to just scan all transactions against the list and auto-block all matches, as the least-effort path to compliance.

It's not Venmo's money, so they don't care. Most people whose legitimate transfers get blocked in this filter don't have a media platform to complain about it, so they aren't worried about negative publicity.

Finally, in terms of risk analysis, false positives are much cheaper than false negatives. If they allow a legally prohibited transfer through, then they're going to face a firestorm from the government. Expensive.

But if they block many legitimate transfers, they only annoy a few users and at most have to issue a few refunds. Cheap.

Actually having a human involved in the decision would cost them more, and expose them to more risk.

So, simple dumb keyword filters control our private finances now.

<comment><USER17> Venmo is probably just following what banks and other fintech companies are doing already. They don't even have to write anything themselves, there are commonly used third-party OFAC services like LexisNexis where you throw your transaction data over the wall, they come back with the verdict, you then just follow instructions and cross compliance off your list of things to worry about.

</comment></comment><comment><USER18> Your government can either provide you with freedom or it can provide you with security. Get ready to pay up America—freedom isn't free.

<comment><USER19> _Your government can either provide you with freedom or it can provide you with security._

I see no reason to believe government can provide either. And in fact, I'd say government is always, by definition, an assault on the former of the two.

<comment><USER20> > And in fact, I'd say government is always, by definition, an assault on the > former of the two.

Found the anarchist.

<comment><USER19> Ayuh... you got 'im. :-)

</comment></comment></comment></comment><comment><USER21> Would the funds still be held if he was sending the money to reimburse a fiend to one of the many businesses with "Isis", in its name?

[http://www.businessinsider.com/companies-with-the-name- isis-...](http://www.businessinsider.com/companies-with-the-name-isis-2014-9)

<comment><USER22> Or people names Isis?

</comment></comment><comment><USER23> I can't imagine the incredible stupidity that led to this regulation. As if terrorists are actually going to use the acronym ISIS. They don't even use that acronym when talking about themselves. In fact, I don't think anyone outside the US uses that acronym. Even if they did, I doubt they would be that stupid to use it in an actual money transfer. They are not as stupid as the people making these regulations.

But I disagree with the author. Sounds like the moral of the story is to not send money online whenever possible and when not possible, to always use a benign description, even if it's a lie.

<comment><USER24> Well, OFAC seeks to regulate transactions with proscribed groups and individuals. Normal banking covers this in part with "know your customer" (KYC) rules and processes, but I guess Venmo decided it needs to cast a wider net. In this case, I wouldn't blame OFAC; they just got a suspicious activity report and now have to act on it.

</comment></comment><comment><USER25> Who's going to be the first to prove how idiotic this system is by DDOSing OFAC with (im)properly labeled micropayments?

</comment><comment><USER26> Surely ISIS doesn't use the word ISIS when attempting to transfer funds.

</comment><comment><USER27> pathetic and a sign of things to come.

</comment><comment><USER14> I'm pretty sure ISIS would not be so stupid as to actually list their purchases as being intended for "ISIS-" anything.

What kind of morons are writing these scanning bots?

smh

<comment><USER28> I worked on a project with uk banks, there is an international sanction list that is people and organisations and they name match them so this name is on the list hence why it was caught, it isn't very technical.

</comment></comment><comment><USER29> Play stupid games, win stupid prizes.</comment>


Amazon UK is down - <AUTHOR>

It seems that amazon UK is down... http://amazon.co.uk <comment><USER2> [http://www.downforeveryoneorjustme.com/amazon.co.uk](http://www.downforeveryoneorjustme.com/amazon.co.uk)

Looks okay to me

</comment><comment><USER3> working here

<comment><AUTHOR> Still down for me! Maybe there is something wrong with my DNS...</comment></comment>


PostgreSQL Exercises - <AUTHOR> http://pgexercises.com/ <comment><USER2> The Stanford database class should be sill open for self study. It contains video lectures, and lots of database query exercises. For the exercises, you can write the query code in the web browser.

[https://class2go.stanford.edu/db/Winter2013/preview/](https://class2go.stanford.edu/db/Winter2013/preview/)

I have taken some MOOCs in past years, including Andrew Ng's Machine Learning, and Martin Odersky's Functional Programming Principles in Scala, and I have to say that Jennifer Widom's database class is the most streamlined, most well thought, and most smooth of all the MOOCs I have seen.

Everything works, the lectures are packed with information and give sufficient material for one to complete the exercises, there are no rough edges, and there is a large-ish amount of exercises that give good coverage of the lectured material.

<comment><USER3> >I have to say that Jennifer Widom's database class is the most streamlined, most well thought, and most smooth of all the MOOCs I have seen.

I absolutely agree and I recommend this course every time someone mentions SQL. The lectures combined with the videos are the best learning tool for people interested in SQL.

I also recommend Introduction to Networks from Stanford which is also freely accessible with registration[1] and also very high quality similar to the DB course level.

[1][http://f12.class2go.stanford.edu/networking/Fall2012](http://f12.class2go.stanford.edu/networking/Fall2012)

</comment></comment><comment><USER4> Author here - just wanted to say thanks for the feedback and kind words. I know there's a couple of rough UI edges in there yet, but I figured it was about time I just shipped something :-).

I'll take note of all the suggestions and try to fix anything that needs changing over the weekend.

<comment><USER5> Good work.

It looks pretty good and I'm going to be going through at least some of the exercises. It always feels good to ship something, even when you feel like it isn't 100%.

<comment><USER4> > It always feels good to ship something, even when you feel like it isn't > 100%.

Sort of, although at first I found showing it to the world a touch nerve- wracking :-). Realistically though, if I waited until I judged things were 100% ready I would never put anything out there.

</comment></comment></comment><comment><USER6> _How can you retrieve all the information from the facilities table?_

SELECT * FROM Facilities

ERROR: relation "facilities" does not exist Position: 15

Query was: SELECT * FROM Facilities

Useful.

It looks great, it's almost there but you've _got_ to approach these things from the point of view of a novice.

<comment><USER7> In getting started it does give the table names... which are all prefixed cd.tablename, it is an educational tool so one would expect one to read the getting started pages first.

<comment><USER6> Would one? Do you read your manuals perchance?

There are different types of learner, some learn by poking stuff with a stick rather than meticulously reading everything.

I have no idea about postgre as I know SQL Server & MySQL, I was actually having a quick go to see if my knowledge easily translated.

But schemas are a YAGNI 99% of the time feature in those.

<comment><USER8> >But schemas are a YAGNI 99% of the time feature in those.

What? I literally have only ever written one web app that didn't use multiple schemas, and that was a simple blog. I think you are confusing "I don't bother to use X" with "X isn't very useful".

<comment><USER6> Most people don't bother with them, it's like juggling namespaces, mainly a complete waste of keystrokes.

There's little to no chance of collisions but you have to use them constantly, which is annoying. Few benefits, lots of downsides.

<comment><USER4> I don't think it's just about collisions, in fairness. There's also the aspect of managing user permissions by schema, searching for tables, and so on.

Obviously this only becomes super-useful in pretty sizeable projects, but I tend to consider using schemas a good habit to be in.

</comment></comment></comment></comment></comment></comment><comment><USER9> Very nice!

Small suggestion: I looked at a random sample - the basic dates exercise ([http://pgexercises.com/questions/basic/date.html](http://pgexercises.com/questions/basic/date.html)) and had a bit of trouble finding the name of the table / schema description generally. It was not obviously that this is a pop-out under "Help".

<comment><USER4> Yes, I had that feedback on proggit too - I think I'll try making a mini- tutorial that points out a couple of the more important/less obvious UI elements the first time you load one of the exercises pages.

Thanks for the feedback!

</comment></comment><comment><USER10> As someone trying to sit down and learn PostgreSQL right now, I am so happy this exists.

</comment><comment><USER11> Very nice! Bookmarked.

A little suggestion: The "home" link in the menu points to index.html rather than the bare domain. Thankfully, I'm no SEO expert, but I'm fairly sure this is duplicate content in google's eyes and will penalise you in result rankings. Looking forward to the github repo.

<comment><USER4> Thanks - I'll put it on my list of things to fix :-)

</comment></comment><comment><USER12> Does anyone else have the problem of teaching SQL to business people who aren't necessarily that technical but still need to run reports?

I have found direct access to run queries is a very powerful tool but teaching SQL is tough to people who are not that technical.

<comment><USER13> I also keep running into this. I spent several years working in the "business intelligence" field. This essentially involved me using a reporting tool of some kind and writing SQL for business people that didn't know how. I never got to do any actual analysis like I wanted because I was too backlogged with report requests from the less technical.

I think SQL is something every business analyst should know how to write. It's an extremely powerful tool.

</comment></comment><comment><USER14> We've had a different solution to the same observation: When they start learning SQL, people struggle writing their INSERT INTO when they should start learning SELECT first.

Congrats on your idea, I've been looking for resources to learn the Postgres dialect specifically and it's great we're all in the same ecosystem. My solution was to make a Postgres front-end that would be as easy as spreadsheets [1].

I'm looking for a few customers who would help me get into the improvement/feedback loop. Please do not post me yet on the first page of HackerNews, the product is too young to be judged;) And sorry for people who think this is wrong advertising.

[1] [http://www.play-sql.com](http://www.play-sql.com)

</comment><comment><USER15> [http://pgexercises.com/questions/basic/where3.html](http://pgexercises.com/questions/basic/where3.html)

The query I used was "select * from cd.facilities where name ~ 'Tennis';" which got me the tick, but the page didn't detect that I hadn't used LIKE and the feedback was therefore wrong. You might want to think a little more about different solutions to the exercises.

Other than that it's slick and impressive so far, thanks. I shall be sending the URL onwards.

<comment><USER4> Good point. In the early exercises I'm trying to limit the number of possible routes I throw out there - but I'll modify the exercise in question to mention some of the other possibilities!

Hope you find the site useful.

</comment></comment><comment><USER16> Theres also [http://postgresguide.com/](http://postgresguide.com/) which is intended to have practical examples of various Postgres and SQL features.

</comment><comment><USER17> Pretty sure it's just Postgres now, not Postgre or PostgreSQL.

<comment><USER18> No, it's called PostgreSQL. Some people abbreviate it to Postgres or pg. See also [http://wiki.postgresql.org/wiki/ProjectName](http://wiki.postgresql.org/wiki/ProjectName).

</comment></comment><comment><USER19> Thank you, this is excellent!! Just when I needed it too.

</comment><comment><USER20> Problem "Where2"

Fails: SELECT facid, name, membercost, monthlymaintenance FROM cd.facilities WHERE membercost > 0 AND (membercost / monthlymaintenance) < (1/50);

Succeeds: SELECT facid, name, membercost, monthlymaintenance, (membercost / monthlymaintenance) as a FROM cd.facilities WHERE membercost > 0 AND (membercost / monthlymaintenance) < (0.02);

<comment><USER21> You're running into the fact that Postgres doesn't automatically cast ints to floats - so 1/50 = 0. Try using 1.0/50.0 instead.

<comment><USER22> Or get dirty and cast it.

::floatval

</comment></comment></comment><comment><USER23> The "Show" button in "Answers and Discussions" should really switch to a "Hide" button when the text is revealed. The current toggled state, which is the down-state of the "Show" button, is too subtle and I couldn't tell that it was toggled to the down-state. I thought it was a bug at first.

<comment><USER4> Good thought, I'll put it on my list.

</comment></comment><comment><USER24> Nice!

Several options were recommended when I asked for help learning SQL several months ago ([https://news.ycombinator.com/item?id=5713882](https://news.ycombinator.com/item?id=5713882) ), including one interactive website:

[http://sqlzoo.net/](http://sqlzoo.net/)

</comment><comment><USER25> Nice, I like Postgres a lot, but sadly now I live in Oracle world. Will give it a try at home.

Back in 2005-6 I used [http://www.sql-ex.ru/](http://www.sql-ex.ru/) to study and learn SQL, it worked fairly well with Postgres.

</comment><comment><USER26> Very cool. Does something like this exist for other databases too?

</comment><comment><USER27> aghillo, thank you for this. Seems that the exercises are comprehensive enough to cover beginner SQL. As someone also starting out SQL, I appreciate all the hard work you put into this project.</comment>


On Platforms - <AUTHOR> http://mattmaroon.com/?p=640

<comment><USER2> "Still, it can be worth it because there are a few mitigating factors. For one, their interest and yours are usually at least somewhat aligned. Facebook's success is in no small part due to their platform."

I'm not sure that I'd put Facebook and Twitter (the reason the original post that Matt is responding to was written) in the same group when it comes to figuring out which star to hitch your wagon to. I agree, you can be reasonably confident of your assessment of Facebook's goals and success being aligned with yours. Facebook is also large enough that any one developer or group of developers are an extremely minor nuisance to them, in terms of the size of their total user base and the kinds of things they need to deal with on a day to day basis. As Facebook grows their user base, your app can grow. Twitter has a history of user base growth that correlates with an increase in performance problems (either downtime or seemingly arbitrary limits, aka bad scalability); does Facebook? Twitter has a lot of users, but it's barely comparable to the size of Facebook. With Facebook, you are also more dependent on their platform, integrated extremely close to it. With Twitter, your app runs on your own domain because twitter doesn't provide any significant kind of UI integration -- because of this, twitter the platform is more at risk of _losing_ users (as they visit other domains) because of your app. In order to use Facebook apps, you have to be on Facebook. Additionally, most third-party twitter apps are _extensions_ of twitter, that make up for lack of features or otherwise serious deficiencies of twitter (this is especially the case because twitter has a record of _removing_ features as their method of dealing with scaling).

Facebook is much closer to being a company and service that provides infrastructure, even though the actual things that you can build on that infrastructure are relatively limited (due to things like their TOS and privacy policy). Facebook seems to have a vested interest in ensuring that your third-party service continues to work on their platform, because _your_ app potentially keeps people coming to the site. This is not necessarily the case with twitter. You can't tell what twitter is going to change that limits you and your project in terms of growth or success. Facebook seems to make decisions in the context of what their users want (especially after beacon), twitter seems to be shooting in the dark.

And everything I've said above about Facebook applies equally well to the iPhone. Facebook and the iPhone become more popular when people create and use third-party extensions. Third-party extensions seem to threaten twitter. And a threatened entity is one that strikes with force, not one that nurtures.

Really the message is * be cautious when deciding which platforms to use * don't try to do everything yourself, but don't be entirely dependent either * Diversify, man can not surive on one platform alone; this also increases your reach * Be aware of the non-technical influences on the platform's continued success and existence</comment>


From the Pitching Stage to the Seed Stage - <AUTHOR> http://blog.keen.io/post/25538748769/from-the-pitching-stage-to-the-seed-stage

<comment><USER2> Informative post. Congrats Keen team!

<comment><USER3> Thanks! Super exciting day for us. :)

</comment></comment><comment><USER4> Great honest heart felt post...thanks for sharing...

</comment><comment><USER5> great story. really captures the excitement of the startup experience!

</comment><comment><USER6> thank for sharing your great story...</comment>


EU decision on IE (If I was Microsoft..) - <AUTHOR> http://aruiz.synaptia.net/siliconisland/2010/03/if-i-was-microsoft.html

<comment><USER2> I love the rich irony of techies, linux desktop developers even, complaining about politicians confusing end users.

I mean how dare they confront users with baffling jargon and decisions about things they don't understand. That's our job!</comment>


Goodbye, Malcolm - <AUTHOR> https://www.djangoproject.com/weblog/2013/mar/19/goodbye-malcolm/

<comment><USER2> Malcolm was brilliant, and sweet. When I submitted my first patch to Django, it was his encouragement that gave me the confidence and motivation to keep contributing. At Disqus, we brought him in for a few weeks of contract work, and watching him clean up the mess we'd made was perhaps the most programmatically-enlightening part of my career so far.

<comment><USER3> Same here, it was him who committed my first Django patch. He also came across as an incredibly nice person, with very thoughtful and kind comments. I've also read some of his ORM code and that was some of the nicest Python I've ever read.

Unfortunately I've never had a chance to meet him, and I haven't really been following the happenings in Django-world for a long time now, but I still felt really saddened seeing the news. Condolences to friends and family.

</comment></comment><comment><USER4> He also committed my first code to Django. And was amazingly patient with me while I floundered about during sprints that were held in Lawrence, Ks.

He was a great man, and he will be missed in many communities around the web. I was always in awe of his code, including some of the best refactors of Django.

<comment><USER5> So, that I may thoroughly hijack this thoughtful comment: who, in the OS community, is like Malcolm was? I want to interact with them. I want my first commit to a project to be through them.

<comment><USER6> In my opinion, the Django core team is full of people who have the same spirit. Many of the core developers [1] are intelligent, professional, introspective and patient and encouraging with new developers. The dedication to civility and quality of community is one of my favorite things about Django.

It's important to take a moment to remember and pay respect when we lose a community member, but as you're expressing here, it is also important to look around and recognize the talent and kindness around us that we can still learn from.

[1] [https://docs.djangoproject.com/en/dev/internals/committers/#...](https://docs.djangoproject.com/en/dev/internals/committers/#core- developers)

</comment></comment></comment><comment><USER7> Strangely, this was his last tweet. "Malcolm Tredinnick @malcolmt Woke up late, afternoon nap and I still want to go to bed early. So tired; wasted the day." Nothing about his life was wasted.

<comment><USER8> I agree completely - nothing about his life was wasted.

Thank you for writing this comment - if I could, I would give you one hundred up votes for it. :(

</comment></comment><comment><USER9> For folks who don't know the Django world: Malcolm was one of the most prolific Django contributors. If you use Django, you use code he wrote.

I wrote a remembrance here: <http://www.holovaty.com/writing/malcolm/>

</comment><comment><USER10> I only met Malcom once, during the Djangocon US 2009 sprints. Having never contributed to an open source project before, I naturally had no clue what I was doing, but he still managed to make me feel like I had something to offer. What a great loss to the Django/Python community.

</comment><comment><USER11> I'm still completely in shock to hear the news.

When I ran the first DjangoCon back in 2008 I was just a 23 year old programmer. New to everything. All the people there seemed like superheroes to me. I was honoured to have met Malcolm and to listen to him speak. He was a massive inspiration to me.

Malcolm worked incredibly hard for the Django community and we're all better off because of the commitment he made.

Thanks for being an awesome guy, for your dedication and for your knowledge. We'll all miss you :(

</comment><comment><USER12> In the age of everyone claiming to be the CTO or co-founder of something, Malcolm's first self introduction to me was extraordinarily short: "Hi Alex, my name is Malcolm. I'm a senior developer."

During one two hours conversation at KiwiPycon, he left the strong impression of being one who can argue very convincingly from both side. He made it clear, again and again, that as engineers, there is "no camp" for us to choose. Rather we should all be a bit more patient and make careful "case-by-case" decisions.

</comment><comment><USER13> My Malcolm anecdote: In 2008 the Python users group in São Paulo watched Djangocon, streamed live to the local Google Office. I took and tweeted a few pictures of the screen, including this one of Malcolm: [http://www.flickr.com/photos/rbp/2833593771/in/set-721576071...](http://www.flickr.com/photos/rbp/2833593771/in/set-72157607173551965) . I loved it, he just seemed like the quintessential geek :)

Later that day (IIRC), Cal Henderson gave his "Why I Hate Django" keynote, and at some point my picture showed up in a slide: <http://www.youtube.com/watch?v=i6Fr65PFqfk#t=53m10s>

"Don't make Malcolm cry" :)

</comment><comment><USER14> Didn't know Malcolm, but after reading the comments here I watched one of his talks, great speaker, delivered the content in a naturally easy to follow way: <http://www.youtube.com/watch?v=XXHknWKuG2U>

Sorry to hear he's gone. My condolences to his family and friends. RIP Malcolm.

</comment><comment><USER15> Wow, what a tragic shock. Does anyone know the details?

<comment><USER16> i can't confirm if these are true or not but some details may be in here:

[http://storify.com/adrianholovaty/malcolm-tredinnick- memoria...](http://storify.com/adrianholovaty/malcolm-tredinnick-memorial)

very sorry for his friends, family, and the community.

<comment><USER17> I'd not take any details from there to be true just yet, since I just saw someone else on Twitter say it was due to a brain aneurysm.

Depressing news -- RIP Malcolm.

</comment></comment></comment><comment><USER18> I've been working with @birdsarah at the PyCon sprints on our first commit to Django. We've had super patient help from core developers Julien, Carl, Aymeric and Honza. Then I wanted to get in touch with one of the people who'd originally worked on the refactoring we're working on, and it was Malcolm, who I'd never heard of, and I was told he'd died the previous evening, and obviously I felt sad about that.

</comment><comment><USER19> I didn't know anything about Malcolm until now, but I learned Django 6 months ago to start my startup. Using it has been one of the greatest pleasures of my software development career. I understand from the comments that I owe no small portion of this to Malcolm. Without Django, my startup probably doesn't exist, and for that, I'm deeply grateful. My condolences to those who knew him personally.

</comment><comment><USER20> Black bar?

</comment><comment><USER21> I don't know him although I now realize I've watched a bunch of his talks on youtube. I'm very grateful for his contributions to Django. It's the best avenue I've found for myself to get into web development and it definitely seems like he will be greatly missed by the community.

</comment><comment><USER22> Thanks and Godspeed. You made a difference.

</comment><comment><USER23> It's bad that his personal website is not available recently: <http://pointy- stick.com>

</comment><comment><USER24> Sad news - RIP.

</comment><comment><USER25> I've always enjoyed watching his talks and reading his slides. He was a brilliant guy who will be missed.

</comment><comment><USER26> This is such a tragedy. Malcolm was always very helpful and patient with me when I started digging deep into Django. We've lost a giant. RIP Malcolm.

</comment><comment><USER27> What a terrible loss.

</comment><comment><USER28> Rest In Peace

</comment><comment><USER29> .

</comment><comment><USER30> How old was he?

<comment><USER31> His LinkedIn profile says he went to university in '89-'92, which would put him in his early forties, if he went at a usual age.

<comment><USER30> Damn, there's a lot of early software people death lately...

<comment><USER8> I have noticed the same thing.

I hope that I just notice all of these software deaths because I'm involved in software, but I feel like we're losing too many amazing people way too soon.

Everyone please take care of yourselves.</comment></comment></comment></comment>


Ask HN: Next programming language to learn: Nim vs. D? - crypto-jeronimo <comment><AUTHOR> I have started using Nim fairly recently (past month). I actually wanted to start using it about a year back, but it never happened. But my return to Nim was a good step; this time I might be here for a while as I have started to understand the nitty-gritty details of the language [1].

Couple of reasons why I think Nim is an awesome language:

1\. Syntax: It's beautiful. If you like Python syntax, you'll like this. On the other hand, it's much more concise, without losing readability.

2\. Static type check, with a sprinkle of type inference only when assigning the initial value.

3\. Proc/operator overloading: Have procedures (functions) named the same handle different data types differently. And the same with operators.

4\. Support: Great support over Gitter, GitHub issues, Nim Forum, etc. Great devs! (though, I incorrectly thought earlier that that wasn't the case :))

5\. Makes me feel home: Hacking/coding in Nim comes the closest to coding in Emacs Lisp. In Emacs, if I want to understand what a function does, I look at its source code. I can do the same in Nim.

6\. Editor support: The nim-mode Emacs major mode and ob-nim Org Babel package are awesome!

7\. Documentation: Check out the Nim the index.html to search anything, and also Devdocs.

8\. Whitespace: Tab not allowed, yay!

9\. Not as easy as installing go/rust toolchains locally (without admin rights), but not difficult either.

10\. The nimble tool (equivalent of pip) works great for building/distributing Nim projects.

.. and much more! Computer science experts can talk about more benefits of Nim from systems programming point of view (GC, etc.).

For my use case, where I use Nim as Python/Bash replacement, CLI utility development, it looks excellent so far.

In plain terms, it's joy coding in Nim :)

[1]: [https://scripter.co/notes/nim/](https://scripter.co/notes/nim/)

</comment><comment><USER2> I chose to learn nim coming from Python, because found C++ to be annoying and difficult. It feels like python but faster. I have compiled to to JS and integrated with complex C++ libraries. I like it so far. Metaprogramming is cool feature. Community is also really helpful.

</comment><comment><USER3> It's hard to pick between those two in particular. Nim is more fluid syntactically; D is more precise. D is also older and I would generally consider it more mature.

(After trying both, I went with D. But in the future I want to use Zig for some of the lowest level code.)

<comment><USER4> Other than maturity, what are the reasons you've chosen to go with D (and are now choosing to pursue Zig)?

<comment><USER3> What I want in a language of this class is some ability to transition code from a slow/dynamic/generalized/exploratory phase to fast/static/specialized/checked. Both D and Nim offer features of that nature. (Something like Rust omits itself by forcing memory into a central role, leading to a lot of annotation boilerplate - it's correct for writing Servo or similarly complex parallelized systems, but I am not writing Servo.)

When I left Nim, it was because I had serious concerns about the project being able to tame its rapid accumulation of features. I had no faith in all the things it advertised to actually work correctly. The dev process I witnessed was "cave in to toxic people who whinged a lot." D has a lot of warts from being around longer, but in the end, what I want to write code in anger with is something that can boast a well-engineered compiler, and D has not one compiler but more than one.

That was years ago. To win me back you'll have to market a demonstration of similar stability.

Zig is in a different category from any other option because its design allows me to tackle a piece of low-hanging fruit: a modernization of old C libraries that does not reinvent the universe, create a new ABI, introduce a runtime, or otherwise disrupt the original context. I can write basically the same kind of code in the same kind of style, but the language automatically pushes my attention to more edge cases and undefined conditions, and the compiler simplifies the build process, removing the preprocessor noise that tends to appear in substantial libraries.

<comment><USER4> That's fair. Can you name features in Nim that you feel are unnecessary? I have seen a similar sentiment in the past but rarely do people actually give examples of what they think could be removed (the biggest challenge for us right now is the removal of features in preparation for 1.0).

</comment></comment></comment></comment><comment><USER5> Do you have projects in mind? What languages are you most used to? That might help you decide. Learning a very different language is fun and useful.

<comment> crypto-jeronimo > Learning a very different language is fun and useful.

Yes, that's one of my main motivations. I'm comfortable enough with Python, Java (comfortable doesn't mean I enjoy this one) and C.

> Do you have projects in mind?

Yes, both are solely for the purpose of enrichment of my current set of skills and knowledge: \- Source control system that is a "lite" version of git. \- A bit torrent client.

</comment></comment><comment><USER6> Need more data to compute a meaningful answer. What do you want our of your next language?

<comment> crypto-jeronimo I'm looking for a well-rounded language, which is versatile in the same direction as, e.g., Python is. Ideally, it would also enable expanding one's own set of programming skills and knowledge/practice of interesting paradigms (i.e., a mind-shift of sorts).

Nice to have's: \- a rich library ecosystem (like Python and Go, for instance) \- as close to C as possible, in terms of speed

<comment><USER7> Nim is like a fast version of Python and Crystal is like a fast version of Ruby. Rust and Go also have some use in the same space, but they all differ in the details as in whether the GC exists and is enabled by default, is optional, or doesn't exist.

Coming from Python, I found Nim to be the best for my mild systems programming needs. I haven't tried Crystal as it doesn't work on Windows (last I checked). Go is too simple/verbose and doesn't have enough language constructs by design. Rust seems like it is changing too much and too low level. I really wanted to like D, but had trouble getting up to speed in it. I bet it's much easier if you come from C++.

<comment><USER8> Apart from some syntactic commonalities and expressiveness, Nim doesn't have a lot in common with Python.

The idiomatic approach to solving problems in Python and Nim are different. I came from a strong Python background and now I prefer Nim to Python as a general purpose language and especially for writing scripts.

Nim is highly productive and with excellent type safety.

The compiler is relatively fast though maybe not as fast as D and certainly not as fast as Go. The compiler is a lot faster than Rust/Crystal/Pony and there is current work being done on incremental builds which should make it even faster.

If you take a look at these benchmarks the Nim and D fastest versions are faster than Rust and on par with the fastest C++.

Significantly, the fastest D version has double the lines of code as the fastest garbage collected version of Nim though the Nim version performs slightly faster.

The fastest garbage collected version of Nim has exactly the same lines of code as Python.

[https://github.com/frol/completely-unscientific- benchmarks#l...](https://github.com/frol/completely-unscientific- benchmarks#linux-arch-linux-x64-intel-core-i7-4710hq-cpu-1)

<comment><USER9> > Apart from some syntactic commonalities and expressiveness, Nim doesn't have > a lot in common with Python. > The idiomatic approach to solving problems in > Python and Nim are different

On a practical level, they are close enough to let you convert Python code to Nim with reformatting and replacing instead of doing a complete rewrite.

<comment><USER7> Thank you, this is what I meant when I said similar to Python. Someone with Python familiarity should have zero issues with writing a Nim program and will mostly feel comfortable with the syntax.

</comment></comment></comment></comment></comment></comment><comment><USER10> Both and Chapel.

<comment><USER11> Care to expand on Chapel? Is it used somewhere in prod?

<comment><USER10> Probably yeah as it's done by Cray. The main feature of Chapel is to handle well the many levels of parallelism.

<comment><USER12> But then I would recommend Pony which is even better on parallelism.

<comment><USER10> I don't think so (for example Chapel does SIMD).

<comment><USER12> Pony does SIMD also, is much faster and safer.

<comment><USER13> Do you have any performance data that supports these claims? Does Pony support distributed memory parallelism?

Here are some recent Chapel performance results:

shared memory: [https://twitter.com/ChapelLanguage/status/100266735892881408...](https://twitter.com/ChapelLanguage/status/1002667358928814081)

distributed memory: [https://twitter.com/ChapelLanguage/status/100258998583959552...](https://twitter.com/ChapelLanguage/status/1002589985839595521)</comment></comment></comment></comment></comment></comment></comment>