A Large-Scale Study of the Use of Eval in JavaScript Applications (2011) [pdf] - <AUTHOR> http://the.gregor.institute/papers/ecoop2011-richards-eval.pdf <comment><USER2> For all the people who spend time on HackerNews and suffer from impostor syndrome, I hope this snippet (pg. 21) will make them feel a little better about themselves:

      var ev;
      eval("ev = control." + eventType + ";");
      eval("control." + eventType + " = func;");

</comment><comment><USER3> It's probably judicious to avoid using eval in a lot of everyday application, but there's places where using it isn't particularly harmful. One example of this is when using Webpack, if you set the devtool option to use eval, it'll build and rebuild faster than the other options.

Another cool thing that you find is JavaScript is the "with" keyword. A lot of people don't even know it exists. I think Chrome's DevTools uses it along with eval. When you type something invalid, you can see stuff like:

with (typeof __commandLineAPI !== 'undefined' ? __commandLineAPI : { __proto__: null }) { whatever }

<comment><USER4> > A lot of people don't even know it exists

Good, it's fantastically broken and shouldn't be used.

<comment><USER5> That's the kind of black-and-white thinking that he is talking about.

It might be terrible to use in the vast majority of situations, but it works and it works great for those few situations that it's extremely useful for. Blacklisting something like that as a hard rule ends up doing much more harm than good in my opinion.

<comment><USER6> The issue is rather that even though the situation isn't black and white, a very large majority of web developers aren't security knowledgable enough to make the decision of if it is or isn't safe to use it in each specific case.

This is why blanket black-listing (or white-listing in cases where it is possible) is a better option because, similar to Murphy's law, if something (like eval) can be misused it will be.

<comment><USER5> But that kind of hand-holding doesn't ever work.

if someone wants to do something "bad" in a language, it's better to teach them why it's bad than to blacklist certain parts of it.

I've seen developers tell me that eval is bad, but they found a way to do what they want by using `new Function()` (which takes a string of code and makes it into a function that can be executed...)

Teach why these things are a good idea to avoid, teach why it's dangerous, teach scenarios where it's tempting but there is a better way, but don't disallow their use entirely. We wouldn't be developers if we just gave up the first time someone told us that we couldn't do it that way.

<comment><USER6> I disagree. Security is a job on it's own and although you can teach some security know how in the grand scheme of things a web developer will never be at the same level of understanding than an actual penetration tester or security researcher.

To enforce rules like this, the best practice I would say is to add JSLint or ESLint with a strict rule set on a pre-commit hook and then refuse any commits / merges that don't pass the static analysis of those tools.

<comment><USER5> I agree that security stuff is best left to security researchers. However you need to draw the line somewhere. Allowing a while loop can be a security issue for some applications. I was more talking about issues like the `with` in JS or `goto` in other languages. Yeah, they are a really bad idea for the vast majority of situations, but every now and then they are incredibly useful or provide an insane speed improvement and they can be safely used.

An eval example i've seen recently was about sending functions to web-workers. The only way to allow code to run in a web worker without a separate file is to convert a function to a string and eval the code in the web-worker side. So i could massively over complicate my build system, duplicate code in a bunch of places, and near-double the size of the downloaded code to get it working without eval, or i could setup a simple eval system and have it run a function passed in as a string.

Yeah, you shouldn't be using eval to decide if the number entered was 5 or 6, but saying it's disallowed from the codebase entirely is silly. Even a policy like "any code that uses eval must be approved by X, Y, and Z before they will be allowed in the codebase" is much more sane.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> An interesting paper, but worth noting it was published in ECOOP 2011 (so written largely in 2010, probably). The landscape has undoubtedly changed a lot since then.</comment>


The Mountain in Beverly Hills, once listed for $1B, just sold for $100K - <AUTHOR> https://www.latimes.com/business/real-estate/story/2019-08-20/beverly-hills-the-mountain-auction-100-000 <comment><USER2> I've seen this on a smaller scale where a family farm would be left for the next generation when whoever owned it passed. The children who they left the farm to for whatever reason could not afford the taxes so the entire community would show up to the auction, and not bid on it so the original owner's son could purchase it and keep it in the family.

[https://www.goodnewsnetwork.org/farmers-stay-silent- during-a...](https://www.goodnewsnetwork.org/farmers-stay-silent-during- auction-so-young-man-can-win-the-bid-on-his-long-lost-family-farm/)

<comment><USER3> One way to deal with the tax issue for a farm is to transfer the developers rights to a non profit.</comment></comment>


Barron's reports death of disk drive business unfounded - <AUTHOR> http://news.com.com/Barrons+reports+death+of+disk+drive+business+unfounded/2100-1010_3-6183424.html?tag=nefd.top <comment><USER2> Its a long hard road to flash memory taking over the drive market. I find it highly unlikely that Seagate and Western Digital don't already have research on crossover products in R&D.; They definately have a market advantage over companies like SanDisk in that it would considerably larger manufacturing capabilities to even come close to meeting the demand for storage. I predict this will be more like the original market for drives where a prolific number of smaller players will enter the market to compete with established drive makers. Most of them will either tank or get bought up in the first couple years and maybe one or two lucky newcomers will be left standing.</comment>


Don't Believe the Hype: Winter Did Not Begin Yesterday - <AUTHOR> http://nautil.us/blog/dont-believe-the-hype-winter-does-not-begin-tonight <comment><USER3> Rest assured, those of us here in the southern hemisphere are not susceptible to that kind of hype.

In AU summer very much started (both officially and by popular understanding) 23 days ago - as it does every year - on the 1st of December.

Having seasons that match calendar months is _terribly_ convenient. It also aligns with our experience of hot and cold -- January is typically the hottest month (the middle of the three summer months) and July is typically the coldest month (the middle of the three winter months). At least in the more populous urban areas of Straya.

The British approach of starting a season on the solstice / equinox has always seemed somewhere between weird and quaint (more towards the inconvenient end of weird).

Not least because the shortest / longest / median day varies drastically - <USER2> think up to 4 days variance? - depending on where we are in the leap year cycle, but also (IIRC) based on where you're standing in relation to the dateline.

I wonder what the appeal is of sticking to variant, non-calendar delineation of seasons? (I appreciate that's what the article attempts to explore .. but they don't seem to answer the question.) The author suggests January and July are the months with the most extreme temperature, so it presumably isn't related to any north / south hemisphere landmass disparity skewing temperatures.

<comment><USER4> Hi. I wrote the article. To tell you the truth, I've not (yet) found a reason why people in some places (it seems to be mainly North America and some in the UK) define seasons as beginning on solstices and equinoxes. Everyone just seems to repeat that that's when the seasons start, even if they acknowledge that there are other definitions.

I'd be curious if anyone finds a good explanation of why and how this definition took root!

<comment><USER5> I hypothesize that it is because we can predict the astronomical days centuries in advance, which in particular means that we can print calendars with "start of $SEASON" days on them with no fear that weather or something will contradict them.

I live in Michigan, which has a highly unstable climate. In practice as it happens right now, we're really more in "late Fall" than what we'd usually call "winter". Other years, winter has come in early November. Only the astronomical events are predictable in advance.

I offer as evidence the fact that the primary place I encounter these dates is on calendars. And once they are there, I think we have very little left to be explained; trusting words that appear to source from an authority even over the direct personal experience of our own eyes is a very common problem.

</comment></comment></comment><comment><USER6> In which culture is this considered the "first day of winter"? English/US? I knew that the mid summer (longest day) was called "the first day of summer" in English and always though it was just an oddity in the language (like inflammable and flammable...)

The reason we celebrate christmas in late december is because old pagan _mid- winter_ festivals used to be around this time. Sure the coldest winter weather is probably a month or so away still, but it's sure closer to the middle of the winter than the start, even if you count temperature and not sunlight?

<comment><USER7> The summer solstice marks the beginning of summer astronomically just as the winter solstice marks the beginning of astronomical winter.

Midsummer is celebrated on the longest day in some cultures, on the solstice in others, but does not denote the middle of astronomical summer.

Meteorologic summer and winter currently begin weeks before the solstice. [https://www.ncdc.noaa.gov/news/meteorological-versus- astrono...](https://www.ncdc.noaa.gov/news/meteorological-versus-astronomical- summer%E2%80%94what%E2%80%99s-difference) has a discussion on the difference.

<comment><USER6> So "astronomical summer" oddly _starts_ with the day that the incoming solar energy is highest in the northern hemisphere? Ok, that explains why it's used in English, but really it just uses the same definition! The meteorological calendar just appears to use three months, so that is pretty arbitrary.

The most logical definition of astronomical summer and winter imho would have been winter and summer being the quarter-years _centered_ on the summer and winter solstice respectively. Then the astronomical definitions would have been in line with (non-english) language, i.e. mid winter is the shortest day and mid summer is the longest day.

> Midsummer is celebrated on the longest day in some cultures, on the solstice > in others

Aren't those the same thing (maybe give or take a day)? Where I live it's celebrated on a weekend near the solstice, which makes even more sense because alcohol.

<comment><USER8> > So "astronomical summer" oddly starts with the day that the incoming solar > energy is highest in the northern hemisphere?

In a way, but you're looking at the effect, not the cause. The solstice is the day where either day or night is the shortest, which is caused by the earth either being at the aphelion or the perihelion (i.e. nearest or farthest points from the sun).

One could reasonably suspect that the solstice dates better represent a period just before the centre of the season rather than the beginning of it, since seasons take a bit of time to move in (at least up here in Canada). Snow won't stay until the ground has cooled enough, for example.

<comment><USER9> Aphelion and perihelion do not have anything to do with the solstices. They are currently coincidentally 2 weeks apart, but will be months apart in several thousand years.

[http://www.timeanddate.com/astronomy/perihelion-aphelion- sol...](http://www.timeanddate.com/astronomy/perihelion-aphelion- solstice.html)

</comment></comment></comment></comment></comment><comment><USER10> Hmm, the author doesn't appear to realize that seasons lag the solstices/equinoxes by a month or more. This happens because the ocean soaks up the heat or cold... one of the properties of water. That's why we push them back half a season.

Whether your city is a maritime one or not is also a factor. For example, this year in California, summer went until the middle of October even though the sun was not very high at that point.

[http://water.usgs.gov/edu/heat-capacity.html](http://water.usgs.gov/edu/heat- capacity.html)

<comment><USER4> I'm the author. (Hi!) The temperature extremes definitely do lag the solstices by around a month. That's not covered explicitly in the piece but implied when I say that the coldest quarter of the year (for the Northern Hemisphere) is from early Dec to early March, putting the temperature trough in the middle, in late January. That lag is well-represented in the meteorological seasons I suggest using: Dec-Feb (centered on January, the coldest month), Mar-May, etc.

Coastal California is indeed one of the few places in northern temperate latitudes where summer goes that late; some of Japan is in the same boat. Even so, December, January, and February are the coldest three months in SF, LA, and Tokyo, which supports the idea that meteorological winter makes a lot of sense. [https://en.wikipedia.org/wiki/San_Francisco#Climate](https://en.wikipedia.org/wiki/San_Francisco#Climate) [https://en.wikipedia.org/wiki/Los_Angeles#Climate](https://en.wikipedia.org/wiki/Los_Angeles#Climate) [https://en.wikipedia.org/wiki/Tokyo#Climate](https://en.wikipedia.org/wiki/Tokyo#Climate)

<comment><USER10> Hi, well given that seasons are fuzzy, does it really matter whether the seasons start on the first or twenty first? If we really cared, I suppose another solution would be to move the months over a week or two.

</comment></comment></comment><comment><USER11> Well, it's not like starting winter on December 1 isn't a lie as well – average "meteorological winter" starts Dec 8, a week later. The coldest quarter is also, of course, different every year, and not known until after the fact.

We use astronomical seasons instead because they are predictable, they are basically the same every year, and they definitively take place on a given date.

For the question of starting winter on the solstice vs halfway between solstice and equinox, we do get more cold weather after solstice than before. I think this is less important though – starting halfway between has made sense to me ever since I was a kid and learned what solstice and equinox meant.

<comment><USER4> A well-intentioned lie! Actually I'd call it more of an approximation. And the meteorological definition (Dec-Feb) is a better approximation of the coldest quarter than is starting the season on the solstice or on the cross-quarter day, in early November.

You cite predictability and definitiveness of starting the season on the solstice, but the meteorological season is better there, too.

<comment><USER11> Not actually, because in reality the coldest dates are different every year, and may change with global warming to boot. Start talking about meteorological seasons, and we can start arguing about what data to use. Does every climate region get their own definition of winter? Or do we use a one size fits all definition for an entire hemisphere? Do we go with an average of surface temperatures since they've been recorded, or do we use a running average of the last ten or twenty years? Do we use only surface temperatures, or should we take ocean temperatures into account as well?

And then you say, well, we'll just do an approximation and say Dec 1, but then you've chosen a truly arbitrary date that, again, is just as approximate to the "actual" meteorological date as Dec 22, and is off by close to the same amount.

Edit: because this post sounds pretty vehement, I just want to leaven it by saying that I recognize that all of these things are essentially arbitrary and this is not, in the end, a topic that is actually extremely important to me. I do think it's worthwhile to point out that the meteorological seasons are not as clearly better as this article makes them out to be. There are reasons for using astronomical winter, and they aren't really any worse than the reasons for using meteorological winter, as far as I can tell.

</comment></comment></comment><comment><USER12> The author just doesn't understand the history of these concepts. The months really used to coincide with the begging of the seasons for traditional western calendars such as the Julian calendar, when it was introduced (it later became incorrect because seasonal drifts were not readjusted). It was the introduction of the Gregorian calendar that shifted dates, resulting in the beginning of seasons at the "wrong" date (the Gregorian calendar skipped dates on purpose). Since the Gregorian calendar autocorrects, this drift is not going away and we are stuck with seasons that start at around the 21st of the month. Defining the seasons according to the equinoxes is not only logical, it is the definition used for thousands of years it just turns out that our modern calendars don't respect these dates.

<comment><USER4> Author here. That's an interesting claim -- that the solstices and equinoxes used to fall on the first days of the month. (At least, I think that's what you're implying.) But I'm not sure that checks out: The Julian and Gregorian calendar diverge by 3 days every 400 hundred years. When the Gregorian calendar was adopted at various times in various countries, it skipped forward between 10 and 13 days ([http://www.timeanddate.com/calendar/julian-gregorian- switch....](http://www.timeanddate.com/calendar/julian-gregorian- switch.html)). That's not enough days to explain why the equinoxes and solstices fall 20 or 21 days after the first of the month. Do you have a source for this?

Moreover, I argue that if you want to use astronomical seasons, it doesn't make much sense to begin them on the solstices and equinoxes -- they should begin near the "cross-quarter" days halfway in between (around the 7th of March, May, August, and November). And that is indeed how the seasons used to be defined in many cultures, such that Midsummer and Yule, the midwinter holiday, each came near the solstice.

<comment><USER12> This is not something that can be "proven" in the sense that all early calendars had drifts that had to be "manually" fixed over time. But we know that the Roman year started officially at the Spring equinox, so that was a calibration point [1]. The first serious attempt to fix the calendar was done by Julio Cesar, but by then he was stuck with the Winter Equinox at Dec 25th (our traditional date for Xmas). When the church introduced the Gregorian calendar their goal was to go back to the dates established for Easter around the year 300 CE, that's why they decided to jump ~10 days in the calendar.

[1] [https://en.wikipedia.org/wiki/Roman_calendar#Calendar_of_Rom...](https://en.wikipedia.org/wiki/Roman_calendar#Calendar_of_Romulus)

<comment><USER4> OK, the piece really isn't about how pre-Julian calendars defined the seasons or how and when they may have gone off the rails. It's an argument for why [1] meteorological seasons, starting a few weeks before the solstices/equinoxes, is the way to go, and [2] even if you are adamant about strictly astronomical seasons, beginning them on cross-quarter days makes more sense than _the system we use now_. One system used over 2,000 years ago doesn't figure into it.

</comment></comment></comment></comment><comment><USER13> I think this matches reality more closely:

      winter = dec,jan,feb
      spring = mar,apr,may
      summer = jun,jul,aug
      autumn = sep,okt,nov

Except, winter isn't really happening so far this year

<comment><USER14> The etymology of 'winter', as best can be determined, is 'rainy season'. So depending upon your local climate you might like to slide those three-month windows around a bit.

In my part of the UK November is _definitely_ part of winter on that basis, which is why I like the Soltice-as-midpoint-of-season approach.

</comment></comment><comment><USER8> Despite the fact that the author acknowledges that the solstice begins on different days, he has overlooked the fact winter the solstice for 2015 is TODAY (22nd), not the 21st.

So, the title is correct. ;-)

On a non-pedantic note, I agree that the seasons break emotionally well before their astronomical date. Winter beings with snowfall in November, Summer begins with the warm weather and long days in June (unless if you're living in Vancouver, in which case its still raining). And as widely as people seem to agree on this, at least in Canada, its easy to get corrected if it is "not actually [season]," yet.

<comment><USER4> Pedantic follow-up to pedantic note: The solstice was at 04:48 UTC on Tuesday, which is Monday night in the Americas [23:48 in ET, 20:48 PT, etc]. Everyone's right!

</comment></comment><comment><USER15> > "Japan's traditional calendar also specifies a winter beginning in early > November and ending in early February."

Actually like a lot of cultural things in Japan, this came from China. [https://en.wikipedia.org/wiki/Solar_term](https://en.wikipedia.org/wiki/Solar_term)</comment>


Ask HN: How long do you wait for your projects to compile/load each day? - <AUTHOR> I am getting increasingly frustrated at how long it takes to make simple changes to our application. Currently we use Visual Studio and several designer/GUI workflows such as Microsoft Reports, and TSQL designer. I work on a .NET application that is extremely complex in business logic, all on top of the Microsoft stack. These times are all on the highest end Dell laptop available with 32 GB RAM and an Intel XEON processor.
I would estimate our current build/use time for various aspects of the application is as follows:
3 minutes - Code Base Mono repo C# build
2 minutes - Navigating through app UI to see changes
2-10 minutes - Syncing our schema and data changes with the local DB (depends on how many DB's you sync at once)
20-30 seconds - Waiting for Visual Studio to load design GUI based editor tabs
I easily spend 1-2 hours a day waiting on things to load. Is this ridiculous or normal for a mature application?
What are your waiting times like for things you interact with frequently (build, syncing, etc.)? <comment><USER2> That is expected... [https://xkcd.com/303/](https://xkcd.com/303/)</comment>


GOP Senators want lower internet speeds to qualify as broadband - <AUTHOR> http://arstechnica.com/business/2016/01/gop-senators-want-lower-internet-speeds-to-qualify-as-broadband/ <comment><AUTHOR> I tend to agree that 25Mbps is a high threshold for "broadband". If HD streaming on popular services only requires 5Mbps, it seems odd to require 5x this to qualify.

As the article points out, some families/roommates share an internet connection—but many people live alone, and the definition should ignore this. And even for those who share, it's pretty unlikely that there are 5 HD streams running simultaneously. And even if this does happen sometimes—or even every night—peak usage for multi-user setups shouldn't be used as a threshold measure for "broadband" for all.

On the other hand, this definition will probably be with us for a while, and in time it will become more reasonable as a threshold. Perhaps definitions like these should be indexed in the same way that dollar thresholds are inflation-adjusted.</comment>


Show HN: Reduce bounce rate for transactional emails - <AUTHOR> http://trustmark.io

<comment><AUTHOR> I've run a bunch of side projects in the past and I always had problems with people signing up with fake email accounts for what ever reason. Then you send them a welcome email, it bounces, this happens many times and you find yourself with a bad reputation or low sender score.

I built this quick app last weekend and I've started using it for one of my projects. There are other services like this but I need it to be cheap, really cheap.

Appreciate any feedback on this or interest to try it out in production.</comment>


"Joel Spolksy is wrong about my work" - Kent Beck - <AUTHOR> http://www.threeriversinstitute.org/blog/?p=29 <comment><USER2> A note to all the people arguing about whether TDD is a good idea or not: You are arguing about the colour of the bikeshed.

The problem with Joel and Jeff's podcast isn't that they disagree with TDD. If you poll 100 random smart people on the subject, you will get a continuum of answers.

The problem is that they then made a sweeping generalization about Kent Beck and Robert Martin's experience and competence based on their disagreement. The old, "If you don't develop software exactly as I do, you are an idiot" line.

I think Kent is right not to argue the fine points of TDD, because that isn't the issue. The issue is that his competence and experience were attacked on the basis of advocating TDD, and his response is to suggest that J&J are unaware of his experience.

If someone wants to suggest that Kent is a very experienced guy but they don't think TDD is a good idea for their project, I'm sure Kent is fine with their stance on the matter.

</comment><comment><USER3> It sucks to have your life's work strawmanned like this by pop programmer podcast banter. I hope Joel addresses it professionally.

XP/Agile/TDD (like any movement) is filled with rabid fanboys who misapply the principles and try to ram them down everyone's throat, but it's rarely the case that the inventors of popular methodologies are filled with the same blind zeal. After all, their ideas were originally informed by first-hand experience.

<comment><USER4> Never heard of this guy before, but considering that he just wrote 3 paragraphs eloquently saying "Joel is an idiot" without saying anything about how they disagree makes me think quite little of him. Ad hominem attacks are rhetoric - meant to influence, not inform.

See How to Disagree, by PG: <http://www.paulgraham.com/disagree.html>

<comment><USER3> Joel dragged him into this by name. Clearly he thinks Joel is attributing ideas to him that he doesn't hold. Therefore it's not a matter of disagreement --he may well fully agree with Joel's thesis--it's the demonization of his work by misrepresentation. In that light his response seems measured and appropriate.

<comment><USER5> It may be measured, but it's not helpful.

Let's assume that Joel is neither stupid nor malicious. Therefore he is having problems that presumably others are having. In this case it is useful to actually set out the nature of Joel's error, rather than simply saying "Joel is a dolt". Non-malicious criticism can often be helpful in letting you explore _why_ people misunderstand you.

Of course my assumptions could be wrong - he could believe that Joel is being malicious.

<comment><USER6> He could also believe exactly what he says, that Spolsky has a "lack of knowledge of what I do and what I say".

FWIW, I think this is the post being responded to: <http://www.joelonsoftware.com/items/2009/01/31.html>

</comment></comment></comment></comment></comment><comment><USER7> Here's a transcript of the podcast I believe Kent is referring to. Judge for yourself whether Joel "makes comments that make clear his lack of knowledge".

<http://www.joelonsoftware.com/items/2009/01/31.html>

I'd like to see Kent respond to Joel's specific points. E.g:

      The real problem with unit tests as I've discovered is that the type of changes
      that you tend to make as code evolves tend to break a constant percentage
      of your unit tests....
      So the end result is that, as your project gets bigger and bigger, if you
      really have a lot of unit tests, the amount of investment you'll have to make
      in maintaining those unit tests, keeping them up-to-date and keeping them
      passing, starts to become disproportional to the amount of benefit that you
      get out of them.

<comment><USER8> I think I agree with everything Joel said in that post.

These crazy rules people come up with for "proper object oriented" programming remind me of extreme religious rituals. You have to observe all these stupid little rules or else your code will become impure you and will spend an eternity in code maintenance hell.

I'll make a somewhat heretical claim even: Unit test are 20% useful engineering, and 80% fad. They are great for tricky code with well defined behavior (like a parser), but wasteful for most code.

<comment><USER9> I have the deepest respect for you and your writings, but exactly how much maximum code coverage have you achieved and sustained for at least a month using automated unit tests ?

Just wondering how long you've visited the region you're writing a travel review about.

Unit tests are about confidence in the software. Automation is the mechanism for sustained confidence. Engineering (and / or fad as you put it) is a vehicle to get there.

<comment><USER10> You can have 100% code coverage, and still not be testing anything. Unless you're testing thoroughly the right parts, they're a false sense of security.

<comment><USER9> I agree with that. Its just an (imperfect) proxy measure of the depth / extent of unit testing. Asking how much code coverage is likely to give a better reflection of the effort behind unit testing rather than just a - "have you done unit testing".

</comment></comment></comment></comment></comment><comment><USER11> I found Joel Spolsky's opinions to be all over the spectrum. Sometimes he posts well-researched pieces with intriguing conclusions. Sometimes he writes uninformed rants, which show his lack of understanding of the subject matter.

This is not a problem if you carefully apply your own measure to whatever he writes.

<comment><USER12> I'd say that his ideas on management are interesting and informed. But when he starts talking development or technology he quickly becomes uninformed and poorly researched.

The discussion they had a number of episodes ago regarding MVC "patterns" made it clear that they had no fucking clue what they were talking about. And when Wikipedia didn't give a fast answer they began guestimating instead.

</comment></comment><comment><USER13> What has Kent Beck shipped?

Follow the advice of people that have shipped code. That is what I took from the Stack Overflow podcast.

Seriously, what has Kent Beck shipped? The Chrysler Compensation program is always brought up. But, I understand that the project was cancelled.

I'm not trying to troll here. I would have greater confidence in Kent Beck's argument if I knew what he was actually capable of shipping.

<comment><USER14> JUnit, for one thing.

<comment><USER15> Eclipse as well.

<comment><USER16> Really? <http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F>

</comment></comment></comment></comment><comment><USER17> Kent Beck's system is awesome if you want to subjugate a thousand programmers working at a bank. In some sense, it is a very successful way of forcing stupid people to build mediocre products under threat of economic violence.

</comment><comment><USER18> To quote from <http://www.yafla.com/dforbes/Coding_Horror_Strikes_Again>:

 _Coding Horror is an entertaining, sometimes even educational blog. Be careful diving in headfirst, though, as the technical depth is generally so shallow you'll be hitting the bottom before you've even broken through the surface tension._

Based on what I have (managed to) read at CH I find this description to be fairly accurate.

<comment><USER19> That's Jeff Atwood, not Joel Spolsky. Unless I'm mistaken about something.

</comment></comment><comment><USER16> It's quite interesting to see two kinds of technical guys arguing against each other. On one side, we have the product guy, on the other, we've got the consulting guy.

You've got Joel, Jeff, Paul Bucheit on the product side saying that "Yes, automated testing and some of the OOP principles are great, but let's not go as far as Uncle Bob"

Check out the SOLID principles. Some of the principles are alright, but when Uncle Bob explained that Rectangle class thing, I don't know what to say other than I just changed my mind leaning toward not to buy his "Clean Code" book.

On the other side, you've got Kent Beck, GoF, Uncle Bob, Martin Fowler, etc. (and possibly Gilles Bowkett). They're what you would consider "war-proven": they've done numerous "IT projects", leading a team of corporate developers, probably making a website for clients, and etc.

I don't mean to be rude (and perhaps this is an overgeneralisation), but I haven't heard any software product made by the consulting group. Yes, they wrote code, but the code is based on requirements given by some clients that:

1) Change the requirements frequently 2) Keep cutting costs 3) Ask for more 4) Cut more time

There's a huge different between writing code for commercial software that you steer versus writing code driven by someone else who knows almost nothing about software development but knows a lot how to save money.

Would you TDD-ed your UI code?

If you wrote API, yes, I can understand you do heavy unit-tests.

A side note for having your own unit-test framework: 1) Developers shouldn't write them 2) Developers should provide minimal to enough unit-tests 3) Go hire your own test team to do the rest

Developers aren't meant to be full-time testers. Testers aren't mean to be a full-time developers.

What I'd like to see is a team like this: 1) Joel becomes the product manager 2) Paul Bucheit becomes the software architect 3) Jeff, Kent Beck and Martin Fowler do the coding 4) Robert Martin and those infested TDD people can build a full-blown suite of unit-test frameworks, acceptance test and etc.

Microsoft has a category for the people in (4), it is "SDET". For those of you who think developers must write a comprehensive TDD (not just a minimum or "just to pass"), here's a challenge to you: why don't you try and be SDET. You'll see some of the serious full-blown test code, black-box, UI test code, UI automation and a serious CI process. I'm sure the experience will make your TDD and unit-test code look pale in comparison.

Google seems going to that (MS) direction slowly.

</comment><comment><USER20> classy response from kent beck

<comment><USER21> Does "classy" mean a rant with no or little content and the only remarkable thing about it is a famous author?

<comment><USER22> I'm thinking there may have been just a pinch of sarcasm behind the choice of the word 'classy'...

</comment></comment></comment><comment><USER23> I'm surprised nobody has mentioned Spolsky's significant bias in this argument:

His company makes bug tracking software!

Of COURSE he wants to cast unit testing in a bad light - done properly, it could put him out of business.

<comment><USER24> I sincerely doubt anyone who runs a company that makes bug-tracking software loses any sleep about software bugs being eliminated forever.

Regardless of what happens in the software industry, to-do lists ain't going away any time soon.

</comment></comment><comment><USER25> Epic rebuttal fail.

</comment><comment><USER26> Guru fight! Which one is right? Neither!

</comment><comment><USER4> What a well articulated ad hominem flame! So much confidence, and yet, no content. Now that is art!

 _sigh_

<http://www.paulgraham.com/disagree.html></comment>


Podcast: The HTTPS mystery - <AUTHOR> http://scripting.com/liveblog/users/davewiner/2016/02/01/0965.html <comment><USER2> Dave Winer is obviously a web legend, but I find the contradiction between his strong stance on an open web and his site's behaviour (loading static content on the fly via javascript) an awkward one.

</comment><comment><AUTHOR> Best part:

> blocking out pieces of the web is like book burning.

(I paraphrased.)</comment>


Ask HN: Lean Legal for SaaS Side Project - <AUTHOR>

What's the minimum legal shield advisable for a sole proprietor to sell a SaaS product whose only goal is a small stream of side revenue? There are so many Startup Weekend / 7 Day Startup programs out there and they focus 100% on getting you to release an MVP quickly to generate revenue, with no advice about how to avoid getting sued for shipping bugs in your software. (I get that the biggest blocker for most entrepreneurs is actually building a product, but it's borderline criminal to encourage people to sell something without the legal foundation to protect yourself from liability and undue taxation.)
There have been several HN threads about this, but they cover more elaborate situations:
* Incorporation outside the US [1]
* Startups with multiple founders or employees [2] [3] [4]
* Advice that is 5+ years old and posts have gone missing [5] [6]
What's the minimum legal incorporation necessary to limit liability and taxation for small-revenue side projects by a single developer?
[1] https://news.ycombinator.com/item?id=8870593
[2] https://news.ycombinator.com/item?id=2925222
[3] http://startupclass.samaltman.com/courses/lec18/
[4] https://news.ycombinator.com/item?id=8735793
[5] https://news.ycombinator.com/item?id=1924719
[6] https://news.ycombinator.com/item?id=2399139 <comment><USER2> Clerky looks like a lightweight way to get incorporated, which is likely a helpful first step towards a minimum legal shield by making you not personally liable: [https://www.clerky.com](https://www.clerky.com)

An important second step in your minimum legal shield is having a good terms of service agreement for your product, which should further clarify to your users what they are getting, and what you are responsible for. You might look at Snapterms [http://snapterms.com](http://snapterms.com)

<comment><AUTHOR> Unfortunately, Clerky can only help you with creating a C-Corporation. I think this particular case (one owner, small revenue from a side project, no shareholders or investment/fundraising plans) is a bad fit for a C-Corp and a better fit for an LLC.</comment></comment>


Interview: James Sterrett, Professional Wargamer - <AUTHOR> http://www.rockpapershotgun.com/2012/11/16/interview-james-sterrett-professional-wargamer/

<comment><AUTHOR> A fascinating interview with the Deputy Chief, Simulations Division, Digital Leader Development Center, at the Command & General Staff College. Goes into discussions about how war games and simulations are used in training Army Staff.</comment>


Choosing Consistency - Strong consistency options for SimpleDB - <AUTHOR> http://www.allthingsdistributed.com/2010/02/strong_consistency_simpledb.html

<comment><USER2> This look really useful: only use the potentially high latency consistent read operations when you really need them.

BTW, I have noticed something that one of my customers concurs with: using SimpleDB remotely has extremely high latency (while not running on an EC2 instance). This increased latency seems _much_ larger that hitting a Rails app on port 80 using HTTP. Anyone have an explanation why remotely hitting SimpleDB is slow but hitting a web site hosted on an EC2 instance is fast?

</comment><comment><USER3> I assume the the signature at the end "-Jeff" was Jeff Bezos. If so, that's pretty impressive that the CEO knows so much about technology.

<comment><USER4> No, it's Jeff Barr - AWS evangelist type person.</comment></comment>


Let's Encrypt Root and Intermediate Certificates - <AUTHOR> https://letsencrypt.org//2015/06/04/isrg-ca-certs.html

<comment><USER2> Earlier, without the double slash directly after the domain:

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


Ask HN: Expenses breakdown of your startup? - <AUTHOR> In percentage : Employee Salaries, Office Rent, Server, Ad Spend, Others (.. please add as required) <comment><USER2> For my solo-business it looks like this:

      My salary: 65%
      Travel Expense	6.23%
      Taxes – Corporate Tax	6.22%
      Computer – Software	3.35%
      Meals and Entertainment	3.28%
      Education & Training	2.81%
      Wireless + Internet	2.36%
      Office rent: coworking	1.85%
      Computer – Hosting	1.59%
      Accounting Fees	1.55%
      Bank Service Charges	1.41%
      Office Supplies	0.98%
      Computer – Hardware	0.65%
      Domain Names	0.55%
      Photo & Video Equipment	0.43%
      Media Purchased for Clients	0.38%
      Depreciation Expense	0.35%
      Interest Expense	0.19%
      Marketing Expense	0.08%
      Repairs & Maintenance	0.04%
      Product Samples	0.03%
      Business Registration Fees	0.02%
      Production & Supplies	0.02%
      Merchant Account Fees	0.01%
      Unrealized Loss on Foreign Exchange	0.01%</comment>


Lessons Learned from Trying to Break into Professional Screenwriting - <AUTHOR> https://medium.com/@6StringMerc/lessons-learned-from-trying-to-break-into-professional-screenwriting-7a9153890df9 <comment><USER2> On a related note, I love this quote from the article. Because it also sums up entrepreneurs and startup ideas perfectly:

"You could post your life's work online for the world to see, read, and download, and you'd still have better odds to be killed by a lightning strike than be ripped off and cheated out of millions of dollars."

Same goes for startup founders and creators there. The chance of someone 'stealing' your ideas and turning them into the next Google or Facebook are pretty much non existent. Enough with the pointless NDAs and paranoia before your company's even started.

<comment><USER3> >The chance of someone 'stealing' your ideas and turning them into the next Google or Facebook are pretty much non existent.

Of the companies you listed fully 50% were founded as the direct result of ripping off someone's idea and starting a company.

<comment><USER4> And the other just created a better version of already existing ideas.

</comment></comment></comment><comment><USER5> I'm not sure I understand the author's vitriol regarding The Black List. I think a lot of untalented people try their hand at fame without going through the pains of education, study, practice, and mastery. This has been made painfully obvious on reality shows, like American Idol, for years, hasn't it?

To me, paying $20 a month for The Black List to tell you that you're not ready seems like a reasonable investment in one's dreams. How could you possibly know where you stand if you never subject yourself to failure and criticism?

<comment><USER6> It's not just $20 a month, but you need to pay for 2 script reads, $50 each, so the first month's total is $120. Realistically, it's $140, as it takes a while to get the 2 script reads. If you score high enough, you get put on the highlight email list. If you don't, you're just available for discovery. Basically, if you don't score high enough, you're wasting your money.

The author didn't understand that you're paying for access, if your script scores high enough.

<comment><USER5> Are you really wasting your money though? Having someone read and critique your work is extremely valuable, even if you rank low (well, it is if you're willing to listen). I cannot emphasize the value of constructive criticism enough. My degree is in creative writing, and by far the biggest value I received from college came through both offering and receiving criticism.

I've never received an evaluation from The Black List, but if you actually get what their FAQs promise, _" Your evaluation will include an overall rating and ratings on premise, plot, characters, dialogue, and setting, all from 1 to 10. It will also include brief answers about the script's greatest strengths, weaknesses, and commercial prospects."_ I think the price-to-value ratio of their service is quite good.

<comment><USER7> >> _I think the price-to-value ratio of their service is quite good._

One almost wishes a similar service for scientific papers exists along the lines of a "paid dry-run peer review". Unfortunately this probably wouldn't take away from the need/burden of unpaid paper refeering for journals, but at least it's an idea to make another revenue stream available to staff doing the actual work that doesn't get co-opted by Elsevier or their non-open access ilk.

</comment></comment></comment></comment><comment><USER8> The script coverage of Boogie Nights is a great example of the problem with script readers in general.

[https://screenplayreaders.com/wp- content/uploads/2016/03/boo...](https://screenplayreaders.com/wp- content/uploads/2016/03/boogie-nights-coverage.png)

The fact is, a 24 year old that's paid 25 bucks, doesn't really have a good barometer for what makes a good movie.

It's all just so subjective.

<comment><USER9> I entered a Google-Blacklist screenwriting contest last year to promote non- stereotyped tech characters in media.* I wrote a pilot about a couple raising a family while running a makerspace. The reviewer didn't like it because it was too tech-focused and most people wouldn't get it. Then they got really hung up on the fact that my couple was mixed race, and said that it was not only wrong of me not to draw more attention to this fact, but that the whole first episode should have focused entirely on it. The review was so obtuse, and knew so little about my audience and the subject matter it was astonishing. It reminded me of an English teacher friend who did away with peer reviews, arguing that having other students who are as inexperienced as you critiquing your work will only hurt you.

*I'm fairly certain now it was either a scam or another one of those Google side-projects they fund and forget about because winners were never announced.

</comment></comment><comment><USER10> Not sure I understand his criticism of the Blacklist. Does he only want scripts to be formulaic?

<comment><USER11> His criticism is that The Blacklist is built on the idea that their are shit loads (hundreds of thousands, millions?) of really crappy scripts written every year by people with a dream. These dreamers are a lucrative business for many service providers in Hollywood. It's not that no service is provided in exchange for the money paid, but when you offer a service which explicitly sells the dream (when the reality is that a miniscule percentage actually "make it") then that is what is smarmy.

That said, I don't personally have a problem with it myself, mostly because you are getting something for your money. You'd almost certainly be better off going about things differently (sitting around waiting for Hollywood to call just because you put your script on The Blacklist--or anywhere--is a distinctly ineffective strategy).

<comment><AUTHOR> Nail on the head, re: the criticism. I just think it's important to be up front about the odds. By comparison, Script Revolution basically says "You probably won't make it, so join us to show there's merit in not buying into the old system" and that, to me, was a point of inspiration. The idea that the money paid could be a "Who Knows?!" type black-box of critical integrity just rubs me the wrong way.

</comment></comment></comment><comment><AUTHOR> Thanks to all who read the piece and contributed. I stepped away for a day to rest and came back to a piece that caught fire in this arena and others (re: screenwriting audiences). I'm going to respond as able with honesty because that's how community works. I do appreciate your time.

</comment><comment><USER12> I am not a writer, but I am a long-time movie fanatic, and I have a screenplay I want so badly to write but don't know where to begin. Any tips on that?

I wrote, I think, ten pages just going in blindly and think they probably suck, but wouldn't even know who to ask if that was true.

<comment><USER13> If you like podcasts, give Scriptnotes a try. It's John August and Craig Mazin and they cover a lot of material.

[https://johnaugust.com/podcast](https://johnaugust.com/podcast)

One thing that comes up again and again is location. If you are in the US and are writing for film, you pretty much have to be in Los Angeles if you want screenwriting to be your career.

<comment><USER12> Interesting. I wonder if Las Vegas would cut it, since it's so close (reasonably speaking).

<comment><USER11> IMHO, yes, as would any other city within a few hours. You just need to be close enough to pound the pavement and take meetings. Of course it is marginally better to be able to list a Los Angeles phone number and address on your contact info.

</comment></comment></comment></comment><comment><USER14> there was no mention of zoetrope.com I thought for sure there would be</comment>


Interview with Dr Erika Camacho on the Hartman-Grobman theorem [audio] - <AUTHOR> https://blogs.scientificamerican.com/roots-of-unity/the-most-addictive-theorem-in-applied-mathematics/ <comment><USER2> Some people are stuck in black and white thinking. They struggle to visualize the gradual transition that often happens in real life.

Some people are stuck in seeing everything gradual. They tend to discount systems flipping and long tail events.

Then there a few who see mostly nonlinear systems and neglect the spoils that lay in linear analysis of a localized space.

And on microscopic level there is the weirdness of quantum effects.

Knowing into which toolbox to reach is not always clear.

<comment><USER3> I've no idea what you mean by this. It's confusing to me.

</comment></comment><comment><USER4> TLDR: The "most addictive theorem" is the Hartman–Grobman theorem which states that under some very specific and technical conditions non-linear system near equilibrium can be described with a linear system.

More at Wikipedia: [https://en.wikipedia.org/wiki/Hartman–Grobman_theorem](https://en.wikipedia.org/wiki/Hartman–Grobman_theorem)

<comment><USER5> Rings a bell on Progogine parlance about Onsager relations.

<comment><USER5> Prigogine, I meant

</comment></comment></comment><comment><USER6> Transcript at [https://kpknudson.com/my-favorite- theorem/2018/9/12/episode-...](https://kpknudson.com/my-favorite- theorem/2018/9/12/episode-26-erika-camacho).

</comment><comment><USER7> Does anyone have a TL;DL?

<comment><USER8> Imagine you're looking at a ball rolling around on a complicated curved surface defined by differential (non-linear) equations, which can be a tricky system to analyze.

If the ball is near some sort of a saddle equilibrium point, the theorem says that you can simplify things by flattening out a small patch of the surface if you are (very) near that point.

This is a lot easier to analyze using simple linear algebra tools, and still gives good results for predicting what happens next.

<comment><USER9> Generally it's a pretty basic concept in analyzing any system, 1st step is to use a constant, if it doesn't fit then a linear model, etc. Can use different approximations depending on the circumstance, e.g. you can approximate sin(x) with x around 0...

Is there something special to it in this particular case?

<comment><USER10> Hartman-Grobman isn't so much about approximation error by choosing different simplifying models. It's about being able to do some analysis on the linear approximation with the results carrying over to the original non-linear system. In particular, it lets you categorize stationary points of a non- linear dynamical system, using only the linear approximation at the fixed points, which is awesome since analyzing linear systems is super easy.

</comment></comment></comment></comment><comment><USER11> > In mathematics, nonlinear basically means "hard to analyze;"

my god how low Scientific American has fallen

<comment><USER12> Not sure what your issue with "hard to analyze" is. When compared to linear systems, nonlinear dynamical systems _are_ hard to analyze.

> Nonlinear dynamical systems, describing changes in variables over time, may > appear chaotic, unpredictable, or counterintuitive, contrasting with much > simpler linear systems.

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

<comment><USER13> "Hard to analyze" is a property nonlinear systems have. It's not the meaning of the term.

<comment><USER14> That is not the meaning of the term. However, if you are to describe what the big deal is about finding ways to analyze nonlinear systems to lay people then what better description is there?

<comment><USER13> First line of the Wikipedia page is fine: "In mathematics and science, a nonlinear system is a system in which the change of the output is not proportional to the change of the input."

Scientific American's typical reader surely understands a) the concept of a function b) the concept of proportionality.

It's fine to say that nonlinear systems are difficult to analyze, or have a reputation for being difficult to analyze. But it's bad practice for a science communicator even to run the risk of giving people the impression that the difficulty is part of the meaning (definition) of the word.

<comment><USER15> Did the article change? The rest of the "hard to analyze" sentence you quoted above is "linear systems respond proportionally to changes in variables, whereas nonlinear systems have more complicated relationships."</comment></comment></comment></comment></comment></comment>


Practical Unix Manuals: mdoc - <AUTHOR> https://manpages.bsd.lv/ <comment><USER2> I use perldoc / POD to write man pages and that works well. It's simple to write and there are tools to convert it straight to man pages, text or HTML.

For example: [https://raw.githubusercontent.com/libguestfs/libguestfs/mast...](https://raw.githubusercontent.com/libguestfs/libguestfs/master/p2v/virt-p2v.pod) and the output as HTML: [http://libguestfs.org/virt-p2v.1.html](http://libguestfs.org/virt-p2v.1.html)

(The output in 'man' looks really good too, but I don't have an easy way to demonstrate that.)

<comment><USER3> I used POD for a while; but after using DocBook XML for manuals for a work project some years ago I switched to primarily using that, and generating HTML, roff, and others from it.

Instead of explicit italicization and boldface

        to the hard disks: Firstly, the qemu-nbd I<-r> (readonly) option is

I write semantic markup

        The <arg choice='plain'>--upstart-compatibility</arg> option causes <command>tcp-socket-listen</command> to set the <envar>UPSTART_FDS</envar> environment variable to 3, and the <envar>UPSTART_EVENTS</envar> environment variable to <literal>socket</literal>.

which I find preferable.

<comment><USER2> DocBook XML isn't bad, but don't you find the markup incredibly verbose?

<comment><USER3> No. As you can see from the aforegiven snippet, which is fairly representative although it was the result of my going looking for a sentence with a lot of different elements in it, it isn't.

</comment></comment></comment></comment><comment><USER4> roff is quite horrible to read and write. There's a much better solution than banging your head against an archaic and unforgiving file format: AsciiDoctor's manpage backend [1]. You write in asciidoc, with some required structure that's quite easy to follow, and it spits out a proper roff document for you. Asciidoctor's own manpage [2] is, of course, generated in this way, and it's a pretty good example of the form.

[1] [http://asciidoctor.org/docs/user-manual/#man- pages](http://asciidoctor.org/docs/user-manual/#man-pages)

[2] [https://raw.githubusercontent.com/asciidoctor/asciidoctor/ma...](https://raw.githubusercontent.com/asciidoctor/asciidoctor/master/man/asciidoctor.adoc)

<comment><USER5> The main issue with this is that AsciiDoc cannot express semantics. When writing manpages, you can specify that something is a flag or a function parameter, etc.

<comment><USER4> I'd argue that (1) manpages are for humans to read, and (2) there is effectively only one presentation style for the conveying the semantic contents. So as long as the author of the manpage follows the standard conventions for manpage presentation style, they are in fact expressing the semantics. And it's a lot easier to learn the conventions (flags in bold, arguments in italics, etc.) and write them in lightweight markup than it is to learn roff.

<comment><USER6> Semantic markup has more uses than just consistent presentation. For example, most of the BSD's use mandoc rather than groff for rendering which allows you to do more detailed searches with apropos. Note that the linked article refers to the mdoc macros. These aren't especially new and are very well supported but the man macros are still more common. If you dig into the details, the mdoc macros have many advantages.

<comment><USER3> Using mandoc instead of groff is a bit of a step backwards, note.

grotty is capable of ECMA-48:1976 and ISO 8613-6:1994 control sequences, and can actually do proper italicization, boldface, underline, and colour in manual pages; which many terminals nowadays have supported for decades.

* [https://jdebp.eu/Softwares/nosh/italics-in-manuals.html](https://jdebp.eu/Softwares/nosh/italics-in-manuals.html)

mandoc still only knows the old 1960s TTY-37 control sequences that use overstrike for boldface and underline and that have no notion of italicization or colour.

When FreeBSD switched from groff to mandoc, I went looking for any way to have mandoc support ECMA-48:1976 and ISO 8613-6:1994 control sequences. It turned out to be a large amount of work to bring it up to parity with something that the GNU toolchain has had since the 1990s (and is in fact the GNU toolchain's native mode of operation).

<comment><USER7> > _one has to employ the MANROFFOPT environment variable, setting it to > "-P-i"._

This didn't work for me (Debian unstable), because man called nroff, which doesn't understand the -P option.

So I put

      DEFINE  troff   groff -mandoc -P-i
      DEFINE  nroff   groff -mandoc -P-i

in /etc/manpath.config . This did the trick, but I'm not sure it didn't break something else.

<comment><USER3> Aha! A typing error. One should set it to

        -- -P-i

Note the -- option. This causes nroff to just pass the -P-i option straight through to groff.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I love man pages they are often easy to read, but roff is not that easy to author. So it nice to see good documentation being posted.

       .Sh SYNOPSIS
       .Nm
       .Op Fl C
       .Op Fl o Ar output
       .Op Ar prefix

becomes this:

       SYNOPSIS
       hello	[-C] [-o output] [prefix]

Semantic formating is nice, but atm I'm not sure there is much value to write the above vs using markdown and just convert it to roff.

<comment><AUTHOR> Semantic markup has a use, at least on OpenBSD. You can use the semantic markup for searching manual pages, like this[1]:

> Search for manuals in the library section mentioning both the "optind" and > the "optarg" variables:

> $ apropos -s 3 Va=optind -a Va=optarg

[1] [https://man.openbsd.org/whatis.1](https://man.openbsd.org/whatis.1)

<comment><USER9> I wish I could use semantic markup to _jump to a definition_ , either of an option or a subcommand.

<comment><USER10> You can actually. If you use mandoc instead of mandb, it automatically generates and passes tag files to less. Then you can just type ":t e" to jump to the docs for the -e option, for example.

<comment><USER9> Interesting, so theoretically that is something that every distro could and should be doing?

</comment></comment></comment></comment></comment><comment><USER11> quick plug for someone to do the legwork get heirloom troff in some real (read BSD) unix so that the whole roff toolchain is reintegrated after USL, that would be great.

<comment><USER7> What's USL?

<comment><USER12> Unix System Laboratories - [https://en.wikipedia.org/wiki/Unix_System_Laboratories](https://en.wikipedia.org/wiki/Unix_System_Laboratories)

See also: USL vs. BSDi: [https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc....](https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc._v._Berkeley_Software_Design,_Inc).

<comment><USER7> HN doesn't consider trailing dot part of the URL, so you need to URL-escape the dot (%2e) to make it work.

(But I set up a redirect, so now the dotless URL works, too.)</comment></comment></comment></comment>


Asserts considered harmful (or GMP spills its sensitive information) - <AUTHOR> https://seclists.org/bugtraq/2018/Dec/46 <comment><AUTHOR> Is GMP library a secure choice for cryptography usage?</comment>


Cryptocurrency Canon – Andreessen Horowitz - <AUTHOR> https://a16z.com/2018/02/10/crypto-readings-resources/# <comment><USER2> Most of the articles are related to projects and companies backed by a16z with expert takes sprinkled in between so not exactly neutral ...classic marketing material disguised with genuine content..including some authors of questionably legitimacy.

<comment><USER3> Dunno about marketing materials but it all seems on the positive side, skipping "Blockchain is not only crappy technology but a bad vision for the future" type viewpoints ([https://news.ycombinator.com/item?id=16774293](https://news.ycombinator.com/item?id=16774293))

I'm kind of neutral on crypto but if you don't include the negatives you get a skewed view.

</comment></comment><comment><USER4> Is there a single successful legitimate application of a cryptocurrency yet?

I have followed a16z on this topic and I generally have respect for their team. But still, if we can't name the killer app yet, is it ever coming?

<comment><USER3> Depends a bit on how you define successful and legitimate. Online gambling? Funding Alex Jones when the respectable won't deal with him?</comment></comment>


Sorry, Box, but free is not a business model - <AUTHOR> https://gigaom.com/2015/01/24/sorry-box-but-free-is-not-a-business-model <comment><USER2> This whole post seems like contrived bullshit...clearly he doesn't understand the concept of SaaS and recurring revenue. Investors are betting that box can generate a large amountof recurring revenue and THEN reap profits based on those recurring revenues in the future (as marketing and sales costs drop). Free customers also basically cost almost nothing - no support, sales or marketing costs. Sure, some "storage" cost, but really - almost nothing.

Also - Box does not sell "storage" they sell collaboration, auditing, and security assurances (ie: HIPPAA compliance is NOT something Dropbox ever offers).

>>If Box has to spend almost everything it makes from current customers to win new ones, what is the use of giving its product away for free, aside from boosting the size of their user base to impress investors?

Uh, so people who are not paying users who are outside the organization can "see" and collaborate on those files? This also indicates his clear misunderstanding of the benefit of creating corporate users who will not churn - thereby recouping their CAC within 12 months.

>>And, more importantly, Dropbox and Box still have to support all those non- paying customers. There is simply no palatable way for them to eliminate free users, and the costs associated with them will continue to rise as the need for storage increases. As more free customers are added into the system, those costs continue to grow, creating a death spiral.

then three sentences later….

>>Dropbox reduced the price of a gigabyte of storage by 90 percent. That is a clear indicator that, over time, the price of cloud storage will continue to reduce to zero.

So how does something dropping to the cost of "zero" equal "..As more free customers are added into the system, those costs continue to grow, creating a death spiral."

My favorite part is the ending: "Andres Rodriguez is CEO of Nasuni, a Natick, Massachusetts-based cloud storage-as-a-service company."

Yeah, good luck with that.

<comment><USER3> The whole idea of a free service is to generate good will and potential customers. If you have a crappy free service, it generates bad will and discourages potential customers. So you are forced to maintain a decent free product, at least comparable to those of other people offering free products. An important thing to remember is that if you are offering a free service, your potential evaluation customers are likely to try out the free service before calling you, so if it is bad, you probably will not get the call. And, in general, maintaining decent quality is not free, although admittedly how expensive it is really depends on the details of the situation.

I do agree that this analysis is wrong. It is common for companies trying to grow in market-share within a highly competitive end up losing money, if Box's problem was that it could only grow by losing money, it could just pick a "good enough" point and then scale back market share growth and instead concentrate on inside sales.

I suspect that Box has other problems, and free business models often do have holes in them (people usually underestimate the costs of a free service that does not scare away customers), but there is far better analysis of free business models on the web than this article.

</comment></comment><comment><USER4> There's a rumour (so take with a grain of salt) that both box.net and Dropbox are haemorrhaging users from companies using Google Drive - many companies first experience of 'the cloud' is their office suite, so it that comes with free storage that's better integrated into their productivity tools then they'll never get onboard with other storage providers.

<comment><USER5> My company subscribes to Google Apps and I hate using Google drive : it is slow and its performance is unpredictable and it still does not natively support Linux. On the other hand, Dropbox is always fast and it supports Linux. I have never tried Box.

<comment><USER6> Box, in my experience falls between GDrive and Dropbox in suckyness. However I understand from people who have evaluated both that Box has much better large scale corporate level integration and management tools than Dropbox.

</comment></comment></comment><comment><USER7> I find it curious that Box does not support Linux. That has immediately eliminated it from the small companies I have worked at over the last few years. Google Drive (except for Docs) is the same problem. This has been to Dropbox's benefit.</comment>


Show HN: Jstrong – convert JSON object keys/values to AES256 encrypted strings - <AUTHOR> https://github.com/davidpaulhunt/jstrong <comment><AUTHOR> This is a concept I wrote (quickly) to start testing the idea of storing data in Elasticsearch. I first wrote siphr[1] to handle the translation then this (jstrong) for convenience.

We need something encrypted at rest or some translation layer around application-level security (HIPAA reasons).

Your thoughts, suggestions, criticisms, bugs, breaking of things are always welcomed!

1\. [https://github.com/davidpaulhunt/siphr](https://github.com/davidpaulhunt/siphr)</comment>


Ask HN: How did you stop browsing aimlessly and focus on learning? - <AUTHOR> <comment><USER2> I've learned that you need to set a schedule and get out of the house to get things done.

So, here's the actions to take:

1) Decide what you want to learn.

2) Make a plan on how you will achieve it.

      2a)Find a learning source

      2b) Define a project that you will create. It does not have to be unique.

Unless you have something in mind just copy something or someone.

      2c) Set a deadline. It should be relatively short. 1 to 1.5 months. Don't try to learn everything.

But make it a challenge.

3) Find a place where you will study. Not at home and it should have limited internet access.

4) Set a schedule. Maybe, every day from 6 to 7

5) Set 1 day for study and the next day for action and review and work time on your project.

6) Follow thru

The big key is that you need to get out of the house and you need to keep a schedule. It's very hard to stay disciplined at home.</comment>