Advice for Computer Science College Students - s-phi-nl http://www.joelonsoftware.com/articles/CollegeAdvice.html

<comment><AUTHOR> "Most colleges designate certain classes as "writing intensive," meaning, you have to write an awful lot to pass them. Look for those classes and take them! Seek out classes in any field that have weekly or daily written assignments."

Good advice here. Get in the habit of WRITING (in a form that keeps an archive, that is email preferably over unarchived chat) to professors about any issue that comes up in class.

</comment><comment><USER2> The title should be changed to say it is from 2005.

<comment><USER3> 2005 or not it's still valid :)

<comment><USER4> He is not saying it's invalid, he is saying it's _old_ (and probably posted here a couple times before).

</comment></comment></comment><comment><USER5> I've never been a fan of: while ( _s++ =_ t++); I think it pretty just make the code harder to read. (Ok, maybe on some compilers it can be faster). I mean, everytime I see a line like that, I always assume there's a nasty bug hidden in it and I spend lots of time looking at it to be 100% sure there isn't.

<comment><USER6> There _is_ a nasty bug in it, a buffer overrun bug. If, for any reason, _t_ is not properly null terminated, then you'll have a problem. If, for any reason, _s_ is not at least as large of a buffer as _t_ , then you'll have a problem.

How bad of a problem? Well, quite potentially the worst kind: a serious buffer overflow problem that could result in a remote execution vulnerability. This is just the sort of thing that gets patched every Tuesday as engineers come to the "oh shit!" realization that yet another bit of crusty code using some ancient "clever" (actually lazy) idiom has been sitting around just waiting for some ne'er do well to take advantage of it and create yet another 400,000 system botnet.

It's good to have a solid knowledge of C programming fundamentals, but actually writing good, safe C code is non-trivial. Moreover, the mentality that one can just slap together some "efficient" C code and ship it out the door has resulted in more heartache and more sysiphean turd polishing than almost any other single software engineering mistake.

<comment><USER7> That's not a bug, that's strcpy. You are being hysterical.

</comment></comment></comment><comment><USER8> In regards to summer internships:

I'm just about to intern for a second year Electronic Arts. If you saw a resume with two consecutive internships at the same place (same position and team, too), would you think better or worse of it as compared to someone who did two different, fairly big-name companies?

<comment><USER9> Two consecutive internships looks no worse or better than two different internships.

Now, two different internships might give you _completely different experiences_ , or _depth as you return to the same project as before_ if you go back to the same place. But those things are both valuable in and of their own.

In short. Enjoy EA. Don't worry.

</comment></comment><comment><USER10> Ha, I almost posted this about the same time you did- I got to this page earlier today when I was led on a hunt started from a post on HN about hiring- I wanted to know about hiring CS students as they were undergrads and this post was in google search results.

I thought his shot at Facebook in one of the opening paragraphs was funny- just in general it's interesting to see how so much has changed in just a few short years to where a leading blogger could be so wrong about what was to come (nothing again Joel).

</comment><comment><USER11> I'd like to see a list of recommendations like this for entrepreneurs or would-be entrepreneurs in college (something like <http://www.paulgraham.com/mit.html>).

I wonder what Caterina Fake would say about Joel's list (<http://www.caterina.net/archive/001234.html>), assuming the hackers he's speaking to are also entrepreneurs?

</comment><comment><USER12> I am in a logic class that sounds just like the Dynamic Logic one Spolsky describes.

I hate it.

The homework two weeks ago? Prove that p = !!p. I gave up.

<comment><USER13> Just claim to be an intuitionist. Depending on your profs sense of humour, it's a valid answer.

<comment><USER14> Er... could you explain this?

I don't get it, I'm afraid =\

<comment><USER13> It's a reference to intuitionism, a constructivist approach to math and logic. Because the law of the excluded middle is disallowed in intuitionist proofs, you can't show what the parent comment was annoyed about.

</comment></comment></comment></comment><comment><USER15> I'm screwed.

</comment><comment><USER16> Where is the downrate button? Sigh.</comment>


Walk this way  - <AUTHOR> http://www.economist.com/blogs/babbage/2012/01/crowd-dynamics

<comment><USER2> Kardi Teknomo does some interesting research on pedestrian dynamics, and has a pretty good tech blog in general:

<http://people.revoledu.com/kardi/index.html>

</comment><comment><USER3> This reminds me of the experiment the German town Bohmte ran getting rid of the majority of their road signs and lights. Forcing people to remain attentive to their surroundings resulted in a substantial drop in serious traffic incidents. [http://www.npr.org/templates/story/story.php?storyId=1821731...](http://www.npr.org/templates/story/story.php?storyId=18217318) [http://www.drive.com.au/editorial/articledetail.aspx?Article...](http://www.drive.com.au/editorial/articledetail.aspx?ArticleID=54396&vf=1)

</comment><comment><USER4> Jane Jacobs is once more beating Robert Moses.

<comment><AUTHOR> _"... Robert Moses ..."_

I didn't know anything about Moses so I looked it up. There's a big difference in the wikipedia entry ~ <http://en.wikipedia.org/wiki/Robert_Moses> compared to the Atlantic ~ [http://www.theatlantic.com/magazine/archive/1939/02/robert-m...](http://www.theatlantic.com/magazine/archive/1939/02/robert- moses/6543/)

One thing both articles didn't make clear, does NY have a real transport problem now?

</comment></comment><comment><USER5> IMHO this is the interesting part: "Correction: In an earlier version of this post we said that Space Syntax's model represented road intersections as nodes of a graph and streets as connections between the nodes. The clever trick was, in fact, to turn that intuitive reasoning on its head. This has now been corrected. Apologies."

<comment><USER6> What's funny is that many UWashington CS students tell you that trick in their job interview, from some popular class project they do.

</comment></comment><comment><USER7> The examples shown are great positives for London, but one can't make a great city out of traffic modelling alone - even pedestrian (rather than vehicular) traffic modelling. Space Syntax take note...

<comment><USER8> As some one who works in central London it is not going to stop nutters on fix wheeled bikes riding at full pelt through clusters of pedestrians is it though?

<comment><USER7> Nope. To me, London has a separate problem with cyclists who think central London is a velodrome. Not to blame all cyclists, because most of them are fine - but there are some idiots out there with a complete disregard for safety..</comment></comment></comment>


Show HN: Python API for Xgboost, LightGBM, Neural Networks, RGF, Random Forest - <AUTHOR> https://github.com/mljar/mljar-api-python <comment><AUTHOR> You can find examples here: [https://github.com/mljar/mljar- examples](https://github.com/mljar/mljar-examples) You have one API (for many ML algorithms), in which you just select algorithms and call 'fit' to train and tune them. Training and tuning run in the cloud on multiple machines (which makes it fast). Everything is logged on your MLJAR account, so you can check models with browser.</comment>


Another Programming Idiom You've Never Heard Of - <AUTHOR> http://prog21.dadgum.com/141.html

<comment><USER2> I have heard of both this programming idioms: this and the original. In fact, both of these two programming idioms can be expressed in terms of in degree regular algebraic relations (e.g Common Lisp place forms). Indexes are places because you can retrieve the value at an index (nth coll i) and you can edit the value at the index (setf (nth coll i) val).

Slices of collections are themselves places, and they can be decomposed further into even finer places. In Common Lisp the subseq function describes such places: (setf (subseq coll start end) slice). Injective functions have an in degree regularity of one, which means that they are trivial place forms. As such, the original programming idiom can be described as a process that moves an object to a place, runs some functions, and then moves back to the starting place.

</comment><comment><USER3> Perl can do this as well:

        @a = (10, 5, 9, 6, 20, 17, 1);
        @slice = @a[0, 1, 3, 6];

Though I've never seen this used for anything other than simple sublists (like @a[0..3]).

<comment><USER4> So can MATLAB.

       a = [10 5 9 6 20 7];
       slice = a([1 2 4 7]);

I guess it's not called matrix laboratory for nothing.

<comment><USER5> plus, MATLAB has "find", which returns a list of all the positions of a matrix matching some pattern. The combination of the two makes things that are very ugly to express in other languages quite pretty.

Too bad it's wicked expensive, proprietary and slow. I quite enjoy the paradigm.

<comment><USER6> The obscure matrix language IDL has this too via WHERE. It's really nice. This syntax is essential for image processing unless you want to write a bunch of unnecessary for loops.

img[WHERE(img LT 5)] = 0

I built a bunch of sparse image processing algorithms using index lists. Pass in the indices and the values at those locations. Everything else is assumed zero. Sort the index array and you can use binary search to look up neighbors. On my domain images which were less than 2% foreground it made a big difference.

</comment></comment></comment></comment><comment><USER7> That idiom is called an array slice in perl.

      # perl -e "print join ' ', (10,5,9,6,20,17,1)[0,1,3,6]"
      10 5 6 1

<http://perldoc.perl.org/perldata.html#Slices>

</comment><comment><USER8> Clojure can do this as well without requiring any special syntax or function because all sequence are funcallable:

      (map [1 2 3 4 5 6 7 8 9 10] [0 3 4])
      => (1 4 5)

<comment><USER9> Does it do the slicing in parallel?

<comment><USER10> If not (I assume no), would you accept

(pmap [1 2 3 4 5 6 7 8 9 10] [0 3 4])

instead? pmap being defined as "Like map, except f is applied in parallel" [1]

That said, I'm too ignorant to understand the deeper benefits of the parallel approach. It seems it enables nifty things according to some other comments in this thread, yet I've been unable to understand quite why so far.

1: [http://clojure.github.com/clojure/clojure.core- api.html#cloj...](http://clojure.github.com/clojure/clojure.core- api.html#clojure.core/pmap)

<comment><USER9> Yes, that works.

The deeper benefits come from having a language design where almost everything expects to work with arrays and array indices, so that idiom can be combined with many other operators and combinators.

Quick example in K, J's cousin, which I know far better: consider "{[d;p]d@&p d}". That's a 3-argument lambda which takes a data set (d) and a predicate function (p), applies the predicate function to the data set's values (p d) returning a boolean vector of the predicate's results, filters the result set to just the indices of the true/1 values (&), then indexes the data set by those indexes. The predicate function can be applied to the data set in parallel, and it can be slices by the indices in parallel. D can be a small data set in memory, or _a terabyte of memory-mapped data on disk_ ; it doesn't matter. (Really, it could just be "{x@&y x}" or "{x[&y[x]]}", but I named the parameters.) 'where' ("&") is just one of many operators that combines with array slicing like this.

In pseudo-Lisp it might look something like "(lambda (d p) (pmap d (where (pmap f d))))". 'where' is a function that converts e.g. [1 2 3 4 5] to [0 1 1 2 2 2 3 3 3 3 4 4 4 4 4], and [0 1 0 1 0] to [1 3]. This works for both boolean results and reshaping data sets, but the underlying implementation is the same.

</comment></comment></comment></comment><comment><USER11> This seems cool but I have a question. Is this:

> 6 5 4 3 2 1 0 { 10 5 9 6 20 17 1

Stored in an array? Because if it is, when I do this:

> 2 3 4 5 6 { 10 5 9 6 20 17 1

Won't I have to rearrange the whole array? (deleting two of the index parts)

<comment><USER9> It doesn't rearrange the array, it constructs a new one. While I'm not 100% sure about the J implementation* , K and related languages usually modify the array in place if there's only a single reference to it (so that mutation is still referentially transparent), to avoid extra allocation & copying.

* It's now open-source at <https://github.com/openj/core>, but I have a hard time following their C style -- it's legal C, but written like J.

APLs have memory allocators that are designed with arrays in mind, making this less expensive than you might expect. See this post I wrote about the memory management for Kona (<https://github.com/kevinlawler/kona/>), an open-source implementation of K: [https://groups.google.com/forum/#!topic/kona- dev/fs5GoSBtF3Y...](https://groups.google.com/forum/#!topic/kona- dev/fs5GoSBtF3Y/discussion) .

</comment></comment><comment><USER12> Python version

      [(10,5,9,6,20,17,1)[i] for i in (6,1,3,2,0,5,4)]

</comment><comment><USER13> If this piques anyone's interest in the J language, Dadgum writes elsewhere about a neat book to learn graphics programming in J.

<http://prog21.dadgum.com/19.html>

</comment><comment><USER14> Oh look, you just invented array slices!

<https://en.wikipedia.org/wiki/Array_slicing>

<comment><USER9> J has it via APL, which is heavily based on linear algebra. (Not surprisingly, R, MATLAB, and other matrix-math-centric languages also have it.)

It's one thing to say, "yeah, I can kinda do this in [language]", it's quite another when your whole language is _based on it_ , as the APL family are. If you can do array slicing in parallel, you can work with permutation vectors rather than sorts (as he notes), and guess what? The same idiom works for relational joins, among many other things. (The killer app for Q, kdb+, is an in-memory, column oriented relational database. NoSQL, before it was cool.)

<comment><USER15> This pattern is incredibly useful in Q, and one of the things I miss about using it daily. Of course, now I mainly use java, so the pendulum has truly swung.

</comment></comment></comment><comment><USER16> Didn't know about the 3[array] syntax in C. I know that a[b] evaluates to *(a+b) but never tought that the inverted form would work.

</comment><comment><USER17> He should rename it "Another Programming Idiom I Had Never Heard Of".

</comment><comment><USER18> How can it be an idiom if we haven't heard of it?

<comment><USER19> There are plenty of idioms in Hebrew that I've never heard of.

This is an idiom in a subculture you aren't a part of, in languages you do not speak. There are a lot of them. The author assumed that because J is not really a "mainstream language" that the people reading his blog would probably not be familiar with its idioms.</comment></comment>


Ask HN: Tiling Window Manager for Windows? - blue-- There are many tiling window managers available for both Linux and OS X that have been shown and discussed on HN. There is also this post from about 2 years ago:
https://news.ycombinator.com/item?id=8165924
Since quite some time has passed, I was curious if anything has changed. Does anyone have recommendations of tiling window managers for Windows? <comment><AUTHOR> You have the excelente [https://brianketelsen.com/i3-windows/](https://brianketelsen.com/i3-windows/) posted earlier here. I use it daily, it's really great.

<comment> blue-- This is interesting, but I don't have Windows Insider Edition set up. Do you use insider edition regularly?

</comment></comment><comment><USER2> Best I've found is winsplit revolution: [http://winsplit- revolution.en.softonic.com/](http://winsplit-revolution.en.softonic.com/)

Although I haven't need it since Windows 10.

</comment><comment><USER3> Bug.n: [https://github.com/fuhsjr00/bug.n](https://github.com/fuhsjr00/bug.n) it's what is the closest to something like i3.</comment>


Palantir valued at 10.5bn ahead of direct listing - <AUTHOR> https://www.cnbc.com/2020/09/09/palantir-valued-at-about-10point5-billion-ahead-of-direct-listing.html <comment><AUTHOR> Down from 20.4bn valuation in 2015</comment>


Scientists brew cannabis using modified beer yeast - <AUTHOR> https://www.nature.com/articles/d41586-019-00714-9 <comment><USER2> As someone in this industry, I doubt this will become a reality. The real problem is cost. When you use yeast, you have to supply the energy for the entire system. When you grow a plant, you get free energy from the sun. The cost savings are hard to beat. Nicotine extracts aren't made from yeast either. That should be a big warning flag for the business sides of these cool projects.

<comment><USER3> My understanding of illicit cannabis production is only from films like "Lock, Stock and Two Smoking Barrels" but it seems to be heat lamps in basements and caravans etc.

And the impression the news gives me is that UK Police regularly use heat cameras from helicopters and analysis of electricity bills to find illegal growers.

Would this approach allow test-tube illegal cultivation with a much less detectable footprint?

<comment><USER4> I was thinking this'll take prison hooch to the next level

</comment></comment></comment><comment><USER5> One of the reasons why the prohibition of alcohol failed but cannabis is illegal has to do with the DIY-supply. Everyone could brew some alcohol at home. Growing a hemp field is not so easy to do undetected and therefore much easier to enforce. Cheap artificial lighting did have some impact but this yeast (if it works well) could be a real game changer.

<comment><USER6> The prohibition of cannabis also failed. More people than ever are using it, and where it's illegal it's run by gangsters, the predictable outcome, exactly the same as prohibition of alcohol.

Actually I think it's easy to grow weed in your backyard with the sun, just make sure to kill the male plants and you're good. Whereas say growing tobacco requires much more onerous and is generally done on large farms.

<comment><USER7> I just had a vision of a bunch of cops growing exclusively male plants, and concentrating the pollen in a centrifuge device, to be used later in neighborhood foggers.

</comment></comment></comment><comment><USER8> No, scientists brew THC and CBD using modified beer yeast.

Much as how coffee or tea have a lot of interesting things in them that are not caffeine, cannabis has a host of interesting things in it that are neither of those two primary cannabinoids.

</comment><comment><USER9> yup I think that's something I'd actually call a true lifehack!

but that being said, it would be really interesting to see how a development like this could influence the nation wide development of cannabis legislation, especially down here in the Bible belt. granted I don't think it'll necessarily have a huge impact but i think having a cheap and efficient source of cannabinoids equalizing the market value and providing a larger pool to experiment upon to help support the idea of cannabis legalization

but hey even if not it's cool to see what we can hack nature to do!

<comment><USER10> Until the next hacker crosses yeast and poppies to create home-brew opiods. Very soon you might not need to be a chemistry teacher to found your own meth empire. Some sugar water and a few drops of the right yeast might suffice.

<comment><USER11> That happened a while back

[https://engineering.stanford.edu/magazine/article/stanford-r...](https://engineering.stanford.edu/magazine/article/stanford- researchers-genetically-engineer-yeast-produce-opioids)

<comment><USER12> Hasn't this been around for a little time also? Yeast Can Now Produce THC, Marijuana's Infamous Compound - September 15, 2015 [http://blogs.discovermagazine.com/d-brief/2015/09/15/modifie...](http://blogs.discovermagazine.com/d-brief/2015/09/15/modified- yeast-marijuana/)

<comment><USER13> Those yeast were fed a precursor. There is however a patent that takes it all the way from sugar.

</comment></comment></comment></comment></comment><comment><USER14> This seems like a nice end-around for the argument that weed isn't medically pure. I remember one of the arguments against medical marijuana was that CBD and THC aren't the only active chemicals that weed is producing. In this case you can create only the chemicals you want when conducting trials and manufacturing pharmaceuticals.

</comment><comment><USER15> How does yeast modification actually work?

<comment><USER16> You take a gene from a plant, change the codons to whatever yeast uses, and then you put it into the yeast DNA.

The hard part is that presumably multiple genes are required to produce a compound, and getting all of them to produce stuff at the right rate is probably difficult as well, since we don't 100% understand how to regulate gene expression.

<comment><USER15> Thanks! Could you shed some more light on how one actually takes a gene from a plant (in a lab setting I suppose) and put it into yeast?

<comment><USER17> * Extract RNA

* Reverse-transcribe this into DNA

* PCR amplify target sequence using custom primers. Generally you design the primers to create restriction sites flaking the sequence of interest.

* Restriction digest the amplicons

* Pop that into a cloning vector, e.g. Gateway

* Clone and isolate a colony

* Sanger sequence to confirm you've got what you want

* Move construct into expression vector

* Transform yeast with expression vector construct

* Sequence some colonies to find one that worked well (these vectors use resistance genes to provide an easy screening process)

* Once you've confirmed it worked, you're all set.

You can just use plasmids or do a stable transformation; the latter is harder but it's what you'd want for commercial production I think.

</comment></comment></comment></comment><comment><USER18> 'hacked' is very quickly becoming one of my least favourite words. Just call it what it is: it's not hacking, it's genetic modification.

<comment><USER19> Ok we've modified the title.

<comment><USER20> Why? The original title was totally fine.

<comment><USER19> If a user complains about a title being baity and they have a point, we tend to change the title on the grounds that many other readers probably feel the same way.

This was a borderline case but I think they had a small point that 'hacked' was a bit baity. Also, the GP comment was heavily upvoted, indicating that a lot of users agreed.

<comment><USER20> > and they have a point

But they don't: the usage of "hack" in the title was squarely within the original definition of "to hack" (for instance, it's covered by definition 6 in the Jargon File if we accept [as is generally done in hacker culture] that such hacks aren't restricted to computer usage). In non-technical usage the term "hack" tends to mean something else but given that HN literally has "hacker" in its title, shouldn't we accept correct usage of the word on this site, even if it doesn't fall outside its non-technical mainstream definition?

Speaking as a biologist, the usage of "hack" in the title is completely idiomatic within the field (compare: "genome hacking"). The claim that this usage is bait is simply factually incorrect.

> Also, the GP comment was heavily upvoted

On the contrary, it was downvoted (greyed out) at the time the title was changed. It's _now_ back to black.

<comment><USER19> The baitiness comes from the over-use of the word in headlines. I don't disagree with you but unfortunately accuracy is not the only concern.

Re the GP comment, I was referring to [https://news.ycombinator.com/item?id=19299892](https://news.ycombinator.com/item?id=19299892), which was always upvoted and quickly reached a high positive score. When users are expressing an allergic reaction like that, we've learned that it's best to just yield. A modified title can be just as accurate and usually reduces inflammation.

That said, I think your argument is at least as persuasive. We did the standard moderation thing in this case because, as I said, it's proved to be globally optimal. But it doesn't seem to have been locally optimal here.

</comment></comment></comment></comment></comment></comment><comment><USER21> > _Scientists brew cannabis using modified beer yeast_

There's no word in this title that I don't like!

</comment><comment><USER22> THC and CBD is kind of meh. The real fun (for perverse values of fun) is when someone starts making heroin starter that can reliably turn sugar into enough opiate to risk an overdose.

And then bootleg biologics and other patent drugs, I would totally buy a yeast that let me make my own Humira and let me control the supply; even if possessing it meant a hefty prison term.

<comment><USER23> They did that a while back: [https://engineering.stanford.edu/magazine/article/stanford-r...](https://engineering.stanford.edu/magazine/article/stanford- researchers-genetically-engineer-yeast-produce-opioids)</comment></comment>


Ask HN: where those deal sites find those information? - <AUTHOR>

I always wonder where the deal site like deals2buy.com find their information. I guess it could come from email list, fatwallet. What else? <comment><USER2> For that site, it would be a combination of the community <http://www.deals2buy.com/sdeal.htm>, and also the editors of the site finding deals.

Notice that most of the deals are affiliate links. Sometimes they and the vendor have partnership where if they the vendor offers a discount, deals2buy will post an affiliate link (but just because it's an affiliate link, doesn't mean that's the case).

In Canada, red flag deals is one of the top 10 sites in canada. <http://www.redflagdeals.com/forums/> . Go under the Hot Deals FORUM...and it's community. Go under the DEALS tab on top, and that's the site editors (And some of those are the same posted by the community).

<comment><AUTHOR> An automated way to do this might not work well. The editors must check and filter out the good deals. There are tons of fake/spam deals online. How to find the real good quality deals? Community is a good way but it takes long time to build a community. Digg way is also a community way.

I'm trying to leverage algorithm to filter out deals.

</comment></comment><comment><USER3> Scripts to capture the information?</comment>


The Beginner Git Cheatsheet - <AUTHOR> https://mukul-rathi.github.io/git-beginner-cheatsheet/ <comment><USER2> This is nice, I'll find it really useful. It is probably more of a tutorial than a cheat sheet though</comment>


Ask HN: memorization of syntax - <AUTHOR>

A professor at my college that has helped me out with projects before has said that he thinks memorization of syntax is important for first year programming students to learn.  This was sort of a WTF moment for me.  Is this a common position?  It's not how I learned and it sounds harmful.  If HN agrees, what should I say to convince him otherwise? <comment><USER2> I doubt he meant that you should memorize the syntax through, say, flashcards. Rather, he probably meant that you need to program enough in something so that you memorize the syntax as an incidental benefit. Once you've memorized - internalized - the syntax, there will be significantly less friction when you program.

</comment><comment><USER3> It seems to me that a couple of different issues are being conflated here.

FIRST ISSUE: What syntax is _available_.

Memorization is the way to go here.

For example, write this in C, and you look like a moron:

      foo();
      while (bar()) {
          foo();
      }

... as well as violating DRY and thus producing less maintainable code, etc., etc., because you can do it this way:

      do {
          foo();
      } while (bar());

But if you don't already know that C has a loop construct with the test at the end, then you'll never write the second version.

SECOND ISSUE: Exactly how the syntax is put together.

Maybe this needs to be memorized, and maybe not.

Consider the above example. I write a "do-while" loop maybe a couple of times a year (?). If I forget exactly how to type it in (semicolor at the end, or not?), then I can look it up. So I figure, as long as I know that "do-while" exists, I can look up the details when I need them.

On the other hand, I write a "for" loop once a week, at least. If I hadn't memorized the pattern

      for (INIT; COND; INCR) { ... }

then I would waste huge amounts of time looking it up every time I needed it.

However, I don't really need to predict in advance exactly what syntax I need to memorize the details of. If I find myself looking something up more than once in a week/month/whatever, then it's probably time to memorize that.

Disclaimer: If you're taking a _college class_ , and the instructor says to memorize something, then you'd better know it, at least until the final exam is over.

</comment><comment><USER4> You've gotta know the syntax or you'll spend so much time looking things up that you'll never get anything done.

</comment><comment><USER5> Until you're comfortable enough with the syntax that you can hand-write code out on a blank sheet of paper, you don't really know the language. How you learn the syntax is up to you, but especially for your first language spending time that's specifically dedicated to learning the syntax is very helpful.

</comment><comment><USER6> How did you learn syntax?

<comment><AUTHOR> by writing code, not by being quizzed on what parameters some random function needs to be passed.

<comment><USER7> What do the parameters of some random function have to do with the syntax of a language?

A Computer Science professor is unusually likely to use the word "syntax" very precisely.</comment></comment></comment>


French CEO Prisoned After His Policies Resulted in Suicides of 35 Employees - <AUTHOR> https://www.forbes.com/sites/jackkelly/2019/12/23/french-ceo-sent-to-prison-after-his-policies-resulted-in-the-suicides-of-35-employees/ <comment><USER2> If 4 months in jail and a $16k fine is their idea of a severe punishment for an intentional strategy that led to 35 employee suicides, I doubt this is sending the hash message to other CEOs that the article suggests.</comment>


Ask HN: Has Anyone Used SCORE - <AUTHOR>

Has anyone gone and talked to guys at SCORE for business advice on planning, resource management, establishment, financial issues, etc? I was just wondering if they were a help and how to best use their services as a start up. <comment><USER2> I've visited SCORE in New York a few years ago... didn't find them too useful. They did not offer much beyond vague common sense advice, even on those issues where they could have easily been more prepared and specific (incorporating vs. LLC, finding a good accountant, health insurance, etc).

It was kind of like visiting a retirement home and talking to some nice folks, pleasant but nothing more.

<comment><AUTHOR> Thanks, for your experience. Do you think that is what it would be like anywhere you go? Or was it just the person you talked to?

<comment><USER2> Well, one thing I do know is that SCORE volunteers are mostly retirees. That of course doesn't mean much in and of itself but there were several people at adjoining desks and they all had similar experience... more of a small-talk type thing.

If anything I would presume New York would be a little higher on energy and a little lower on chitchat compared to other places, so if that's the vibe here...

I think you may be looking at this too broadly/theoretically though. Just break it down to what your needs are at the moment (what kind of company to form, how to write a business plan, etc) and go from there. If you post specific questions, you will probably find better advice here than at SCORE.</comment></comment></comment>


Gaming the lottery: How one winner used math to overcome the odds - <AUTHOR> https://hackernoon.com/gaming-the-lottery-how-one-winner-used-math-to-overcome-the-odds-71c8f688cedd <comment><USER2> That was extremely unsatisfying. Great simplification and overview... then skipped directly to a "conclusion"

<comment><USER3> Thanks for the feedback - seems obvious in hindsight! Updated to include brief 'Results' section

</comment></comment><comment><USER4> 1 May 2018:

"Soccer Pools is being AXED after paying out a $1.49 million prize because it was the least popular lottery game in Australia"

[https://www.dailymail.co.uk/news/article-5677449/Soccer- Pool...](https://www.dailymail.co.uk/news/article-5677449/Soccer-Pools- lottery-began-1985-axed-months-paying-1-49-million-jackpot.html)

Also: [https://en.wikipedia.org/wiki/Lotteries_in_Australia#Soccer_...](https://en.wikipedia.org/wiki/Lotteries_in_Australia#Soccer_Pools)

</comment><comment><USER5> The author lays out all the math and practical considerations and then…skips to the conclusion.

Did he put it to the test? Seemingly not. And now that the methods are explained, there will likely be too many other people trying this to make any money from it.

This article is essentially a white hat hacker disclosing a vulnerability.

<comment><USER6> He implied the buy-in was about 21k for one attempt with about 5-7% chance of winning. Mocking up some quick analysis for a blog is one thing, taking out a loan for 100k+ is quite another...

<comment><USER7> You can also split the cost of the 21k across many people. You walk away with less money if you win but you also get a chance to play without selling a kidney. The hard part wouldn't be the finding a fraction of the 21k but finding enough people that would agree on the subset of 20 matches from the overall 38 that you should bet on. Depending on what matches they have listed for the week, you might even play a smaller subset than 20. If most of the matches are strong teams vs weak teams, you stand a better chance than many evenly matched teams. Although his data seems to suggest that splitting winnings somehow results in even less winnings than you would normally think so it really does seem to be that high buy-in is the best course of action.

</comment></comment></comment><comment><USER8> In the early years or Ireland's national lottery, a syndicate was opportunistically assembled (1992) to guarantee a lottery win and positive return on investment. They succeeded [1].

[1] [https://www.independent.ie/irish-news/how-a-secret- syndicate...](https://www.independent.ie/irish-news/how-a-secret-syndicate- managed-to-buy-the-lotto-35981173.html)

</comment><comment><USER9> Not much payoff for the article. Did it work?

But in a general lottery (random) it makes more sense to put $50 into a single lottery than $1 in 50 lotteries. That's the only way to improve your chances.

<comment><USER10> Wait, what?

If there's any chance at all that the lottery does not draw from an equiprobable distribution and some numbers are privileged - but you don't know what they are, it's best to spread your bets to increase the chance that you bet on the hot number by accident. This is true if a single number has any edge eps>0\. Therefore you should almost always (with probability 1) spread your bets.

</comment></comment><comment><USER11> So let me get this straight..

$21k per play 5% chance winning = at LEAST 4m bankroll?

It's still a fun read (except the ending) but that should've been near the top to separate casual readers vs imma-get-rich-by-applying-similar-method readers.

<comment><USER12> 400K, not 4MM

</comment></comment><comment><USER13> Strange, can't connect to Https://thelott.com, that lottery website.

If there has been a recent change in the rules, then it would give credence to the story. I did not see a comment yet on the post's website.

<comment><USER14> The _introductory paragraph_ mentions that the specific lottery was discontinued.</comment></comment>


What if hackerNews had Social Network Features ... - <AUTHOR>

This could be a startup social network , a business network which could be much more useful than linkedin or facebook <comment><USER2> I was actually just thinking about this the other day. I think it could be very useful to see full profiles and detailed portfolios of the people on here. I think it could help members network with each other more.

The benefit is that because HN/YC is such a small, focused niche site if it became a full-fledged social network, all of the members would become much closer in the online community.

</comment><comment><USER3> If used as a LinkedIn substitute, would people censor themselves before expressing non business-friendly opinions?

</comment><comment><USER4> It could.

Think of HN as an exercise in MVP and YAGNI.</comment>


A Short Talk about Richard Feynman (2005) - <AUTHOR> http://www.stephenwolfram.com/publications/short-talk-about-richard-feynman/ <comment><USER2> There are some comments in this old discussion:

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


Why I'm considering Not giving to beggars anymore. - <AUTHOR> http://blog.markwshead.com/1118/to-give-or-not-to-give/

<comment><USER2> Its a great idea. It comes up all the time. Why not give the homeless a little money for working to help other homeless? Unfortunately, the government has placed a _huge_ barrier to entry in front of giving someone a few bucks for an hour of work.

You'd be better off showing them a library computer and introducing them to mechanical turk.

<comment><AUTHOR> I think that if it is less than $600 per person per year, you can just give cash and there is no record keeping necessary.

But for something like this to work, you'd need to have some type of centrally administered place. I'm not sure what the issues would be with giving someone food for work.</comment></comment>


The Ukraine crisis through the whimsy of international law - <AUTHOR> http://www.cbc.ca/news/world/the-ukraine-crisis-through-the-whimsy-of-international-law-1.2559980

<comment><AUTHOR> Finally a critical article, with some researched background information and not just opinion spin.

Edit: I am just fed up with media that I get on this matter. Everybody just pushes their own political interests.</comment>


Systemd deletes logs? - <AUTHOR>

fefe ranted about systemd (again): http://blog.fefe.de/?ts=aa056a28
anyone here experienced this? which logs are affected? is there an explicit apt-get install systemd involved?
just curious... <comment><USER2> Ran it through Google translate, so i may be misunderstanding something, but it seems more to be about not finding the logs in the "usual" (syslog) place than about them being deleted.

<comment><AUTHOR> I'd translate "wo sind meine Logs? Wieso hab ich hier plötzlich systemd und warum hat der meine Logs weggeschmissen!?" like so: "where are my logs? why do i have systemd here and why did it throw away my logs!?"</comment></comment>


GoPro will cut 270 more jobs - <AUTHOR> https://techcrunch.com/2017/03/15/gopro-layoffs/ <comment><USER2> While not bad projects. The proprietary nature of the company (open source unfriendly) has taken a toll.</comment>


Beautiful AppStore Presentation in a few clicks - <AUTHOR> https://previewed.app/screenshots/appstore <comment><USER2> Would be nice to have Desktop views too for web apps (e.g. made in Electron for MacOS).</comment>


Ev3dev: Debian for Lego Mindstorms - <AUTHOR> http://www.ev3dev.org/ <comment><USER2> I used to work as an iOS engineer at LEGO. They're a phenomenally professional company who consistently pushes innovation in-house. I'd be shocked to see them react negatively to this.

<comment><USER3> I used to tinker with the older version of Mindstorms with Java and .NET, can confirm they were all about helping us as much as possible when setting up the intro to robotics course at the local comm. college.

</comment></comment><comment><USER4> Love the idea and effort behind this, but concerned as to how Lego is going to react. The fact that they don't appear to hack the original software, but use a dual-booting arrangement is probably good news.

<comment><USER5> The founder of the project, Ralph Hempel, works for LEGO now.

It's also used internally in LEGO.

</comment></comment><comment><USER6> I heard a rumor that the Ev3dev Kernel guys got 4-color mode for the display of the original ev3 brick to work. Not even the lego guys managed to do that.

Will possibly happen very soon-ish.

</comment><comment><USER7> It's such a pity that the actual Lego is so insanely expensive.

<comment><USER8> It's hard to argue that it's cheap but I believe the value is there. The quality of their products tends to be second to none and the freedom to combine and it also seems hack is phenomenal.</comment></comment>


Is it Time to Declare Music Downloads a Loss Leader?  - <AUTHOR> http://www.readwriteweb.com/archives/music-downloads-are-free.php <comment><USER2> I don't think that experiment makes sense: if there is a low quality copy for free and a higher quality copy for 5$ I take the lower quality copy to be for evaluation. So only 18% of the people who evaluated it decided to buy it. In fact even without the low/high quality thing, perhaps in a "pay what you want setting" people download first and evaluate. Perhaps those people who didn't pay simply didn't like the music.

Also, even in that experiment they seemed to have made almost 1$ per download - isn't that more than artists typically get per CD sale?</comment>


List of Serverless Functions for JAMstack Apps - <AUTHOR> https://jamstackfns.com/ <comment><USER2> Question for the frontend crowd: how have microservices/serverless aged over the past few years? I've largely avoided learning/using this type of architecture because intuitively it seems like a bad idea to split your app and business logic across a bunch of tiny services with unknown uptime stats (difficult to maintain, difficult to see macro view of your application, cascades of service dependencies, hard to onboard new people, etc). Are microservices and serverless architecture still considered a good idea? What are the benefits I'm not seeing?

<comment><USER3> I'm not aware of a real "consensus," but a popular view (reflected by my experience) is that they're great for a large org with many teams working asynchronously (though they still introduce headaches), but that for most startups, the payoff is reduced greatly while the pain remains consistent.

You've probably around seen this, but DHH has a good piece on this in Signal v. Noise: [https://m.signalvnoise.com/the-majestic- monolith/](https://m.signalvnoise.com/the-majestic-monolith/)

<comment><USER4> I feel this post is addressing something else. Serverless is pretty much simple especially with a framework of the same name or on say netlify. All your code is in one repo and you don't have to worry about the servers at all.

The blogpost is more about orgs deciding to manage their servers too, going full on kubernetes, docket, etc. That's what complicated everything because now you need dozens of other systems just to make your container architecture work.

But serverless? You need nothing. Just push to a repo and you're done because someone else is doing the cat herding of running the containers.

</comment></comment></comment><comment><USER5> Sooo... the "JAMstack" is like the inside of a controller action, where the service provider gives you a route to it? Why do this to yourself? Like you didn't have to do ./app run, okay... but what does it look like when you have 10+ "serverless" functions?

It seems to me, it would look an awful lot like a badly organized server application. Kind of like PHP sites were (generally) organized circa 2003.

Speaking of which, isn't PHP like "OG Severless?" In fact, isn't this a more complicated deployment of what you can do with PHP? I don't even care for PHP, but it seems a lot easier than this, and certainly at least as cheap and easy to deploy.

I'm just at loss what the purpose of this is... or how it isn't reinventing a specific set of wheels that everyone already passed on (or already uses for those specific purposes).

<comment><USER6> > It seems to me, it would look an awful lot like a badly organized server > application. Kind of like PHP sites were (generally) organized circa 2003.

Isn't this in alignment with the theory that technology is a flat circle.

Redux became the message passing architecture of win32 programming. Java got a huge resurgence in late 2000s when it was discovered that instead of being good for running TV and refrigerators it's actually great for running web servers. How BEAM was discovered to be great for real time web (because we're finally arriving at real time web).

One day we'll go back to writing frontend apps just like late 90s embedded inline JS code used to be. CSS would be inline again. Then monolithic services architecture would be back again, and one day Facebook will introduce the ability to have 'themes' on your profile like MySpace did.

</comment></comment><comment><AUTHOR> Creator here, happy to answer any questions. Here's why I built this.

JAMstack (JavaScript, APIs, and Markup) is fundamentally reshaping the web. Coined by Netlify's co-founder, JAMstack bridges the gap between static and dynamic websites. Capitalize on static site performance, security, and scalability while still having dynamic data.

I've seen this first-hand, building many JAMstacks sites myself. As a front- end developer, it was always challenging to find good examples of serverless functions. I'd usually have to dive through documentation, search StackOverflow, and ask questions on GitHub. They might have code but never had complete instructions for set up.

JAMstack Functions is a directory of the best serverless functions for JAMstack applications. Each function includes code for both Vercel (Next.js) and Netlify Functions, as well as instructions for setting up. Quickly deploy the function to your static site and start building.

Let me know which functions you'd like to see added.

<comment><USER7> >JAMstack (JavaScript, APIs, and Markup) is fundamentally reshaping the web.

How? "fundamentally reshaping the web" is a bold claim; how are those things reshaping the Web -- what's changing shape?

<comment><AUTHOR> Static sites have evolved. Today, they can handle real-time requests, process payments, manage customer accounts, and a lot more. Some other benefits:

      * Cheaper – Not making requests to the server on-demand
      * Faster – Served from a global CDN close to your users
      * Easier – No complicated deployments, better DX

How is this reshaping the web? In a way, we've come full circle. What's changing is how we get to a static site. JAMstack unlocks all the benefits of static sites with today's complex data requirements.

<comment><USER8> >> Easier – No complicated deployments, better DX

I'm a big fan in many use-cases, but this one is overstated IMO. Yes, your "site" is essentially a bunch of static pages but in order to do all that fancy stuff that the JA-part is selling you now have a massive deployment challenge that's just as prone to the same problems as the distributed monolith.

The big win IMO is moving runtime concerns to build-time. There are a surprising number of scenarios where the backing data changes on predictable, not-that-frequent basis. For example, it is far easier to publish a product catalog based on some internal system via a static generator than some sort of real-time link.

There are lots of cool use-cases but JAM is not reshaping the web in any structural way, at least if you've been programming it for more than 5-10 years...

<comment><AUTHOR> Fair points – "reshaping the web" was a probably bit overzealous.

</comment></comment></comment></comment></comment><comment><USER9> This is pretty cool. It's about the same concept as [https://stdlib.com/](https://stdlib.com/) but using JAMstack providers to build the serverless functions instead of dealing with the complexity of the major cloud providers and supporting different programming languages.

<comment><AUTHOR> Thanks for sharing stdlib, I hadn't seen it before.

Netlify Functions are essentially AWS Lambda functions. They just abstract away all the tedious parts for you. Serverless functions with Next.js & Vercel have an abstraction with (req, res) to support multi-cloud.</comment></comment>


Project Everest: Efficient, verified components for the HTTPS ecosystem - <AUTHOR> https://project-everest.github.io/ <comment><USER2> F* is actually the reason I became interested in F#. So coool

</comment><comment><USER3> I'm completely unfamiliar with F*, but it seems to me (even though it's still maturing) that rust would be a good starting language for this project.

<comment><USER4> I don't understand these comments, you have no idea what F* provides for this project to work, but yet you can somehow perceive that rust would be a good language for this project. Really?</comment></comment>


The poor man's 1u inference GPU – MSI GTX 1050Ti 4G OC - <AUTHOR> http://projectable.me/msi-gtx-1050ti-4g-oc-the-poor-mans-1u-inference-gpu/ <comment><USER2> I'd think he'd want some ducting on that fan; maybe a bit of foam on either side of the GPU, to help force air through the heatsink.

</comment><comment><USER3> Too bad there isn't a stable version of Plex with GPU transcoding. (It's beta right now). I would love to do this on my 1U short depth PMS server enclosure.

<comment><USER4> Plex just uses ffmpeg, the version bundled does include GPU support although I believe it depends on the codec, from memory it does x264 but not x265 or vp9 but I could be wrong.

</comment></comment><comment><USER5> I realise this is a budget build, but replacing the thermal compound while doing this certainly wouldn't hurt. Re-using it feels wrong.</comment>


I want to reply - <AUTHOR> http://www.zemanta.com/fruitblog/i-want-to-reply/

<comment><USER3> I see my email (Google Apps) as the main point of contact for ME on the Internet. Not my Facebook, not my Twitter, not whatever else. If someone has to send me a file, it goes to my email. If I just met somebody new and we're not at "Facebook friendship level" (a friend of mine's phrase) then they get my email. Email email email.

I'm also perfectly happy to use my email as a notification zone, as it's probably the one place online where I will absolutely definitely 100% receive whatever message I'm sent.

With regards to the emails themselves, I'm actually almost against the kind of personalisation that the author here is recommending. "Hey, Jim, your tweet got retweeted!"

Yes, very impressive, you worked out how to insert a merge field. How could I possibly have known the message was for me if you hadn't put my name at the top there? I suddenly feel so very engaged.

I just think it's a bit disingenuous, almost a little dishonest, to try and pretend that an email update from a company is actually a letter written to you personally by some guy who works at said company.

The yes-please-reply@ address is a nice gimmick, but if you're sending messages to this address and receiving no response then what makes you think anyone's reading them at all?

</comment><comment><USER4> What I really want is to stop my email inbox from being a notification area. It doesn't feel right for notifications. Foo replied to your post. Bug X has been fixed in project Y. All that stuff doesn't belong in my email inbox.

What I'd really like is a single online notification service. I imagine signing up for a service somewhere, and I just plunk my special notification address somewhere in the settings. The service then communicates to that online notification service instead of sending me emails. I could install an app on my phone and desktop (separately configurable) that alerts me. I can set up filters through the app or a web interface.

I'm not too hopeful about this ever happening though. No service will support it unless it's mainstream, and using the notification service is useless until most services support it. Chicken and the egg.

<comment><USER5> "What I'd really like is a single online notification service..."

Everything you say about this sounds exactly like hosted email to me. How is it different?

To me, the problem with email is the time it takes to manage it: filter, mark as read, etc. Gmail filters help with this, but it's still work. But I can't see how any notification system could know how I want things filtered without me telling it.

<comment><USER6> It would be nice if the community would agree on a simple header that indicates "notification" so it's easier to filter automatically.

<comment><USER7> You can use address tags to sign up for notifications. <https://en.wikipedia.org/wiki/Email_address#Address_tags> E.g. if your email is email@example.com you can sign up for bugfix notifications as firstname.lastname@example.com which makes inbox filtering much, much easier.

</comment></comment></comment></comment><comment><USER8> Wait... I don't get this.

The guy has "thousands of unread items in my inbox" that he will never get to.

His priority inbox has 26 unread messages of which only 9 are directed to him (others are mailing list, sent by a machine whatever that means and newsletters).

I presume his "normal inbox" has the same ratio of email "from machines" and directed to him directly since there is no reason to be any other way.

To me this paints a picture of a person who does not take care of his inbox and he wants me to send an email to him? Really? That guy wants to "talk to me" and he wants to get an email from me, presumably so he can write a blog post about having thousands of emails in his inbox? Nope, I don't get it.

</comment><comment><USER9> > Nobody wants nameless faceless corporations anymore. > And even if they did, > email isn't a flier you send > into a million postboxes, it's that personal > > sales/support/whatever call your humans make.

Derek Sivers / CDBaby has been doing something similar, adjusting the From:-field to include the customer first name: "CDBaby loves Sarah" for shipment confirmations. As reported, people loved this kind of mails (thinking that somebody at CDBaby changed their email profile settings for each outgoing mail :-)

</comment><comment><USER10> The same philosophy holds true for SMS notifications.

We (Bizen.com) send SMS notifications to our customers. If they respond to the SMS, it is directed to their account manager.

</comment><comment><USER11> This is a massive challenge, made harder by all the other competing startups. I have been thinking often about offline versus online. For all the effort you do online, one good offline meeting could create much more benefit.

For example, you may have a million twitter followers who create minimal interaction. Or have a face to face meeting with one person who introduces you to an interested angel or your next big customer.

What has biggest impact?

<comment><USER12> Think of it another way. As a startup getting feedback is your primary tool for improvement.

It shouldn't be a case of offline _or_ online. Do both until you can't. Then start optimising.

I often see organisations cut-off e-mail feedback long before the noise from spammers, auto-replies, vacation mail, etc. becomes an actual issue.

Wait until you have a problem. Then look at the many tools around that can help alleviate those problems. Then think about maybe recruiting more people to help deal with the feedback. Then - if you still have a problem - <USER2> thinking about removing communication channels.

It should be the last option - not the first.

</comment></comment><comment> mike-cardwell If somebody gets so much email they ignore most of it, then they're an outlier. I'd prefer to hear the opinion of somebody who receives a normal amount of email, and what _they_ think of the issue.

</comment><comment><USER13> The correct pronunciation is 'twenty-twelve', not 'two thousand and twelve'.</comment>


How to secure health data? Cryptography and security models - <AUTHOR> http://blog.howareyou.com/post/60928192861/how-are-you-cryptography

<comment><USER2> The part about passwords and password recovery is a bit troublesome in my opinion. If I am unconscious when I am brought to the hospital, the doctor should be able to access my records or release them to another doctor. Someone showing early signs of dementia might throw out their token and have no memory of ever having a password -- what do you do then? The threat is that an attacker might dump a database or steal a hard drive, not that a doctor might attack from the inside; doctors need to be able to access patient data under a variety of circumstances, including those where a patient is unable to give their consent or present a special token.

I think a better solution would be to give each doctor a smartcard, and to require some sort of threshold signature for certain operations (like sending patient data outside the hospital network) so that no single doctor has all the power. Attribute based encryption comes to mind here, since the ciphertext should only be stored once but should allow any doctor to decrypt; nurses might also need some amount of decryption capability (and would then need a smartcard of their own). Giving patients full control over their records sounds great on paper, but in practice people will forget their passwords and lose their tokens, and will probably not even realize the token is lost until they actually need medical care (and then it is too late).

<comment><USER3> _If I am unconscious when I am brought to the hospital..._

The "break the glass" scenario / use case. It's basically a user facing backdoor. (Normal access goes thru the consent tree.)

It's 1 of 2 reasons why patient medical records cannot be encrypted, obfuscated, whatever. At this time.

EDIT:

The HowAreYou patient/user centric credentials does not permit the sharing (interchange) of medical records. For that, every patient must be uniquely identified and matched across heterogenous systems.

This is feasible in a single payer model, where there's a central naming authority issuing unique identifiers.

An analogy: A large organization with multiple systems, each with their own credential management. They install a master LDAP or ActiveDirectory, so that identifiers can matched across the organization.

In healthcare, that master unique identifier is sometimes called a master record number (MRN), patient identifier (PID), and some other jargon abusing acronyms.

EDIT 2:

Cambridge. UK NHS. _Not_ the USA. They _do_ have unique identifiers.

My bad. My only excuse is I shouldn't comment pre-caffinated.

</comment></comment><comment><USER4> I'm confused by this paragraph, and I wonder whether this indicates a limitation on my part, the part of whoever wrote the marketing copy, or the part of the developers of this platform:

 _The problem of preventing an attacker associating a user's encrypted ID to a decrypted ID is reducible to a security model called indistinguishability. We are using AES-CBC to perform this encryption, which means that our encryption scheme satisfies indistinguishability under a chosen plaintext attack, where the attacker is able to request encryptions, under the encryption key, of various plaintexts. We are confident that no such attacker exists, and that therefore our encryption is very secure._

First, it's my understanding that CTR is considered superior to CBC in all cases. Second, although it's true that resistance to CPT attack is a basic requirement for public-key crypto, AES is not public-key. It's likely they're talking about using RSA to secure the AES key, which seems normal. (As in, one could choose an existing solution.) But the last sentence seems bizarre. They're secure against a particular attack, and they doubt they'll ever see that particular attack, therefore they are "very secure"? WTF?

I guess I'm saying that this paragraph doesn't do much to convince me that the keys used to encrypt PID are securely stored, which I thought was the purpose of the paragraph. I don't assume that such keys are actually insecurely stored, and furthermore I'm not really sure that PID needs all this protection.

<comment><USER5> Hi Jesse,

So, let's talk about this point by point:

1\. CTR mode and CBC mode both fulfil the same security definition: IND-CPA. IND part of the security definition refers to the fact that: there exists no polynomially bounded attacker that can with probability better than a half distingiush which of two plaintexts (that the attacker choses) have been encrypted under the scheme. The CPA part refers to the fact that this is a chosen plaintext attack, and the polynomially bounded attacker may submit plaintexts for encryption.

CTR mode does not satisfy a stronger security definition than CBC mode, but is parallelizable for encryption and decryption. Whilst this may sound like it makes CTR mode preferable, it also means that each block of ciphertext is independent. With CBC mode, errors propogate throughout the ciphertext meaning that it is harder for an attacker which does have access to a encryption oracle to modify the message through modification of the ciphertext. They would have to be able to modify every block of the ciphertext in CBC mode, whilst having to only modify one in CTR Mode.

2\. To clarify: all PID is encrypted under the strong AES encryption I have outlined above. In practical terms there is only one security definition that is stronger than the one we are using, which IND-CCA in which the attacker also has access to a decryption oracle. The attacker in this case is arbitrarily restricted to be unable to decrypt certain plaintexts. This does not make a large deal of sense in a real world attack, if the attacker does have access to a decryption oracle, it is likely they will be able to decrypt any ciphertext and blow the encryption wide open.

Regarding the necessity of encrypting PID, for various compliance reasons it is necessary for us to ensure that if someone pulls our servers out of the rack they can't get access to our users' data. This scheme satisfies our compliance requirements and, we believe, keeps our permission control model cryptographically enforced.

Thanks \-- Sam Phippen

How are you? Engineer.

</comment></comment><comment><USER6> The issue is Accountability.

It is more important to know "who/when/why" are people looking at your records that stoping people from accessing them all together.

<comment><USER7> All successful and failed transactions against any resource gets logged. We haven't exposed it in the API yet, but it's coming.

<comment><USER3> I'm guessing that you're updating records. So you're resolving what's "truth" during the inbound operation. (For readers: data may be received out of order, so implementers must resolve the single source of truth in near real-time.)

Our systems used to do that.

My redesign eliminated updates, did only inserts, and resolved the "truth" during the query. Greatly simplified everything.

No more "historical" table, where deltas are logged. Determining what was known when (determining liability) queries were simply date bounded. No need to "rerun the data" when a mapping or business rule changed. Etc.

<comment><USER7> No updates, no real deletes either (only virtual ones). Data about transactions is stored separately from the clinical data, in an optimised store for log data.

</comment></comment></comment></comment><comment><USER8> I'd be interested to see a list of threat models you have.

1) Gossiping employee?

2) Bribable employee?

3) Careless doctor?

4) Malicious doctor?

Britain's serial killer with highest murder rate was Dr Shipman, so malicious doctor while rare is a serious risk.

This looks interesting and I'll be following along!

<comment><USER3> Having served the roles of patient and healthcare IT geek, I believe (but cannot prove):

Biggest threat (to patients) is mistakes. Chop off the wrong arm. Misdiagnosis. Adverse effects from drug interaction, allergy, whatever.

Second biggest threat is poor policy, procedure compliance. Awul Gawande's book Better is a good primer. [http://gawande.com/better](http://gawande.com/better)

<comment><USER8> Yes, I guess some protection against people faking data to cover mistakes is more important than protecting against people faking data when they've deliberately killed someone, because deliberate killings are rare.

Fudging the data is important; we've seen some clinicians are faking data to show their departments are meeting national guidelines even though they're not.

([http://www.theguardian.com/society/2013/jul/25/mid- staffords...](http://www.theguardian.com/society/2013/jul/25/mid- staffordshire-nurses-struck-off))

> _Between July 2000 and July 2010 she inaccurately recorded patient discharge > times from A &E, and ordered other colleagues to follow her example, the > panel found._

</comment></comment></comment><comment><USER9> While this looks interesting, it brings to mind a question I've been struggling with. (Disclaimer: I work in health software) While taking reasonable precautions to ensure the security and privacy of health info is an obvious decision, I am at a loss to understand Western culture's frantic chase after "perfect privacy through technology." Technological safegaurds will become increasingly complex/expensive while their returns diminish. Is there a point at which we'll be satisfied, or will we continue chasing for smaller and smaller gains with little regard for the cost/complexity?

I'm not sure where we presently fall on that curve, but I would love for our culture to take a step back and consider it.

<comment><USER9> And from a more abstract perspective, the least secure points in an otherwise secure system are the endpoints, where data is no longer encrypted. In this case that's Doctors, related healthcare staff, and the patients themselves. Increasing security in the middle will have little or no impact on those human endpoints, or their behavior. While that _doesn 't_ make technological improvements meaningless, they _should_ always be framed and considered in that context.

</comment></comment><comment><USER10> no mention of k-anon or l-diversity in the aggregates. was that just to keep things simple, or do you really not enforce that?

<comment><USER5> Hi Andrew,

to cut a long story short, we've done some work to decrease the resolution of the encrypted data in the aggregates. For example: we store age to nearest year instead of date of birth, location is severely reduced in resolution from address to state and so on. By this way we're confident these attacks aren't directly applicable, whilst the aggregates are still useful.

Your own doctor always has access to the full resolution data via access to your data key. These attacks are something we're concerned about too and we're looking to bring in third parties to ensure that our system is secure.

Thanks \-- Sam Phippen

How are you? Engineer

<comment><USER10> great - sounds good, thanks for replying.</comment></comment></comment>


Introducing HipHip (Array): Fast and flexible numerical computation in Clojure - <AUTHOR> http://blog.getprismatic.com/blog/2013/7/10/introducing-hiphip-array-fast-and-flexible-numerical-computation-in-clojure <comment><USER2> I do not believe this is the right approach to the problem, but I do appreciate the problem you're trying to solve here. However, in my opinion - Clojure libraries shouldn't be trying to reinvent the wheel. If your goal is to expose a better interface for vector arithmetic in Clojure - write a library that does that really well.

But if your primary concern is performance, please don't roll your own vector or matrix "native" interface. You will certainly never come close in speed to what has come before (BLAS implementations galore, et al). Also it's just a lot of work that is basically keeping you from working on the higher order problems out there that we desperately need to tackle.

If your goal is more "Clojurey" syntax then just spend a day or two wrapping the functions you want over a tried and tested numerics implementation. Additionally, there is likely a pre-existing Java wrapper which does just that for whatever you need considering that Java is still beloved by university professors, a key demographic for fast math libraries.

On the other hand, I think Vertigo ( github: [https://github.com/ztellman/vertigo](https://github.com/ztellman/vertigo) ) is taking a very interesting approach to the Clojure->Native problem, which I believe might be of use to any library wanting to bring performant numerics to Clojure. Unfortunately, ztellman has deprecated his OpenGL and OpenCL libraries, but I think that Vertigo in combination with OpenCL and the kernels courtesy of clMAGMA would be fantastic.

<comment><USER3> > If your goal is more "Clojurey" syntax then just spend a > day or two > wrapping the functions you want over a tried > and tested numerics > implementation.

This is exactly what we're trying to do: provide some Clojure macros that give nicer syntax for interacting with Java arrays with high performance. We're explicitly not introducing a new vector type.

Most of the work here wasn't in the wrapping -- hiphip itself consists of very little code -- but in figuring out what's fast and what's not, documenting this, and making it easy to do things the fast way.

<comment><USER4> I think what the GP is arguing is that if you want to be really fast you should forget using Java arrays and just wrap BLAS, LAPACK, etc., which are written in "close to the metal" languages, optimized within an inch of their life, have been around for decades, and are used by others with similar goals (numpy/scipy, etc.). As the GP says, Java libraries that already do this are probably available, so this may be a pretty trivial task.

<comment><USER5> I don't know why no one has answered this (it is brought up a few places in this thread) but if I had to guess why they didn't want to go this route I would say it's the trade-off of not not having your data be native. They presumably have a somewhat highly involved pipeline/topology of computations that data flows through. In the interests of good readable and maintainable code, having a nice declarative data representation is a big plus, and doing the computation with native Java data structures is apparently fast enough for their needs.

</comment></comment></comment></comment><comment><USER6>
        All arithmetic operations on these boxed objects are
        significantly slower than on their primitive counterparts.
        This implementation also creates an unnecessary intermediate sequence
        (the result of the map), rather than just summing
        the numbers directly.

Clojure's Reducers framework might address the described issues in a future when, in Rich's words, "those IFn.LLL, DDD etc primitive-taking function interfaces spring to life". For now, they only solve the intermediate- collections part of the problem.

<comment><USER3> We're also anxiously awaiting this -- it seems with gvecs and reducers and primitive fns the pieces are all there, we just need the glue to put them all together. Unfortunately, for now I think we're stuck with arrays, and we're trying to make the most of it :)

</comment></comment><comment><USER3> One of the authors here. We're excited to hear your feedback on hiphip, and will be around all day to read feedback and answer questions.

<comment><USER7> Love the name. That sort of pun brings a smile to my face.

<comment><USER3> Wish I could take credit, but I think all praise (and groans) must be directed at @aria42

</comment></comment></comment><comment><USER8> Looks awesome! One data issue I've seen go relatively unaddressed in the Clojure community is the serialization of big matrices and arrays.

There's a start on a clojure hdf5 (hdf5 is a container format common in scientific circles) implementation, but it's a long ways from done. [https://github.com/clojure-numerics/clj-hdf5](https://github.com/clojure- numerics/clj-hdf5) I'm not the author, but I am the negligent steward.

I'd love it if someone smarter / better at Clojure than me was interested in helping to think about useful, idiomatic high-level abstractions on top this high-performance data store.

PyTables does a great job of making gobs of hdf5 data easy to work with for analysts--I'm just too novice at Clojure/FP to know what is a reasonable analogue for Clojure.

<comment><USER9> Without knowing anything about hdf5 specifically, Vertigo [1] will let you treat a memory-mapped file (or a piece of one) as a normal Clojure data structure, as long as the element types are fixed-layout.

[1] [https://github.com/ztellman/vertigo](https://github.com/ztellman/vertigo)

</comment></comment><comment><USER10> Love the project et. all, this would be very helpful!

I have to comment on the name as well... brilliant. Kudos for something creative that has already stuck firmly in my mind.

<comment><USER11> Have any icon ideas? Was thinking ["hip","hip"] or hiphip[]

<comment><USER12> Something along this idea[1], but properly drawn by a designer in more than three minutes?

[1] [http://i.imgur.com/DR2w9Jl.png](http://i.imgur.com/DR2w9Jl.png)

<comment><USER13> This seems like one of the 10x productivity / mastery cases where your three minutes and creativity have produced something that would take me ages, even if you set me to the task of duplicating your design.

Are you willing to spend another 3 minutes producing a logo for an unrelated programming project? :-P

</comment></comment></comment></comment><comment><USER14> Cool library, can imagine how moving away from boxing / unboxing can be a huge boost for them.

I've been looking for something that gave SIMD intrinsics to Java programmers - does anyone know if such a thing exists? Could be a nice addition to this lib.

<comment><USER15> You can't, unless you write it as native code, put your data in direct NIO buffers, and go through the JNI dance.

<comment><USER14> Ah well, had hoped there might be an already made thing out there. Thanks!

</comment></comment></comment><comment><USER12> What brought you to develop this library rather than relying on Incanter/Colt? The scope of HipHip seems different, of course, but there is enough of an overlap to warrant the question.

<comment><USER11> I could be wrong, but I don't think Incanter has any Clojure-native means of generic operations over arrays at all.

<comment><USER2> Incanter's default Matrix implementation is now Catrix as well - which is a Clojure friendli(er) wrapper over jBLAS matrices. [https://github.com/tel/clatrix](https://github.com/tel/clatrix) Check out the source.

</comment></comment></comment><comment><USER16> Did you guys look at the core.matrix API?

[https://github.com/mikera/matrix-api](https://github.com/mikera/matrix-api)

<comment><USER3> We did, and we've been talking to the developers about a potential future collaboration. Our goals are really complementary; hiphip is about getting _your_ code into the inner loop of Java bytecode (not just a set of canned operations), whereas core.matrix is about abstractions for a fixed set of operations across different matrix types. There may eventually be overlap, if core.matrix gets into compiling expressions into new operation types, which sounds like something they're interested in.

<comment><USER17> core.matrix developer here :-) we're definitely looking at expression compilation. Also hiphip could be very useful for writing fast core.matrix implementations for the standard API. So definitely good room for collaboration.

</comment></comment></comment><comment><USER15> One thing I've found is that with macros, it can actually be easier to write performant primitive-reliant code. Still not up to Common Lisp standards, but much better than, eg, having to use a scripting language to generate all the primitive specializations of your data structure, like Trove and Fastutil do.

<comment><USER11> Indeed, the core logic of HipHip is the same for all primitive types and macros generate type-hinted versions for each primitive type.

</comment></comment><comment><USER18> Having written my own naive Clojure dot product, I can definitely appreciate what you guys have done!

Any plans to attack sparse vectors? Performance on the sparse vector operations I wrote was poor, but being new to Clojure it wasn't a great implementation.

<comment><USER3> We have sparse vector code built on hiphip that's slated for open-source release down the road (once we get the resources to polish it) -- stay tuned!

</comment></comment><comment><USER19> FYI: your link to the GitHub project halfway down the article is broken.

<comment><USER3> Oops, thanks for letting us know! Fixed now.

</comment></comment><comment><USER20> I just got it 'Hip Hip Hurray' ... haha :-)

</comment><comment><USER21> As an interesting aside, you can nearly double the speed of your Java loop by unrolling it a few times. (at least it did that for me in JDK 7)

<comment><USER3> Huh, cool! I kinda assumed the JIT already took care of this sort of low- hanging fruit, we'll test this out and if it works include it in the next version of hiphip.

<comment><USER22> JIT in fact does pretty aggressive loop unrolling, however probably there might be some edge cases where it doesn't.</comment></comment></comment>


Building a Startup in 45 Minutes per Day While Deployed in Iraq - <AUTHOR> http://mattmazur.com/2016/01/04/building-a-startup-in-45-minutes-per-day-while-deployed-to-iraq/ <comment><USER2> Somewhat related: I have this fantasy where I actually make a living working a non-technical job that is relatively simple to do but where I'm able to read and think about what I would build when I get back to the keyboard all day long.

I'd spend the days thinking about building and how you would do it for 90% of the time but only spend 5-10% of my time executing. The rest of the time is thinking, planning, and re-thinking things I've done, imagining the tweaks and enhancements I'd get to pump out when I have the chance.

The best code I write is when I have it all figured out ahead of time, the problem is paged-in, and my fingers are merely transcribing the stream of consciousness. I just need a couple of moments to get it out.

Dissimilarly, I would imagine that, being deployed in Iraq, this guy doesn't have much time to think about his startup when doing his non-technical job (as it _IS_ a demanding one) but imagine being a sniper spending your time hiding in the brush thinking about what you would build when you could build it. I'm romanticizing war now though...

<comment><USER3> Mail carrier, or maybe police officer. I have the same fantasy. :-)

<comment><USER2> I always think it would be security guard of an extremely secure and remote facility. Something snowed in where it's warm inside and there is fast internet.

<comment><USER4> Amazing. That's almost exactly my fantasy scenario. Also: lighthouse keeper, park ranger.

<comment><USER2> Lighthouse keeper! Brilliant. If monkey brains could do gigabit for me there I'd be in heaven.

<comment><USER5> I don't think there's any lighthouses left that require a keeper, at least in first world countries.

<comment><USER6> I think these are fantasies, it seems a little mean to burst them with reality.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Hey all - author and longtime HackerNews user here. It's a nice surprise coming back from an evening away from the computer and finding this at the top of front page. Whatever success I've had with Lean Domain Search is due in large part to what I've learned from this community.

Here's the original HackerNews launch post from 4 years back for context: [https://news.ycombinator.com/item?id=3470977](https://news.ycombinator.com/item?id=3470977).

I'm happy to answer any questions about Lean Domain Search, the deployment, etc.

<comment><USER8> How did you managed to switch context so cleanly between working about your side project and on your day job? I would imagine that you day job would be quite stressful, and getting 45mins may not be possible every day.

<comment><USER7> Great question - I think the more well-defined your next task is, the easier it's going to be for you to context switch because you don't have to take time to figure out what to work on next. One thing to experiment with is when you're done working for the day, jot down a note of specifically what you want to work on the next time you sit down at your computer. The clearer it is and the less amount of problem solving it requires, the easier it's going to be for you to get back into the flow.

<comment><USER8> Thanks for the great answer. Is that how it panned out for you? Love to hear your experience about this.

Typically, I would find it difficult for get into the zone to get work done within 45min period.

Huge congrats to you for being pulling this off in such difficult circumstances.

<comment><USER7> I suspect that if you had a hard limit of 45 minutes after which time you could no longer work on your task, you'd adapt and find yourself able to get in the zone much more quickly.

It also becomes easier the more you do it. I've been doing side projects for many years.

<comment><USER8> I guess that phrase "adapt or die" is apt here. Thanks for the answers.

</comment></comment></comment></comment></comment></comment><comment><USER9> The title should probably read "Doing a Side Project Website in 45 Minutes per Day While Deployed in Iraq," or "How to test the market for viability of an idea in 45 minutes per day," etc. Maybe "startup" has become meaningless...

I don't mean to diminish the accomplishments of the author, Lean Domain Search is a nice tool he built, and may even be a good way to test a market. Doing so while distracted by military service / a full time job certainly shows impressive drive/willpower. However, to build a company that might (someday) involve more than a 1 man show requires more than 45 minutes per day of attention, especially if other people's livelihoods are(/will be) dependent on you.

</comment><comment><USER10> Since he was an officer (where you are generally treated much, much better than an enlisted person)and in the Air Force, and only spending 5 months in Iraq, I can believe he did all of this. Though certainly not representative of the average solider/marine who was deployed to Iraq.

<comment><USER11> Actually given the 80/20 support-to-operator ratio throughout the wars, I would say this is actually quite representative of what most people's experience in the recent wars.

<comment><USER12> This. OP described his duties as 12 hour shifts. This guy was a fobbit. Now there are fobbits who work their ass off and do great, important work. I loved them. I was one once. None of them describe their work as a 12-hour shift. OP also quickly put his service in the context of marking time until his commitment was complete. "Just when I thought I was out... they pulled me back in!"

Thanks for your service. And a sincere !Congratulations! on your success. But the title is link-bait which exploits the experience of those who had it much tougher than you. Stay in your lane.

<comment><USER13> The title is 100% accurate (unless you want to split hairs on the definition of "startup"), so what's the problem?

The point is that he built something in less than an hour a day during his free time.

<comment><USER14> Those of us in the military community are, and try to be, very precise about inferring proper context because it's a matter of honor and dignity in life and death.

<comment><USER13> Those of us in the military community have a saying: "Lighten up, Francis."

As for me, when I read the title, I immediately assumed that the author was stationed at a base in Iraq and worked on his project during his down time. Upon reading the article, this assumption turned out to be correct.

</comment></comment></comment></comment></comment></comment><comment><USER13> I knew I recognized that name somewhere. Matt had a bunch of really interesting articles a while back about building poker bots to play online.

[http://mattmazur.com/category/poker- bot/](http://mattmazur.com/category/poker-bot/)

Didn't know that he was active duty in the military at the time, though...

<comment><USER8> I think that response from online poker was not unexpected. :-)

</comment></comment><comment><USER15> That begs the question, can we define once and for all what is the difference between startup and side/pet projects?

There was no mention about revenues or even users. I found the story very inspiring but the terms need to be clarified else startup is going to be used very loosely. We might as well all call ourselves founders/ceo's/entrepreneurs in which case.

<comment><USER16> > Begs the question

Begging the question is an informal logical fallacy ([https://en.wikipedia.org/wiki/Begging_the_question](https://en.wikipedia.org/wiki/Begging_the_question)). You mean this _raises_ the question.

> what is the difference between startup and side/pet projects

It's a very large and fluid boundary. Lots of startups take less time than "side" projects, lots of side projects turn into incorporated startups, etc. If in doubt, just say you're working on a project.

> We might as well all call ourselves founders/ceo's/entrepreneurs

Lots of people do that. I would suggest not so much focusing on your title, but rather focusing on your work, and bringing it to the point at which you can proudly call yourself by whatever title you deserve.

<comment><USER17> > _Begging the question is an informal logical fallacy_

Usage dictates meaning. More people use and understand 'begs the question' in the GP's context than in the logical fallacy context. Few members of the public could even tell you what an 'informal logical fallacy' is (even the idea of it without that specific label).

Edit: your own wikipedia link even points out this same point, at the end in the Modern Usage section.

<comment><USER18> I'm pretty sure the only place you're allowed to call out this use of "begging the question" is when responding to someone who is objecting to some other form of linguistic drift, so it was OK in this case.

</comment></comment></comment></comment><comment><USER19> One of our students at Bloc was on active duty in Qatar while learning Ruby on Rails from us. It's interesting to see the new lifestyles and opportunities that are created when accessibility is unlocked by the Internet.

</comment><comment><USER20> I ran into a lot of NG/RC people (especially, but even some full time active duty people) in Iraq/Afghanistan 2004-2010 who were doing a pretty good job keeping businesses running back home. (I was selling Internet access, and while a lot of people were worried about $25/mo, if you ran a business you'd often be happy spending $500/mo to ensure you had good access -- this was before NIPR, base-wide wifi, etc.)

Great product, btw -- I've seen it on here before I think. And thank you for you service.

</comment><comment><USER21> Fantastic post! Well done Matt.

I'm in a similar situation where I'm working full time whilst trying to finish off a game in my spare time.

I find what helps is to have a clear goal for each work session. Even if it's tiny like 'fix this bug' or 'update this text', you finish working and feel like you've made progress. Too many times in the past I've just started working, lost focus and ended up trying to look at several things on the game and finishing none of them.

</comment><comment><USER22> I learned to program on a warship heading to Iraq in 2003. From a book, with no internet. It's amazing what constraint's will do for you - I'm not sure I'd achieve that feat now in the presence of constant distraction!

</comment><comment><USER23> This is also not the only project Matt was working on while deployed because I remember talking to him via email about some other pretty ambitious stuff. Kudos to Matt for really taking away the excuse of not being able to try something on the side even when you're fully employed.

</comment><comment><USER24> Lean Domain Search is a fantastic site and is my go to for generating ideas for domain names. Thanks for your service and for building a great site!

</comment><comment><USER25> This is an awesome post. I'm also a huge fan of lean domain search and use it all the time when starting a new project. So hats off man!

</comment><comment><USER26> Impressive.

I used LeanDomainSearch many, many times and this proves that a single guy with so little time can accomplish great things.

</comment><comment><USER27> I had the opportunity to meet Matt at MicroConf in 2013--hell of a guy. We hit it off since we were both active duty at the time and had similar stories. He's one of the most well-rounded guys I know in terms of dev and product chops.

The tool he built (Lean Domain Search) is great for finding hidden gems if you're looking for a new name for a project with the .com available.

</comment><comment><USER28> It's inspiring to be able to start something from anywhere and in any situation, but I would reconsider how easy is to follow up with that and how much time you have to put in.

Even the author of 4 hour work week in the end had to work an incredible amount of hours between marketing and networking. Getting to the point of break even is not a piece of cake.

</comment><comment><USER29> A more objective title would have been how a side-project led to an acquihire at Automatic.

It is still an inspirational story somewhat similar to path taken by patio11.

Are there any side projects which actually have turned into sustainable lifestyle businesses or better?

</comment><comment><USER30> At first, I misread that as "building a startup in 45 minutes, per day"

</comment><comment><USER31> Holy flying fuck. I bought several domains using leandomain search. It is the best. I bought them during hackathons, and earned a prize for both.

You were shooting bad guys, I was typing code for hackathons. Guess we both won?

</comment><comment><USER32> This links to a blank page for me.

</comment><comment><USER33> Wow. Referring to Nassim Taleb just by his last name? Has he really attained that level of status? He doesn't deserve it IMO, especially around here, with his fearmongering about GMOs and his debate style on twitter.

<comment><USER34> > fearmongering about GMOs

He has a perfectly legitimate argument against GMOs. If you don't agree with his argument that's one thing. But this sort of argumentation style, the same type of ad-homniem attack employed to discredit people by labeling them conspiracy theorists when the don't go with some status quo usually corporatist agenda, must stop. It's lazy and dumb.

<comment><USER35> Actual quote from Taleb:

> If a GMO-imbecile ask you for "a citation", answer: "Pls _provide a > citation_ about requirement for a citation for a logical argument."

He finally deleted the idiot tweet in question, but it's preserved here: [http://web.archive.org/web/20150924032003/https:/twitter.com...](http://web.archive.org/web/20150924032003/https:/twitter.com/nntaleb/status/646695656778821632) Note also the responses citing his own university's instructions on how to cite stuff for a logical argument.

<comment><USER34> So you are saying that Taleb engages in the same sort of behavior that I am talking about? Great. He needs to stop as well.

</comment></comment></comment></comment><comment><USER36> I hope that work wasn't done on government hardware.

<comment><USER11> unlikely -- the websites he would have needed to use to build it are usually blocked!

<comment><USER37> On the civilian side I was once almost driven to tears trying to get someone to unblock StackOverflow because it was a "social" site, though I found most of the whitelisting guys to be much more reasonable.</comment></comment></comment>