Understanding Clojure's Persistent Vectors, Pt. 3 - <AUTHOR> http://hypirion.com/musings/understanding-persistent-vector-pt-3 <comment><USER2> At the beginning of part 1, the author says that this data structure provides " _practically_ O(1) runtime" (emphasis added) for the important operations of lookups, insertion, updating, etc. At the end it is explained how it's "O(log32 n)", which of course is actually O(log n).

And then here in part 3 where he keeps saying " _effectively_ constant time* (emphasis in original this time), what he means is O(log n) time.

The Clojure people really need to stop doing this. Big-O notation is intended to describe _how the time required for an operation grows_ as the number of items being handled gets large. It is precisely _not_ intended to communicate the absolute time the operation takes in small cases. They are confusing people when they try to communicate both pieces of information at the same time. What they should say is something like "lookup takes O(log n) time, and for seqs of size up to N items, it takes M times as long as ArrayList.get".

And then, of course, to describe O(log n) time as "effectively constant" is just lying.

(Second and fourth paragraphs added in edit.)

<comment><USER3> I have to disagree with you here.

Let me put it this way: There are theoretical limits to the upper bound of problem size. The number of bits storable in the (observable) universe is only, what, about 10^120? [1]

log32(10^120) is only around 80. So if you have a constant-time algorithm that runs around 80x slower than a logrithmic algorithm for small cases, the constant-time algorithm will _never_ be faster. Period. And I've seem constant-time algorithms that take >80x the speed of theoretically asymptotically slower algorithms. I mean: a single cache miss can cause that level of slowdown.

Or, to put it another way, log32(n) <= 80 for all achievable n. So, realistically, you might as well consider it effectively O(80), i.e. O(1). You have something similar, albeit more extreme, for inverse Ackermann time.

[1] [http://physics.aps.org/story/v9/st27](http://physics.aps.org/story/v9/st27)

<comment><USER2> That argument applies to any O(log n) algorithm. The base of the logarithm doesn't matter.

<comment><USER3> Well, yes and no.

Yes, in that the argument applies.

No, in that the size is larger. It's more reasonable to say one algorithm is 80x faster than another of the same complexity than to say one algorithm is 530x faster than another of the same complexity.

</comment></comment></comment></comment><comment><USER4> I'm curious if anyone who has read (or is familiar with the data structures described in) Purely Functional Data Structures[0] can weigh in on how this persistent vector compares to say, the real time deque which is described to have _worst case_ runtime of O(1) for cons/head/tail/snoc/last/init (along with plenty of other structures which have similar amortized time guarantees, etc.) Do these structures not have practical performance characteristics, or is there another reason a O(log) solution was chosen? Like the other poster mentioned here, its a bit upsetting having read something that rigorously analyzes worst time behavior to have an article hand wave away log32 as "effectively constant time". Especially because amortization is even trickier to consider with persistent data structures since you have to deal with the fact that you may have many operations taking place on your worst case node (several pushes on your edge case base vector, etc). Perhaps these tries actually account for that very elegantly, but I certainly don't know enough to intuit it from what I've seen here.

0\. [http://www.amazon.com/Purely-Functional-Structures-Chris- Oka...](http://www.amazon.com/Purely-Functional-Structures-Chris- Okasaki/dp/0521663504)

Edit: PDF version: [http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf](http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf)

<comment><USER5> The key point here is that Clojure-style vectors have logarithmic random reads/writes, while Okasaki's aforementioned deques do the same in linear time. Clojure uses the persistent vector by default, so it's essential that people can port their usual imperative vector algorithms and expect to get acceptable performance. Hence the focus on random access.

As to amortization, operations on Clojure-style vectors have pretty much _zero_ variance (modulo the size of the vector). There is no resizing, no reordering, no rotation or whatever, it's just the exact same algorithm every time.

</comment></comment><comment><USER6> I always thought "persistent" meant "stored in non-volatile storage" but this author seems to be using it as a synonym for "immutable" or "functional" which seems really weird to me. Is this a Clojure-ism?

<comment><USER7> In the context of data structures, persistent has a very specific meaning. So it's not really a Clojure-ism.

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

It's not a synonym for immutable or functional. A persistent data structure is one that shares structure with other data structures.

<comment><USER8> > A persistent data structure is one that shares structure with other data > structures.

No, a persistent data structure is one where, when you apply an operation that would ordinarily modify it, you instead get back a new data structure with the operation applied, and the old data structure appears the same.

I could make an array persistent by copying the entire array each time. No structural sharing at all.

Of course, you want structural sharing because it makes things a heck of a lot more efficient, but it's not a part of the definition of a persistent data structure.

<comment><USER6> Then I'm still confused. Is "persistent data structure" a synonym for "purely functional data structure" in the sense of Oakasaki96?

[http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf](http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf)

<comment><USER8> Persistence is defined in terms of the interface to an abstract data type. When I do a write operation on a data structure, I get a new version back, and all read operations on the old version still return the same values.

        version1 = make_record(x = 10)
        v1_x = get_x(version1)                 ; 10
        version2 = update(version1, x = 20)
        v2_x = get_x(version2)                 ; 20
        get_x(version1) == v1_x                ; true

The update operation is free to mutate the original data structure however it likes, so long as from the outside the read operations look the same.

This freedom to mutate is often used to make efficient persistent data structures by re-using the same memory but tagging different parts of it with a version.

        version1 = make_record(x = 10)

                   +</comment></comment></comment></comment></comment><comment>--+</comment><comment>--+      +-----+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+
        version1 ->| tag: 1 | data: -+----->| x: -+-->| tag: 1 | val: 10 | next: -+---|
                   +</comment><comment>--+</comment><comment>--+      +-----+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+

        version2 = update(version1, x = 20)

                   +</comment><comment>--+</comment><comment>--+      +-----+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+
        version1 ->| tag: 1 | data: -+--+-->| x: -+-->| tag: 1 | val: 10 | next: -+-->| tag: 2 | val: 20 | next: -+---|
                   +</comment><comment>--+</comment><comment>--+  |   +-----+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+   +</comment><comment>--+</comment><comment>---+</comment><comment>--+
                   +</comment><comment>--+</comment><comment>--+  |
        version2 ->| tag: 2 | data: -+--+
                   +</comment><comment>--+</comment><comment>--+

When version2 is created, it really just appends to the same data structure as version1, but tags the cell as a new version. When you do get_x(version1) it follows down the list, finds the cell with tag 1, and returns it's value. When you do get_x(version2) it follows down the list until the cell with tag 2 and returns it's value.

From the outside, get_x(version1) still returns the same value before and after the update, but the data structure it refers to has been mutated underneath it.

There are also ways to use structural sharing in persistent data structures where the you don't do any mutation of the old versions. For examples of this, see the linked article.

Functional data structures forbid mutation. This means they must be persistent, because update operations have to return new data structures, and the old data structures aren't allowed to be mutated so by definition all read operations on them still return the same values.

Functional data structures end up forming a subset of fully persistent data structures. They're a useful category for a lot of the same reasons people are touting pure functional languages are useful. For instance, you never have to worry about locks when you have concurrent access. With the mutating example above, if one thread does update(version1, x = 20) and another does update(version1, x = 30) I need to coordinate which one gets tag 2 and which one gets tag 3.

Persistent data structures are the more general concept, functional data structures are a specialized subset.</comment>


A Practical Analysis of Rust's Concurrency Story - <AUTHOR> https://arxiv.org/abs/1904.12210 <comment><USER2> _> we found that it took some effort to remove these unwraps and replace them with match statements or the equivalent._

You may choose to not use match expression. It can be as simple as:

        fn get_val() -> i64 {
            function_returning_result().unwrap_or(-1)
        }

Or if println! there is really needed, then instead of unwrap_or is possible to use unwrap_or_else with a lambda:

        fn get_val() -> i64 {
            function_returning_result()
            .unwrap_or_else(|e| {
                println!("Error occured! {:?}", e);
                -1
            })
        }</comment>


Global solar rooftop PV system performance check tool - <AUTHOR> https://solcast.com.au/rooftop-solar/free-pv-system-performance-estimation-tool/ <comment><AUTHOR> Developer that works at Solcast here, hope others find this useful. Blog post with a tool to check the last 6 days of PV performance nearly anywhere in the world. Live data comes from 5 satellites. Tracks global cloud opacity and uses surface radiation estimates to model PV output. Handy to see if your rooftop PV system is performing at expected levels. Home page also has 1 day forecasts which are updated every 5-15 minutes depending on satellite coverage.</comment>


Bill Murray shows you how A/B testing can help you land the girl of your dreams - <AUTHOR> http://www.youtube.com/watch?v=T_yDWQsrajA&t=1m42s

<comment><USER2> [http://www.codinghorror.com/blog/2010/07/groundhog-day-or- th...](http://www.codinghorror.com/blog/2010/07/groundhog-day-or-the-problem- with-ab-testing.html)</comment>


National prison strike launches over underpaid labor and prison conditions - <AUTHOR> https://slate.com/news-and-politics/2018/08/national-prison-strike-launches-over-underpaid-labor-and-prison-conditions.html <comment><USER2> A relevant snippet:

"California inmates were sent off to fight what has become the largest wildfire in the state's history for just $1 an hour. These firefighters, who volunteered for a vocational training program offered by the California Department of Corrections and Rehabilitation, are often disqualified from the work after release because a required credential is denied to anyone with a criminal record.

Hundreds of thousands of prisoners are also employed in jobs outside and inside the prisons, most commonly doing work to maintain the prisons. According to the Prison Policy Initiative, the average prison worker makes around 85 cents an hour. In 2017, inmates in Alabama, Arkansas, Florida, Georgia, and Texas were not paid for most of their work. Proponents of these low-paying jobs have argued that inmates benefit from the work experience and that prisons, which are already often cash-strapped, cannot afford to pay more; opponents have argued that prisoners do need real wages to be able to buy basic necessities other than food in the prisons."

Arguing that it's good for them is paternalistic bullshit. The same argument could justify slavery. If prisons are cash strapped, whose responsibility is that? I believe society put these people away and we should pay for it. Either it's worth it to us or it's not.

<comment><USER3> > Arguing that it's good for them is paternalistic bullshit. The same argument > could justify slavery. If prisons are cash strapped, whose responsibility is > that? I believe society put these people away and we should pay for it. > Either it's worth it to us or it's not.

I'm somewhat sympathetic to the argument, but why is the focus solely on what is "good for them?" Discussions of over-incarceration aside, there is a legitimate place for prison. These people are already a burden on society-- housing a prisoner costs tens of thousands of dollars--why shouldn't they be forced to take on some of their own upkeep?

Note that we do this with another class of people who are wards of someone else: children. Nobody is arguing you should have to pay kids minimum wage for doing chores...

<comment><USER4> > _Nobody is arguing you should have to pay kids minimum wage for doing > chores..._

"Chores" and "labor" are categorically different things, and the motivation for the former isn't usually "offsetting their upkeep", so much as it's "instilling a sense of personal responsibility".

This is a specious comparison.

<comment><USER5> What's the difference between a teenager mowing the lawn for their parents and someone paid to mow a lawn?

Furthermore, when a farmer's child does chores alongside a paid laborer, what's going on?

<comment><USER4> The kid getting paid to mow neighborhood lawns has:

1\. The right to say "no" without repercussions beyond "not getting paid".

2\. Significant statutory protections regarding exploitative treatment.

EDIT: There's also a large body of statute defining what is and isn't okay in the family farm situation.

<comment><USER6> > 1\. The right to say "no" without repercussions beyond "not getting paid".

Have you ever _had_ parents? I realize it's outside the Overton window to _do_ anything about it, but age-based slavery[0] is ubiquitous and the legal default in essentially (I think _literally_ ) every country on Earth. It's an even more pervasive affliction than copyright, so I find your ignorance implausible.

0: in the ownership sense; actually using them for forced labor is less common

<comment><USER4> My comment was about kids mowing _neighborhood_ lawns, not their own.

Please try to address the argument I actually made.

<comment><USER6> I was; my comment was about the purported lack of repercussions for disobediance.

Also, you were responding to:

> a teenager mowing the lawn for their parents

which _was_ about their (owner's) own lawn.

<comment><USER4> The full quote I was responding to is:

>>>> _What 's the difference between a teenager mowing the lawn for their parents and someone paid to mow a lawn?_

In response to which, I said:

>>> _The kid getting paid to mow neighborhood lawns has:_

Selective quoting tends to change the context a bit, don't you think?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I never understood the idea of paying prisoners absurdly little "because prison". Why, because they're not paying rent? And there's no _way_ they will find a job on Day 1 after release, meaning they essentially have not enough money _while_ in prison, no way to save money, and poverty at release. Given that, they'll probably be forced to steal to survive after release and...end up back in prison.

It's inhumane garbage, and I'm amazed at how much people protest things like Netflix price increases when we have _way_ worse problems that warrant our time and money.

<comment><USER8> I don't disagree but just wanted to say something:

The whole point of money was to make it possible for 2+ good actors to do legal (and different) work/goods/services for each other while profiting.

Most people who end up in prison were "bad actors" by definition. The system was not benefiting from them. And thus I can't help thinking that they don't really deserve any of the system's monetary medium of exchange.

<comment><USER9> Except they're not really "bad actors"

Most people in prison today are there because of "drug offenses" which usually means they got caught doing drugs themselves (not dealing drugs or being involved in drug induced crimes).

<comment><USER10> This is a REALLY common misconception.

Including "drug offenses" the U.S. incarceration rate is 693 per 100,000.

Excluding "drug offenses" the U.S. incarceration rate is still 625 per 100,000.

[https://fivethirtyeight.com/features/releasing-drug- offender...](https://fivethirtyeight.com/features/releasing-drug-offenders- wont-end-mass-incarceration/)

I agree with you that we should get the drug offenders out. But the characterizations that "most people are in prison for drug offenses" should be updated.

<comment><USER11> Is incarceration rate not somewhat deceptive though? A more interesting statistic would be how many of each 100,000 had ever spent time in prison.

From here on is only speculation and I'll do a deeper dive when I'm not on a phone. I'd like to see the rest of the statistics broken down by offense. Additionally I suspect that drug offenses would lead to repeated incarceration and perhaps eventually worse offenses.

Most violent offenses are committed in the context of existing relationships though, so there are certainly non-policy and certainly non-drug-policy ways to address crime in the United States.

<comment><USER11> The linked article is interesting but also slightly misrepresented. The 693 number is incarcerations without _federal_ drug offenses. The change would be from 725/100k to 625/100k across state and federal, which is a slightly more significant change.

</comment></comment></comment></comment></comment></comment><comment><USER12> For reference, here is the linked list of demands by the national organizers [1]:

> 1\. Immediate improvements to the conditions of prisons and prison policies > that recognize the humanity of imprisoned men and women.

> 2\. An immediate end to prison slavery. All persons imprisoned in any place > of detention under United States jurisdiction must be paid the prevailing > wage in their state or territory for their labor.

> 3\. The Prison Litigation Reform Act must be rescinded, allowing imprisoned > humans a proper channel to address grievances and violations of their > rights.

> 4\. The Truth in Sentencing Act and the Sentencing Reform Act must be > rescinded so that imprisoned humans have a possibility of rehabilitation and > parole. No human shall be sentenced to Death by Incarceration or serve any > sentence without the possibility of parole.

> 5\. An immediate end to the racial overcharging, over-sentencing, and parole > denials of Black and brown humans. Black humans shall no longer be denied > parole because the victim of the crime was white, which is a particular > problem in southern states.

> 6\. An immediate end to racist gang enhancement laws targeting Black and > brown humans.

> 7\. No imprisoned human shall be denied access to rehabilitation programs at > their place of detention because of their label as a violent offender.

> 8\. State prisons must be funded specifically to offer more rehabilitation > services.

> 9\. Pell grants must be reinstated in all US states and territories.

> 10\. The voting rights of all confined citizens serving prison sentences, > pretrial detainees, and so-called "ex-felons" must be counted. > Representation is demanded. All voices count!

[1] [https://www.dropbox.com/s/r5cr546jlscgkhj/Prison%20Strike.pd...](https://www.dropbox.com/s/r5cr546jlscgkhj/Prison%20Strike.pdf?dl=0)

<comment><USER13> As someone from Australia who doesn't understand the prison thing in the US. Is it essentially modern slavery? They choose non-white demographics, send them to prison for minor offences, and use the for cheap/free labour. Is this right?

<comment><USER14> Yes. Pretty much exactly that.

</comment></comment></comment><comment><USER15> My brother just went to jail and I'm just learning how crazy some things are there. They keep the bright lights on until midnight, and turn them back on at 4am (and require the inmates to get up).

No one can properly function after repeated nights of less than 4 hours of sleep. I seriously think the jail just wants to push people to misbehave so they stay there longer and the jail can reap more profits.

<comment><USER16> _They keep the bright lights on until midnight, and turn them back on at 4am (and require the inmates to get up)._

It's one of several measures to keep the inmates docile. See also: feeding them low-quality food, and only enough for survival.

A hungry, sleep-deprived prisoner isn't going to revolt, and after release may think twice about going back.

<comment><USER17> Just because torture might work as a deterrent is absolutely no excuse.

Sleep deprivation and malnourishment are forms of torture, and constitute human rights violations.

It's supposed to be a correctional system. How are we supposed to reduce recidivism when the system is designed to destroy lives?

</comment></comment></comment><comment><USER18> Yes.

I went to the Design2Part show in Santa Clara a few months ago. The California Department of Corrections had a booth there, offering slave labor as a service.

<comment><USER19> It's technically not illegal under the 13th amendment.

> Neither slavery nor involuntary servitude, except as a punishment for crime > whereof the party shall have been duly convicted, shall exist within the > United States, or any place subject to their jurisdiction.

It's immoral and unethical, but it's legal. Not saying I agree with that part of the 13th amendment, I abhor it personally.

<comment><USER20> > It's immoral and unethical, but it's legal.

Do you think it is reasonable for people in prison to work to offset some of the cost of their room and board or do you think it should all be paid for by taxpayers?

(I have a problem with creating an economic incentive to keep people in prison, but less of a problem with giving people something to do that helps pay for their food.)

<comment><USER21> Nobody should be in prison longer than their rehabilitation takes and the focus of their stay should 100% be rehabilitation. The prison system should be structured around reducing costs by getting people out of the system, not reducing costs by getting those in the system to do work.

<comment><USER22> >Nobody should be in prison longer than their rehabilitation takes and the focus of their stay should 100% be rehabilitation

That would be nice, but our current justice system is not even remotely close to being anything like this. That will take generations of change. You're trying to say we should be at step Z when we haven't even gotten to A yet.

<comment><USER23> That kind of argument is used to justify a lack of action towards progress though. Similar arguments were made by many about slavery at the time:

"It would be nice to abolish slavery but our current economic system isn't even remotely close to being anything like this. It would take generations of change..."

So we should prefer generations more people be subjected to these horrors than take a risk and make an effort to do better?

<comment><USER22> You misunderstand. I'm not saying you can't try and change things, that's exactly what I _am_ saying. You can't demand everything has to perfect right now, you need to actually start the change somewhere.

>"It would be nice to abolish slavery but our current economic system isn't even remotely close to being anything like this. It would take generations of change..."

This is more like you saying we need to have equal rights for everyone in 1800 before you start working on abolishing slavery in the first place.

<comment><USER24> You should read up the history of Thaddeus Stevens if you haven't yet already.

There comes to a point where you need to make strong demands if you want to make any progress at all for certain things. Demanding incremental progress for things like slavery in the 1800s leads to half-baked compromise that ultimately led to even more issues later down the line.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> "Neither slavery nor involuntary servitude, except as a punishment for crime whereof the party shall have been duly convicted, shall exist within the United States, or any place subject to their jurisdiction."

\- 13th Amendment of the U.S. Constitution

Whenever anyone says slavery no longer exists in America, I point them to this. The foundational document of our system of government expressly allows slavery.

We house 25% of the world's prisoners in part because it's how we are still legally producing slaves.

<comment><USER26> Can any lawyer comment? A reading of the 13th amendment seems to justify involuntary servitude as a punishment for a crime, does this mean prison labor that isn't included in a sentence a violation of the 13th amendment? Just reading of this seems to allow one to make an legal argument along those lines, so I imagine there must have been some case that lead to a clarification of the 13th in the intervening century or so.

<comment><USER27> Except there is over a century of precedent, and no court is going to overturn that now. The 13th amendment is not some new discovery that the courts are waiting for someone to make an argument based on

<comment><USER17> You couldn't be more wrong.

The supreme court could reinterpret this, and require forced labor to be a part of the sentence, not just allowed to be used against anyone in prison.

Precedent changes over time. This idea that the current interpretation of the Constitution is immutable is defeatist and foolish.

<comment><USER28> The supreme court _could_ reinterpret anything.

The trend at the moment is that they aren't interfering with past rulings and that's not about to change with the new addition.

<comment><USER29> Remember the recent gay marriage ruling? They re-interpreted centuries of tradition.

</comment></comment></comment></comment></comment></comment><comment><USER30> Paying prisoners absurdly low wages teaches them that honest labor doesn't pay. Isn't this exactly the opposite of what we want them to learn?

I readily that my emotional side wants to prison to be as punitive as possible. But my rational side just wants to live in a society with less crime. And teaching prisoners that honest labor pays is an important lesson in getting them to behave themselves when they get out.

<comment><USER31> >. Isn't this exactly the opposite of what we want them to learn?

I don't think anybody who is involved in what can only be described as a prison industry at this point is interested in teaching them anything.

</comment></comment><comment><USER32> On the one hand, you don't really want there to be much of an economy in prison. The more money inmates make the more they have to bribe corrections workers and create an unsafe environment.

On the other hand, we can't keep wages so low in these institutions that basic hygiene items require a hours on hours of work. How do you expect someone to go from incarcerated to living in the world with no money? I swear we just love to create problems in this country and then wonder out loud how those problems came to be.

<comment><USER33> If you keep people in a prison you are also obligated to feed them and keep them supplied with basic necessities like basic hygiene items.

Nobody in prison should need to work to wash themselves or brush their teeth.

</comment></comment><comment><USER34> > 1\. Immediate improvements to the conditions of prisons and prison policies > that recognize the humanity of imprisoned men and women.

This probably ought to include something like the following: "...including an immediate ban on solitary confinement as a disciplinary measure."

Otherwise we will have a multi-decade "conversation" about whether "time in the hole" actually constitutes torture.

Remember, this is the country that brought you "enhanced interrogation techniques" and marijuana as a schedule I controlled substance.

</comment><comment><USER35> The US prison system will probably be the first way somebody fulfills the one million jobs RFS [https://www.ycombinator.com/rfs/#million](https://www.ycombinator.com/rfs/#million)

Find a way to sell a service the prisoners can learn to do through apprenticing with experienced prisoners (b2b sales, data analysis, ect), find a way to get companies to contract your inmates, find a way to proof it from bad inmates making politicians look embarassed by limiting the scope of the service to something they can't use for crime, find a way to get prisoners to agree by paying them the state min wage,find a way to get prison workers and public to agree by making it as non disruptive to set up as possible, hire former inmates who worked for you to manage the on site operations, counter 'this is slavery' criticism by hiring prisoners themselves to be your company PR. Prisoners can pay off their conviction fines and at the same time save money for release to land soft. Pitch this to YC and get funding to conduct some kind of data gathering to guage what politicians and public would be comfortable with (types of offenses permitted to work, industries that are least adversarial to this model so willing to work with your prisoners, ect).

</comment><comment><USER36> I'm very impressed that we don't actually bill prisoners for rent, food, etc and if they can't pay, loan them money through a high interest loan that they can never pay off. Maybe they could do this and reduce interest on the loan if you work in prison. Whatever story works to keep people blind to the fact that the state abuses the shit out of its people.

<comment><USER25> We do.

[https://money.cnn.com/2015/09/18/news/economy/prison-fees- in...](https://money.cnn.com/2015/09/18/news/economy/prison-fees-inmates- debt/index.html)

</comment></comment><comment><USER37> A common argument against offering minimum wage work or advanced technical training to prisoners is that this reduces the disincentive of prison time. From a purely logical standpoint I can see how that makes some amount of sense, but in reality I don't think anybody committing petty or significant crimes would be swayed one way or the other over the opportunity for $7/hour in prison. The lack of freedom - to see family, friends, live an actual life - that's the disincentive. Not to mention the employment and housing prospects of a convicted felon, which are terrible.

</comment><comment><USER38> As much as I wish for incremental reform of prison conditions for prisoners, it's important never to forget the fundamentally unethical premise of prisons and state punishment, which derives from religious fantasies about good and evil.

Human beings behave according to the combination of their neurology and their conditions. We should do what we can to prevent dangerous behavior and do our best to treat the people who do dangerous things.

Deciding that some people, mostly people who come from historically oppressed groups and from poverty, are bad and deserve to suffer has a toxic effect on the core of our society.

</comment><comment><USER39> I worked with a guy who was on a state fire crew (not California). The pay was super low, but he didn't care. Being outdoors in the smoke was way better than being in a cell and the time off for being good was worth quite a bit to him. He was totally happy with the arrangement and it sounded like many others were too. The state had lots of similar programs, roofing government buildings, etc.

I thought I'd share how he felt because it wasn't all all what I expected to hear. I expected he'd rip on it and all I heard was good.

</comment><comment> a-fried-egg I think the inhabitants of the white collar prisons should be put to work fighting the fires and get paid nothing in return. Most of them are serving hard time for fraud anyway.

</comment><comment><USER40> Has everyone forgotten that these people are all convicted of a crime and serving their sentences?

For all the issues that exist (gouging for common services, violence, the judicial process, etc.) complaining about the terms of their punishment is absurd.

To be sure there should be rehabilitation, and a component of that is incentives. There should be no expectation, though, that those incentives should correlate to what they may receive in the free market.

</comment><comment><USER41> US inmates in 2018 are paid worse than prisoners in Soviet gulags in the 1950s [https://www.researchgate.net/profile/Leonid_Borodkin/publica...](https://www.researchgate.net/profile/Leonid_Borodkin/publication/237588373_Compensation_Versus_Coercion_in_the_Soviet_GULAG/links/0c960528c68e4999f4000000/Compensation- Versus-Coercion-in-the-Soviet-GULAG.pdf)

</comment><comment><USER42> Attica, Cinda Firestone, 1973 [https://vimeo.com/272464205](https://vimeo.com/272464205)

</comment><comment><USER43> You cannot visit slate unless you accept the privacy policy. Which third partners they share the data with, and how to opt out? You never know, as you have to accept the privacy policy first before accessing the Third Party Partners page.

<comment><USER44> [https://outline.com/fCXvYT](https://outline.com/fCXvYT)

</comment></comment><comment><USER45> One thing they are demanding is to get rid of the ability to sentence someone to life without parole. For some reason, I don't think the public is going to get behind that one.

</comment><comment><USER46> Title should add 'in USA'

<comment><USER47> The default is USA... dang should add a country if it isn't

</comment></comment><comment><USER48> Ok, everyone sing along! [https://www.youtube.com/watch?v=pBpUniD7VGE&feature=youtu.be](https://www.youtube.com/watch?v=pBpUniD7VGE&feature=youtu.be)

Solidarity over slavery!

</comment><comment><USER49> Inside, Outside: all on the same side.

</comment><comment><USER50> this is modern slavery.

the minimum wage should apply to all labor, including that performed by inmates.

</comment><comment><USER51> If they're not being paid and the work they're doing is not helping them to get a job afterwards, then they have every right to protest. In theory at least, they are supposed to be working towards rehabilitation, but it's turning out to be slave labor in practice.

</comment><comment><USER52> I have always felt that not paying prison guards enough would encourage corruption. If you're a prison guard and are barely scraping buy, would you be tempted to smuggle in drugs for the inmates if that meant lining your wallet with a few hundred bucks? This must happen at some level. How else do people get access to drugs in prison?</comment>


Node based static site generators - Boris Mann - <AUTHOR> http://blog.bmannconsulting.com/node-static-site-generators/ <comment><USER2> You forgot about roots!

<http://roots.cx>

Went from PSD to deployed in about 30 minutes: <http://belluba.com></comment>


AI, Robotics, and the Future of Jobs - <AUTHOR> http://www.pewinternet.org/2014/08/06/future-of-jobs/ <comment><USER2> Reading articles like this I'm often reminded of Amara's Law:

"We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run."

In terms of overestimation in the short term, it seems to me that although we are trending towards automative technologies, 11 years seems like far too short a span for those technologies to have "displaced significant numbers of both blue- and white-collar workers."

Meanwhile, in the long term, the time frame these technologies actually need to have fully permeated, we don't know what types of jobs or how many will be brought about by their existence.

<comment><USER3> Exactly my feeling. Although I can't blame someone for overestimating the impact of automation on his jobs and preparing for it. Those who underestimate AIs will pay a hefty price.

Anyway, I don't think the "when" is really interesting to think about, especially when it's an arbitrary date. I prefer to ponder on much more significant and inevitable events/thresholds such as when AIs will surpass humans in every aspect. In my opinion, as long as AIs are inferior to humans in terms of intelligence, there will be jobs for most people, but past this point the concept of "work" is not event relevant anymore. And don't tell me "people will always need interaction with other people". That's clearly underestimating the capacity of future generations to identify with highly intelligent and sentient robots.

</comment></comment><comment><USER4> > Throughout history, technology has been a job creator—not a job destroyer

This is one argument that I have always really disagreed with. Technology doesn't inherently create jobs. Rather it makes people able to be more productive and efficient. I think that will longer stand the test of time.

Hopefully someday soon we will go beyond this need for everybody to have jobs so that they can pay for food and rent. Instead we will be able to do human things. Do projects, cool hacks, make art and music, explore the universe. Why spend all our time compensating for scarcity when robotics can do it for us?

That however is going to be a long transition. Especially one for the people in the US, who have such a heavy burdened work culture (i.e. if you aren't working you aren't valuable to society). Also shameless plug here for basic/guaranteed annual income.

<comment><USER5> I'm not sure about the art and music making. Computers will make this too and not just better, but also personalized for your brain. I think, there will be a great depression, when even creativism becomes boring.

<comment><USER6> Being creative doesn't become boring because someone else can do it better. Just trying to express yourself is fun. If it weren't, nobody would participate in amateur hour or open mic nights.

<comment><USER7> I agree 100%. The idea of automating creativity is ludicrous. Creativity is what being human is all about and the universe we live in is infinitely vast and full of endless paths to explore.

<comment><USER8> >The idea of automating creativity is ludicrous.

No it isn't. Not anymore ludicrous than automating anything else, just far more complex in its implementation. It's not impossible.

>the universe we live in is infinitely vast and full of endless paths to explore.

Yes, but human beings are not infinite, nor is their capacity for creative thought. We're bound by finite time, space, perception, culture and neurology. Therefore, I believe human creativity is a process which can be modeled, replicated and mass produced just as human labor can. There's nothing special or magic about it, it's just a nut we haven't cracked yet. But then, there was a time when the concept of a machine doing math was unthinkable as well, and a machine doing cryptography, and a machine playing Jeopardy, etc.

Consider how formulaic much of modern popular culture is. Do you really think it's impossible for an AI, with access to the entire web and, theoretically, working neural models, to churn out an acceptable dime store novel or movie or video game? We're not talking about _genius_ , here, we're talking about commerce. People will buy it. And if people will buy it coming from a machine, there's no longer any reason to pay humans to generate it.

It doesn't even really have to be _better_ than what humans would produce - just acceptable.

<comment><USER9> I think the point the above posters were making is that people will continue to create for fun, even if machines are better at it.

<comment><USER7> This is exactly my point. Creativity is not a mindless endeavor in need of automation. It is the heart of human existence, no matter how finite your world view considers it.

<comment><USER8> I agree that creativity is as important to the human experience as you say. But that still doesn't mean the _industry_ of creativity won't suffer the same drive for automation as every other, or that it can't be generated by machines. I don't think there's actually a contradiction here, people will still _be_ creative, but more and more popular culture will be algorithmically generated - the jobs for creative work, and the support work, may not be there.

Although that does also suggest that human-generated creative works may become more valuable for their rarity.

<comment><USER6> Since the invention of mass media. most folks in the "creative industry" already work for next to nothing. Automation would only threaten the .1% of artists, musicians, and actors at the top. My band, for instance, barely makes any money, but we're in it for fun. Hatsune Miku won't put us out of work, but after a few more updates, she might replace Katy Perry.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> You could pretty much eliminate all mcdonalds staff already with a vending machine that has a conveyor belt that runs under a heating element(like they do at quiznos), and sprays some condiments on a bun. All you'd need then is someone to replenish the vending machine.

So artificial intelligence isn't even necessary.

<comment><USER11> Has to be self-cleaning, sense outages, package up the food and bag it. Respond to disruptions (conveyor broke; ketchup dispenser leaking etc). AI could be useful.

<comment><USER10> Or just sensors? I doubt that the McDonalds grill is cleaned at all during the day. If that were the only issue, you could get someone in every night and clean it/restock it. You certainly don't need AI to bag a meal (or even just _I_ for that matter). I'm just trying to say that really a lot of the work can be replaced already but they haven't done it yet. Why?

<comment><USER11> I think you want to automate the whole 'food chain', end to end, to make it profitable. Else you have robots AND employees, which costs more than one or the other.

<comment><USER10> Still cheaper to pay someone for 1 hour to clean & re-stock then to pay them for 8 hours to cook, as long as the machinery costs & maintenance is cheaper in the long run.

</comment></comment></comment></comment></comment><comment><USER12> Considering cars are made by robots I always wondered why a big company like McDonalds couldn't do similar when making its cheeseburgers. Never researched it until now but looks like there is a machine capable: [http://www.zerohedge.com/news/2014-01-12/meet-smart- restaura...](http://www.zerohedge.com/news/2014-01-12/meet-smart-restaurant- minimum-wage-crushing-burger-flipping-robot)

<comment><USER11> I look forward to completely automated fast food. Drive up, wave my RFID tag near a sensor, get a menu of last 5 thinks I ordered, touch screen, plop! Bag drops out chute, clean and hot and just the way I like it.

</comment></comment><comment><USER13> We're always hearing "there will be new kinds of jobs", but never what those jobs will be , how many they could be in number or any relevant detail to that claim.

Why is that ?have we no sense of imagination ? Or is it that the claim is just an easy comforting truism(that preservers the current order) and nothing but ?

<comment><USER14> I believe as the robotics industry grows, an appropriate support network will need to grow with it to handle the inevitable growing pains. For instance, I believe a "robotics mechanic" will be a job of the future, analogous to an automotive mechanic. Today there are experts/specialists in different automotive systems like transmissions, electrical, etc. Likewise, robots will need specialists in perception, locomotion, cognition, etc.

But robots of the future will not be designed to do one thing, as cars are (press throttle, move forward). They will be complex, autonomous decision- making machines, something the world really has never dealt with. I imagine the support infrastructure needed to deal with such machines would more closely resemble the healthcare industry than the automotive industry.

For example, you would have your highly trained specialists as I mentioned, but also generalists skilled at diagnosing and repairing common issues, and of course support staff needed to assist them in their jobs. Thus you have tiers of skill so that if a robot displaces a housekeeper(for instance) he doesn't have to get a PhD in order to find a new job in the robotics industry that made him obsolete.

<comment><USER11> Its unlikely that disruptive changes in the robotics situation will magically leave room for everyone, or even for most people, to still have meaningful work. We'll have to decide what to do about that. And it will take more than hopeful trickle-down theories. Probably a basic income or work program solution of some kind.

</comment></comment></comment><comment><USER15> I don't get this issue. Let the robots have all the jobs.

<comment><USER11> Disruption of the economy. What if they had Your job? And you couldn't find another one.

<comment><USER7> The real question that intrigues me is why have a job in the first place? Obviously the current system derived from capitalism requires that we either work or own, but this doesn't make it the right path for mankind.</comment></comment></comment>


UFO Witnesses Tell the Truth - <AUTHOR> https://www.popularmechanics.com/military/research/a29771548/navy-ufo-witnesses-tell-truth/ <comment><USER2> I don't think they are hiding stuff at the top levels, because you-know-who couldn't keep quiet about it if his life depended on it.

<comment><USER3> Which is why they would never tell him unless absolutely necessary.

<comment><USER4> [https://www.nytimes.com/2016/05/11/us/politics/hillary- clint...](https://www.nytimes.com/2016/05/11/us/politics/hillary-clinton- aliens.html)

</comment></comment></comment><comment><USER5> Actually it doesn't break the laws of physics, researchers found out that it was possible to change angle without any loss of speed under certain conditions, i think it was on HN top page few weeks ago.

<comment><USER2> What's the max G's a top drone can do? I'm pretty sure drones can do things manned jets cannot. I'm not saying they were drones, but not sure it can be ruled out yet.

</comment></comment><comment><USER6> Funnily enough the Tic-Tac description looks quite close to the fictional "Droplet" in Liu Cixin's 3 body problem. This is fiction so the author might have been influenced by this event.

<comment><USER7> In the unlikely even that this was an alien object, the fact that it resembles something out of fiction is irrelevant.

<comment><USER8> I think the OP intended the inverse - that the fictional story was inspired by the description of the real life object.

</comment></comment></comment><comment><USER9> the mentioned documentary [https://youtu.be/-e9NoKp8EnE](https://youtu.be/-e9NoKp8EnE)

video sequence there [https://youtu.be/-e9NoKp8EnE?t=1573](https://youtu.be/-e9NoKp8EnE?t=1573)

</comment><comment><USER10> Wondering if in any of the footage there were some fuzzy characters engraved on the side of the Tic Tac, that after being enhanced (thanks to some AI magic work) would come out to be "Made in China".</comment>


'Edutainment' Needs Entrepreneurs - <AUTHOR> http://www.forbes.com/enterprisetech/2008/12/18/mitra-edutainment-entrepreneur-tech-enter-cx_sm_1219mitra.html <comment><USER2> The article starts off with the premise that good edutainment software is needed to augment the abilities of intellectually challenged teachers. It then wanders off into promoting the cellphone as a delivery mechanism for third world countries. As a whole, I don't think the article says anything. Inexpensive laptops are a far better delivery mechanism, and if we look at our own educational problems, nearly everyone has a computer available.

However, the premise that there is an opportunity to provide supplemental educational materials is valid. If you have looked at your kids textbooks, they are mostly complete junk, almost comic books in content. What I see as needed are textbook supplements/replacements. For example, instead of a one page description of the Roman Forum with a couple of pictures, how about a 15 to 30 minute interactive video game that would allow the kid to explore the forum and its time, environs, and culture. Accompany it with a Wikipedia-like text that would allow deeper exploration of the topics.

I see entrepreneurial opportunities, but also a place for a collaborative effort like Wikipedia. If the initial efforts have to be monetized, a subscription plan for parents would be a good place to start.

</comment><comment><USER3> I'm starting a educational software company right now, and while I think she's on track with her criticisms of educational effectiveness (let's face it, I went to public schools and learned veritably nothing), it seems like a supremely silly way to go about proving the market need. Who is going to buy these educational products again? Parents? And who do parents listen to? In our experience, parents listen to the teachers. So it doesn't look like a valid marketing strategy to start and educational company by saying "teachers are stupid and can't teach." Our goal in marketing ourselves is to give teachers some degree of control, but avoid the stultifying effects of "fun classroom technology" by mainly targeting self-motivated learners. Who knows if we'll make it to profitability, but having just attended a conference with over 500 teachers, pitching on the basis of teacher stupidity wouldn't have made any sales.

<comment><USER2> I don't think you should overlook parents. Professional parents are always looking for things to help their children. My son was very intelligent but had ADD, so it was very difficult to keep him engaged with standard materials. Administrators often tried to put him in the slower classes instead of challenging him. I would certainly have subscribed to a service that engaged him.

<comment><USER4> " Professional parents are always looking for things to help their children. My son was very intelligent but had ADD, so it was very difficult to keep him engaged with standard materials."

"The problem comes when parents use direct methods: when they are able to use their own wealth or power as a substitute for their children's qualities.

Parents will tend to do this when they can. Parents will die for their kids, so it's not surprising to find they'll also push their scruples to the limits for them. Especially if other parents are doing it." - PG, After Credentials

This is why the Princeton Review, Kaplan, etc. make fortunes. Test prep is probably the easiest to make, most profitable type of education software.

</comment></comment></comment><comment><USER5> One example of edutainment entrepreneurship from an earlier era is the Blaster series of products by Davidson Associates.

<http://en.wikipedia.org/wiki/Math_Blaster>

The founders of that company cashed out at just the right moment and now fund a foundation promoting better education for gifted children.

<http://www.davidsongifted.org/>

Now that software has developed technologically a lot since that era, there are presumably new opportunities that would be similarly lucrative for a start-up.

<comment><USER6> Grockit has been championing this idea of massively multiplayer online learning. I think it's pretty interesting: the idea is that you're encouraged to help teach your peers. But I think the implementation is totally off: right now it's just about studying for the GMAT. What a waste.

By contrast, the communities of Wikipedia, Flickr, TopCoder, FOSS, DeviantArt and a fair number of forums, all encourage participation in a _genuine sense,_ and the communities produce quite a lot of encouragement just by themselves. People get very, very good there.

<comment><USER7> _it's just about studying for the GMAT_

It might be a good place to start and then build out. Teaching smarter kids is more forgiving, in that the smarter they are, the more they can recover from your mistakes.

It is also helpful to have a concrete, measurable goal. Aiming for the score on a standardized test keeps it simple. They don't have to worry about the more 'fuzzy' aspects of learning, such as conceptual models of the material.

So it may make some sense.

[edit: fixed a typo]

</comment></comment></comment><comment><USER8> >"The challenge in this case would be to deliver educational software on very low-end cellphones that cost $10 to $25.

Challenge of course presents opportunities. The challenge is to understand the nature of addictive games, and the opportunity is to create educational games using that knowledge. "

There are no addictive games for low end cell phones.</comment>


Nabto's nabs $1 million in funding for tiny web servers - <AUTHOR> http://venturebeat.com/2010/12/08/nabto-internet-of-things-funding/

<comment><USER2> This is neat stuff but they have one big problem. To handle the home firewall traversal problem they developed their own protocol which requires a browser plugin. The way you navigate to their tiny servers is thru links like this:

nabto://test.nabto.net

If you browse to a Nabto device with <http://> instead it displays a page to download the plugin but with most browsers now ditching the protocol prefix I think this is going to be a VERY hard sell.

<comment><USER3> Yeah, they'd be better off having the base station transparently forward the HTTP requests (not the same as a proxy; a browser has to know it's talking to a proxy).</comment></comment>


Tell the White House to stop asking for encryption workarounds - <AUTHOR> https://petitions.whitehouse.gov/petition/apple-privacy-petition <comment><USER2> I don't understand. Isn't the court's right to access useful proofs? To me all this seems paranoia.</comment>


Ask HN: Any GitHub Gist Alternative? - <AUTHOR> Probably with more theme options. <comment><USER2> canSnippet is an alternative I developed some time ago. You can use: \- the Desktop version (macOS only, no cloud) [http://cansnippet.com/](http://cansnippet.com/) \- the community edition (open source webapp) [http://cansnippet.org/](http://cansnippet.org/)

You can see a running instance (in French) here [https://cansnippet.bioinfo- fr.net/](https://cansnippet.bioinfo-fr.net/)

Let me know if you have any question :)

<comment><AUTHOR> Thanks for the reply. I actually wanted something already hosted so that I could host my code on their service and share it on my blog.

</comment></comment><comment><USER3> Have you tried GitLab snippets?

<comment><AUTHOR> Thanks, I gave it a try. It's different from Gist, however, this too doesn't have theme options. I actually wanted to customize the look of the code snippet to match my blog's theme (something in dark). [https://blog.rampatra.com/how-to-add-search-in- jekyll](https://blog.rampatra.com/how-to-add-search-in-jekyll)</comment></comment>


Ask HN: Non-profits looking for volunteer developers? - <AUTHOR> In theory, developers should be able to do great things for non-profits. In practice, it seems hard for a developer with spare time to find a non-profit to work with. Somewhat nuts considering that the open source community has plenty of experience with all the issues of volunteering, distributed teams, etc, and there are some great teams out there - hundreds or thousands of developers willing to put in time over the long term to help advance good causes with their skills.
So treat this as a who's hiring post, more or less, but for non-profit volunteering with technical skills.
(A thought on the issues: reliability is the key, central value needed for a technical volunteer. In any non-profit, volunteers come and volunteers go, but it is very challenging to find people who follow through on a commitment to stay for a given project, or to act as support for a non-profit site for the necessary months and years to build up familiarity with the systems used. When it comes to technology, those rare few are absolutely necessary, however - you simply can't run a tight ship if developers flake out on a regular basis. This is especially true when it comes to projects wherein the team is scattered across the US or the world, and rarely meets in person).
My ulterior motive: I get to tack my search for a LAMP developer volunteer for the very hip Methuselah Foundation in here an early comment. <comment><USER2> This brings up an interesting question. You can't deduct time or services donated from your annual tax return, but could you deduct the value of the product you gave them? If I create and donate a website to the nonprofit, can the value of that be deducted based on fair-market value?

<comment><USER3> No, you may not.

The relevant sections of the tax code are in Pub561 and Pub526. Basically: the IRS would consider your custom website to have a FMV of $0, because it couldn't be sold to anyone else.

If you made a genuine software tool that was applicable to more than just the charity (and you successfully sold copies of that software), then the FMV would be the purchase price of the software in the open market.

There was a law passed in 2004 (can't remember which, sorry) that cracked down on the charitable donations of intangible property.

[1] <http://www.irs.gov/publications/p561/index.html>

[2] <http://www.irs.gov/publications/p526/index.html>

</comment></comment><comment><AUTHOR> So, the Methuselah Foundation is looking for a reliable LAMP volunteer - someone who is very interested in the future of longevity science, and can help build and maintain:

[http://www.fightaging.org/archives/2010/12/the-methuselah- fo...](http://www.fightaging.org/archives/2010/12/the-methuselah-foundation- needs-a-smart-reliable-technical-volunteer-linux-php-mysql.php)

<http://www.mfoundation.org>

"The Methuselah Foundation, founded back in 2003, aims to promote and support scientific progress towards defeating age-related disease, repairing the damage of aging, and greatly extending the healthy human life span. To that end the Foundation has raised more than $10 million in funding pledges, and their initiatives include the Mprize for longevity science, the recently launched NewOrgan Prize, investment in tissue engineering startups such as Organovo, and - prior to the establishment of the SENS Foundation as a separate entity - the funding of Aubrey de Grey's research program for rejuvenation biotechnology.

"These activities, and the networking to support them behind the scenes, have had a great impact upon the state of the aging research community, media treatment of longevity science, and public perception of the plausibility of medical research aimed at reversing aging. Thanks to the efforts of the Foundation volunteers and thousands of supporters, the environment for longevity science today is far improved over that of ten years ago. That in turn means that our chances of seeing working rejuvenation medicine within our lifetimes are also improved."

</comment><comment><USER4> I'm working for a German based non-profit on a project called spenden.de (roughly translates to donate.com). We are planning to do something inbetween www.guidestar.org an www.charitynavigator.org (the regulatory framework in Germany is much different therefore the comparison is very rough). Currently there is only a placeholder on the main page but you can find our prototype at <http://beta.spenden.de>. The new site is developed in RoR.

We are thinking about making the code available as open source and are able to provide donation receipts but the latter would probably only help you if you fill your taxes in Germany.

Currently we are relying on freelancers which are doing a great job and don't charge their usual rate but since our budget is extremely limited we could move much faster with some extra help.

I even started to teach myself some programming but might never be able to contribute significantly to the project (codewise).

If this sound at all interesting to anyone please let me know. I have very good experience with people working from abroad so at least that shouldn't be an issue. Besides actually code contribution a mentor helping me to improve my RoR skills would also be very appreciated (I'm currently at chapter 4 of railstutorial.org but without any prior programming knowledge this might be a long journey... ).

<comment><USER5> i am new to RoR but have significant programming experience and would like to help. contact me at helpspenden at soven dot org

<comment><USER4> I have sent you an email.

</comment></comment></comment><comment><USER6> Im a social entrepreneur who just started volunteering my programming skills to various non profits. Im working on probably about 5 projects right and could certainly use your help. Plus im looking to connect with other volunteer programmers as well to establish a group of some kind to talk about issues and projects we can build to deal with them. Whats a contact for you?

</comment><comment><USER7> The animal rights group I work with, Compassionate Action for Animals (<http://exploreveg.org>), has several technical tasks that we could use help with.

I'd say that top of the list is helping us convert from Plone to Drupal. This involves working on a new information architecture (though I've started work on it), a new design, and converting all the existing content.

I'd also like help developing VegGuide.org (<http://vegguide.org>). It's kind of like Yelp but focused on vegetarian- and vegan-friendly restaurants, grocers, etc. The site is built with Perl, using the Catalyst framework. Unfortunately, it's using a crufty old ORM I built, which makes working on certain features much harder.

Contact us (firstname.lastname@example.com) if you're interested.

<comment><USER6> Sorry but why would you want to use drupal. Its a very limiting piece of software that is non scalable and non customizable. Why dont you create something custom that allows the site to be flexible. Im working on moving some non profits i deal with off drupal and joomla as well since both are crap.

<comment><USER6> I was kidding. Sorry if my dry humor was missed.

When i first got involved with pro bono work i looked at drupal and joomla and decided i preferred to focus on custom solutions because i have a background in that. Obviously thats not always the best solution as its sometimes more trouble then its worth.

Good luck with your sites though. :-).

</comment></comment></comment><comment><USER8> Our NP just got accepted into Give Camp. They're telling us we're going to get a lot of support (if only for a weekend). <http://givecamp.org/>

FYI, ours is Remas: <http://www.sendremas.org/>

We're doing price comparison for sending money overseas. So obvious, but so needed.

</comment><comment><USER9> The sunlight foundation does an amazing job of connecting volunteer engineers with opportunities to help make the US government more transparent and accountable: <http://sunlightlabs.com/>

</comment><comment><USER3> Not sure if it's still as good as it was in the early 2000s, but <http://www.idealist.org> is a wonderful directory of NPO and NGO volunteer opportunities.

</comment><comment><USER10> If you're willing to give a slightly larger commitment, try Code for America: <http://codeforamerica.org>.</comment>


Every Generation Asks - "Where Have All The Ideas Gone?" - <AUTHOR> http://www.infochachkie.com/where-have-all-the-ideas-gone/

<comment><USER2> Apparently David Packard of HP did: "During my sophomore year at Stanford, I remember lamenting that I had been born one hundred years too late, that all the frontiers had been conquered and that my generation would be deprived of the pioneering opportunities offered to our forebears. But in fact, we went on to make breathtaking advances in the twentieth century."

I also read in "A Team of Rivals" that President Lincoln wrote a letter as a young man lamenting the fact that he has 'missed' his opportunity to make a mark on the nation, as the "Founder Fathers had done it all" or some such.

I do think it is a common refrain of the young.

</comment><comment><USER3> Exactly who asks this? Even my non-technical friends seem to be aware that innovations seem to be coming at a faster pace now.

</comment><comment><USER4> The way I look at it is as follows: The set of all ideas that haven't been invented yet is infinite.</comment>


Show HN: Want to learn iOS development? Apply to HackRocket - <AUTHOR> http://www.hackrocket.com/

<comment><USER2> Love the idea - I just applied. Can you please confirm whether this course will be provided online or at a specific location (like DevBootcamp)?

<comment><AUTHOR> The iOS Bootcamp will be all online to ensure that students can join the program from anywhere in the world

</comment></comment><comment><USER3> Sounds great! I signed up for the newsletter - keep me posted!</comment>


To the defense of Apple: Can they respond to the WSJ or not? - <AUTHOR> http://virtualpants.com/post/40605024135/to-the-defense-of-apple

<comment><AUTHOR> Looks like two great bloggers jumped the gun.

</comment><comment><USER2> Finally, someone calling it like it is.</comment>


New Data Engineer, good learning resources? - <AUTHOR> Hello!
I just got a new job as a "platform" engineer, which looks like it's going to be a whole bunch of data engineering (i.e. getting data from point A --> redshift/etc). I come from primarily a webops/devops/sysadmin background, which means I've been feeling a little out of my depth on "what's all this data stuff and how does it fit together?". I'm curious for any good resources you may have.
Thanks! <comment><USER2> That is a hard question to answer, I think you have to start looking at the big component (the data warehouse) and see what fits best for you.

At least what has worked best for me is using BigQuery and building custom tooling around that. Using Airflow, some simple python tools, .json.gz archives, and a mix of streaming data and hourly/daily exports has worked well and not been a huge task to keep operational. Of course, every situation is different; ymmv.

<comment><AUTHOR> Gotcha. Good to know. Thanks!</comment></comment>


He Lisp Machine:  Noble Experiment or Fabulous Failure? - <AUTHOR> http://pt.withy.org/publications/LispM.html <comment><USER2> Both</comment>


Show HN: Readology – Simple, bloat-free blogging platform - <AUTHOR> https://readology.net/ <comment><USER2> Refreshing effort making web simple again.

<comment><AUTHOR> OP here!

Thanks hvaoc, there's a time and a place for stuff and for predominantly text- based content, I like the clean approach.</comment></comment>


Chrysler's Hidden Coffers - <AUTHOR> http://www.forbes.com/2008/12/09/chrysler-cerberus-bailout-oped-cx_dg_1210gerstein.html <comment><USER2> To summarize:

 _Why are they unable tell the obvious difference between General Motors and Chrysler? GM is broke, can't get a loan and is actually facing an emergency. Via Cerberus, on the other hand, Chrysler has access to loads of capital, and the only thing collapsing is its credibility._</comment>


The Next Generation of 3D Printer: RepRapII - <AUTHOR> http://singularityhub.com/2009/11/30/the-next-generation-of-3d-printer-reprapii-video/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+SingularityHub+%28Singularity+Hub%29&utm_content=Google+Reader <comment><USER2> Poor <http://www.desktopfactory.com/> killed by a legion of tinkerers.

See also <http://www.makerbot.com/> if you prefer a more finished product.

I'm going to give RP a go at some point but I suffer from project overload right now.

</comment><comment><USER3> Does this one have multiple heads at once so you can print plastic and metal, etc?

</comment><comment><USER3> Does anyone know if they are going to update the Cupcake CNC with this too?</comment>


PingFS - <AUTHOR> http://www.shysecurity.com/posts/pingfs <comment><USER2> Reminds me of the IPv6 "Type 0" routing header disaster, where you could store data in routing loops.

See, e.g. slide 30 of: [http://www.secdev.org/conf/IPv6_RH_security- csw07.pdf](http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf)

</comment><comment><USER3> So I take it this is the modern-day equivalent of the mercury delay line?

</comment><comment><USER4> This idea has been around for a long time; see e.g. Zalewski's paper from 2003: [http://lcamtuf.coredump.cx/juggling_with_packets.txt](http://lcamtuf.coredump.cx/juggling_with_packets.txt)

Cool to see an implementation though!

</comment><comment><USER5> Heh - the logical abstraction/refactoring of "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it"

</comment><comment><USER6> Would it be considered bad form to attach this application to a RFC 1149 network? It might actually _increase_ the recoverability of the data in question.

</comment><comment><USER7> How much data could you store if you pinged the voyager 2 probe?

<comment><USER8> When Voyager was at Jupiter, communications allowed for a bitrate of roughly 115kbit/s. The distance from Earth to Jupiter is about 5AU. The current distance to Voyager is 100AU, so let's say we still have a bitrate of 1kbit/s. According to WolframAlpha, Voyager 2 is about 50000 light seconds away from us. Now you can do the math.

</comment></comment><comment><USER9> By the way, the linked slideshow is hilarious, never seen it before: [http://www.slideshare.net/tenderlove/worst-ideas- ever](http://www.slideshare.net/tenderlove/worst-ideas-ever)

<comment><USER10> A video of the talk is here: [http://www.confreaks.com/videos/198-rubyconf2009-worst- ideas...](http://www.confreaks.com/videos/198-rubyconf2009-worst-ideas-ever)

</comment></comment><comment><USER11> Link to Google Cache because the server seems to be overloaded:

[http://webcache.googleusercontent.com/search?q=cache:786NsZY...](http://webcache.googleusercontent.com/search?q=cache:786NsZY7idIJ:www.shysecurity.com/posts/pingfs+http://www.shysecurity.com/posts/pingfs&cd=1&hl=en&ct=clnk&lr=lang_nl%7Clang_en)

</comment><comment><USER12> > PingFS is a set of python scripts ... > Each file ... sent over the wire in > an ICMP echo request, and promptly erased from memory.

can you actually reliably erase anything from memory in python?

</comment><comment><USER13> What exactly does this do?

<comment><USER14> seems like it essentially keeps data stored by catching data from ICMP (ping) packets, rewrapping them in another ping packet and shoving them back on the network.

Think of it kind of like network RAM, the data isn't stored anywhere persay and if either host fails to bounce back the payload the data is lost since it wasn't stored on any single machine and only kept alive in limbo.

<comment><USER15> The data _is_ stored somewhere. It's stored in the cache memory of all the routers in between.</comment></comment></comment>


Keyboardio – a keyboard for uncompromising typists - <AUTHOR> http://keyboard.io

<comment><USER2> Combination of wood and plastic is ugly. They should've made wooden keys at least: [http://www.amazon.co.uk/Handmade-Bamboo-Wooden-Wireless- Keyb...](http://www.amazon.co.uk/Handmade-Bamboo-Wooden-Wireless- Keyboard/dp/B00A2V3DAQ)</comment>


Chinese Data Mask Depth of Slowdown, Executives Say - <AUTHOR> http://www.nytimes.com/2012/06/23/business/global/chinese-data-said-to-be-manipulated-understating-its-slowdown.html

<comment><USER2> Typical of Authoritarian regime that is very worried about popular unrest. As Mao has said, "Power flows from the barrel of a gun".</comment>


Facebook Planned to Spy on Android Phone Users, Internal Emails Reveal - <AUTHOR> https://www.computerweekly.com/news/252458208/Facebook-planned-to-spy-on-Android-phone-users-internal-emails-reveal <comment><USER2> Discussion here: [https://news.ycombinator.com/item?id=19232132](https://news.ycombinator.com/item?id=19232132)</comment>


Nicolas Schabanel – Turing complete molecular machines through DNA Folding - <AUTHOR> http://www.irem.univ-paris-diderot.fr/videos/des_molecules_qui_calculent_et_assemblent_des_formes/ <comment><AUTHOR> It's a french talk, no subs provided. The subject is so fascinating that I submit it in case non native french "speakers" may see it.

ps: there's a link to the mp4 on the right ([http://mc.univ-paris- diderot.fr/videos/MEDIA170626101823441/...](http://mc.univ-paris- diderot.fr/videos/MEDIA170626101823441/multimedia/MEDIA170626101823441.mp4))

pps: author's website [https://www.irif.fr/~nschaban/](https://www.irif.fr/~nschaban/)</comment>


Tesla's Lethal Autopilot Crash – A Failing of UI as Much as AI - <AUTHOR> https://www.skynettoday.com/briefs/tesla-crash/ <comment><AUTHOR> Fun fact for the HN crowd - this site is wholly run on GitHub pages, quite fun: [https://github.com/skynettoday/skynet- today](https://github.com/skynettoday/skynet-today)</comment>


Salesforce enables 'modify all' in user profiles - <AUTHOR> https://www.reddit.com/r/salesforce/comments/bpq336/salesforce_enables_modify_all_in_all_user_profiles/ <comment><USER2> Presumably this should cause most companies in the EU to announce, within 72 hours, a data breach, since it allows any salesforce user to gain any permissions and view/leak/copy/steal any data on any customer in the org.

That will be a _lot_ of companies considering pretty much every big company uses salesforce.

<comment><USER3> Does it count as a data breach if unauthorized users were allowed to access data, but they didn't actually? ie. server logs showed that nobody actually read anything they weren't supposed to.

<comment><USER4> EU definition of a personal data breach.

> "'personal data breach' means a breach of security leading to the accidental > or unlawful destruction, loss, alteration, unauthorised disclosure of, or > access to, personal data transmitted, stored or otherwise processed;

Based upon this definition just allowing the access is a breach.

<comment><USER5> Well it seems like a gray area. There's a meaningful difference between "accessing" something and "having access to" something. To me this seems like it would only cover the former.

</comment></comment></comment></comment><comment><USER6> Oopsie. Some poor bastard is having the worst day of their career.

I find it concerning that it was even _possible_ for this to happen, regardless of whether it was intentional.

<comment><USER7> Stuff like this is always possible wherever you have fully centralized architecture. I don't know how many massive cloud failures it will take for IT community at large to realize this.

<comment><USER8> Salesforce launched in 1999 before before cloud was a thing. It's basically just a big Oracle database.

<comment><USER9> That's not very fair to a company that was one of the pioneers of a lot of the things we consider normal on today's software as a service.

Also incorrect, they have great cloud and devops practices. If anything it's likely this bug's impact would be limited due to how decentralised SFDC operates.

Still a massive fuck-up, I'm interested in seeing if they'll release any more detail on why it happened.

<comment><USER10> While a little unfair, and Salesforce is a decent product with nice dev tooling (apart from the weird ancient Java ish custom language), but under the hood, it really is just a Oracle database per org.

<comment><USER11> Weird ancient proprietary language.

Impossible to run locally.

No debuggers.

Virtually impossible to put an entire org in source control.

No package manager.

More undefined behavior than a C compiler.

</comment></comment></comment></comment></comment></comment><comment><USER12> "The Salesforce Technology team is investigating an issue impacting Salesforce customers who use Pardot, or have used Pardot in the past. The deployment of a database script resulted in granting users broader data access than intended. To protect our customers, we have blocked access to all instances that contain impacted customers until we can complete the removal of the inadvertent permissions in the impacted customer orgs. As a result, customers who were not impacted may experience service disruption. In parallel, we are working to restore the original permissions as quickly as possible. Customers should continue to check Trust for updates."

</comment><comment><USER13> Reading between the lines, I think someone forgot a WHERE clause in their UPDATE statement....

<comment><USER14> I mean, you would hope it's not possible for it to be that simple but... you could see it, couldn't you?

<comment><USER15> Considering that just yesterday I had to quickly cancel an operation that had the wrong criteria specified, I can absolutely see it...

<comment><USER16> How about turning autocommit off?

</comment></comment></comment></comment><comment><USER17> Salesforce incident: [https://status.salesforce.com/incidents/3815](https://status.salesforce.com/incidents/3815)

Our product syncs data to Salesforce - we're seeing hit and miss connectivity across our customers' instances. Some API calls are still working, I'm unable to sign in to a developer instance in NA49.

<comment><USER18> it'd be nice if we could get the hn link pointing to that instead, since it's actually got a bit more details than the reddit post and the reddit post doesn't seem to be getting updated, so it's only going to get more "stale"

<comment><USER19> FWIW that link doesn't load for me. I think they're getting hammered.

</comment></comment></comment><comment><USER19> For people not familiar with salesforce, what does this mean?

<comment><USER15> For a time, users on many instances were able to read/modify data that they shouldn't have been. They got full CRUD access to -all data-. This includes some external users of things like Customer and Partner portals (where functionality and data are made available to external users via Salesforce). When they decided to try to mitigate the issue, they locked down all access and took away CRUD permissions from all users/profiles in Salesforce on those affected instances.

We woke up to a bunch of users unable to do their jobs because they suddenly started receiving "NO ACCESS" errors, effectively. We also haven't been able to modify the profiles and fix the access effectively.

<comment><USER20> When I saw this headline, my first reaction was that a salesperson in an org could download all customer contact info and immediately go to a competitor and start poaching customers extremely efficiently. How likely is this scenario? What sorts of recourse, legal or otherwise, would the org have? Non- competes are hard to enforce, and I don't know enough about trade secret laws to have a good opinion on this.

<comment><USER15> > How likely is this scenario?

It's difficult to say. Exporting data in bulk isn't totally straightforward for your average user, and I'm not sure how long total CRUD access was granted. That being said, given that full access was granted, it's not impossible to imagine someone creating a report and doing a dump of customer data.

Though typically that may fall under NDA and not non-compete. NDAs are a little easier to enforce as far as I understand, but I'm not a lawyer.

<comment><USER21> It's sort of like if you walked by a bank and saw a bundle of money unattended in the lobby rather than the vault. Technically maybe you could get outside with the bundle, but keeping out of trouble long enough to enjoy the big screen TV you try to buy? ... Don't bet in it.

<comment><USER22> Nah, it's more akin to an employ coming in one day and seeing that the vault door is just open, and thinking they might poke around a bit / pocket some bundles of cash... Except they usually handle most of those bundles of cash day to day anyway.

</comment></comment></comment></comment></comment></comment><comment><USER23> Does this allow a salesman from company A to access customer info from company B (where A and B are both customers of salesforce) or is it just intra- organization?

Still bad if the latter, but catastrophic if the former

<comment><USER22> Nah, definitely not that. Just ups their permissions to that of a super user / admin in their company.

</comment></comment><comment><USER24> Looks like they shut down a big part of it, our instances are all down.

<comment><USER25> This is the documented solution to any significant security issue. They'd much rather be down than expose any customer data.

</comment></comment><comment><USER26> I get a lot of just loading at:

[https://status.salesforce.com/](https://status.salesforce.com/)

Not really what you want with something like this... but the folks holding the keys to a site like that are often never around / fast enough to make those sites helpful.

</comment><comment><USER27> It didn't affect any of the 3 orgs within our firm. It was limited to firms who've deployed Pardot so a much smaller audience.

Still, epic screw-up.

</comment><comment><USER28> can confirm my org is impacted.

our SF instance is accessible, but no permissions on login.

just got an update from our admin, no eta

</comment><comment><USER29> Why would anybody trust Salesforce after this?

<comment><USER30> Doesn't really matter.

Moving off Salesforce is a many month project for a small company and possibly years for a larger company depending on the add-ons and everything.

Doubt they lose any real customers over this but they're definitely going to be cutting some checks/credits to a ton of people for the next few months but it'll fade.</comment></comment>


Engineer Increased Sales and Happy Customers With Behavioral Psychology - <AUTHOR> http://www.shopify.com/blog/6807774-how-to-engineer-increased-sales-happy-customers-with-behavioral-psychology

<comment><USER2> Um. Did this article just compare having face time with their doctor or case worker to product sales?

Hey, since this isn't obvious, the reason we want more time with our doctor is because our doctor knows more than we do so we don't know what sort of questions to ask, so we hope that the more time we spend there the more likely we'll remember something or he'll ask us a question to discover something. Same with everything else that is NECESSARY and has severe life consequences.

When I walk into a store (or virtual store) I already know what I want because I researched it before I went in. I want only 2 things from the sales staff: Where is the product and where is the end of the line for the cash register.

Granted, some people are ignorant or can't be bothered to research before they go buy something and will need more coddling, so there should also be services available for those people.

The worst thing that could happen is if you take away the option of fast customer service just because you find, on average, the consumer is happier because the service is slower. Make BOTH options available, otherwise people like me will hate shopping there.

<comment><USER3> You obviously didn't read this part:

"While this strategy worked for CDBaby, there are some businesses and situations where the "more time with customers" approach won't work.

Some services rely on solving problems immediately. Ecommerce merchants need to figure out when they can spend time with customers and when to act quick. If a customer is calling with a complaint about service or product, you need to gauge their disposition and act accordingly. But if a potential customer is inquiring about product features, shipping rates, or something of that nature, you have a great chance to give them their answer and also build a positive relationship with that person. Like the case study above proves, service should never be "rushed, ignored, and poorly diagnosed."

</comment></comment><comment><USER3> I think over the next few years, marketing will be a science.

Fields like behaioral psychology (isn't it spelled 'behavioural' ?), behavioural economics, neuroeconomics, etc, will increasingly dictate how businesses market to consumers. FMRI machines cost less and schools / companies can now do their own research on non-medical things.

<comment><USER4> Neuroscience and game theory are buzzwords in economics. Check out this lecture from Professor Ariel Rubinstein who argues that economics is a culture and not a science as espoused by his neuroeconomist colleagues. Link is here.. <http://www2.warwick.ac.uk/knowledge/business/rubenstein/></comment></comment>


Covid-19 Shows Why Now Is the Time to Ban Wildlife Trade - <AUTHOR> https://wildthingsinitiative.com/now-is-the-time-to-ban-wildlife-trade/ <comment><USER2> Why is it being left to some obscure wildlife organization to be raising this issue? Every nation that does trade with China should be insisting that the wet markets cease operation immediately!

But most likely, 3 or 4 years from now, when the next pandemic hits, and another few hundred thousand people have been killed, there will be scattered articles online meekly suggesting: Maybe those wet markets should be shut down...</comment>


Linux 3.5 Kernel Released - <AUTHOR> http://kernelnewbies.org/Linux_3.5

<comment><USER2> It is worth nothing that Android is now closer to the mainline than ever. With this release, the kernel incorporates a functionality called autosleep which is similar to Android's wakelock, which was the main controversy between kernel developers and Google. Android team will now probably be able to switch to the new Linux infrastructure, if they wish so.

<comment><USER3> Here is a nice discussion on LWN about wakelock / autosleep: <http://lwn.net/Articles/479841/>

</comment></comment><comment><USER4> A very nice networking feature has landed in 3.5: CODEL AQM packet scheduler to fight bufferbloat. It is mainly relevant for routers.

<http://queue.acm.org/detail.cfm?id=2209336>

<comment><USER5> Some of the buffer bloat problem is due to SO_SENDBUF being statically set to some value, which also results in hiding the actual bytes-in-flight from the application.

I think it would be much better to allow the auto-detected TCP window to be exposed to the application level as the "send-buf" size (with perhaps some 10% buffer bloat to allow filling in the gaps when the window grows or acks return prematurely).

Also, it would be good for high-bandwidth-high-latency situations, where the default Linux 0.5MB send-buf size is not enough. Allow the send-buf to grow if the TCP window needs to grow beyond 0.5MB.

<comment><USER6> Well exposing it per application kinda defeats a bit of the purpose behind it. The point is that you get rid of the buffer so you get packet loss when the link to the other peer(s) is(are) saturated and allow the TCP congestion algorithms to work properly.

Even in a high latency high bandwidth situation having huge buffers is self- defeating. Anybody that has used Bittorrent and assumed their ISP was doing some sort of throttling were you have weird latency spikes and reduced performance... this is a direct result of buffer bloat in the majority of cases.

Large buffers only help in the case of a single TCP connection using up as much as the bandwidth as possible, which helps network routers and such things look good in benchmarks.

What you are talking about is some sort of Quality of Service type thing. Probably most usefully expressed at the edge of networks for prioritizing traffic and at the ISP level so they can route traffic through different internet links based on requirements.

ISPs have to deal with choosing different links to other networks and what it costs. They can do choose stuff like use main backbones versus secondary links and you get different trade-offs based cost versus latency and things of that nature. So ideally there should be some sort of flag you can set in the TCP packet that would indicate latency importance or some such thing. Or just making internet routing equipment application-protocol-aware.

<comment><USER5> By "expose it to the application", I mean in the flow-control sense. That send() (or select/epoll/etc) will block until there is room in the TCP window, rather than in the pre-determined buffer which will always be too small or too big.

The way it works now, the kernel is basically forcing applications to have buffer-bloat (fill a 0.5MB socket buffer), or auto-detect RTT or manually select a proper buffer size. All are bad options.

Also, in high-latency-high-bandwidth situations, the default 0.5MB buffer will simply fail to make use of the available bandwidth, so increasing the buffer size does not defeat the purpose. Latency spikes are a different situation, there are cases of constant high latency (e.g: inter-continental 1Gbps links).

</comment></comment></comment></comment><comment><USER7> Surely the Linux-kernel must by now be the worlds most advanced and most bloated kernel? Then again, the kernel is not the thousands of high quality modules (which I guess could be called drivers) which allow you access to the hardware.

Anybody know how the central kernel (the parts that are on all hardware) has evolved speed/size-wise?

Also, is the drivers in linux of higher quality than the ones for example windows? I have gotten the impression that it is so.

<comment><USER8> As far as quality goes, it varies largely depending on the hardware. Some stuff is easy to figure out (or has specs published) and results in good quality stuff being available. Other things don't tend to fair so well, like the graphics drivers, and I believe many broadcom wifi adapters. However if you have something headless with a wired network you're generally not going to be able to ever be unhappy.

<comment><USER6> You get best bang for your buck by purchasing hardware that is made by companies that support Linux with open source drivers.

Example:

Purchasing random laptop off the internet that runs other OS because it is cool and then trying to install Linux on it is not going yield good results unless you are willing to spend a lot of time researching and making sure you bought something that will work well, as well as spend some time fiddling around with drivers a bit and filing a couple bug reports. This would be because your using hardware that no Linux developer has direct access too. Essentially you are the primary means of support for that particular OS/Hardware combination.

Or you can purchase laptop from a company that provides support for your particular Linux/hardware configuration (ie: they sell Linux pre-installed) and then you will likely get close to a 'Apple-like' experience with it 'just working' out of the box.

<comment><USER9> Yes. Especially ThinkPads seem to be very well supported (typing this on a X220), with everything working out of the box, amazing battery life (up to 12 hours on mine) and a very stable system in general.

<comment><USER10> I'm using the X220 as well and love it. There are minor quirks on Ubuntu 12.04; are you on 12.10?

Also, did you buy direct or get from a company that does the Linux install? I did the latter and was very disappointed with Emperor Linux; I've gotten basically zero support.

<comment><USER11> If you are a power linux user why pay for someone to install linux? What is emperor linux?

<comment><USER10> At the time I needed a new laptop, but didn't want to spend the many hours previously necessary to get all the devices working properly, and I didn't want to take the risk of device incompatibility. So my theory was that I was paying them to do all the fucking around. Or, alternately, to have the same sort of out-of-the-box experience I would with, say, a Mac or the same laptop running Windows. Except with my OS of choice.

Emperor Linux is one of the companies that offers pre-installed Linux laptops and guarantees compatibility and offers support. The box was indeed compatible (even the touch-screen), but their support was poor.</comment></comment></comment></comment></comment></comment></comment>


Bash patch incomplete, function parsing is still brittle - <AUTHOR> https://twitter.com/taviso/status/514887394294652929

<comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=8365158](https://news.ycombinator.com/item?id=8365158).</comment>


Show HN: Compress videos by up to 60% - <AUTHOR> https://compressify.herokuapp.com/ <comment><USER2> On both Firefox and Chrome, when I hover over either of the videos, the thin dividing line disappears, and it's not clear which video I'm looking at. Albeit they are "supposed to" look very similar, I still don't know whether I'm watching the original or the compressed one.

Typically in similar sites, I've seen a draggable divider that lets the user specify how to horizontally divide the frame between the two comparable videos.

Do you process an included audio track as well?

<comment><AUTHOR> Audio is included. The line disappears because they are actually two videos, and I was showing how flawlessly they blend. Each half is either compressed or the original.

</comment></comment><comment><AUTHOR> Compressify's developer here. Would love any feedback on the site and video results. Sorry if the server is slow, it's getting the product hunt hug of death.

<comment><USER3> Awesome product! Any plans to open it up to larger sized video files? (I'd pay for that!)

<comment><AUTHOR> Yep! Email me at compressifyapi @ gmail.com with details about your target videos.</comment></comment></comment>


Ask HN: Are Riot (League of Legends) and ISPs Violating Net Neutrality? - <AUTHOR>

See here: http://boards.na.leagueoflegends.com/en/c/help-support/0hVNFnPH-na-server-roadmap-update-pops-peering-and-the-north-bridge<p>Some people are saying they aren't, and maybe I don't know enough about the subject, but it seems like it to me. <comment><USER2> From what I understand, they don't have ISPs treat their traffic any differently inside their networks. They just take that traffic off the ISP networks early onto their own. If that is correct and they don't do anything to hinder others from doing the same, then no, they don't violate Net Neutrality.

Its the same thing every CDN or large site does, moving their own presence closer to the customers. Google isn't violating net neutrality by having servers in the US AND Europe.

</comment><comment><AUTHOR> Clicky: [http://boards.na.leagueoflegends.com/en/c/help- support/0hVNF...](http://boards.na.leagueoflegends.com/en/c/help- support/0hVNFnPH-na-server-roadmap-update-pops-peering-and-the-north-bridge)</comment>


Java Clojure Interop: Integrating Clojure into Your Java Project - <AUTHOR> http://java.dzone.com/articles/java-clojure-interop

<comment><USER2> The article doesn't even cover gen-class?

You can use Clojure to create a Java library. Then the Java (or Scala or JRuby or Jython) code that calls it doesn't even need to know it is calling Clojure rather than an ordinary Java class.

The only problem I have with this so far is that it doesn't seem to support generics, so I end up creating the kind of APIs that you would expect from Java 4. Would LOVE for someone to show me I'm wrong about that.

[http://richhickey.github.com/clojure/clojure.core- api.html#c...](http://richhickey.github.com/clojure/clojure.core- api.html#clojure.core/gen-class)

Anyway, the article looks like the kind of stuff that was being written over a year ago, before gen-class existed, but with considerably less depth.

<comment><USER3> I agree Eric. Not covering gen-class? That is the way to go if you want to package up a library written in Clojure.</comment></comment>


Getting started with IRC (Yes, in 2016) - <AUTHOR> https://opensource.com/life/16/6/irc <comment><USER2> I see systems come and go, but IRC is still there, fast and light on large scale.

Colorful alternatives works too but at a very high price: You need heavy, often proprietary software and do not handle large group communication so well.</comment>