How I got a dev job at Khan Academy without a CS degree or dev work experience - <AUTHOR> http://www.stchangg.com/blog/khan-academy-job/

<comment><USER2> Slightly misleading title: "w/o a CS degree" yet has a ECE degree. I went through the same ECE program at a different school and from the experience of my peers and myself, an ECE degree is treated just like a CS degree (but not the other way around). Also, she already has experience working as a PM at Microsoft.

If this was coming from some random X school with a completely unrelated degree or big name company on the resume, I would agree with title, otherwise, no.

<comment><AUTHOR> Thanks for the comment! Hm, I'm not sure what school you went to, but an ECE degree at Duke is not like an EECS degree at MIT. It leans much more towards the electrical engineering side of things, and very, very few of my peers (in fact, I can't think of any who didn't get a joint CS degree) became programmers afterwards. You can check out the curriculum here: [http://www.ee.duke.edu/undergrad/bse-degree- planning](http://www.ee.duke.edu/undergrad/bse-degree-planning).

Edit:

I'd like to also add this point from my blogpost, which can perhaps give a better sense of my ability before I applied:

> Unlike many software developers, I didn't start programming when I was 10. I > started in college at the ripe age of 18 and took a grand total of 4 > programming courses during my 4 years there. I was not a stand-out student > in any of my programming or engineering courses. No teacher saw promise in > me, took me under their wing, or mentored me to greatness.

<comment><USER3> I liked your article -- I appreciated the different perspective it presents (kind of outside-looking-in on the coding/startup job).

The article also led me on to "Invisible Burden" and "Why Stories Are So Important" \-- great stuff. Thanks for writing those.

<comment><AUTHOR> Thanks! That means a lot to me.

</comment></comment></comment></comment><comment><USER4> I am EE graduate myself. But I majored in Electrical engineering aspect (electricity generation/transmission, power supply etc.), but not nothing to do with hardware/chips design. I started programming at 25.

I have found that my biggest weakness is not programming, but the interviews where they grill you on CS fundamentals. Did you have to prepare for that?

<comment><USER5> > grill you on CS fundamentals

Could you provide some examples of questions you were asked?

I majored in entrepreneurship so my idea of "CS fundamentals" may be different from yours, but I took Harvard's CS50 class and felt that it provided a very good introduction to CS.

<comment><USER4> By CS fundamentals, I refer to data structures, algorithms, and their implementations, distributed systems, OS etc.

</comment></comment></comment><comment><USER6> So this is the kind of passion they're looking for, and even then they took 3 months!

<comment><AUTHOR> Yipes, I don't want to discourage anyone from applying. I think I was a special case of desperate/underqualified. That's why the process took me so long - I had to catch up big-time, and was extra paranoid about giving this my best shot (crossing my t's and dotting my i's). That meant spacing out my interviews so I had more time to prepare and improve between them.

Also, just wanted to note that the interview process has been greatly improved since we were able to allocate a person full-time to handling recruiting, scheduling interviews, etc. I don't know stats on our current turnaround time from application submission to offer, but I'm pretty sure it's much better (maybe a couple weeks to a month).</comment></comment>


BrickerBot Author Claims He Bricked Two Million Devices - <AUTHOR> https://www.bleepingcomputer.com/news/security/brickerbot-author-claims-he-bricked-two-million-devices/ <comment><USER2> This was more or less inevitable. I can't really condone janit0r's methodology, but at least he's doing _something_ to solve the problem. Hopefully this leads to security requirements legislation or IoT companies caring more or something.

</comment><comment><USER3> I realize that the title is ripped straight from the article, but it still seems misleading, as the context surrounding the "2 million devices" number seems to imply that a majority of those devices were not bricked, but rather that the bricking was only done on devices that couldn't be taken off the menu through other means.

</comment><comment><AUTHOR> So, if he's serious about that number, he's caused at least $60 million in damages (given a conservative estimate of $30 per device). No matter what his intentions, he'd be facing serious charges if caught.</comment>


The Immortal Life of Henrietta Lacks - <AUTHOR> http://scienceblogs.com/notrocketscience/2010/01/review_the_immortal_life_of_henrietta_lacks_by_rebecca_skloo.php

<comment><AUTHOR> The story of the HeLa line was something I really wanted to include in The Geek Atlas, but I couldn't come up with a convincing place to visit to go with it. Glad to see that this book is finally coming out.

<http://en.wikipedia.org/wiki/HeLa></comment>


GIT is not secure against tampering - <AUTHOR>

It is a very bad practice to blind people into making them think GIT is foolproof against tampering while it is not.
kernel.org could have been tampered with, and we won't know.
See these rebuttals: https://lwn.net/Articles/457539/
https://plus.google.com/u/0/101646537009659972657/posts/ieGgPKJM2NP <comment><USER2> Concerning _"SHA-1 attack"_ and _"Random GIT modifications"_

[http://osdir.com/ml/version- control.git/2005-06/msg00583.htm...](http://osdir.com/ml/version- control.git/2005-06/msg00583.html)

But seriously, if anything had been done _thousands_ of people would have known by now.

 _"just append some commits to any repository"_

People will notice that _immediately_.

The simple fact of the matter is that due to a combination of both Git's technical attributes and the Linux kernel development organization/practices, we are _quite_ safe. This was addressed last time this topic came up, I feel you should probably read some of the responses you got that time.

If you still want to be concerned, I advise addressing this: [http://git- blame.blogspot.com/2011/08/how-to-inject-maliciou...](http://git- blame.blogspot.com/2011/08/how-to-inject-malicious-commit-to-git.html)

<comment><AUTHOR> See, the issue is that many think "but big guys would know!" Big guys actually do not care much.

People do not notice that. Such bugs (that can be exploited) are inserted into the kernel very often, even from legit people and no one notices. [1] I don't blame them, but we can't _trace_ it if it's been done by an attacker.

About your second link, once again, you limit yourself to attacking linux.git. Unless you crack SHA (which, is actually possible, it just looks terribly odd in the commit, and has nothing to do with flapping your arms to fly).

Instead you append commits to a repository Linus pulls from for patches, and you can do it so that when Linus pulls, he gets the extra patch, and when the owner pushes, nothing happens. Heck you can even hide it from the gitweb interface. You can even do that on Linus's linux.git directly, but since zillion people look at it, its much safer to go through a branch Linus will pull from.

Oh and the code isn't going to be a bind shell in the f. middle. it's going to be a dangling pointer or the like, that you know, these devs miss every other week as pointed out in [1] and bang, here's your exploit.

Do you think all attackers are that retarded that they can't spend an HOUR modifying GIT for this?

Keep the blind-folds on.

Bonus conspiracy theory:

Imagine they find such a commit, by luck or hard-work, signed off of course by someone Linus pulls from. They're going to do what? probably leave it there in a couple of month have a fix (that won't go in CVE as many of their fixes which aren't found externally). No one will be able to tell if it came from the attack (which would be a PR disaster for Linux) or not, even if uncovered.

<comment><USER2> _"Unless you crack SHA (which, is actually possible, it just looks terribly odd in the commit, and has nothing to do with flapping your arms to fly)."_

Don't be absurd. You have to craft a 1) valid C file that 2) contains and exploit which 3) _doesn't_ look "terribly odd" and 4) has the same SHA1. _"HOUR"_ LOL!

Linus's urination world domination plan is far more practical.

As for the rest: PRATT</comment></comment></comment>


A new object database for Python  - <AUTHOR> http://mockit.blogspot.com/2009/09/new-object-database-for-python.html see the pypi page at http://pypi.python.org/pypi/dobbin <comment><AUTHOR> see the pypi page at <http://pypi.python.org/pypi/dobbin></comment>


Ask HN: Have you ever tried certain psychedelics to solve complex problems? - <AUTHOR> Those of you in to things like cryptography, AI, compilers, complex algorithms and similar topics: Have psychedelics ever helped you to solve complex problems? And if so, would you care to elaborate?
I can't speak of those kinds of things because my lack of very complex problems. At times though they definitely gave me a better understanding of mathematics, physics, linguistics and other certain things that can be hard to wrap your head around.
Even though my favorite psychedelic substance is probably psilocybin, regarding problem solving I have found LSD, 2C-B and DXM to be the most interesting candidates.
Very interested in your opinions.
Resources: * https://en.wikipedia.org/wiki/Psychedelics_in_problem-solving_experiment
* https://www.youtube.com/watch?v=KtL5fafpRKc
* http://www.themorningnews.org/article/the-heretic <comment><USER2> In my experience the by far best state to do any sort of work is being sober, clear minded, and in the zone. What psychedelics help with is expanding perspectives, looking at things from a different angle, getting the big picture, semantically over-exaggerating problematic details like a microscope, breaking away barriers, and shuffling things up.

When done responsibly, with enough processing and digestion after a psychedelic experience, this can lead to trying new approaches, which, combined with hard work over long periods of time, can indeed lead to extraordinary results.

<comment><AUTHOR> Nicely summarized, thanks!

</comment></comment><comment><USER3> I have written code while high, which has convinced me that the expression "Man, the dude who wrote this must have been high" is worth its derogatory tone.

</comment><comment><USER4> Psychedelics have never helped me solve a complex mathematical problem, but they did help me solve some complex social problems.

</comment><comment><USER5> For me psilocybin is too much of an emotional experience to focus on any abstract problems. I could imagine using cannabis for problem solving — it allows for concentration and focus.

<comment><USER6> Yeah, that actually really works. It depends of the kind of weed and of course the amount.

The problem is you can get to easy _to_ focused on smaller tasks that are not really important.

I coded this while I was pretty high. [https://github.com/entropie/rmp/blob/master/rmp.rb](https://github.com/entropie/rmp/blob/master/rmp.rb)

<comment><USER5> I don't have much time for my self, so my sessions have to be carefully planned — and I think planning helps not getting distracted with minutiae. The times I have been drawing high were well planned, and very productive.

</comment></comment></comment><comment><USER7> As a data point on the topic, Kery Mullis, who won the Nobel Prize for PCR, claimed that LSD was a source of inspiration for that work.

</comment><comment><USER8> a nameless colleague once claimed all his most critical code was written while high on LSD. A self-taught physicist turned programmer who first learned Pascal, his C files included a header file that #define(d) "Begin" as "{" and "End" as "}".

<comment><USER9> Could you explain the last part? Are we talking about the inception of braces in programming?

<comment><USER8> He was porting his Pascal code to C, but wanted to keep writing things like

        helloWorld()
        Begin
            printf("hello world!");
        End

so he added these preprocessor lines:

        #define Begin {
        #define End }

</comment></comment></comment><comment><USER10> Yeah, sometimes I coded after a few beers and I felt smarter. Next morning the disappointment came :)

</comment><comment><USER11> What kind of problems have you tried to solve while high?

I, personally, prefer to have a clear mind when approaching things that require a heavy cognitive load, but that's just me.

<comment><AUTHOR> Well, as I said, I didn't really have had any problems yet that I wasn't able to solve sober. But I definitely did experience a shift in the understanding for complex topics, an improvement in the ability to visualize abstract subjects and creativity in general.

If you are very focused on something and really willing to solve a problem it can even give you a better inner clarity.

By the way: We are talking low/moderate doses here ;)

<comment><USER11> Sure, can you give examples of those complex topics?

<comment><AUTHOR> * Better understanding of concepts like four-dimensional space or spacetime

* Innovative ideas when designing interfaces

* Easier visualisation of tiny/huge scales (time and space - cosmology/biology/physics)

* Deeper understanding of art/music/literature/philosophy

* Being able to look at things from a more neutral perspective and thus better seeing changes that occur over a long period of time or that I'm very closely involved with (society/nature/politics/health)

Those are not your typical complex problems that we're looking for here but for me it still feels as if there could lie some potential. In my case it seems to come down to helping with creativity and the ability to visualize in a more detailed and at the same time neutral way.

</comment></comment></comment></comment><comment><USER12> DXM? Seriously? That isn't going to help you solve anything.

Stick with psilocin and LSD.

<comment><AUTHOR> Have you ever tried DXM on lower/moderate doses? If so, have you had a clear intention set about a particular issue that you wanted to address? That makes a big difference.

Only because DXM is being abused a lot and the fact that you can only get it in the form of cough syrup in the US doesn't mean that there is no way to use it more responsibly/purposefully. Also: Effects very much differ from person to person. In fact: most people don't seem to like it / have negative (side) effects.</comment></comment>


Stripe has democratised online payments and reshaped the digital economy - how-about-this https://www.wired.co.uk/article/stripe-payments-apple-amazon-facebook <comment><USER2> Oh come on. I would rather integrate Stripe into a customers' system than any other EU payment provider (though Stripe's "Look how simple this is" changed somewhat once 3D-Secure became necessary for our customers), but they have not reshaped the economy or democratised payments.

I'd award that to PayPal and the work they did over a decade ago. Also see Braintree (not used), Square (not used) et al

<comment><USER3> Until Stripe came to Japan, there was really only one solution to accept USD or EUR there: PayPal. The local equivalents were all JPY only. But for Tomotcha, since we are targeting an audience outside of Japan, we really wanted USD and EUR. The day I heard that Stripe was coming to Japan I started to harass them every few weeks to know when it was going to be ready...

Conclusion: it did reshape things quite a bit on this side of the planet.

<comment><USER4> If you're non-American Stripe was indeed 'revolutionary' in a product/market sense. There literally were no good options before Stripe, even here in Canada. Braintree was okay but limited to the US (at least early on, idk now). The other options were absolutely awful in a technical and even often business sense.

But that doesn't mean it 'democratized' anything. If anything it centralized the market merely by being the only good option in a market run by "MBAs" which was in desperate need of real software/design talent.

Nothing wrong with greatest from pure market dominance by delivering real value to customers.

Besides Stripe apparently isn't purely free and open (ie, not holding strong values outside of the purely commercial marketplace) to everyone, when they are declined services to Gab.ai unless they stop 'serving adult content' which is lawyer speak to attack them for allowing unsavoury people to exercise free speech. As bad as some Gab users are I don't think it's the payment processors place to enforce some terms of service or speech policy on their customers. As long as Gab deletes illegal content (which they claim they do) then I dont see why they shouldnt be allowed to run a service with a legitimate free speech policy.

<comment><USER5> _Besides Stripe apparently isn 't purely free and open (ie, not holding strong values outside of the purely commercial marketplace) to everyone, when they are declined services to Gab.ai unless they stop 'serving adult content' which is lawyer speak to attack them for allowing unsavoury people to exercise free speech. As bad as some Gab users are I don't think it's the payment processors place to enforce some terms of service or speech policy on their customers. As long as Gab deletes illegal content (which they claim they do) then I dont see why they shouldnt be allowed to run a service with a legitimate free speech policy._

You can't really put this on stripe, a big part of how good their product is is that they hammered out contracts with everyone who provides debit/credit card services. Those some companies have been blocking payments to the sex industry for years, as well as other groups they consider unsavory (recall Visa blocked donations to wikileaks). The financial institutions involved did _not_ give up that clout when they signed on with stripe.

</comment></comment></comment></comment><comment><USER6> The title is:

> The untold story of Stripe, the secretive $20bn startup driving Apple, > Amazon and Facebook

I then did a control-F to look for how Apple is involved, and it only appears two other times. Once in a discussion about a WiFi pineapple, and then as a tag at the bottom of the page.

Do Apple and Amazon really use stripe for their payments? I've certainly never noticed any stripe branding.

<comment><USER7> "I've certainly never noticed any stripe branding." That is the whole point, you are not suppose to know who is processing the credit cards for apple. Stripe provides a white label services while paypal's convoluted service is really in your face about who provides the 'service'.

<comment><USER8> PayPal has their Payments Pro product if you want to accept credit cards without the PayPal branding on your site.

</comment></comment></comment><comment><USER9> Looped in with IP Infringement, regulated or illegal products and services > Adult content and services Pornography and other obscene materials (including literature, imagery and other media); sites offering any sexually-related services such as prostitution, escorts, pay-per view, adult live chat features > Products or services that are otherwise prohibited by our financial partners Video game or virtual world credits Sale of in-game currency unless the merchant is the operator of the virtual world

<comment><USER10> Indeed. This.

I saw the title of the article and had to do a lookup - the word democratised; it's a terrible choice here. This makes it sounds like stripe somehow made crypto send and receive easy.

They've done nothing of the sort. I'd say they have actually increased the chokehold monopolization of the major CC issuers instead.

If they used their clout to change the game, great, but they haven't.

You made some API things easier for developers - congrats. You are like paypal from a decade ago, but with 2.0 docs, and modern code for developers - <AUTHOR> that paypal is actually helping more people take payments that are in threatened groups these days, and stripe just goes along with the censorship upstream and makes it easier to deploy.

Even coinbase is doing more to "democratize and reshape the digital economy" (not that they are doing it as well I had hoped they and others could).

<comment><USER11> To be fair, I don't think any company is positioned to take on the CC companies and win.

<comment><USER12> Keep an eye on Apple, who has active, direct financial relationships with a billion+ consumers[1].

Services like Apple Pay, Apple Pay Cash, Apple Pay on the Web, and iPhone Upgrade Program are pieces of a larger (if relatively slow-moving) strategy.

[1] In early 2014 Apple boasted of having 800+ million iTunes accounts, most of which have one or more associated credit cards. In September 2014, Bono leaked that Apple had shared a figure of 885 million. [https://9to5mac.com/2014/09/22/u2-bono-apple- itunes/](https://9to5mac.com/2014/09/22/u2-bono-apple-itunes/)

<comment><USER13> Apple has always and will still market themselves as "family-friendly", recently they announced that they will not produce any adult content for their original content lineup.[1]

[1]: [https://9to5mac.com/2018/09/22/apple-tv-adult-content- origin...](https://9to5mac.com/2018/09/22/apple-tv-adult-content-original- shows/)

</comment></comment></comment></comment></comment><comment><USER14> I recognize that Stripe was maybe the first to create a modern JSON-based API for financial transactions. At least maybe the first of that kind that gained traction. But to say they "reshaped the digital economy"?

I would say reshaping the digital economy would definitely entail direct competition with the big players like Visa and MasterCard. Lower the ridiculous percentages that these corporations fleece merchants with and then maybe I'll think differently.

</comment><comment><USER15> Ha, I wonder what PR firm Stripe hired to get this story published. This piece is less subtle than the "The Suit is Back!" of yesteryear. [1]

[1] [http://www.paulgraham.com/submarine.html](http://www.paulgraham.com/submarine.html)

</comment><comment><USER16> Stripe is a good product. But it unfortunately does nothing to avoid censorship of "controversial" projects by CC processors, etc.

</comment><comment><USER17> When they got to the part about how 402 payment required is an HTTP status code it made me start thinking about crypto currency.

My strong personal belief is that cryptocurrency is not just an experiment for a small percentage of nerds but will in fact become the normal mode of payment on the internet. When cryptocurrency payments become practical and popular that will start reducing Stripe's market share or whatever.

I am putting a lot of faith in the efforts to scale up Ethereum.

</comment><comment><USER18> On the Subject of Stripe, ( Sorry for being off topic ), how does one accept Micropayments online? Micro being Sub $10 transactions?

If I sell things for $10, and only making 10% profits, that is $1. If Stripe charges me 3% + 30c, that 30c is like 30% of the profits gone.

<comment><USER19> You pass on these fees to thr customer.

</comment></comment><comment><USER20> I'm sure the people at Gab would disagree with this assessment.

</comment><comment><USER21> I can get on just fine without reading another PR upvoted story about Stripe for a while

</comment><comment><USER22> What about the 3rd founder? He got written out of the narrative early on, but he built the original platform and was bought out in the first few years.

<comment><USER23> Really? Can't find any info on this.

</comment></comment><comment><USER24> Anytime someone uses the term 'democratizes such and such' in the context of Valley startup I have to chuckle.

But honestly - isn't Stripe just a really clean and useful set of API's for transactions? I mean, a 'developer first' mentality towards payment systems?

All the power to them, I've used them and like them ...

But can anyone tell me why this is revolutionary/democratizing?

<comment><USER25> Because you used to have to get a merchant account from a bank, and that was a nightmare for inexperienced individuals with no business credentials.

<comment><USER24> A 'merchant account' can be had by anyone relatively quickly at almost any bank. It would only be a hurdle for the tiniest of 1-2 person operations and a minor one at that.

I think Stripe did a good job, but I don't think it's anything but a better- mousetrap here, and not one that's going to change anything fundamentally, architecturally etc.

AirBnB, Uber, Facebook, Twitter - for better or worse they really changed things. Even Dropbox lead a new kind of 'persona cloud storage' movement, which is a change. Stripe ... not so much.

<comment><USER26> Going to a bank? That mean't you had to be all in (business registered) and pay high fees.

Stripe did change the way smaller companies did business. But Paypal allowed anyone to accept payments.

<comment><USER24> "That mean't you had to be all in" if your business is not registered, you're not a business. Seriously, that's a small hurdle. I'll bet the long tail of unregistered business revenue from Stripe is very small, and likely overshadowed by just a few large enterprise accounts.

</comment></comment></comment></comment></comment><comment><USER27> Didn't find anything untold. Just a long article with many examples of businessses using Stripe.

<comment><USER28> Ok, we've swapped "The Untold Story of Stripe" for the subtitle.

<comment><USER29> Not sure the subtitle is any better fwiw

<comment><USER28> If you can suggest a better title we can change it again. Better means: more accurate and neutral, preferably using representative language from the article.</comment></comment></comment></comment>


Divvyshot [YC W09]: Photo-sharing for groups - <AUTHOR> http://divvyshot.com/

<comment><USER2> Here's my 10 second review: I have no clue why I should want to use this instead of flickr.

I'm sure there's some reason -- but whatever it is, you might want to point it out more clearly on the front page, because otherwise those 10 seconds are probably all you're going to get from most people.

<comment><USER3> Honestly, I think it's a design issue. Interaction design, not visual design (the site's very pretty) because the answer to your question is right there on the home page, it's just nowhere near prominent enough to grab your attention in the 10 seconds you mentioned.

 _"No account needed!

It couldn't be easier! You can share photos with friends and family right now!"_

You can tell it's important because it's repeated again directly below, with a minor change in wording:

 _" Share your photos NOW - No account needed!_ "

That's actually huge, I'm guessing it's even the main feature that sold YC on accepting them (to me, "photo sharing made stupid simple" = "no account needed") especially considering that trend in recent YC startups like posterous.

Actually, posterous is a great example, go look at their home page, the super prominent crossed out "make an account" line at the top of the page gets across the point really nicely.

<comment><USER4> I don't think picking a username and password is _that_ big a hurdle for most people.

<comment><USER5> I hate if I have to enter a username when I just want to quickly try what something is about.

I always try to build my apps so that you can use most of the functionality without an account. I think that should be the standard way to do it and not other way round.

</comment></comment></comment></comment><comment><USER6> Hey guys, it's Sam (divvyshot's creator).

The site's a piece of crap right now, but hopefully things will be better over the coming weeks. Release early and frequently, right? If you find any huge bugs email me: so / at / divvyshot / dot / com

Features we've built and haven't yet launched include:

\- A Desktop client (PC & Mac)

\- Twitter, Flickr, & Facebook synchronization

\- Facebook application

\- An iPhone app (you can see real time what's happening at the event you're attending and push photos to the event from your phone)

\- Snipshot photo editing

<comment><USER7> Allow email addresses to contain a plus. It's something a lot of gmail users like to do.

<comment><USER6> Fixed, thanks for the heads up.

<comment><USER8> `+` doesn't work in emails.

TOS is scary.

</comment></comment></comment></comment><comment><USER9> About the frontpage question: "You and your friends went to a party. where do you put the photos? Right here!" \--- ehh wrong, personally I'd put my photos on facebook. I have an account there, my friends do as well, so I don't get it... sorry :S

<comment><USER10> If a group of you wants to put all the photos you took at some event in one place, where do you put them?

<comment><USER11> Facebook. You can tag your friends and they will be notified. That's a huge advantage, because not only the tagged person comes to see but also her nosy friends.

<comment><USER10> Sorry, I was unclear. By "one place" I meant one page, not one domain name.

</comment></comment></comment></comment><comment><USER12> Divvyshot centers on events -- not albums by individual photographers. You can quickly post a few pics and get folks uploading their photos to the same event with almost no effort. Check out the immediate photo upload -- just drag and drop into your browser! And you can click to download a zipfile of all photos in an event, at full resolution. Think of it as a new spin on photo sharing, similar to how Posterous is a new spin on blogging.

<comment><USER13> It's drag and drop from the finder to the "Mini Divvy" app. Then it does some sort of synchronization to everywhere that's registered interest in that "event".

Not sure what the use cases are, and whether it justifies a whole other app, but it's an interesting spin on sharing. You don't just get notified of something, you just get the file.

</comment></comment><comment><USER14> Your branding is at odds w/ your mission statement. High res photos speaks to pro-sumers. Party pics speaks to grainy iphone shots.

<comment><USER15> Sure, party pictures are one thing, and facebook handles those quite well. I don't believe Divvyshot stands to take that market from facebook. That said, if you've ever travelled overseas, it's likely you've had friends and family ask for your photos... and facebook just doesn't cut it with that use case IMHO.

</comment></comment><comment><USER16> You are displaying people's email addresses? And you say you don't like spam?! Shame on you. I'm already weary giving divvyshot my email address, and now divvyshot is passing it on to every other registered user. And of course I couldn't tell that it was going to do that ahead of time b/c I had to log in to see that feature.

(Looks like you can prevent the display of your email address by entering a display name in your profile, but that is not obvious at all.)

</comment><comment><USER17> You may want to turn off directory browsing ... Playing around for a few seconds didn't reveal anything particularly bad (although, this was very interesting: <http://divvyshot.com/static/bandwidth_costs.xls>).

The Java applet also seems to hang firefox for me (Ubuntu 8.10 x64). I don't have another 64bit linux machine handy, so I can't tell if it's something particular to my setup though.

<comment><USER18> According to what I read at the xsl file above, it looks likt it's the costs/user...

Don't tell me that this website is for scalable photo sharing!

You scale up and down your photos storage, and you pay as you go!

</comment></comment><comment><USER19> The design looks really nice. I already use drop box with friends to accomplish pretty much the same thing, and it wasn't immediately apparent what the added value would be to using Divvyshot.

Also, the first time I went to the upload page I got a "unknown certificate. trust/don't trust" dialog which disrupted the otherwise excellent UX. Mac OS X 10.5.6, Safari 4 if that's relevant.

Overall great work. I think this will be really appealing for people looking to share photos without any setup.

</comment><comment><USER20> So I've been beta testing for two weeks and I think Divvyshot is a great service for a few reasons:

1\. It allows you to share high res photos without downloading a client, sending an unreasonable number of emails with attachments, or resorting to other archaic methods like swapping jump drives.

2\. You can invite other people to add photos to the same event which is awesome when you go on vacation/to a party/etc. and everyone is taking pictures with different cameras.

3\. Facebook integration = one-stop posting. (Though I wish it would present separate albums on Facebook as they were created on Divvyshot).

4\. It's easy.

5\. I never have to right click "save as" again if I want a friend's picture off of Facebook.

</comment><comment><USER21> I'm a little confused - really great execution (!!) but I don't see the business sense. I'm not sure how this differentiates itself from other file hosting/photo sharing sites. For instance can you have private photos on Flickr? At the very least there are things like drop box as mentioned. What about people who tend to share photos through Facebook? Besides which, what is the monetisation strategy? Freemium? What features will be added?

There must be some sense or it wouldn't have got YC investment - maybe the idea is to execute this so well that Google buys you you as I don't think they have a good photo sharing method yet and it would be a great way to expand?

</comment><comment><USER22> Sam, congrats on getting techcrunched! Can you share with us your marketing/outreach efforts and how you got them to write about you in such an early stage of the product?

Thanks!

<comment><USER18> I think it's the same as they wrote about likaholix.com , which is by ex- googlers, and stills at too early stage, too!

</comment></comment><comment><USER23> Those hot girls on the photos will definitely boost sing-up rate.

<comment><USER24> to clear up any misunderstandings I'm sure he is talking about the girls on the beach and not the kids at the birthday party

</comment></comment><comment><USER25> A little YC easter egg: If you keep refreshing until you get to the little girl's birthday photos, you'll notice all of the names are of the YC principals + baby George.

Nice touch.

</comment><comment><USER26> My review:

1\. the drag-and-drop add photos page <http://divvyshot.com/event/F2z3/photo/add/> doesn't work, at least for me (Using Linux/KDE/Dolphin/Firefox)

2\. the HTML alternative <http://divvyshot.com/event/F2z3/photo/add/form/> only allows one photo to be uploaded at a time. I have 7 photos I'd like to upload, varying in size between 1.7 MB and 3.4 MB. I want to be able to tell it to upload the lot in one go, not have to go back to the site 7 times and do it.

3\. there should be a command-line application to upload photos. This would only be 100 or so lines of Python. It should of course allow multiple photos to be uploaded at a time (see note 2 above).

4\. I uploaded a photo -- <http://divvyshot.com/event/hv4x/> \-- and can't give it a name or title. I even created an account but that didn't seem to do anything useful.

<comment><USER26> Also, why the name? A divvy is an idiot -- <http://www.urbandictionary.com/define.php?term=divvy> \-- I suspect this is not the image you want to portray

</comment></comment><comment><USER27> Not sure what you have for the Mac client but a suggestion: I can select an album in iPhoto (or event(s) or multiple selects) and then use either contextual menu or menubar app to upload photos. No need to drag and drop.

When I open iPhoto, that's usually the time I feel like sharing.

</comment><comment><USER16> Arrrrgh! Registration doesn't allow + in email address.

</comment><comment><USER28> I liked the video that you have after signing up. That should be easier to find for people that haven't signed up yet.

</comment><comment><USER29> Great work, the site truly looks excellent. I love the ability to keep a group updated, with pictures, in realtime.

</comment><comment><USER30> I like the simplicity, but I'm not yet sold on posting event photos here instead of Facebook. Maybe the ToS would be a deciding factor. Speaking of which, what are the ToS, especially with regard to content rights?

Bug: the Java upload applet won't load for me.

</comment><comment><USER31> You call it an alpha... did you want TechCrunch to cover it so soon: [http://www.techcrunch.com/2009/03/04/y-combinators- divvyshot...](http://www.techcrunch.com/2009/03/04/y-combinators-divvyshot- launches-dead-simple-group-photo-sharing/)

<comment><USER18> It's a great way to find early adopters and testers for the product!

</comment></comment><comment><USER32> Java app doesn't seem to work on mac safari.

When I upload from the HTML box, the javascript status thing keeps spinning and never lets me know that the file has been uploaded.

I am on a relatively bad hotel connection right now.

</comment><comment><USER33> Turn your text into this:

      You and your friends went to a party.

      Where do you put the photos?

      Right here!

Note the lack of orphan words.

</comment><comment><USER24> Props on using a quick sign up box.

I would take out the "free" from the Alpha account, might turn away people who'll think you'll need to pay later.

<comment><USER18> read this at the bottom of the page: _Hurry! Only 738 free alpha accounts available! After the first 1,000 accounts, we're going to charge for storage._

<comment><USER21> And beat the free storage competitors?

</comment></comment></comment><comment><USER34> You guys should try out www.imagevat.com too

<comment><USER18> I flag this because the website has a sex content!

</comment></comment><comment><USER35> congrats sam!

</comment><comment><USER18> Congratulations. Looks very attractive!

If you can find a way to help users "move"/import their stuff from their current service to yours, then it would be really great. Also if you consider adding service like printing or something...

</comment><comment><USER36> I am actually genuinely excited to use this

There bringing something new(er) to photo sharing which is awesome</comment>


When Solid State Drives Are Not That Solid - <AUTHOR> https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/ <comment><USER2> Originally TRIM was an un-queued command; all writes had to be flushed, then TRIM executed, then writes could continue. This was bad for performance with automatic on-file-delete trim, so everyone wanted a trim command that could be put in the command queue along with writes. Many new drives have this.

It turns out that Samsung 8XX SSDs advertise they support queued trim but it's buggy. The old TRIM command works fine.

[https://lkml.org/lkml/2015/6/10/642](https://lkml.org/lkml/2015/6/10/642)

There are in fact lots of "quirks lists" and "blacklists" in the kernel and virtually all computers require some workarounds in the linux kernel for some buggy hardware they have. Pretty amazing when you think about it.

EDIT: another closely related example is macbook pro SSDs and NCQ aka native command queuing. They claim they support it, but on many it's buggy. It gets better though; the linux kernel just starting trying to use such functionality by default relatively recently.

[https://bugzilla.kernel.org/show_bug.cgi?id=60731](https://bugzilla.kernel.org/show_bug.cgi?id=60731)

these sort of things are, as you can see, very confusing and frustrating to track down, identify, and find a general fix for

EDIT2: now that I actually read the kernel bugzilla entry further, it's more recently come to light the actual problem with recent macbook pro SSDs is MSI (efficient type of interrupts)

<comment><USER3> In essence the Linux kernel put on display what is on Windows hidden by proprietary device drivers.

<comment><USER4> The thing is, almost all hardware accessed through drivers has tons of bugs, at least it's nowhere near as close to "bug-free" as are things like CPUs or DRAMs which cannot hide their bugs behind drivers. The thing that one can hope to work reasonably is a piece of hardware plus an accompanying driver which knows to hide that hardware's issues.

So another way of putting what you said would be "on Linux there's no working driver for that piece of hardware, unlike on Windows where the 'proprietor' went to the trouble of supplying such a driver."

<comment><USER5> If you think CPUs do not come with a shit-ton of hardware bugs YOU ARE GRAVELY MISTAKEN.

Google up the Intel errata for the i7

The list goes on and on.

<comment><USER3> Heh, i still recall my early encounters with Linux and reading the bootup messages.

One of them contained a line related to having found a CPU bug and having put a workaround in place.

I am not entirely sure, but i think it may have been the F00F bug.

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

<comment><USER6> Ha. Reminded me of the Pentium Floating Point Bug from the 90s. First (only?) time a CPU bug has been an international press story?

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

</comment></comment></comment></comment></comment></comment><comment><USER7> Nice debugging story. When I was at NetApp there were lots of times when drive firmware for the 'less used' options would fail. On the fiber channel drives the 'write zeros' command which was supposed to zero a drive was notorious in its in ability to achieve something that simple. When Google looked at (I don't know if they finally deployed it) the disk encryption technology it worked differently disk to disk and firmware rev to firmware rev. I think it was Brian Pawlowski at NetApp that said "You can count on two things working right in a hard drive, read, write, and seek." The joke being that you needed all three of them to work for reliable disk operation.

</comment><comment><USER8> Here's an Ubuntu bug tracker entry for what sounds like the same problem: [https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/144900...](https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005)

Linux 4.0.5 includes a patch that blacklists queued TRIM for the buggy drives. Windows and OS X apparently don't support queued TRIM at all, so they're unaffected.

<comment><USER9> The drives we have detected the issue had still un-queued TRIM. I have reached to one of the kernel I/O developers for help and he confirmed that it is not related.

<comment><USER10> But isn't the blacklist you link to in the article specifically for queued TRIM? E.g. [https://github.com/torvalds/linux/commit/9a9324d](https://github.com/torvalds/linux/commit/9a9324d). SO either that blacklist has nothing to do with this issue (in which case it probably shouldn't be linked from the article), or it does, and we're talking about issues with queued TRIM.

<comment><USER11> The article very clearly states that the issue had nothing to do with queued or unqueued TRIM:

 _Our affected drives did not match any pattern so they were implicitly allowed full operation._

See the list:

      SAMSUNG MZ7WD480HCGM-00003
      SAMSUNG MZ7GE480HMHP-00003
      SAMSUNG MZ7GE240HMGR-00003

</comment></comment></comment></comment><comment><USER12> To me, this sort of thing brings home the value of not running your own machines. Sure, Amazon's/Google's clouds have quirks, but it's far less likely that you're going to have to debug faulty hardware in this way. It sounds like a team of more than one person worked on this at least part-time for weeks -- how much is that worth? It's not just the cost of hiring extra people to do the work; often small companies simply can't hire enough good people -- when you do find them, do you want to squander them twiddling servers?

<comment><USER13> There is no cloud - just other people's computers.

Many use-cases just require the job to be done on your computers due to security and privacy reasons. Yes, Amazon's and Google's services are in some ways less secure than your own computer, because they are hosted by companies which are subject to a government that doesn't value privacy, not even of it's own citizens. That means said government can, just to give a concrete example, NSL the companies to give up _all_ they have about you, and you wouldn't even know notice.

When the government puts national security above fundamental human rights there is something dangerously wrong.

<comment><USER14> Thinking about individual computers will lead you astray. There are, rather, _sets_ of machines (from single boxes to entire data-centers) that are managed by a given sysadmin staff. The more machines they manage, the more likely it is that problems will have institutionalized and operationalized solutions.

A cloud is just a sysadmin staff with a Sufficiently Large Deployment to have ironed out all the kinks in their hardware.

<comment><USER15> > A cloud is just a sysadmin staff with a Sufficiently Large Deployment to > have ironed out all the kinks in their hardware.

By that definition, I don't think there are any clouds.

<comment><USER14> True, by the literal definition. I continue to interpret "cloud" as "that mysterious part in the middle of the diagram which is a clean encapsulation of Somebody Else's Problem that never bothers you"; obviously, there are no _true_ "clouds" (and there cannot be) by that definition.

But people can try, and they can get close; and one can say that something is a cloud _to the degree_ that it manages to fulfill the "amorphous shape in your diagram you don't have to worry about" promise. So there are some 80%-clouds, some 95%-clouds, some 99.995%-clouds, and so on.

The point I was trying to make is that the degree to which a cloud achieves that promise is correlated to the size (and longevity, and homogeneity) of the deployment. The more man-years have gone into taking care of a given server type at a given DC, the more institutional knowledge is ready-at-hand to solve a problem on _your_ machine of that type, and so the fewer _issues_ become _emergencies_ that break out of the "cloud" abstraction to require your attention.

And it was a reply to the parent precisely because a security problem is just such an "emergency" that represents a failure of institutional knowledge: I would much sooner trust AWS's KMS to not leak my private keys than I would trust a machine I was running myself to not leak my private keys. I'm a much worse sysadmin than AWS!

</comment></comment></comment></comment></comment><comment><USER16> Not directly related to TRIM, but AeroSpike has a nice test suite for SSDs, probing for IOPS and latency: [https://github.com/aerospike/act](https://github.com/aerospike/act)

They share their test results for both physical and cloud-based storage, I figured this would be of interest:

[http://www.aerospike.com/docs/operations/plan/ssd/ssd_certif...](http://www.aerospike.com/docs/operations/plan/ssd/ssd_certification.html)

</comment><comment><USER13> It feels like Samsung used the Linux community here as a free testbed.

Samsung knew that only Linux supported queued trim, so releasing it without proper testing is just externalizing the disproportionately increased cost of testing to the Linux community.

<comment><USER17> Is the loss of reputation really worth less than the value of the externalised testing?

<comment><USER18> Loss of reputation isn't a real thing in this industry. Pretty much all hard drive manufacturers have had high-profile "bad" models, for example.

<comment><USER15> It's a real enough thing that the IBM DeathStar incident [1] [2] was a large factor in making IBM exit the harddisk market (sold off to Hitachi)

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

[2] [http://www.astro.ufl.edu/~ken/crash/index.html](http://www.astro.ufl.edu/~ken/crash/index.html)

<comment><USER18> But they're still in business making hard drives, under the DeskStar name. Seagate had a round of failures at one point. I'm sure there are people out there who've sworn off WD as well.

<comment><USER15> Who? If you're referring to IBM, then they're not. IBM sold off their entire hard-disk division to Hitachi (which a few years ago sold it off to WD).

If you're referring to Hitachi, then they did continue it, yes, but they bought it on a fire-sale, and their name was not attached to the original affair, so they presumably did not see it as particularly risky.

</comment></comment></comment></comment></comment></comment><comment><USER19> Strange, Samsung 840/850 evo/pro are considered [1][2] among the best consumer SSDs. The issues article mentions do not exist on Windows, the SSDs are very reliable there. I suspect it's not only Samsung fault. Are we sure Linux handling of TRIM operations is absolutely correct?

[1] [http://techreport.com/review/27062/the-ssd-endurance- experim...](http://techreport.com/review/27062/the-ssd-endurance-experiment- only-two-remain-after-1-5pb)

[2] [http://www.anandtech.com/show/8216/samsung- ssd-850-pro-128gb...](http://www.anandtech.com/show/8216/samsung- ssd-850-pro-128gb-256gb-1tb-review-enter-the-3d-era/13)

<comment><USER20> Personally, I find Samsung has a "it boots? Fine then ship," mentality to pretty much all things. Their buggy phones, buggy SSD's, buggy TV's, etc. I wouldn't recommend them, even though they do well on SSD speed tests (which are often gamed by on-board ram caching).

<comment><USER21> The 840 Pro exceeded 2.4PB of writes before failing in Anandtech's tests over 18 months: [http://techreport.com/review/27909/the-ssd-endurance- experim...](http://techreport.com/review/27909/the-ssd-endurance-experiment- theyre-all-dead/)

Even if Samsung has _some_ systemic problems, it's more subtle than just schlocky marketing, or targeted benchmarking.

</comment></comment></comment><comment><USER22> I have this running on my Ubuntu Thinkpad with A Samsung 840 Pro as a weekly cron job. should I turn it off ?

      #!/bin/sh
      # call fstrim-all to trim all mounted file systems which support it
      set -e

      # This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
      # firmware may encounter data loss problems when running fstrim under high I/O
      # load (e. g.  https://launchpad.net/bugs/1259829). You can append the
      # --no-model-check option here to disable the vendor check and run fstrim on
      # all SSD drives.
      exec fstrim-all

<comment><USER8> Probably, unless you're running a kernel that was released within the last couple of weeks and includes this patch: [https://github.com/torvalds/linux/commit/9a9324d](https://github.com/torvalds/linux/commit/9a9324d)

<comment><USER22> wow - thanks. did NOT know about this.

</comment></comment></comment><comment><USER23> Pretty disappointing to see some of those Samsung drives on the list, because in some of the other tests/surveys I've seen they seemed to be among the better choices. _Sigh_ I guess Sturgeon's Law applies to SSDs too.

</comment><comment><USER24> "Samsung SSD 850 PRO 512GB recently blacklisted as 850 Pro and later in 8-series blacklist"

That's what I have in my home computer, with ArchLinux.

Do you think this problem only is something particular in the servers of the author of that article, or should this be interpreted as:

linux + samsung 850 = you will lose your data?

Thanks...

<comment><USER9> Unless you run the latest kernel, I would disable TRIM.

</comment></comment><comment><USER25> Using SAS SSD drives on a server is a bad idea for many reasons. One should use PCIe cards, that sit directly on the PCIe bus, such as FusionIO or SanDisk. They have been tested and retested (e.g. by Facebook), without the unnecessarily added complexity of SAS/SATA protocols. The I/O performance is also about 20x.

<comment><USER26> I don't think that testing by Facebook is going to help you unless you are using the exact same model as they are and are assured of using their exact firmware. At work we use SAS SSDs in large quantities and the firmware we use is customized to us (based on the mainline one). Do not assume that a bug that was fixed in our firmware was necessarily fixed in the normal one. One would think it would but it is possible that it wasn't ported to the mainline firmware.

</comment></comment><comment><USER27> Been there, done that. :|

Sometime around the end of 2013 I started getting frequently lost data and corrupted filesystems upon reboot. After much search and about 4-6 months into the issue, I found out that the culprit were the queued TRIM commands issued by the linux kernel to my Crucial M500 mSATA disk. The Linux kernel already had a quirks list with many drives, including some of the M500 variants, just not mine.

I added my model, compiled the kernel and the nightmare ended. I proceeded to submit a bug report and a patch. The patch got accepted (yay!) and the bug report turned to be very useful for other people with the same problem but different disk as I included the dmesg output that was specific to the issue. This meant that they could now google the errors and get a helpful result.

Such is the nature of free software; you are allowed to fix your computer yourself. :)

</comment><comment><USER28> I've worked on some interesting SSD deployments / experiments a lot over the past 12 months. Quite honestly - I wouldn't go anywhere near Samsung products regardless of their 'PRO' labelling or otherwise.

We have had great success with both Sandisk Extreme Pro SATA and Intel DC NVMe series drives, we've also recently deployed a number of Crucial 'Micron' M600 1TB SATA drives that are performing very well and so far haven't given us any issues.

<comment><USER29> I've done similar over the last three years and had good luck with the Crucial drives. However if you take a look at the Linux Kernel patch they link to (search for "don't properly handle queued TRIM"): [https://github.com/torvalds/linux/blob/e64f638483a21105c7ce3...](https://github.com/torvalds/linux/blob/e64f638483a21105c7ce330d543fa1f1c35b5bc7/drivers/ata/libata- core.c#L4109-L4286)

There are Crucial SSDs on the list. I'm going to be keeping a closer eye on them now.

<comment><USER28> Yeah I saw that - although that's the older, now discontinued series that has a different controller and doesn't show the same consistent performance as the newer M600 drives.

</comment></comment></comment><comment><USER30> What a wonderful story. I wish everyone was this diligent at troubleshooting. Then again, that would put me out of a job.

</comment><comment><USER31> Wow, that sucks. Another reason to use ZFS – you'd notice the corrupted files a lot sooner.

<comment><USER32> Or Btrfs on Linux.

<comment><USER33> In theory, yes. Unfortunately, every time my Btrfs filesystems have encountered a hardware glitch, it has happily trashed the filesystem beyond recovery (including both drives in a RAID1 mirror, one of which was perfectly OK). I use ZFS now, and while some features are compatable with Btrfs, the implementation quality, documentation, and feature completeness, and tool quality set it well above where Btrfs is at.

<comment><USER34> I fully second that: I'm using btrfs for / and ZFS for /srv. So many rashed filesystems beyond recovery on btrfs, so many joy, stability and easy tools for ZFS.

I'm really about to consider to migrate / to ZFS now.

</comment></comment></comment></comment><comment><USER35> I've had issues with these samsung 8xx drives, unfortunately they all happened at once. I gave up on their RMA/warranty process because I was bounced back and forth between the same two numbers a few times. Either side said that the other was in charge of this process(samsung bought the SSD division from seagate... or was it seagate that bought the HDD division from Samsung? To this day I have no clue.).

</comment><comment><USER36> I have a Samsung SSD 850 PRO 512GB in my Windows PC. And I have TRIM enabled in Windows:

         > fsutil.exe behaviour query DisableDeleteNotify
         DisableDeleteNotify = 0

Should I be worried?

<comment><USER2> Released versions of Windows do not use queued trim.

(That's why serious bugs like this can happen ;)

<comment><USER37> The problem exposed in the article is about un-queued trim.

</comment></comment></comment><comment><USER38> Can someone clarify the article's claim that these Samsung drives are really "broken" as such? We have a few of these on 3.13 and 3.16 kernels and ext4 with no problems. It seems that there must be something unique to their application in order to expose these trim failures.

<comment><USER2> Do you have the "discard" mount option enabled? Do you have a cron job that runs the "fstrim" command? It's possible your systems are not running trim. Or maybe your ext4 filesystems have little activity and you haven't had enough corruption to notice yet :)

Also, some Samsung 800 series drives only gained this bug in a recent firmware update (840 EVO specifically).

<comment><USER39> The 840 EVO joined the club with firmware EXT0DB6Q, which itself is a nasty little hack around a fundamental design problem with the tightly packed NAND cells.

Linux 4.0.5 ships with the patch linked above, but for a while you had to roll with a kernel built from source.

EDIT: The blatant file corruption issues only manifested after updating to firmware EXT0DB6Q.

<comment><USER40> Is there a list of firmware versions with release dates somewhere? I can't seem to find a changelog.

</comment></comment></comment></comment><comment><USER24> I'm so sick of this TRIM. Constant configurations needed because of it, constant care like "this thing you better don't do on SSDs". And then problems like this.

Do you think there'll ever be SSDs that don't need it?

<comment><USER41> I remember started incorporating SSDs into their computers and didn't support TRIM. Windows users were telling Mac users their Macs were practically obsolete because it couldn't do this one thing that was enabled for Windows. of course they sent that back to Apple and Apple replied, for years, you don't need it.

Eventually, they relented and enabled it on their SSDs. I'm pretty sure the marketing and engineering butted heads over this one stupid bullet point.

<comment><USER20> Except without TRIM you'll fill all your blocks and kill performance of your fancy $1500 Apple when the SSD is performing a dozen operations to create a space to perform writes instead of one operation on a properly TRIM'd drive.

Apple didn't do this because of "windows users whining" but because they knew they didn't want an angry mob of customers wondering why their drive is 10x slower than it was on day one.

Arguably, idle GC was "good enough," for some use cases but probably not for drives that aren't sitting idle all the time and on many hours a day. Even then, Apple probably didn't want to tell its customers "let it sit out overnight" to regain performance when supporting plain-jane TRIM was a trivial addition.

On-board GC + OS-driven TRIM are considered the optimal solution for SSD's.

</comment></comment></comment><comment><USER42> if one machine failed and failover kicked in correctly, why was the engineer paged?

<comment><USER43> Because it's hard to make an automatic monitoring system that reliably distinguishes between "a failure occurred but everything is fine" and "a failure occurred and now everything is on fire".

</comment></comment><comment><USER44> I have one of the affected drives mentioned in the article in my development laptop - the Samsung SSD 850 PRO 512GB.

As one of the most expensive SSD drives available on the market, it was disconcerting to find dmesg -T showing trim errors, when the drive was mounted with the discard option. Research on mailing lists, indicated that the driver devs, believe it's a Samsung firmware issue.

Disabling trim in fstab, stopped the error messages. However it's difficult to get good information about whether drive performance or longevity may be impacted without the trim support.

<comment><USER45> Trim really is only a helpful message when the drive is near full so the GC can preemptively zero blocks and retain good write speed. Without trim, the firmware must wait until it gets a write for a particular block before it know it can be erased.

If your drive has reasonably with unprovisioned space, it can simply work around the missing trim commands - this however, is theory, I do not know if the firmware actually does this. This is the exact thing that makes some drives better than others when working without trim.

<comment><USER44> Thanks. I'll probably end up creating an unprovisioned partition. It's frustrating, exactly because of the uncertainty re future performance. Especially given the price premium for pro/enterprise level hardware.

<comment><USER45> You can research if the firmware understands MBR and GPT - if it only understands one, then you have to use that. Alternatively use Samsungs own software (I think it's called Magician, can't remember exactly), it will make sure you have the unprovisioned space setup correctly.

</comment></comment></comment></comment><comment><USER46> Interesting! I sometimes work with SSDs as storage media for cameras (where Sandisk is the most popular brand by a mile) and I seriously doubt any camera firmware is doing drive maintenance. From what I know of digital imaging technicians, neither are they - if a drive starts acting up in any way, the usual policy is to just take it out of service immediately, recover anything that was on it, dump it, and buy a replacement.

</comment><comment><USER47> Given how many Samsung drives are listed in their findings, I can only attribute this to the fact Samsung make their own SSD controllers.

</comment><comment><USER40> How do you disable TRIM on common distros? Under Ubuntu, is it just preventing /etc/cron.weekly/fstrim from running, or is there more to it? What about CentOS, etc?

</comment><comment><USER48> What SSD do cloud hoster like DigitalOcean, Linode, Rackspace, Vultr, etc use?

I would some sites trade storage speed for more space (HDDs instead of SSDs).

</comment><comment><USER49> Undoubtedly the same issue happened to me on an 500GB 840 EVO with NTFS.

SSD zeroed out a part of the disk during runtime, as I watched this happen music was playing from this drive. It was mounted from Ubuntu MATE 15.04 and playing a music library through Audacious. Suddenly music glitched and IO errors began appearing. Rebooted to a DISK READ ERROR (MBR was on the EVO). Ran chkdsk from USB and it showed a ridiculous amount of orphaned files for ca. 1h. Once finished the _most frequently accessed_ files had disappeared. Download folder, Documents folder, some system files. Of course, some of the files could've been recovered had I not ran chkdsk off the bat, bot nonetheless it's an approximate measure of failure impact.

I began being suspicious of 840 EVO when sorting old files by date became fantastically slow. If you have a feeling this has happened to you recently - buckle up for a shitstorm.

TL;DR Avoid 840 EVO.

<comment><USER49> To the downvoters: this occurred a week after upgrading to Samsung's EXT0DB6Q firmware. Meaning that mentioned read delays should've been nonexistent.

Not to mention that this disk has only had 5TB written to it.</comment></comment>


Summer learning loss - <AUTHOR> https://en.wikipedia.org/wiki/Summer_learning_loss <comment><AUTHOR> " All children lose academic skills during the summer months, and family socioeconomic status (SES) is highly correlated to the level of academic growth or decline in the summer months. Two-thirds of the academic achievement gap in reading and language found among high school students has been explained through the learning loss that occurs during the summer months of the primary school years."

I had no idea that a) the summer vacations contribute this negatively, and b) that there is a significant gap between different socioeconomic status (because of access, family)</comment>


A Syllabus for the 'Occupy' Movement - <AUTHOR> http://online.wsj.com/article/SB10001424052970204883304577223020110788672.html?mod=WSJ_article_comments#articleTabs%3Dcomments

<comment><AUTHOR> I posted this primarily about the student loan portion. I have a lot of student debt which was well worth it for me, but didn't pay off well for many of my friends.

I really feel like there should be some real work being done to cap University budgets or a real plan to lower the costs.

I feel like part of the solution is definitely technology based. For example, instead of spending 12 weeks in a statistics class students could watch all the Kahn academy videos, then take some practice tests for 6 weeks, then enter a class and get an instructor driven advancement of the knowledge.

The school could better utilize classrooms and teach twice the students for the same price which should result in lower cost base. If administrators were responsible it could lower the cost of education.

<comment><AUTHOR> Also, it is worth noting that this article is somewhat political which sucks because if you read past the political agenda of the author they make some interesting points.</comment></comment>


Ask HN: Going down from Lead to Senior developer? - <AUTHOR> I've been working as a lead developer for a large company for the last 4 years (200+ people in total / managing about 15 developers) and have come to the conclusion that for the next 5-6 years I want to be doing more development and less management etc. So I thought of looking for another job but this time as a senior developer.<p>My question is, will this look bad on my CV if in the future I decide to look for a lead role again? What are the cons to doing something like this from your experience? <comment><USER2> Long story short, it will only hurt your career if you let it. I have gone up and down a number of times, even from founder to Senior dev and back to Engineering Manager and then Founder again and back to Senior Dev etc. I have had people ask me why and I have found it is the answer and honesty that counts.

Also, on your CV, nothing says you have to list your current role as Lead Engineer/Developer. You can easily list it as Senior Developer and describe your job duties honestly as the Team Lead. It would stop the non-technical resume scanners from ruling you out and in all fairness is exactly what you are, lead is a role of a senior developer generally. Most companies classify it that way, and even if your official title was Lead Engineer, I'd put Senior Engineer and describe the role accurately so that more companies have the box to classify you for (HR type thing). If they ever call for a reference at the company the difference between Lead and Senior is lost in the noise. I do not consider this dishonest as you aren't claiming you had a role you didn't, you were still a Senior Dev, just also had lead responsibilities. The people that get rightfully smacked (and are lying) are the ones that claim they were CTO/CIO and were really a Senior Developer or something else.

As an example, when I was at GE, there were 13 team leads on our large team and we referred to them as team leads. However, their official title was Senior Engineer. Some guys listed on their resume "Team Lead" others "Senior Engineer", neither was wrong. Hell, when we approved business cards for them no one cared whether they listed team lead or senior engineer either, just didn't matter.

</comment><comment><USER3> The toughest part will be getting your foot in the door at a new firm since your resume will read as a demotion. That said, while more difficult to describe on your resume, it's all about the story you tell. In your post, your desire to code more, manage less makes a lot of sense and I bet resonates with many others who have felt similarly. Also, as @davismwfl mentioned, you can tweak your resume to avoid getting 'scanned out' without being misleading. In their own world, the difference between a Lead and Senior Recruiter is thin - generally Lead means they own fewer, higher level reqs themselves and manage staff. Senior Recruiters produce greater output since they don't have the overhead of managing others. Not really a step down, just a different job - why not call yourself a Lead/Senior Developer?

</comment><comment><USER4> This point doesn't really matter but 200+ is a small company. But leading 15 developers is a nice pin in your hat.

I wouldn't apply for senior roles. I'd look for Principle, Architect type roles. Something that acknowledges your leadership skills but is also technical. I think a 'Senior Developer' role would definitely be a huge step backward in terms of career.

Personally I find the long term career aspects for someone that can manage a few dozen developers to be much MUCH brighter than a senior developer, so I have a hard time understanding why you'd want to switch.

I mean, your next role could be a VP type role where if you are smart with your $$ you can go and be whatever you want after a few years...

<comment><AUTHOR> Thank you for your response - I agree with what you are saying.

> so I have a hard time understanding why you'd want to switch

The main reason is that I want to write code and build stuff. Most of my current time is bug fixes (last point of escalation), estimates, meetings and managing people, and the odd "new feature" I develop when everyone else is busy. One of my main strengths is that I can get to the bottom of bugs really quick and provide (what other people call) "elegant" solutions but I think I'm falling behind on actual development skills due to lack of time (I see what other developers write on the internet and I realize that I'm waaaaay behind).

I'm aware that from a career perspective it doesn't make much sense and that is why I asked this question in the first place. I do want to write more code but I 've worked very hard to get where I am now and I don't want to make a bad call.

</comment></comment><comment><USER5> Depending on your skills and the companies you are looking into, there is decent flexibility between independent contributor and technical tracks. Making a move that is lateral, between tracks, shouldn't pose a problem.

With regard to your future prospects, it's all about how you spin it. However, recruiters / HR aren't creative folks. They will look at your last job to slot you into your next job; if and when you want to switch back to management, that job is probably not going to come looking for you.

</comment><comment><USER6> I thought a lot of places don't really have a lead developer position/title. More of a role. And I doubt you'll get out of leading various efforts at your new company.</comment>


Create Desktop Apps with HTML5 and Go - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=HTML5-Golang-Desktop-Apps <comment><USER2> I'm doing something similar (Go-based desktop app) with Aether ([https://getaether.net](https://getaether.net)), without requiring any additional tools.

The short version is, I have an Electron app, but the extent of my JS is just skin — the UI. The JS talks to two Go daemons which do the 99% of the work. It's also much more memory efficient than doing it in JS, and allows for massive parallelism. So you get best of both worlds, speed / clarity of Go, and well-developed JS UI patterns (Vue). It works well, with the caveat being a tradeoff in complexity in incorporating gRPC to let daemons talk to each other.

Here's the source code: [https://github.com/nehbit/aether](https://github.com/nehbit/aether)

</comment><comment><USER3> Electron is too bloated and heavy, and doesn't meld with the desktop... hey, lets create a new system that uses the same bloated/heavy bits as electron and also the UI that doesn't blend well.

edit: okay, so it doesn't have to download as much since it uses the already installed chrome, meaning you have to conform to ??? from an app perspective to your JS... you may as well just use electron or carlo

<comment><USER4> The project they describe IS a Go port of carlo (it's even named lorca).

carlo/lorca is meaningfully different than electron.

Electron takes chrome code base, adds node.js code, a bunch of other stuff and makes it an SDK. As a result Electron-based app consists of a copy of chrome a copy of node and maybe 2% of the total size is unique to the app.

carlo/lorca re-use Chrome instance already installed so 100% of the size is unique to the app.

That removes the biggest complaint about electron i.e. bloat of shipping 100+ MB of SDK to deliver 100 kB of app.

<comment><USER5> I think the biggest complaint about electron is not bloat of shipping the app (a one time download, not a big deal in modern times), but _running_ the app. Since each electron program uses its own instance of Chrome, there is no resource sharing and so memory consumption is high.

<comment><USER6> Absolutely. I don't really care about the size on disk, a little bit, but not really. What I really care about is some application using far too much RA - Chrome (and by extension Electron) is notourious.

</comment></comment></comment></comment><comment><USER7> Well, on one hand it will certainly lighten the ressources needed.

On the other hand, you don't know on what version of Chrome/Chromium you'll land so you won't be able to use specific API for sure.

But for having developed in the end of the 90's a web kiosk software, based on Internet Explorer (I think it was IE5 back then), software that still have last versions running (no one, including myself, would thought it'll survive that long), I will sure have a look closer on the project if you can intercept the before navigate event (or whatever the name is with Chrome)

<comment><USER8> > On the other hand, you don't know on what version of Chrome/Chromium you'll > land so you won't be able to use specific API for sure.

Is it just me, or the API changes and breaks way too often? I recently wanted to make an extension and I Google'd here and there, and all the code posted just a few months ago is now obsolete. It is crazy!

<comment><USER9> I think WebExtensions might be to blame for that, but without more information as to what wasn't working I couldn't say.

</comment></comment></comment><comment><USER10> Man, that slidedeck is frightening for someone who wants functional applications:

      Well-designed and attractive typographymakes content meaningful.
      Animation makes important parts standout and helps with micro-interactions.
      Onboarding, common for web andmobile apps, helps more than traditional"F1" button.
      Visual trends may change and it shouldnot be hard to update the UI withoutrewriting it all.

The result is what used to be described as "flash websites": everyone has their own UI, with custom animations that mean something entirely unique to that application which may or may not make sense to you.

But I could not explain this half as well as these articles about Flash. They also apply to HTML5.

[https://www.nngroup.com/articles/flash-99-percent- bad/](https://www.nngroup.com/articles/flash-99-percent-bad/)

</comment><comment><USER11> Every time I see these things I just sit in relative disbelief trying to figure out how PWAs have somehow not taken off yet.

Perhaps this year when they finally come to Mac too (they already work on Windows and Linux) it will finally happen. then again with the Mac App store I'm not sure that fits the Apple "vision" (if you can call it that anymore) either.

Either way its sort of maddening to see this as I think PWAs are the right answer for these questions and yet people keep bringing new and unnecessary solutions to the table

<comment><USER12> May I ask what you use to install a PWA on Linux? I am so far using WebPin, but it doesn't offer some PWA APIs and is based on Chrome instead of Firefox.

<comment><USER13> Chrome seems to allow it after enabling it in chrome://flags. The only desktop-installable PWA I've been able to find thus far is pokedex. Pretty cool to see it show up like any other app on ubuntu, though.

</comment></comment></comment><comment><USER14> I fail to see how this is any resource-lighter than Electron. It still uses a browser. It might or it might not be Chrome, but it's still a browser, so it will certainly use, give or take, the same amount of resources the average browser takes.

The only thing I do see as an advantage is the reduced size in the distributable. But, imho, size really doesn't matter these days.

<comment><USER15> What application renders HTML/CSS/JS using less resources than a browser?

<comment><USER16> A document reader, perhaps. Something like zathura/mupdf that can read epub files. I think epubs use html/css for formatting. I could be a bit wrong here.

<comment><USER17> Yes/no.

Epub 3.x does support a substantial subset of HTML5. However, there are only a small number of core media types that can come with an expectation of working.

Atop of that, most styling can be expected to be ignored.

The CSS-section of the spec [0] lays out most CSS fits the spec, with a few exceptions, and a few additions, but that most readers won't make use of them. That is absolutely the case.

Most of the speed from an ereader over a browser comes from these parts:

\+ You can safely ignore most CSS, or all CSS and just use Author-Defined CSS profiles.

\+ You can safely ignore any of the script tags you encounter, though they are part of the spec.

\+ You don't need to support every media-type out there.

\+ Most documents won't be HTML - they'll be the well-defined XHTML, meaning you need less cascading rules to transform the document into something well- formed.

[0] [http://www.idpf.org/epub/31/spec/epub- contentdocs.html#sec-c...](http://www.idpf.org/epub/31/spec/epub- contentdocs.html#sec-css)

</comment></comment></comment></comment><comment><USER18> In case you are interested, there is a flutter based GUI framework for Go, which looks promising. [https://github.com/Drakirus/go-flutter-desktop- embedder/blob...](https://github.com/Drakirus/go-flutter-desktop- embedder/blob/master/README.md)

</comment><comment><USER19> Can anyone tell me what mechanism would prevent any other software on the same system from intercepting the connection to Chrome? This isn't really an issue when running with X11 on Linux as any app can grab text from another window but e.g. Wayland provides much better barriers between apps.

<comment><USER4> The way this works: that the program locates chrome executable, launches it in a special mode, chrome prints which port it allocated for that instance to stdout, the program parses stdout to find the port and opens websocket connection.

See: [https://github.com/zserge/lorca/blob/master/chrome.go#L50](https://github.com/zserge/lorca/blob/master/chrome.go#L50)

How would that be intercepted? Only the program that launches that chrome instance can read chrome's stdout.

It's no more or less secure than the same concern with a regular Chrome.

</comment></comment><comment><USER20> Webview seems interesting. Go/C++ to do native stuff and use the systems web view to render the interface. Seems like the best of both worlds.

</comment><comment><USER21> It is a bit weird to me that people are so intent on reinventing HTAs.

<comment><USER22> HTAs ?

<comment> T-A [https://en.wikipedia.org/wiki/HTML_Application](https://en.wikipedia.org/wiki/HTML_Application)

</comment></comment></comment><comment><USER23> This looks really interesting! I actually love browser/html/javaScript as a UI significantly over "native" but creating Electron based stuff always has me worried shipping a gigantic bloat and keeping it updated.

</comment><comment><USER24> Alternative that uses the system webview rather than requiring Chrome: [https://github.com/zserge/webview](https://github.com/zserge/webview)

</comment><comment><USER25> the weakest point in systems like this is usually the mechanism by which the local process communicates with the browser. it's very hard to secure such a mechanism properly as there's no official API for it

this claims to use the chrome devtools debug protocol, which I believe is usually entirely unauthenticated. i would not be surprised if someone can compromise this system via this protocol

edit: this happened already with node in the case of CVE-2018-7160

</comment><comment><USER26> HTML is really bad to create GUI applications, and it uses javascript. It's not a pure Go desktop application.

A Qt equivalent in go would be worth considering.

</comment><comment> irq-1 There is also [https://sciter.com/](https://sciter.com/)

It's non-free but you can "Use Sciter in binary form as it is published on the site" so cgo with bindings and the downloaded binary.

[https://github.com/sciter-sdk/go-sciter](https://github.com/sciter-sdk/go- sciter)

</comment><comment><USER27> An alternative is this:

[https://github.com/andlabs/libui](https://github.com/andlabs/libui)

There are Go bindings here:

[https://github.com/andlabs/ui](https://github.com/andlabs/ui)

</comment><comment><USER28> Is it worth mentioning the 5 specifically anymore? It doesn't seem to be even using HTML5 features.

<comment><USER29> Still a buzz word...... apparently.

</comment></comment><comment><USER30> Or, don't.

</comment><comment><USER31> Electron is bad? Your website is bad and I don't trust anyone with a bad website</comment>


How to pass proper DNS to your Docker containers - <AUTHOR> http://www.releasemanagement.org/2016/02/how-to-pass-proper-dns-to-your-docker-containers/ <comment><USER2> So basically, Docker can't make heads or tails of networking without human intervention, despite making it complicated behind an opaque layer of mechanics. Good job, I say. Really good job.</comment>


Show HN: A high-performance framework for high-level parallel programming - <AUTHOR> http://pskel.github.io/ <comment><AUTHOR> PSkel offers a high-level API for programming for heterogeneous parallel architectures, including both multi-core CPUs and GPUs.

PSkel is a high-performance framework for parallel skeletons. Using a high- level abstraction for parallel skeletons, PSkel releases the programmer from the responsibility of writing boiler-plate code for parallel programming in heterogeneous architectures, e.g., explicit synchronization and data exchanges between GPU memory and main memory. Furthermore, the framework translates the abstractions described using its application programming interface (API) into lowlevel C++ code compatible with Intel TBB, OpenMP and NVIDIA CUDA. PSkel's API is mainly based on a C++ template library that implements parallel skeletons and provides useful constructs for developing parallel applications. The framework provides an API for manipulating input and output data; specifying stencil computations; encapsulating memory management, computations, and runtime details.

</comment><comment><AUTHOR> For the stencil computation, if the input and output array together are greater than the GPU memory, there is an automatic and transparent method for tiling the data array into the GPU's memory, computing the stencil pattern in several chunks.

</comment><comment><USER2> Can we apply sorting algorithms using the abstract developed by the api if the data were to be put in a matrix, with matrix rows as selection parameters.

Also will it be compute effective to do so, given GPU memory restrictions and comparative nature of algorithms.

<comment><AUTHOR> I don't think the Stencil pattern is the best pattern for sorting algorithms, but I think it can be done.

The following link has a very simple example: [https://github.com/pskel/pskel/wiki](https://github.com/pskel/pskel/wiki)</comment></comment>