Tesla sues its alleged saboteur for $167M - <AUTHOR> https://www.engadget.com/2018/12/12/tesla-seeks-167-million-damages-saboteur/ <comment><USER2> I don't think it's an unrealistic number. The guy hacked the system and downloaded information, distributing that which caused the stock price to dip. Tesla has a definitive loss. What that exact number is could be up to debate, but just because the defendant is a person instead of a company does not diminish the level of damage done to Tesla.

<comment><USER3> _> distributing that which caused the stock price to dip. Tesla has a definitive loss._

How did a stock price dip cause a loss to Tesla?

<comment><USER4> For starters, it affects how easily they could raise cash by borrowing money, during a time when they desperately needed capitol.

<comment><USER5> The problem with that legal theory is that Musk insisted at that time that Tesla did NOT plan to raise capital: [https://www.cnbc.com/2018/05/02/tesla- ceo-elon-musk-continue...](https://www.cnbc.com/2018/05/02/tesla-ceo-elon- musk-continues-to-say-he-has-no-plans-to-raise-capital.html)

<comment><USER6> Perhaps that was decided because it was costly?

</comment></comment></comment></comment></comment><comment><USER7> I've wondered for a bit as to why they chose such an unrealistic number. Maybe because they knew this would bait the media into reporting on it again, now that his "whistleblower" case has effectively fallen apart?

<comment><USER8> Partially, but also just to indicate what they perceive to be the real damage from his actions, so that in the future people can evaluate if their personal vendettas are worth the harm they cause. (Of course I see the irony given recent history at the company, but future deterrence is a large motivator for many lawsuits).

<comment><USER9> Isn't the use of a lawsuit to deter speaking out illegal (SLAPP)?

<comment><USER10> This is a federal case, and there's no federal anti-SLAPP law.

Even in states which have anti-SLAPP laws, they target _frivolous_ lawsuits to deter speaking out. If you really do have a case, but part of your motivation for bringing it is to deter future misconduct, that's perfectly kosher.

<comment><USER11> Anti-SLAPP law in California is not limited to frivolous lawsuits...

The whole point of the Anti-SLAPP statutes is to discourage companies from using lawsuits to "deter future misconduct." It provides, at a minimum, that the company pay all the defendant's legal costs and the complete dismissal of the company's case with prejudice (which usually means all of the related claims filed in the same lawsuit, though on rare occasions the company may be allowed to split off those claims into a separate case).

<comment><USER10> As long as the plaintiff can establish "there is a probability that the plaintiff will prevail on the claim", the anti-SLAPP statue doesn't apply. It doesn't matter at that point why they filed the lawsuit.

<comment><USER11> Right, the plaintiff needs to show prima facie evidence of all elements of their claims in order to defeat an Anti-SLAPP motion.

Unless Tesla has been concealing some facts in its court filings, they don't have prima facie evidence of all elements of their claims. Anti-SLAPP motions can precede the discovery phase, i.e., before Tesla can acquire that evidence. Moreover, unlike TV, such evidence must be presented in court filings. Ambush disclosures aren't a thing in real life.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Musk/Tripp email exchanges:

[https://www.washingtonpost.com/news/the- switch/wp/2018/06/21...](https://www.washingtonpost.com/news/the- switch/wp/2018/06/21/saboteur-or-whistleblower-battle-between-elon-musk-and- former-tesla-employee-turns-ugly-exposing-internal-rancor/)

</comment><comment><USER13> I think Tesla is suing Mills for several reasons. One is to discourage activity it thinks is sabotage and slander. Secondly it wants to do discovery to discover if he was working for someone who wanted to undermine Tesla, like a stock shorter or a fossil fuel or automotive company, who it would then sue next. And I am guessing it is also a preparation for another suit against the sleazy media company that published his claims, again to see if one of the above enemies was behind it.

As for the $167 million claim, the idea is not to get the money from Mills, which Tesla is perfectly aware is impossible. Rather it is to set the value for a later lawsuit, and also to let people know it is serious about defending itself.

</comment><comment><USER14> What did he whistleblow on exactly? That car manufacturing is dirty? That parts of the vehicle get dinged & scratched and are still used? What is the revelation here?

<comment><USER15> Did he actually whistleblow?

Whistleblowers leak either to general public or regulators. From the article it sounds like the data went to some private 3rd party. Correct me if I'm wrong.

<comment><USER16> "The former employee, who used to work as a process engineer at Tesla's Gigafactory, filed a complaint of his own with the Securities and Exchange Commission in June. He accused Tesla of making 'material omissions and misstatements' to investors as well as of putting cars with safety issues on the road."

He did whistle-blow according to the article. According to another article he denies dumping data. [https://www.engadget.com/2018/08/15/martin-tripp-tesla- tweet...](https://www.engadget.com/2018/08/15/martin-tripp-tesla-tweets/)

<comment><USER17> His own lawyers have abandoned him on these claims and he is now having to represent himself in the whistle blower case

<comment><USER18> I can't find any information on online to corroborate what you are saying. Can you share a link?

This article from yesterday indicates that he has attorney representation [https://www.google.com/url?sa=t&source=web&rct=j&url=https:/...](https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.zdnet.com/google- amp/article/tesla-is-suing-martin-tripp-alleged-saboteur- for-167-million/&ved=2ahUKEwjTl72hiJzfAhWMFXwKHc2YBy8QFjAKegQICRAB&usg=AOvVaw3TKkeW4E-2VzfSHFFiHnur&ampcf=1)

<comment><USER17> > Tripp was represented by Meissner Associates in the whistleblower matter > earlier, but is now representing himself, attorney Stuart Meissner told > CNBC.

[https://www.cnbc.com/2018/12/11/tesla-seeks-167-million- in-d...](https://www.cnbc.com/2018/12/11/tesla-seeks-167-million-in-damages- from-ex-employee-martin-tripp.html)

</comment></comment></comment></comment></comment></comment><comment><USER19> Who would be best to track such incidents within the company? IT department or SecOps?

<comment><USER20> The security group should respond and manage the incident while working with their IT counterparts to fix the systems that were exposed.</comment></comment>


Effective Productivity Hacks from 80 Startup Founders - jarek-foksa http://foundersgrid.com/productivity-hacks <comment><AUTHOR> When I was a kid and procrastinating my homework, my father would sit me down at the dining room table, stand over me, and command "put the pencil on the paper. Move your hand. Move. Your. Hand."

Productivity hacks are nice tricks to get you over a little resistance sometimes. But for really bad blockings, nothing beats just sucking it up and doing the work. I can't always get the perfect cup of coffee. Sometimes I'm forced to work with unfamiliar tools. Occasionally, I might not even have my desk available, say nothing about it being clean and uncluttered.

That said, one of my favorite productivity "hacks" is to take a long train ride. Amtrak has free wifi and coffee in business class, the seats are large and comfortable, and lunch is pizza and beer. Airplanes don't do it for me, I think because I've never been on one with free wifi, they are uncomfortable, and most of the places I'd be traveling to are only two or three hours away. I take the train any time I'm traveling on the east coast.

Semi-related to that, I also accompany my wife on her business trips. Since she will already have a hotel room paid for, I use the wifi while she's working in a helicopter somewhere. I get a ton done during the day and then feel absolutely no guilt about kicking off at 5pm and doing nothing for the rest of the night but sit and drink with my wife.

</comment><comment><USER2> I really like it that most of the hacks aren't polished too much; makes it way easier to read for me. Often all those startup tips'n'tricks can be cheesy and distract.

Many notes were useful to me, but this one struck me as I was dealing with it yesterday:

> "Writing everything down. After years and years of assuming that I can rely > on my memory, I finally realized I was wrong about that. Even if I can > remember something, the task of my brain holding onto that little piece of > information is taking time and energy away from whatever task it is that I'm > working on in the moment. I've cobbled together a handful of > products/services to achieve what has become a pretty efficient way to keep > track of everything." > _By Kendall Guillemette_

I was thinking about creating a website with categories/hashtags/search/calendar (could use something like WP/Drupal) and using it for the same purpose.

Did someone else have the same problem? How did you solve it?

<comment><USER3> Don't know if you use emacs, but I use org-mode on text files with Dropbox. Supports tags, calendaring, searching, etc.

<comment><USER2> Thanks for the suggestion, will check it out.

</comment></comment></comment><comment><USER4> "My favorite 'magic pill' productivity hack is my Seiki 39″ monitor" \- bountify founder

wouldn't 39" monitor be too big for programming? what is HNers' preferred size?

<comment><USER5> Tiling window managers take care of that. At work, I'm hurting for more space a lot with 2x24" monitors, especially when I need to keep close tabs on a critical service.

<comment><USER3> What window manager do you use?

<comment><USER5> xmonad.</comment></comment></comment></comment>


LOL isn't funny anymore - <AUTHOR> http://www.cnn.com/2013/04/30/opinion/mcwhorter-lol/index.html <comment><USER2> He did a great TED talk on this:

[http://www.ted.com/talks/john_mcwhorter_txtng_is_killing_lan...](http://www.ted.com/talks/john_mcwhorter_txtng_is_killing_language_jk.html)

<comment><USER3> I was literally just about to post that link. Truly great talk. I especially enjoyed that quote from 68bc where somebody complained about the quality of latin in certain areas, something which ultimately resulted into 'French' :)

</comment></comment><comment><USER4> "Barely punctuated, sparsely capitalized and with decidedly creative spellings throughout" Who texts that way anymore? Everyone I know who texts uses whole words, reasonable punctuation, and spell check.

<comment><USER5> > _Who texts that way anymore? Everyone I know who texts uses whole words, > reasonable punctuation, and spell check._

Sure, but he means texters outside "Cambridge Literature Department Gentlemen's Club".

And by "texts" he means SMS (short message service), and not the telegraph.

<comment><USER4> I'm referring to teenage girls, my little brother who texts incessantly, and every other person I've texted in the past year. I checked and there are two people who use "u" for "you" but that's as far as it goes.

Also, if I were sending a telegram, I would use every contraction and elision available, and no punctuation but STOP.

</comment></comment></comment><comment><USER6> The Dutch word "lol" made a round trip back to its original meaning. Whoever told the world "lol" stands for "laughing out loud" lied through their teeth.

</comment><comment><USER7> I was at Cal in the early 2000s when Professor McWhorter was teaching there. I never took one of his classes, but I'd attend with friends who did as often as possible, sometimes standing room only.

If you ever get a chance to hear Professor McWhorter speak, take it; it'll be worth your time. He's brilliant and entertaining.

</comment><comment><USER8> This is interesting. I've been fascinated for some time about these little sub-languages (another one is the language used on road signs).

On a slightly different topic, as long as we're going to mention the idea that texting is ruining literacy, we should also mention that there is a good argument that texting is actually having an enormously positive effect on literacy. The fact that so many students are communicating via written words means that, in many schools, it is now impossible to be both cool and illiterate. Suddenly there is a huge incentive to be good at reading.

I have no idea how texting is affecting students with high levels of literacy, but I bet it is causing a significant drop in the number of students with very low levels of literacy. Does anyone know if this has been studied?

</comment><comment><USER9> "The going idea is that texting has, in essence, made graffiti a universal pastime: Barely punctuated, sparsely capitalized and with decidedly creative spellings throughout, texting means that today's America is reveling in writing badly."

This is an extremely poor and essentially meaningless comparison between graffiti and texting. People spell properly in spray paint on walls all the time. A defining characteristic of graffiti is its engagement with public spaces; I see no real connection between graffiti itself and the words the author used to describe it. To make a better comparison, this description could actually be applied to poetry rather than graffiti.

<comment><AUTHOR> Careful. Dr. McWhorter is relaying "the going idea" here to establish context. He's not espousing that view -- he sees texting as fingered speech, not writing. Or are you objecting to a perceived disparaging of graffiti?

<comment><USER9> I am not actually saying that the author is pushing forward this sort of thinking, but I do think that the author is wrong in saying that this is "the going idea" as I have never heard that comparison before. My objection is to this common idea that graffiti is "low-art" while something like poetry actually seems much more damaging in terms of proper english usage, yet is regarded as "high-art" (historically). I simply fail to see the connection between texting and graffiti and it struck me as odd that this could be a commonly held belief.

</comment></comment></comment><comment><USER10> here's a slightly different interpretation of LOL from british comedian David Mitchell: <http://www.youtube.com/watch?v=j_x5cfdwP98>

</comment><comment><USER11> CNN isn't news anymore

<comment><USER12> No, but the clever headline got a lot of clicks thus made a tad bit of money for the cost of having a reporter watch a video and do a half-dozen paragraph summary.

[edit: as pointed out author is same person as video]

<comment><USER13> I believe that the author of the article is the same person speaking at the TED Talk -- or am I missing something?

<comment><USER12> Yep, you're right - probably needed some editor time though.</comment></comment></comment></comment>


Google Page Speed Service - <AUTHOR> http://techcrunch.com/2011/07/28/google-page-speed-service/

<comment><USER2> Somewhere out there is a lawyer observing that people are chatting on their Google phones while booting up their Google browsers on their Google netbooks to do their Google searches leading into Google servers hosting Google properties and non-Google properties and wondering "Why the heck am _I_ drafting anti-trust apologias? For heaven's sake, we are but a humble operating systems and office productivity company."

<comment><USER3> I might not agree with it, but I don't doubt that Google will face a large anti-trust trial in the near future.

Users just need to remember the old adage - if you are not paying for the product, then the product is you

</comment></comment><comment><USER4> This does look awfully like CloudFlare. Some more competition in that space should be good for everyone because it seems like an idea whose time has come.

I hope this will prove to be a good quick-and-dirty way to add SPDY support to existing web services (which I expect will in turn help drive users to Chrome.)

Unfortunately, it's looking hard to test as webpagetest.org is going to be hit with long queues for a while...</comment>


How Differential Gear works - <AUTHOR> http://www.youtube.com/watch?v=K4JhruinbWc#t=1m50s <comment><USER2> Interesting difference in the attention spans of the 1930's to now. 1:50 in and still not a word of commentary on what this is about. How many people on HN sat through this whole video?

"Recent studies show that Internet users spend as little as 50 milliseconds scanning a website before deciding whether it is of value to them or not." Source: [http://www.messagingtimes.com/blog/2006/03/15/microcontent-m...](http://www.messagingtimes.com/blog/2006/03/15/microcontent- missive-from-contentious-blog/)

<comment><USER3> Heh, true. I had to skip ahead. That being said, this massive intro was more entertaining than most intros you find on Youtube, but how long can anyone be expected to watch the same three Motorcycle stunts/tricks? What stood out to me was the short text scroll at the beginning. I was thinking "wow, people even put slow, useless text at the front of their videos 50 years ago, it's not just a Youtube phenomenon".

Nevertheless, an interesting video. I learned something; I've actually been wondering exactly how that worked for a while (classic hacker attribute: enough to think about it and perhaps determine it on my own, but not curious enough to just look it up).</comment></comment>


Boto (AWS Python SDK) goes green, top 19 libraries now support Python 3 - <AUTHOR> https://python3wos.appspot.com/ <comment><USER2> It is misguiding to say that boto supports Python 3. The boto3 repository ([https://github.com/boto/boto3](https://github.com/boto/boto3)) is experimental and _far_ from feature completion. I am even not sure if it's API compatible with boto. Further, it has been dormant for quite some time.

boto3: [https://github.com/boto/boto3/tree/develop/boto3](https://github.com/boto/boto3/tree/develop/boto3)

boto: [https://github.com/boto/boto/tree/develop/boto](https://github.com/boto/boto/tree/develop/boto)

It don't understand why python3wos changed its status.

<comment><AUTHOR> It's not the boto3 repository, it's just boto, at [https://github.com/boto/boto](https://github.com/boto/boto)

Maybe it's gone green because the boto project maintainers have closed this issue:

[https://github.com/boto/boto/issues/677](https://github.com/boto/boto/issues/677) \- at the end of the thread Daniel Taylor says 'Python 3 support now works for S3, SQS, Kinesis, and CloudTrail'

What is it that makes a project go green on the wos?

These pull requests seem to indicate that someone has completed work on a whole bunch of other modules to make them Python 3 compatible but the pull requests have not yet been integrated.

[https://github.com/boto/boto/pull/2354](https://github.com/boto/boto/pull/2354)

[https://github.com/boto/boto/pull/2355](https://github.com/boto/boto/pull/2355)

[https://github.com/boto/boto/pull/2356](https://github.com/boto/boto/pull/2356)

[https://github.com/boto/boto/pull/2357](https://github.com/boto/boto/pull/2357)

[https://github.com/boto/boto/pull/2358](https://github.com/boto/boto/pull/2358)

[https://github.com/boto/boto/pull/2359](https://github.com/boto/boto/pull/2359)

[https://github.com/boto/boto/pull/2361](https://github.com/boto/boto/pull/2361)

[https://github.com/boto/boto/pull/2362](https://github.com/boto/boto/pull/2362)

[https://github.com/boto/boto/pull/2363](https://github.com/boto/boto/pull/2363)

[https://github.com/boto/boto/pull/2364](https://github.com/boto/boto/pull/2364)

[https://github.com/boto/boto/pull/2365](https://github.com/boto/boto/pull/2365)

So maybe its close but not there yet. Strange that the pythonwos is showing it as green.

I'm using the latest version from github for S3 access with Python 3 and it works fine.

<comment><USER3> Almost certainly the WOS is looking for PyPI's Python 3 trove classifier

        Programming Language :: Python :: 3

which was added [0] as part of the initial Py3k port discussed in #667.

So what this means is as of July 2,

        import boto

won't blow up on Python 3, even though it's not yet API-compatible with Python 2.

[0]: [https://github.com/boto/boto/commit/1ac79d0c984bfd83f26e7c3a...](https://github.com/boto/boto/commit/1ac79d0c984bfd83f26e7c3af4877a731a63ecc2)

<comment><AUTHOR> Mea culpa. Seems Python 3 support is there for some modules but on the way for others. The wos isn't right.

Dang you might want to take this off the front page.

<comment><USER4> Why would you take it off the front page? At the very least this is useful information about how the WOS works.

<comment><USER4> Wow. I wonder what low-life downvoted this entirely innocent comment. Now continue with this one, surely you'll manage -60, especially if you have a voting ring.

Quick, it will likely be the only accomplishment you'll achieve today, if not for the rest of your life.

</comment></comment></comment></comment></comment></comment><comment><USER5> Isn't the new boto though botocore ([https://github.com/boto/botocore](https://github.com/boto/botocore))? AWS CLI, for example, uses botocore, and it says it's the low-level foundation of boto 3.

<comment><AUTHOR> They decided to make boto Python 3 compatible and will be using botocore as its underlying framework at some stage in the future.

</comment></comment><comment><USER6> What might be nice as well is to put a Py3K alternative alongside any red libraries, where applicable.

I'm not sure how much work it'd be but it might be useful to see how much Py2k library functionality can already be achieved in Py3k.

</comment><comment><AUTHOR> dang - looks like the Python WOS is not correct and boto is not yet green, please remove from front page.

</comment><comment><USER7> Too little too late.

</comment><comment><USER8> This is done through a total rewrite of boto to support Python 2/3 [1]. And, as they say, "It's not production ready". So, It might be a little bit early to say that boto support Python 3 since every sub-module will need to be ported to be as usable as boto (to support each AWS service).

This is an outsider opinion on the project, if someone know more about it, don't hesitate to show me wrong.

[1]: see [https://github.com/boto/boto3](https://github.com/boto/boto3)

<comment><AUTHOR> See my other comment. The work is being done on boto, not boto3.</comment></comment>


Creative new way to fund a movie - <AUTHOR> http://www.lobsterback.com/wehavetofindaway/

<comment><USER3> $250,000 is next to nothing for a movie budget. It can't be done. Here is why. Aside actual pre-production, production and post-production costs (which COULD be done for $250,000 - though more realistic budget is $2-3 mil), there is a print distribution cost which can get REALLY high.

Distribution copies are expensive, about $1200 per reel copy if you are really lucky (multiply with about at least 1200 screens for a moderate indie flick (about $1.5 mil).

If you think targeting digital distribution sites is another option - <USER2> again. You still pay print copy equivalent expense, but not to the print service company, but to the actual screen venue. This is a ploy George Lucas "invented" and pushed onto screening venues in order to push the cost of digital screens to the distribution companies instead of the screening venues. This will last for at least 5 years from when the venue bought digital screening platform.

Then, there is a marketing cost. In A+ budget titles it is in the order of $30-40+ mil. So when you hear about, I don't know, Spiderman 4 having a budget of $200 mil., it means about 60% of that is marketing and distribution cost.

Now, let's turn focus on actual production costs.

SAG, WGA, DGA - all have a different perspective of what low budget means. There are different categories of low budget titles, and based upon those categories there is a minimum wage you have to pay to actors, screenwriters (treatment, script, whatnot), director, etc... What this means, if you live in some area of USA where those guilds operate is that you are illegal production if you don't pay those minimum wages based on your budget. I have somewhere those scales, if anyone is interesting I can follow up my post and present them.

tl;dr; $250k budget is not realistic. Too many people have worked on this problem already and smallest realistic budget for a visible project is in the order of $2-5 mil.

<comment><USER4> rian johnson's "brick", which won an award at sundance, was made for $450,000 on 35mm. then it was sold to distribution companies which made all of the below costs you're talking about.

if they're shooting it on 16mm with a small crew (union or not) and their actors are working indie sag, $250,000 doesn't sound unreasonable at all for a film looking for a festival run + talking to potential distributors.

<comment><USER3> Yes, you are absolutely right. The best way to have a low budget production is to find a film and drama school in a place where there is no union. You can get a crew for next to nothing. They get screen credits which matter more than you think, and you can provide food. You can rent a cheap digital camera like Red One with lenses for about 600 Euros per day, a set of HMI lights and electricity for another 1,000 or so - clothes and props... you can make a movie for 50,000 Euro if you want (typical shooting schedule is about 20-25 days).

However, that wont bring your movie nowhere. You can seek a distributor, which get tons of proposals and probably wont even look at your film (NDAs and lots of proposals mostly). Think of distributors as VC companies and each movie as a startup, because it is. Distributor has enough money to market the film.

Another option, which almost every indie production takes is festival run. Festivals are great because if you win an award, distributor hears about you, distributor might see you there with your movie and there are usually market palces associated with festivals where distributors and TV houses shop for movies and series (I work in animation and biggest is Annecy in France).

Some of you might think, why not go viral with the movie? Why not let it go on the internet, market it around reddit, digg, whatnot - it could be a festival like cycle, no? Well, no. You see, I would be the first one to do so, but if you want your flick to be eligible for any kind of festival award (from Annecy to Sundance to Oscars) it works in a funny kind of way. In order to make your flick run in a festival, requirements to do so usually mean that it had to already run on several festivals (Oscar eligibility for example) and almost always there is a strict rule that your film is not publicly available (online or distribution), which gives festivals a sort of premiere in their region.

Movie business is a strict business with a lot of rules and even more egos. Each and every movie is run exactly like a startup that operates on milestones and further funding.

<comment><USER5> All true, but you can make those rules work for you. First, genre expectations are different. Generally you need a famous name attached to sell a movie, and you can't get one. But horror fans don't care much about actors. (Neither do sci-fi fans, but sci-fi is exponentially harder to pull off). And fortunately, horror fans like bargain-bin, formulaic movies.

There are plenty of horror and no-budget festivals, so if your film is not total crap then you have a good chance in being selected for one. That'll help you get more money from the distributor, but if you don't succeed it's not too much of a loss.

The union doesn't matter too much. The lower your production budget, the less likely they are to bother you. SAG (actors) has a very cool deal for no-budget films that lets the actors work for free or minimum wage. Writer's guild just does not care below 6 figures. Ditto for the crew and camera unions. Of course the less you have to spend the less you can get in the way of experienced people, but if you have a few enthusiastic key people who are willing to shepherd some enthusiastic amateurs, you'll be fine.

RED One is an amazing camera, but I wouldn't use it for this kind of project. It's still pricey, and says that you have money but you're not willing to spend it on the crew. For the dirt-poor filmmaker, what you want is a Panasonic HVX or similar that shoots 24/5P and which can put out or be converted to something that looks fairly decent at 720p. And a friendly producer.

If you turn in a film that does not completely suck for under $50,000, you can probably sell it for enough to get your production costs back.

</comment></comment></comment></comment><comment><USER6> From the pdf at the bottom of the page:

IF YOU INVEST $50, AND THE FILM IS...

SOLD FOR $250,000 = YOU GET $50 (100% RETURN)

SOLD FOR $500,000 = YOU GET $75 (150% RETURN)

SOLD FOR $1,000,000 = YOU GET $88 (175% RETURN)

I don't think traditional investors count like that.. I presume the investors won't get paid back their initial investment, so if the film sells for 250k and each investor gets his $50 back, that's a return of zero. A return of 100% implies a doubling of your initial investment..

Please correct me if I'm wrong, but I think the way it's phrased here is quite misleading (otherwise great idea though).

<comment><USER5> That's quite true. I like the idea (since I'm in film myself and I hate begging people for money), but yes, it does seem like something the SEC would disapprove of, which is why most internet film fundraising requests non- refundable donations in exchange for collector's editions and stuff like that.

Edit: well I guess their lawyers are sure of what they're at. I hope they write about or open source their process, as I'd far rather raiser cash in micro-amounts based on the strength of the script etc. than sit in investor meetings.

<comment><USER5> (Can't edit any more) after taking a bit more time to look through their offering, I retract my statement about the lawyers. Legally speaking, it's radioactive. The upside is that the sums solicited are so small it's probably not worth suing over.

</comment></comment></comment><comment><USER7> I love the idea but I'm a little worried about how they keep calling it an investment. I don't know the details but the phrase "accredited investor" and the issues Prosper had come to mind. I sure hope they don't get into trouble for using the word "investment" without discussing the return.

EDIT: Oh, there's a spreadsheet at the bottom with potential return information.

<comment><AUTHOR> Yeah, they raised over $19,000 the first day, panicked and called their lawyer, but they've determined it doesn't violate any SEC laws, so it's back up and moving.

<comment><USER8> The only way they could have accomplished this is by calling a lawyer that doesn't know anything about securities law.

<comment><USER5> I looked at the agreement and the law firm. They have no background in entertainment law and it shows. I hate to be the bad guy and am not a lawyer but even I can see it's a ticking time bomb. I don't know about securities, but I do know a fair bit about entertainment contracts.

In the event that any of the principals is reading this, read clause J again. That is the least of the things wrong with it.

</comment></comment></comment></comment><comment><USER9> IndieGoGo is helping to centralize the process of legally raising money online. We have almost 2000 films/projects on IndieGoGo and filmmakers have been able to raise $10s of thousand at a time. Including Sundance Award winners. Please email info [@] indiegogo with any questions.

</comment><comment><USER10> Can you have 5000 share-holders in an LLC?

<comment><USER11> They are not called shareholders in an LLC, they are members, and there is no maximum number. [Disclaimer: IANAL]

I gave them $50 because I liked the way they asked. I certainly don't expect to see it again :-)

</comment></comment><comment><USER12> This is a nice idea, I wish him well.

</comment><comment><USER13> Not new.

<comment><AUTHOR> I've never heard of anyone raising money for a feature film this way, but I'd love to hear more about anyone else who has. Can you give me an example?

<comment><USER14> we've done this for <http://leaudouce.com/seednotes.htm> (raised 10% of budget in 30 days, budget at around 2M USD) - if anyone else is interested in raising the 90%, buzz me! :)</comment></comment></comment>


Sony obtains restraining order against Geohot for PS3 jailbreak - <AUTHOR> http://arstechnica.com/gaming/news/2011/01/sony-granted-temporary-restraining-order-against-ps3-hacker-george-hotz.ars

<comment><AUTHOR> Thankfully the decision of the court [1] suggests that they only believe that a DMCA violation has taken place, rather than the even more egregious claim that jailbreaking your PS3 violates the Computer Fraud and Abuse Act because the PS3 is a "protected computer".

You can find more court docs on geohot.com

[1] [http://www.scribd.com/doc/47676628/51-Order-GRANTING- Plainti...](http://www.scribd.com/doc/47676628/51-Order-GRANTING-Plaintiff-s- Motion-For-a-Temporary-Restraining-Order)</comment>


Ninth Circuit Adopts a Narrow Interpretation of Computer Fraud and Abuse Act - <AUTHOR> http://volokh.com/2012/04/10/ninth-circuit-hands-down-en-banc-decision-in-united-states-v-nosal-adopting-narrow-interpretation-of-computer-fraud-and-abuse-act/

<comment><AUTHOR> Chief Judge Kozinski: "[W]e hold that the phrase 'exceeds authorized access' in the CFAA does not extend to violations of use restrictions."

<comment><USER2> Ruling makes sense. Your employer should not be able to threaten you with jail time for viewing YouTube videos.

</comment></comment><comment><USER3> It will be interesting to see if, or how, this ruling affects similar cases tried in other circuit courts, since as the author points out this ruling is in contrast to the precedent set in cases ruled on by other circuits. I wonder if we'll see this one on the docket of the Supreme Court of the US in the coming years, due to the disagreement between circuits, especially since prosecutors also cite this law in criminal cases regarding Terms of Service violations.

I applaud Judge Kozinski's opinion.

<comment><USER4> A minor bit of pedantry, but cases ruled in one circuit do not set precedent for cases ruled in another circuit. They only set precedent within their own circuit. Because different precedents have now been set in different circuits, it is possible that a case may go to the supreme court (which would then set precedent for all of the courts in the land).

</comment></comment><comment><USER5> Ninth Circuit Pro Se, Erin Baldwin, Demands Action By Chief Judge Alex Kozinski Journalist, Erin Baldwin, sought justice for violations of her constitutional rights via a Section 1983 Complaint filed in the 9th Circuit in August, 2011. Instead of justice, she's experienced continuing violations and overt discrimination. [http://www.prlog.org/11848198-ninth-circuit-pro-se- erin-bald...](http://www.prlog.org/11848198-ninth-circuit-pro-se-erin-baldwin- demands-action-by-chief-judge-alex-kozinski.html)</comment>


RIAA chief: ISPs to start policing copyright by July 12 - <AUTHOR> http://news.cnet.com/8301-31001_3-57397452-261/riaa-chief-isps-to-start-policing-copyright-by-july-12/ <comment><USER2> What I don't get is.. if they "police" their networks, wouldn't they open themselves up to losing "carrier status"?

It seems like such a move would make them _responsible_ for what happens on their networks, something I can't imagine they actual desire.

<comment><USER3> ISPs aren't common carriers now, so they can't lose it.</comment></comment>


Researchers easily trick Cylance's AI Antivirus to think Malware is 'Goodware' - <AUTHOR> https://www.vice.com/en_us/article/9kxp83/researchers-easily-trick-cylances-ai-based-antivirus-into-thinking-malware-is-goodware <comment><USER3> The actual research: [https://skylightcyber.com/2019/07/18/cylance-i-kill- you/](https://skylightcyber.com/2019/07/18/cylance-i-kill-you/)

Actual summary, Cylance has a model that uses strings as a feature, and by taking all the strings from the whitelisted files and catting them onto the malware sample one can subvert the ensemble model completely.

<comment><USER4> Which is something a novice computer user might try when 'hacking'. Really Cylance?

<comment><USER5> Some early spam filters could also be tricked using the same technique. I think PG might have written about this.

<comment><USER6> [http://www.paulgraham.com/antispam.html](http://www.paulgraham.com/antispam.html)

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

> More Good Tokens

</comment></comment></comment></comment><comment><USER7> Whenever I've used AV I have found it to be worse than useless. Only detections are false positives, uses tons of systems resources, breaks commonly used apps.

I generally agree with Tavis Ormandy[1] that AV products often just increase the attack surface. Especially for applications that already have a high security focus (e.g. browsers). I'm somewhat surprised to see so many AV believers in the HN comments section.

[1] [http://blog.cmpxchg8b.com/2016/03/security-software- certific...](http://blog.cmpxchg8b.com/2016/03/security-software- certification.html?m=1)

<comment><USER8> Neither you nor Tavis are taking into account non-technical people. Nobody forces you to use AV -- if you feel you have the skill to defend yourself, do yourself a favor (and us), and remove AV from your boxes. But leave non- technical people alone.

<comment><USER9> Herein lies the challenge. The user that is so ill trained that AV is a great idea actually needs an environment locked down sufficiently that he can't ruin his own day not a tool to analyze in real time whether he is doing so right now.

Those more skilled would be better off just using their wits.

The set between is empty.

<comment><USER8> You mean the user should not have access to computers? Because that is what you're implying. If the user can send and receive emails, this user is susceptible to attack.

</comment></comment></comment></comment><comment><USER10> That's what you get when you hype Machine Learning as AI. But you can't really blame the "AI antivirus" much more than regular ones, they can be fooled similarly easily. Antivirus can't generally protect you against anything else than old malware, with new one you are always on your own. That said, making old malware undetectable again takes more effort against regular antiviruses.

<comment><USER11> Modern antivirus programs tend to have some heavy heuristic real-time virus detection, too. The problem is if you set the heuristic detection levels very high, then the number of false positives skyrockets.

In some environments the best solution is to use a whitelisting approach and there are several solutions for Windows on the market. Unfortunately, I don't know of any easy to use whitelisting solution for Linux.

My personal experience with one of these solutions on my gaming PC was that for normal end-users whitelisting is too much work for everyday use, and at the same time I was never really confident that the mechanisms the program used to block non-whitelisted software couldn't be fooled easily. Those mechanisms are proprietary and even seemingly reputable companies make claims on their web pages that look like snake-oil to me. If someone talks about "military grade protection", then you can count me skeptic. In the end, the success of such software mostly depends on whether the malware author tests against the particular vendor or not, so there is some high level of security by obscurity involved that might actually help against most attacks, especially if you're using some obscure vendor as I did. Probably not worth the effort for everyday use, though.

</comment></comment><comment><USER12> I literally make customers disable cylance on their servers or we are not guaranteeing servers operations.

Too many buggy conflicts.

<comment><USER13> How does that usually work out? Personally, I would throw out a vendor who asked me to disable my AV. I don't mind whitelisting a directory or making certain adjustments, but it's hard to take them seriously if they can't work with AV.

Cylance isn't that bad. I ran it for 3 years. The false positives were annoying, but it also stopped a lot of nasty stuff that our traditional AV wasn't detecting. I'm in an environment where there's very little appetite for risk and highly standardized endpoints so it generally worked out.

We ran it alongside Bit9 (now Carbon Black). They were both catching the same things and CB has more features. Once CB got to the point where it could be the only AV we ditched Cylance.

<comment><USER14> What type of "nasty stuff" did it stop? Are you talking servers or workstations here? How did that nasty stuff get far enough in that it had to be "stopped" by AV?

(I don't mean this to sound snarky, I'm genuinely interested in what type of real-world infections are happening and being detected. My experience is limited to internet-facing endpoints that have no security or are horribly outdated -- which is typically a bigger failure of IT to begin with -- and non-technical end-users running random executables from e-mails or shady websites)

<comment><USER13> Mostly crap that was targeted at users via email. Weird droppers, infected documents, PDFs loaded with some exploit. Lots of stuff that doesn't show up on Virus Total. We see a lot of stuff that attacks unpatched software and there's quite a bit that gets through the email gateway. We see frequent spear phishing scenarios where it's not uncommon for the attacker to email back and forth for a while under some pretext before delivering a malicious payload. Several situations where a party we are communicating with has been breached and the attacker will use them as a jumping off point to get to us - <USER2> a business email compromise scenario where they jump into the middle of a conversation or document transaction with a malicious payload. We patch too, block a lot of connections at the firewall and have other layers, but it's nice when the endpoint protection stops it.

</comment></comment></comment></comment><comment><USER15> And to "trick" it into thinking something is malware when it's not you just need to pack it with UPX.

<comment><USER11> It's a shame. People have even stopped using certain niche programming languages because their non-standard compilers create executables that are often flagged by antivirus software.

<comment><USER16> Basically everything from the demoscene...

AVs have also turned into moral police with their detection of cracks/keygens/"potentially unwanted software". Detecting worms, ransomware, and the like is one thing, but I think going beyond that crosses a line.

<comment><USER17> That might work for technical users like yourself, but non-technical people need an opinionated detection engine. If the computer has some sort of software that hijacks search queries, should that be removed? Chances are the user didn't want the software there, but you can't know for sure. What about a RAT? Maybe they wanted it there to monitor their kids.

<comment> squeaky-clean I don't think this is what they were referring to. I've had an anti-virus nuke the directory for a pirated and cracked game. All because there was a keygen.exe detected in the directory.

</comment></comment></comment></comment></comment><comment><USER18> I'm a little baffled by how this could be news. It's an antivirus system. Someone bypassed it. That's what people do with antivirus systems. Was there a widespread belief that Cylance had somehow cracked the code on reliable antivirus?

<comment><USER19> Is this news to nerds? No. The effectiveness of virus software has been measured over and over and holes are always found, cause that's software.

It's a useful talking point nonetheless. Naive managers can feel pressured to make purchase decisions around these things.

Pointing to data and these stories has been helpful to me in getting time to truly vet our choices.

Nothing hurts credibility like saddling the company with a service contract that provides fuck all nothing.

<comment><USER20> just a heads up, i think your comments are autodead now

</comment></comment></comment><comment><USER21> The featured article links to an article from Cylance that _does_ actually claim their model could've _theoretically_ detected and flagged malware before its creation.

_"...before the cybercriminals set up the crypto-system, the payment details of the campaign, the C2 infrastructure and before anything else was readied, our model was fully able to predict and prevent that campaign's malware."_

They claim that a 2015 version of their product _could have_ detected malware that was written in 2016. This conjecture seems plausible but on closer inspection seems to be... speculative. Especially if something like this could undermine it.

<comment><USER22> Old school antiviruses also has heuristics so they could make the same claim.

It wouldn't be true in practice because malware authors would just test their malware against common antiviruses and tweak it before shipping so that the heuristics don't pick it up.

Just like these researches did against their "AI". AI really just meaning "generated heuristics", doesn't it?

If it becomes a problem for malware authors they will make their own "AI" obfuscation generators soon if they haven't already.

They still have the advantage since the "AI" antivirus runs locally, so they can just run tests against it until it doesn't detect, without having to send a large amount of malware samples to the defenders.

</comment></comment><comment><USER23> I have used their home offering Cylance Smart Antivirus, and I essentially concluded that machine learning is just not enough to detect malware. It's nice signature is small and works even when you do not have latest signature, but there are a lot of false positives. (and it's generally identify the threat just by class of its threat, and not by specific identify of a threat, so there's no way to assess its impact.)

This combined with Cylance's attitude to treat games as its own class of malware (they would tell their user "just add the file to exclusion list" and there's no way to add the file by class -- mind you, this is a "home" product.)

I've tried Sophos Home, which also features machine learning based detection (on their paid premium version), but they use it to supplement the signature / behavior based detections -- which I feel is a more modest approach. For most of "known" threats it get caught by the signature engine by their identity ("EOF97/EicarDrp-A"), if not, it'll identify the threat by its class ("ML/PE-A").

Oh, also, EOF97/EicarDrp-A is actually a EICAR test file embedded in PDF file, I think this type of file is where Cylance's approach would struggle. (I don't think Cylance's engine even look at anything other than executables, anyways, however.)

<comment><USER13> You're in for a bad time trying to run Cylance or something similar at home. I generally have a positive opinion of Cylance having run it for 3 years. I think where those types of products shine is in larger environments where the end user is your biggest risk, you have layers of security and it's worthwhile to invest the effort in getting your AV config right.

I would never put that thing on my home machine. I know what I'm doing and I know what's on my own machine. My usage patterns at home are much different than at work so I'm not worried about phishing emails, fileless malware, PDF and .doc exploits or whatever. I'm more concerned about my webcam, known malware, casual drive by stuff, some basic parental controls and something low maintenance that will stay out of the way. I keep my machine patched, installed BitDefender and called it a day.

<comment><USER23> Well, I'm talking about the specific version of the Cylance PROTECT intended for homes, which I believe similar engine sans memory protection and other controls in their management dashboard. I guess it's bad execution on their end, too, not necessarily their engine itself, perhaps. I guess their engine is more appropriate for corporate IT environment where what goes inside gets more vetting on what goes in.

The reason I looked at Cylance was part curiosity, and other that that I do manage machines beyond my own use; so "end user is your biggest risk" actually applies to me as far as malware vector goes.

In any case, I'm not really sure how Cylance's trying to position for their home offering; seems to allow very little control over its configuration and while protection is inadequate. I haven't use their enterprise version but I'm assuming it gives you a lot more configuration options...

</comment></comment></comment><comment><USER24> Looks like a BOW classifier is the 'AI' here.

<comment> noir-york Indeed. I wonder if its some version of Paul Graham's Bayesian classifier he had posted many many years ago...

</comment></comment><comment><USER25> Heuristics based antivirus has been around since the 90s. Vendors have pushed it significantly more during the past five years or so. Supposedly, it has become much better. The promise has always been to detect future malware.

However there has always been a fundamental problem with them. Malware authors have access to them too. They won't release anything that's detected by the tools they care about. Heuristics gets improved, but the end user ends up with a patch cycle anyway.

That doesn't mean they are useless, just oversold. Machine learning antivirus sounds like more of the same.

</comment><comment><USER26> Shouldn't it be "bonware". Since "mal" is French.

<comment><USER27> It's a portmanteau of "malicious software", so I guess goodware is fine.

<comment><USER28> Isn't portmanteau French as well?

<comment><USER29> Portmantotally

</comment></comment></comment></comment><comment><USER30> The advertisement take about this product being able to detect the malware two years before it's even written is discernibly turgid. Chuckled well off that.

When will companies selling ML stop making these statements in attempts to whoa people? Like, the claim is ridiculous, how did they even come up with this, ans moreover, what's the possible basis for such a statement? How do they verify that and how would they prove it to anyone asking? It's hugely apparent that it's not even physically possible to pull that move off.

<comment><USER30> So the approach described essentially defeats the purpose of antivirus software as it's known. Malware so happens to be (usually) embedded in the legit software. If that real-world fact is the way to defeat their model, is it of any use? You get the binary off the spoofed page, boom, you're pwned instantly and that piece of software is totally worthless at its primary goal despite being advertised as a killer product.

</comment></comment><comment><USER31> "That is, until they discovered that Cylance also had whitelisted certain families of executable files to avoid triggering false positives on legitimate software."

Surprised to see this way down in the article. No wonder that when they manually whitelisted false positives, researchers could just append code from those to malware and it'd rank it harmless. Isn't the proper answer to not have manual whitelisting of entire programs, but to train it better to exclude them?

</comment><comment><USER32> Rice's theorem is pretty clear on this. You PROVABLY CANNOT inspect a piece of code and answer any nontrivial question about any nontrivial property of it.

"Is this code evil?" is a VERY nontrivial (bordering on philosophical) question

Adding buzzwords like "AI" into the mix doesn't affect this in any way

</comment><comment><USER33> and what most of the companies try to sell as AI is not anywhere close.

<comment><USER34> I mean, is deep learning AI? Is word2vec AI? I would say yes, but I guess some would say no.

But it doesn't really matter because no one has a good definition of AI. Perhaps the best one would be passing the Turing test, but that has problems as well.

</comment></comment><comment><USER35> The idea that some brogrammers can come along and bang out a disruptor in this area - which has a few decades of extremely complex learning, patents, and optimisation - just because they can cobble together some ML...

It'd be sad if it wasn't so naive.

<comment><USER36> Many ML successes look exactly like that.

<comment><USER37> that's mostly because the bar is so unbelievably low that "it works 95% of the time" is good enough to please consumers. In security or anything that requires engineering rigor where catching the exception is exactly what matters ML is virtually useless, or even worse actively harmful.

<comment><USER38> That's not true, there's an entire subfield of stats/ML dedicated to anomaly detection.

<comment><USER37> But even outliers in ML systems are pretty much always outliers of first order, that is to say they're outliers in a predictable way, they're often significantly different from their environment.

The sort of outliers that concern security problems are pretty much always idiosyncratic by design because the people that create them know how easy it is to create adversarial examples for machines.

There's a human ingenuity to genuine edge cases that ML is ill suited to figure out because ML by design draws conclusions from patterns. My prediction is that we'll very soon see the same problem in fields like autonomous driving. Every time we see ML attack complex human domains, the "last 2%" seem intractable.</comment></comment></comment></comment></comment>


So you've got a million dollar iPhone app idea... - <AUTHOR> http://blog.jwegener.com/2009/08/03/million-dollar-iphone-app-market-sizing/

<comment><USER2> He claims " 54% of the 45M devices are in the US which means ~ 25M devices. The US has about 300M people. That means about 8% of the general American population has one of these devices."

However, this doesn't take in account broken phones or people upgrading iphones (and then not cycling the old phone back into the market place).

I would guess this number is 30% higher than it should be, at least.

<comment><USER3> Thanks for the comments on my blog post guys. This 45M isn't the # of devices produced. It's Apple's own number about the install base of app world. So likely it takes into consideration broken phones and people upgrading.

-Jonathan

</comment></comment><comment><USER4> if i could upvote this twice, I would.

found this post really useful. 3% of iPhone owners bought the most popular app.

<comment><USER5> Actually I would love to see usage patterns among the free apps. Do people download a lot of free apps and use them, download a lot but delete after a day, or do people just download 1-3 free apps relevant to their interests (usually a better weather app, AIM, and Facebook) and not really "browse" the full gamut of the App Store?

Because I would not be surprised to find that only 25% of iPod/iPhone actually use the App Store beyond the above simple apps.

<comment><USER6> There's a lot of data about this if you google a bit. One of them is this: <http://www.pinchmedia.com/appstore-secrets/>

It mentions that only 30% of the users use a free app after the first day, and more stuff like that.

</comment></comment></comment><comment><USER7> "So you've got a million dollar iPhone app idea...?"

Think before implement. Apple might reject you.

</comment><comment><USER8> Where does he get the 45 mil iPhones/iPod Touch number from? The linked earnings call broke the numbers down as:

iPhone units: 5.2 million iPod units: 10.2 million

I don't see the iPod touch vs "traditional" iPod breakdown anywhere.

(Also, people outside the US do buy apps!)

<comment><USER3> Glad you liked my post! For the 45M figure, scroll down to 5:41 (or alternatively search the earnings call page for "App store in 77 countries, more than 45 million install base.")

Apple doesn't break out iPod Touch vs Traditional. So I used admob's numbers about the iTouch vs iPhone to arrive at the number of iPod Touch devices.

Yes, people outside the US buy apps :-P But it's useful to get a device penetration figure (8% of americans) and work with that to do market sizing for a vertical. You could obviously figure out the penetration figure broken down by each country, but that would be rather time consuming.

-Jonathan

</comment></comment><comment><USER9> thanks for the good information</comment>


James Hong Gives Advice to Berkeley Startups - <AUTHOR> http://www.sproutly.com/?p=66

<comment><USER2> Oh man, I would have loved to attend... To bad I didn't know about it.</comment>


Ubuntu 12.10 proxies users' file searches to Amazon in plaintext - <AUTHOR> http://www.markshuttleworth.com/archives/1182#comment-396259

<comment><USER2> I'm fairly certain that Shuttleworth is coming to realize he'll never recoup his investment in Canonical, and his goal is to drive Ubuntu into the ground so he can close up shop and stop hemorrhaging funds.

<comment><USER3> I thought it was OSS patronage, not an investment ಠ_ಠ</comment></comment>


How does the Trent 800 deliver engine data? - <AUTHOR>

In numerous report, for example [1], it is reported that the engines of the missing MH370 was sending engine data to the ground:<p>"...data automatically downloaded and sent to the ground from the Boeing Co 777's Rolls Royce engines as part of a standard monitoring program"<p>What I've failed to find is some description of how this system works. Is this an RR-only thing, or is it a standard way of transmitting engine data from planes?<p>[1]http://www.nbcnews.com/storyline/missing-jet/report-missing-mh370-flew-four-hours-after-known-position-n51536 <comment><USER2> It's done via ACARS, which is a standard thing.

[http://en.wikipedia.org/wiki/Aircraft_Communications_Address...](http://en.wikipedia.org/wiki/Aircraft_Communications_Addressing_and_Reporting_System)

<comment><AUTHOR> Thanks! Not knowing much about this field, I didn't have much of a clue as to what I was looking for.

</comment></comment><comment><USER3> This probably doesn't exactly answer your question, but will give you lead to where to start digging from.. [https://news.ycombinator.com/item?id=7392295](https://news.ycombinator.com/item?id=7392295)</comment>


Jekyll 3.0 Released - <AUTHOR> http://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/ <comment><USER2> After a seamless upgrade it's already generates pages 20% faster. Eager to try the incremental mode. Good job! :)

On an unrelated note: nice to see that more and more projects adopt a code of conduct! That's a thing that most of open-source project communities should have by default.</comment>


An extremely high-altitude plume seen at Mars' morning terminator - <AUTHOR> http://www.nature.com/nature/journal/vaop/ncurrent/full/nature14162.html

<comment><USER2> unfortunately the actual article is paywalled.

In the abstract they say there are 2 theories of the plume's source:

1) CO2 or H2O ice particulate reflecting solar radiation. They don't state where the particulate is coming from, but they claim the plume is likely cyclic in nature.

2) strong auroral emissions 1000x the brightness of earth's aurora. Caused by a strong magnetic anomaly.

<comment><USER3> The BBC has a story on it, it doesn't add much to this but there are some pictures:

[http://www.bbc.com/news/science- environment-31491805](http://www.bbc.com/news/science-environment-31491805)</comment></comment>


My Easter Sunday project: Wikipedia Live Search - <AUTHOR> http://robgibbons.com/media/wiki-livesearch/

<comment><USER2> pretty cool :) but many queries donot return results.

<comment><AUTHOR> I haven't had time yet to account for lots of different cases. I plan to spend more time learning the API (which is why I built it in the first place!)

</comment></comment><comment><AUTHOR> I still need to implement disambiguation and error handling but it's a pretty cool beta. Also, please feel free to suggest enhancements, I would love to build this out a bit more.</comment>


Confessions of a Ruby Developer Whose Heart was Stolen by Scala - <AUTHOR> https://speakerdeck.com/ryanlecompte/confessions-of-a-ruby-developer-whose-heart-was-stolen-by-scala

<comment><USER2> They way you'd build large systems in dynamic languages is to break it up into many smaller pieces that work together. This frees you to change parts without worrying about the rest.

To me, this type of development is much more natural and sane than the "one big clusterfuck" type of projects I've seen in Java et.al.

Edit: Also, dynamic languages let you make the tradeof between safety and speed. Sometimes you go slow and steady (simple code, tests..) and sometimes you just want to test something out.

<comment><USER3> Hm, I don't know what you've seen but I'm pretty sure Java is about breaking up large systems into many smaller pieces that work together, instead of one big clusterfuck. Must be some really badly designed system, more of a programmer's fault than the language itself

<comment><USER2> True, but isn't it still one big program/project? What I mean was to break it up into many smaller programs and (possibly) projects (think unix process vs. classes =)

</comment></comment></comment><comment><USER4> Scala is a fantastic language, but my heart seems to resist due to things like this (slide 27/42):

      implicit class RichSeq[A, C[A] <: Seq[A]](underlying: C[A]{
        def cycle: Iterator[A] = {
          lazy val circular: Stream[A] = underlying.toStream #::: circular
          circular.iterator
        }
      }

<comment><USER5> This is very dense code, and takes some getting-used-to in order to read. What it achieves is beyond the reach of many languages.

All it does is convert a Seq (sequence) to a lazy stream that will infinitely cycle through the values.

        Seq(1, 2, 3).cycle.take(8).toList
        res3: List[Int] = List(1, 2, 3, 1, 2, 3, 1, 2)

It will work for any seq-like structure (including List. Vector, Queue, etc.)

If you try to use it with anything else, like a Map, it won't compile.

Also, note from my example that it's generic and the resulting List is of the correct type.

Just like novice JavaScript developers struggle with "Why 'this' changes here?", it requires some experience with the language.

<comment><USER6> > This is very dense code, and takes some getting-used-to in order to read.

I don't think so. It is full of syntactic noise, for what is really just notation for building a cyclic structure.

* type annotations stated explicitly, not inferred

* type variables given multiple times

* too much non-verb, non-noun syntax e.g. `#:::`

* and the actual construction of the cycle is stated imperatively with great ceremony (despite it being an applicative)

It is the opposite of dense.

</comment></comment></comment><comment><USER7> As a Ruby developer, I can't get through these sorts of slides. My other languages are C, Go and JavaScript, and the Scala syntax is totally inscrutable to me. Isn't the point of slides presenting something that can be easily absorbed? And I can't just quickly look up these declarations either — Scala is too complex for that given my experience level. Is there a gentle introduction talk for Scala around so I can evaluate the language without putting in a week of learning?

<comment><USER8> As a Scala programmer I find Ruby syntax complex and inscrutable, almost like Perl.

<comment><USER9> As a Python programmer, I agree.

Here's a Ruby snippet. I don't want to pick on this particular project [1], rather, I've found that this is typical of Ruby code:

      state_machine :state, initial: :active do
        after_transition any => :blocked do |user, transition|
          # Remove user from all projects and
          user.users_projects.find_each do |membership|
            return false unless membership.destroy
          end
        end

My conclusion? Ruby's syntax is awful. There are colons, absolute value bars, implications, and who-knows-what-else flying everywhere! It gets worse, elsewhere in the same file there are messy lines like this one with single- arrow implications, question marks and ampersands [2] [3]:

      scope :not_in_project, ->(project) \
        { project.users.present? ?       \
        where("id not in (:ids)", ids: project.users.map(&:id) ) : scoped }

Simple, intuitive syntax? From where I sit, the syntax of Ruby is worse than C++, and approaches Perl levels of awfulness. In most languages, I can at least sort-of grok what's going on from the context when I see unfamiliar operators, but not so in Ruby.

This is a copy-paste of a comment I made [4] weeks ago on another article.

[1] [https://github.com/gitlabhq/gitlabhq/blob/4caaea824cf51670d1...](https://github.com/gitlabhq/gitlabhq/blob/4caaea824cf51670d11b409efa5701dd74614d2a/app/models/user.rb#L118)

[2] [https://github.com/gitlabhq/gitlabhq/blob/4caaea824cf51670d1...](https://github.com/gitlabhq/gitlabhq/blob/4caaea824cf51670d11b409efa5701dd74614d2a/app/models/user.rb#L143)

[3] I split the line and inserted backslashes because HN gives me a horizontal scrollbar when it's a single long line; apologies if this transformation isn't legal Ruby, or changes the meaning of the code.

[4] [https://news.ycombinator.com/item?id=5784296](https://news.ycombinator.com/item?id=5784296)

<comment><USER10> I'm a professional ruby programmer and your comments opened my eyes. If you don't know what's going on, then that does look like really icky code.

First off, parenthesis in ruby are optional. So calling a method can be done without parenthesis. The following two lines are the same:

        print()
        print

As are these:

        print(1, 2, 3)
        print 1, 2, 3

Here's some bits that might explain better what stuff does:

        :state

If you prefix a word with a colon that creates an object of type Symbol, with value "state", which is a bit like the string "state". The difference is that every mention of :state is a reference to the same object, while if you create a string "state", and a bit further do it again, those are two different objects. We use symbols because it runs faster for conditionals etc: to compare two symbols the interpreter only needs to check the reference, while to compare two strings, every character needs to be checked.

        initial: :active

This creates a Hash with one key-value, with key :initial, and value :active, both symbols. This is equivalent to typing :initial => :active which you encounter a bit further up.

        do |var1, var2| .... end

This creates a block, which is like a closure. The variable names between pipes are the arguments this block takes. Any code inside the block is only run when the block is called. In Ruby, every function can have a block passed by adding do ... end to it. Inside this function, the block can be called using the keyword yield, e.g. yield(1,2) to call the block with arguments 1 and 2. The find_each method will loop through every value of the Array it is called on, and run the block once for every value.

        project.users.present?

The question mark is a valid character for a method name, there's nothing special happening here, present? is just the name of a method. This could easily have been called is_present, or just present.

        a ? b : c

The ternary operator, the same in any language. It translates to "if a, return b, else return c".

        ->(arg1, arg2) { ... }

This creates a lambda, with arguments arg1 and arg2. A lambda is almost the same as a block, so this is almost the same as typing do |arg1, arg2| ... end

<comment><USER9> This may be the clearest explanation of Ruby syntax I've ever read!

My attempt to parse the above example comes to something like this:

        state_machine(STATE, {"initial" : ACTIVE}, function()
        {
            after_transition({"any" : BLOCKED}, function(user, transition)
            {
                user.users_projects.find_each(function(membership)
                {
                    return (membership.destroy ? true : false);
                });
            });
        });

I'm writing in JavaScript because its function notation is way better than Python's lambda syntax. From the parent's explanation, I'm pretty sure this is a valid translation, even though I don't know Ruby. But having three levels of nested anonymous functions really makes the code hard to understand. I'm guessing that this is idiomatic Ruby though, and if you program with the pattern long enough, it gets easier.

OTOH it's still a barrier to entry entirely separate from the _syntax_ \-- if the _semantics_ of Ruby code you see "in the wild" is typically this complicated, it's almost as bad as Haskell and its monads! (I have much stronger math chops than most programmers, I've tried to read introductions to monads twice, had them explained to me three separate times on HN, and still don't understand them at all!)

<comment><USER10> Yep, just about, although if you look closely, the `any` in the original code is not a symbol, but is actually a variable or a method (could be either, we can't know from the sample).

Also, the return in that block would cause an exception, because it doesn't do what the original programmer thinks it does. I guess he never tried out what happens if destroy returns false (which would happen if destroy fails, e.g. because a validation failed).

</comment></comment></comment></comment></comment></comment><comment><USER8> For those interested in learning Scala I'd recommend the free chapters from Scala for the Impatient:

[http://logic.cse.unt.edu/tarau/teaching/SCALA_DOCS/scala- for...](http://logic.cse.unt.edu/tarau/teaching/SCALA_DOCS/scala-for-the- impatient.pdf)

<comment><USER11> Also, _Functional Programming Principles in Scala_ course on Coursera by Martin Odersky (Scala's designer) is very good.

[https://www.coursera.org/course/progfun](https://www.coursera.org/course/progfun)

<comment><USER12> I just finished the most recent session of this class and I found it incredibly frustrating that there was no discussion of the homework assignments after the due dates had passed. What's the point of having homework if there's no way to get the correct answers and get feedback on your solutions?

And take the "in Scala" part of the course title with a grain of salt. You're only taught enough to complete the exercises.

</comment></comment></comment><comment><USER13> It seemed like most of his slides came down to the old typed/untyped flame war. Yes, in Scala you can look at your objects in an IDE and be told what type they are, in Ruby you can't. Some organizations and people need that, some don't. And yes, it's easier to optimize typed languages. Some applications need that extra speed, most don't.

I'm happy he found a language he enjoys working with, but I doubt this will change anyone's mind...

<comment><USER14> Somewhat true but I find Scala's inferred typing a surprisingly great compromise between the two.

For example:

val i = 1;

i = "some string" // throws a compiler error, because it knows i is an integer

It's great when you haven't declared the types, you change for example an int to a double or a class to some other class (eg swapping a data structure) and it just flows through the code base without problems like a dynamically typed language.

It can also be pretty useful to look up types when they get complex in the middle of some function, like a Map[List[(String,SomeObject)]] (a map of lists of (String,SomeObject) tuples). Allowing the types to get complex lets me focus on the problem while giving a crutch to quickly remember where it's at half way through (and while finding other methods/source of data) and keep moving towards the solution.

</comment></comment><comment><USER15> Ruby and Scala are for two different kinds of environments. One is an environment where having less code to maintain (that can also be highly legible) matters and where you have a lot of options. The other is an environment where an edge in performance is more important, but not important enough to write it in an even faster language/not run in the JVM at all.

I noticed a lack of a link to a 1:1 comparison of application code with realistic examples. I think such comparisons and related discussion are often the best way to convince someone to use a language.

And some slides were just blatantly wrong, like Mixin Abuse: apparently that is just a long list of module includes? I have never seen so many module includes in a single class in application code. But, assuming you did have that, you should show what it would look like side-by-side in Scala. In Ruby, there are a lot of options when it comes to including other code or defining code in a class, instance, etc. Those options can lead to much less and more legible code if used correctly.

I remember when people said Java was slow; they made it seem like it was a fad, and no reputable company would use it. And... we see where that went.

</comment><comment><USER16> Well, of course a classic programming language is better then a script language for majority of tasks. Script languages like JS and Ruby just should not be abused and should only be used as a very thin layer on top. E.g. GUI scripting.

<comment><USER17> I would recommend that you immediately inform Yahoo, 37 Signals, Hulu, GitHub, Penny Arcade, and every other Node, Rails, Sinatra, and EventMachine user of this fact!

Also, Tcl/Tk called and wants its use case back.

<comment><USER18> Why do microsoft and google insist on static compiled languages?

<comment><USER19> Because they allow us to put very useful limits on the degree to which changes in a large and evolving codebase will violate the expectations of developers. When adding and changing code in large collaborative projects, the primary question in every developer's mind is "OK, what else depends on this, i.e., what is possibly going to break?" This goes back to the old wisdom of separating interface from implementation.

Highly dynamic languages, such as Ruby, certainly have their advantages too. But programs in languages which enable, if not encourage, developers to add new methods to the integer '5' can quickly become very difficult to reason about.

Static, strongly-typed languages also provide other benefits such as much better error checking and compile-time optimization.

<comment><USER20> > But programs in languages which enable, if not encourage, developers to add > new methods to the integer '5' can quickly become very difficult to reason > about.

Can you give me an example of a single ruby developer who thinks this is a good idea when writing new code/a library?

<comment><USER19> I think probably for every language, every development team needs to have agreements not to do certain things. The probability of a developer doing something unexpected increases exponentially with the number of developers and the amount of code.

It only takes one, but here are a few thousand to start with: [https://github.com/search?l=Ruby&q=%22class+Integer%22&ref=a...](https://github.com/search?l=Ruby&q=%22class+Integer%22&ref=advsearch&type=Code)

Do your projects use any Gems that are pulling in any of this code?

Could they change to do so in the future?

Most importantly: how much effort is it for you to definitively answer this question?

Our task is that of proving a negative (which as we all know is very difficult). Namely that there is _no_ other code that is relying upon the behavior that you are changing. When there are reasonably well-defined interfaces between components it _dramatically_ reduces the possibility space for implicit dependencies and interactions. So this is a slam-dunk case where tools can make our job _much_ easier.

Without tools, we're basically reduced to "verbal lore" and "honor system". Programmers have to rely upon the shared understanding and behavior of other humans in order to reason about their own code.

</comment></comment></comment></comment></comment></comment><comment><USER21> The speaker pays a lot of attention to implicits in Scala. Well, it's a powerful tool, elegant solutions can be built with it, but you should be careful using them. Implicits bring its own magic and abusing them can pollute your project, make it difficult to understand the code. Maybe the speaker is so attracted to inplicits because they remind him of Ruby's / Rails' magic?

<comment><USER5> You are correct that implicits are a sharp tool. Thankfully, the Scala community knows that nowadays and they are used for a fairly small number of cases - pimp my library (add methods to Ints, Strings, etc.) and typeclasses.

</comment></comment><comment><USER22> Can someone comment on the current state of tooling in the Scala world. Last I had tried (some months back), SBT was extremely slow.

Googling about SBT came back with a lot of complaints about the state of scala tooling back then.

<comment><USER23> I've been using Scala on Android + Intellij IDEA for about the past month after wanting to try something new[1]. Other than having to run it through proguard first, the compile process in Intellij is comparable to how it is with just Java. Scala plays nicely with Android and I have loved using it so far. Makes Android development a bit more fun than with just plain old Java.

[1] [https://github.com/yareally/android-scala-intellij-no-sbt- pl...](https://github.com/yareally/android-scala-intellij-no-sbt-plugin)

<comment><USER22> ah - "Using proguard lets you build Scala without any extra plugins and sbt fiddling".

Seems like the tooling is still one of the more painful aspects of Scala. Kudos to Intellij, -1 to Scala.

<comment><USER23> Yeah, if I had to manually fiddle around with the SBT build process and manually adding dependencies instead of letting Intellij handle it all, I would be less motivated to want to switch away from Java on Android for sure :).

Excessive configuration to get a new project up in a running is a major demotivator sometimes when you have a new idea and want to just start coding right away.

<comment><USER24> Do not forget, however, that (for development) you can easily skip the Proguard step if you install the scala libraries on your device directly. Also, setting SBT up is pretty much a one-time thing. Afterwards, you only need to do a few tweaks when starting a new project.

I've used Scala for a couple Android apps in the past... it was great fun to do so! Still, AndroidAnnotations not working with Scala code requires you to rewrite some of their functionality... but you can do that rather easily with Scala's traits etc.

<comment><USER23> Thanks, I forgot about loading the libraries directly onto my phone for testing. When you say Android Annotations, are you referring to the ones built into java/android (like @TargetApi) or your own custom ones? Just wondering, since I'm about to add ActionBarSherlock to a Scala project and it includes quite a few I'll have to rewrite.

Edit: seems it doesn't like ActionBarSherlock most likely due to that. I get "Error com.actionbarsherlock.R and com.actionbarsherlock.R$xml disgree on InnerClasses attribute"[1].

[1] [https://issues.scala-lang.org/browse/SI-1167](https://issues.scala- lang.org/browse/SI-1167)

<comment><USER24> I don't believe I've used ABS with Scala before. Shouldn't integrating ABS as an apklib solve this issue though?

Regarding AndroidAnnotations: [https://github.com/excilys/androidannotations/wiki](https://github.com/excilys/androidannotations/wiki)

<comment><USER23> I'll try that option. I was just building it into the project as a separate module dependency out of habit from Java, but no real need to do that.

Ahh, I know of that project. Like it quite a bit. Was just confused over the ambiguity of the term "annotations." Thanks for the followup though.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> I just wonder when someone will build a tool to annotate Ruby, Python source code with var types gathered during run-time.

If C has Valgrind then dynamic typed languages should get something for the types.

<comment><USER26> PyCharm does this. In addition to doing type inference while you have your project open, you can while debugging it run it and make it collect type information. That's quite a bit slower than usual, but once done you will get extra type hints of possible types passed to your functions.

[http://blog.jetbrains.com/pycharm/2013/02/dynamic-runtime- ty...](http://blog.jetbrains.com/pycharm/2013/02/dynamic-runtime-type- inference-in-pycharm-2-7/)</comment></comment>


Compromise emerging for NASA's spaceflight future - <AUTHOR>

Since the announcement was made last month of the cancellation of Constellation (NASA's plan for returning to the Moon and Mars), the punditsphere has been ablaze with condemnation, support, and outright confusion over the future of American manned spaceflight.
Keith Cowling, editor of the Nasawatch.com blog, has posted an interesting new development that if proven right, could prove to be a compromise between those wanting NASA to get out of manned spaceflight altogether and those seeking to keep the administration in the spaceflight business.
According to Cowling's sources (which are usually very spot-on), the main points of the consensus are starting to emerge:
* Ares 1 and 5 (the parts of Constellation that involved building new rockets to lift a capsule and cargo into orbit) stay canceled.
* Orion (the capsule-like CEV or Crew Exploration Vehicle) is built, but in a "Lite" configuration whose primary function will be to ferry people to and from the International Space Station.
* Funding and R&D for the development of a commercial space infrastructure (e.g., SpaceX, Virgin Galactic, Bigelow, etc.) would remain unchanged.
* The planned retirement of the space shuttle fleet will be delayed and stretched out to about two flights per year while
* Stretched-out shuttle operations will allow a rapid implementation and development of a so-called Shuttle-C ("Sidemount") heavy-lift vechicle. This is basically the same system as the current shuttle stack (orbiter, external tank, solid rocket boosters) only with the orbiter replaced by a cargo carrier. Shuttle-C will carry cargo to the space station, but no crew.
More details here: http://nasawatch.com/archives/2010/04/is-a-human-spac.html
What do you think?  Is this a sensible plan that preserves jobs and tech innovation?  Or is it delaying the inevitable and preserving an obsolete stack? <comment><USER2> If this really fits in the budget profile that gets approved, then it seems reasonable to me. (All of the following thoughts are dependent on that condition!)

That gives us essentially a period of time for Shuttle to overlap commercial human space-flight so we can prove the new and let it compete directly for the chance to win out over the old. The fiat switch from one system to another under the old plan simply left too many holes for doubters to poke at.

I like the idea of using Orion + unused ISS modules as the foundation for a deep space vehicle; at least we'd have some kind of ship to use when we pick a destination. I'm not convinced Shuttle-C is necessary given the current outline, but if we do build a deep space vehicle I could imagine times when launching a really big payload would be useful.

Also via NASA Watch, a great 5-min answer to what NASA means to us: <http://www.youtube.com/watch?v=RQhNZENMG1o></comment>


Smart Dust: The Sensors That Track Every Thing, Everywhere - <AUTHOR> http://readwrite.com/2013/11/14/what-is-smartdust-what-is-smartdust-used-for

<comment><USER2> What happens if you breath these things in?

"The challenges for Smart Dust are to create a package that includes all the elements needed to perform sensory measurements, while also being able to communicate back to a base station to gather the data."

I'm not sure I want radio transmitters in my lungs and bloodstream, especially not a lot of them, plus all the nasty shit that goes into electronics.</comment>


George Orwell - Politics and the English Language - <AUTHOR> http://www.mtholyoke.edu/acad/intrel/orwell46.htm <comment><USER2> This is a very popular essay which tends to get posted around the web quite often.

Yet it suffers from many not-so-obvious flaws, as analyzed in the popular linguistics blog "Language Log." The commentary is written in a calmly analytical style (interspersed with some judicious jibes) that I think many YC.HN readers will find rather agreeable ("a beautifully written language crime, though it pretends to lay down the law") ---

<http://languagelog.ldc.upenn.edu/nll/?p=992>

The entire 'Prescriptivist Poppycock' category at Language Log is generally good reading: <http://languagelog.ldc.upenn.edu/nll/?cat=5>

<comment><AUTHOR> Orwell himself says,

 _"Look back through this essay, and for certain you will find that I have again and again committed the very faults I am protesting against."_

So he is not claiming that he has attained perfection in his own prose. But he is not after perfection. He just wants to encourage us to write better.

</comment></comment><comment><USER3> This is brilliant. I am pretty sure I read it before, but I do not mind rereading it.

It would be interesting to think about present political discourse and try to find the words that were created solely to avoid saying the truth.

One thing that surprised me is that some of the words he criticised as unnecessary foreign words, seemed completely and utterly English to me. For example, I did not know these words were foreign: "expedite, ameliorate, predict, extraneous, deracinated, clandestine." I guess Orwell really lost that battle.

<comment><USER4> He likely means "foreign" in a more classical sense: Orwell tends to favor Anglo-Saxon derived words over Norman French-derived words. "Freedom" rather than "liberty", for instance. This is a reaction to the centuries-old stigma against Anglo-Saxon derived words as being crude or inelegant.

</comment></comment><comment><USER5> I'm a big fan of this essay. I wrote a blog post about how After the Deadline (a proofreading software service) relates to the rules George Orwell talks about.

[http://blog.afterthedeadline.com/2009/12/16/george-orwell- an...](http://blog.afterthedeadline.com/2009/12/16/george-orwell-and-after- the-deadline/)

</comment><comment><USER6> I wonder if this also applies to software. For instance, do you know some ready-made patterns that we could do without ?

<comment><AUTHOR> That's an interesting question. But unfortunately for Orwell, programming is geared greatly towards reuse. So software "cliches" are valued, if they are effective.

<comment><USER7> "Software cliche" is a great term to have coined.

I love the origin of the word cliche, from a cluster of movable type permanently set for common phrases. Metal macros.

<http://en.wikipedia.org/wiki/Cliché></comment></comment></comment>


Show HN: Dupertest – node module that makes unit testing controllers easier. - <AUTHOR> https://www.npmjs.org/package/dupertest

<comment><AUTHOR> The general goal with this module is to make it super easy to unit test node controllers without having to spin up a new server.

Obviously, there is some work to do with tidying up the module, making it a little more robust, and those sort of things. But I'm actually using it right now in a couple node app and it works great.</comment>


Why Bitcoin May Be More Disruptive than the Internet - <AUTHOR> http://www.youtube.com/watch?v=JJljgM6TSu8 <comment><USER2> It won't be more disruptive than the Internet, or at least it's highly unlikely. But it could be more disruptive than Facebook.</comment>


Mozilla rolls out geolocating browser add-on - <AUTHOR> http://www.thestandard.com/news/2008/10/08/briefly-mozilla-rolls-out-geolocating-browser-add

<comment><USER2> This Geo-Oriented approach holds a lot of valuable benefits such as optimizing personalized advertisments, change security configs depends on the user's location etc. , But this approach cannot get matured as long as privacy is not preserved by the platform - and that's why I recommend to 'hold your horses' and let this innovative idea pass its labor pains..</comment>


Show HN: Find out who's not following you back on Instagram - <AUTHOR> http://followmeback.herokuapp.com/

<comment><USER2> Yup. This was missing.</comment>


Catch.com is Closing Down - <AUTHOR> http://support.catch.com/customer/portal/articles/1239367-catch-is-closing-down

<comment><USER2> Disappointed but not _too_ surprised. I've been using their service for free for I don't know how long. It's a crazy easy way to save off notes, pictures, bookmarks, to-do lists, and so on.

Their free level was just perfect for me. I think if they started asking people to pay rather than simply announcing their closing they might have been able to make a go of it. Faced with nothing or paying something, I'd consider the paying (though the devil's in the details).

What's funny is that whatever they use to track user sessions consistently fails for. I think it's the use of Flash storage which I routinely clear. So, I'm frequently required to sign back in almost every day.

Earlier today I was greeted with a landing page offering "Catch for Teams." Seems that's dead too.

<comment><USER3> I just can't believe that 12 days ago they tweeted they had 3.5 Million users! I was thinking "Great, I love these guys"

A real shame.</comment></comment>


The freelance writer of Sing Sing - <AUTHOR> https://www.cjr.org/analysis/the-freelance-writer-of-sing-sing.php <comment><USER2> Interesting story.

His work could become required reading for at-risk youth.</comment>