Hacker Newsnew | past | comments | ask | show | jobs | submit | gngeal's commentslogin

Many, many people in jail were severely mentally ill. There was no support for them.

So UK is getting as bad as the US? Or has it never been good over there? Given how mental health conditions and incarcerations (for whatever reason) go hand in hand, I'd expect any sane society to tackle the former even more ferociously than the latter.


Ever since the mental health institutions were mostly shut down in the 1970s and 80s, and the focus for treatment of criminals with mental health problems became "care in the community", the UK prison system has become a dumping ground for mentally unwell people. See http://www.sciencemuseum.org.uk/broughttolife/themes/menalhe....


Plus the Probation Service's mandate to be a rehabilitation system has been almost entirely dismantled; compartmentalisation of tasks meant that offenders don't have the same level of single point of contact as they used to and a lot of the older (largely male in that generation) probation officers took early retirement, to be replaced by young women who've been taught that the job is paperwork-with-a-bit-of-face-time. The final death knell of the old school was the merging of the Probation and Prison services into a Prison Service run organisation called the National Offender Management Service, which I suspect has made the changes irreversable (even if they weren't at all).

Note that my father was among the people who took early retirement in disgust at the way things are going, so my views are almost certainly coloured by that.


A reasonable summary of what they're trying to build here is "HyperCard for the internet", which is actually a pretty cool idea.

That sounds very much like what the VPRI people have been doing all along.


Your data is still digital at least. What about the E. coli evolution experiment (http://en.wikipedia.org/wiki/Escherichia_coli_long-term_evol...) that has to store its data in analog form in a freezer? You can't send that to other people with interest in the results by e-mail or FTP.


an EE can't simply change the brightness of the sun to meet a requirement. We can.

Wow, you can change the brightness of the sun to meet a requirement?

BTW, there are quite a few limitations placed on you by nature: uncomputable numbers, NP-completness, ...


> BTW, there are quite a few limitations placed on you by nature: uncomputable numbers, NP-completness, ...

Not really, NP-completness is only important if you want perfect solutions, which aren't necessary. Uncomputable numbers have no usage in real world scenarios.

Finally it is important to note that while a physical turing machine cannot exist due to lack of infinite tape, real machines are also more powerful than turing machines, for instance by having a real time clock and communication abilities.

For these reasons saying what we can and cannot do is quite complicated. For almost every situation possible, the only answer that is negative about capabilities is "it will take a while".


> Wow, you can change the brightness of the sun to meet a requirement?

Sure, why not? sun.brightness = sun.brightness * 2.0f;

In fact, a lot of games play with physics to get cool behavior. I can adjust the "constant" G in my game to be something other than 9.8 m/s to make it interesting.

One moment the G vector may be down and then suddenly it flips up. Why not?



That's ridiculous. It's not even funny.

It's also null and void in my country (.cz), and probably in many other European countries.


I highly doubt it, the Czech Republic signed the Berne Convention along with the rest of Europe.


What has the Berne Convention have to do with it? I've compared the Elsevier contract draft with my local legislation, and the wording of the contract is simply unenforceable.


Treaties have the force of law, which is why they're such important documents. Your local law does not apply to materials originating outside of that jurisdiction.


You seem very knowledgeable, so let me only add what I know to be true: this is location and context dependent.

For example: If I make a contract with another Australian (company, individual, whatever), no treaty has an effect on that contract unless legislation has been passed to enact that treaty. A judge may refer to the treaty if there is some ambiguity that requires his/her discretion, but the treaty itself is not legally binding.


Quite. But if you make a contract with me (in the US) you wouldn't be able to blow it off under cover of Australian law, is what I mean. So if Elsevier's contract terms are legal in their (Elsevier's) domicile, people who enter into contracts with them need to keep that in mind - which is why most contracts have a 'choice of law' provision saying which laws will govern the enforcability of the contract in the event of a subsequent dispute.


The flag is bleached and the other things are dusty, courtesy of your friendly neighborhood solar radiation.


Java has always been a good language if you ignored the ecosystem.

You mean "no unsigned types (even though the language is essentially machine-level when it comes to integers), no compact memory layouts for aggregate data, no useful function values without jumping through hoops etc." is an approach that leads to good languages?


I think he's alluding to the stuff that comes after the language is released, not the language design/architecture itself. Node is not a language, so his comment probably implies that he's referring to the design choices of build system, development cycle (of tools, libraries and frameworks), and things like dependency management.

That's not my opinion, but just what I understood his comment to be about (personally I prefer the npm approach any day over Maven).


You can't put me in an uncomfortable situation. Reading these things only confirms to me that I will never be able to understand all the other people.


You already understand there are different kinds. Some people shut down under fairly minimal pressure/stress, especially if their lives are already busy. I'm with you, but I've come to realize the importance of following such rules in order to keep things smooth ultimately for myself.


I have a paper from my shrink that says that essentially, I have had a blind spot for these things since my childhood. Only in recent years have I started to understand what it means. My "if you have something to tell me, why do you dance around it?" brain simply does not compute these things.


It's like meeting someone at the bar. A lot of people wouldn't ask them back to their place right away. But that doesn't necessarily mean being upfront and to the point wouldn't work, it certainly does, all the time. Someone like yourself considers it a positive trait, as do I.

It all comes down to chemistry and expectations. Engineering types generally appreciate candor, a somewhat unique trait, but it's definitely gaining some traction with other groups. I don't think many investors appreciate it, but that doesn't mean a cold email won't work -- but it better be extraordinary.


A lot of people wouldn't ask them back to their place right away. But that doesn't necessarily mean being upfront and to the point wouldn't work, it certainly does, all the time. Someone like yourself considers it a positive trait, as do I.

Actually, I don't consider "asking someone back to their place right away" as either positive or negative thing because I don't understand the motives. Sorry, this kind of interpersonal stuff simply goes beyond me. ;/ But I assume that if that is important to someone, I don't see a reason for that person not to be candid about it.

I don't think many investors appreciate it, but that doesn't mean a cold email won't work -- but it better be extraordinary.

It's more that I see no reason for why this should matter when many business people don't even consider the effects that their actions or decisions have on human communities, changing the lives of countless other people. So many of them don't give a shit about what difference it makes when they decide to do something, but when someone else deals with them, many of them dwell on superficial veneer rather than on substantial matters proposed? Sounds very much like hypocrisy to me.


> But I assume that if that is important to someone, I don't see a reason for that person not to be candid about it.

Being candid about something usually isn't the best way to accomplish your goal. If your goal is to make a sale, and you communicate with them in a way that is too different than what they're used to, you simply won't hear back. Forget ever getting a sale if they won't even talk to you. Understanding how people perceive your communications, and using that to your advantage is an important life skill.


I semi-understand that (intellectually), I just don't have the brain circuits for internalizing any of that. This is illogical and I simply have problems with illogical things. (That is probably probably why the medical committee deemed it a severe disability in my case.)


Except that of all the things you've named, dynamically typed languages are hardly "a fad". It's surprising (?), though, that the lousy ones are the most popular ones.


I take a very cynical view of these things, and from that perspective it doesn't surprise me at all, really. My cynical view is that the "lousy" ones are popular because they are easy even for non-technical people to learn well enough to be useful in the majority of business settings.

This sets up a kind of feedback loop: there is an abundant supply of "cheap" labor who can use these languages, which companies love, and so they create more jobs for this labor market to fill, which means more people want to fill it (since there are jobs there).

Edit: 1) I would disagree that python is a "lousy" language; 2) To give some perspective regarding where I come from, the vast majority of my experience is with statically typed languages like C, C++ and Java; I prefer them and in my experience they are at least as easy to develop with as any of the dynamic languages that are popular.


The commoditization of web devs will occur, it's just a matter of when. Consider it the collateral damage from ever-more-powerful frameworks, a de-emphasis on SOLID-type software architecture, and businesses wanting to pay less for developers.


Couldn't agree more. I'd argue it's already well on its way. It seems there has been a resurgence in companies trying to shoehorn every application into a specific development pipeline within the last several years (specifically, the HTML5/JavaScript in-the-browser solution, rather than a more appropriate native solution). It happens every so often in this industry, but lately it seems to have accelerated.


I think its more of the realization that types are actually freaking useful for determining "provability" of a system. C++ perhaps takes it too far with Const, but it allows the compiler to prove that certain functions will not attempt to modify certain variables.

Compared to Python or Ruby, you're pretty much relying entirely on culture and good habits to ensure the proper rules of encapsulation. Any code may modify the private members of your objects. (Granted, C++ has "mutable", Java has the whole "Reflection" loophole as well. But you can search for those edge cases rather easily).


I think its more of the realization that types are actually freaking useful for determining "provability" of a system. C++ perhaps takes it too far with Const, but it allows the compiler to prove that certain functions will not attempt to modify certain variables.

There is very little in terms of "provability" that either C++ or its types give you. Proving anything really interesting (for example, the absence of race conditions in concurrent code) still seems like pretty much an arduous process in languages not explicitly designed for such things.

Compared to Python or Ruby, you're pretty much relying entirely on culture and good habits to ensure the proper rules of encapsulation. Any code may modify the private members of your objects. (Granted, C++ has "mutable", Java has the whole "Reflection" loophole as well. But you can search for those edge cases rather easily).

That didn't seem very comprehensible to me, but if you're claiming that in Ruby, you can modify member variables of someone's objects, well, you can't, unless you use reflection as well (not only that, but the access to member variables is object-based, rather than class-based, so you can't access the member variables of an object from any other object, even if they are of the same class, unlike in C++ - so much for the "objects communicate by passing messages" in C++!). More to the point, in C++, you can always cast a pointer into something that makes the raw data accessible. There's enough stuff in C++ for you to blow your whole leg off instead of just shooting yourself into the foot.


Take for example, proper use of a unique_ptr<lock_guard<std::mutex> > in C++. You can pass around the unique_ptr, and guarantee that you are in "unique ownership" of a particular lock at compile-time.

In C++, you may not be able to prove "the lack of race conditions", but you can prove things like "I'm the only one who is holding onto this mutex right now" thanks to stuff like unique_ptr... which tracks that stuff. These primitive proofs are performed at compiletime, and have little-to-no effect on runtime as well.

Stronger languages with stronger type-systems (ie: Haskell) can prove / disprove which code has side-effects... because you've explicitly passed the Monad around. (Note: Code without side-effects is guaranteed to not have race conditions).

So yes, there are important things you can prove using the type-system. More importantly, it is the compiler's job to automatically conduct these proofs every compile cycle.


In Ruby, you can break into any other object with a judicious combination of send() and instance_variable_{set,get}()


Alternate theory: "lousy" is a subjective measure, and those languages are popular because in many other peoples' subjective reality, they are not lousy. Just a theory though, by all means, keep thinking that languages are objectively ranked identically to your subjective ranking and anybody using ones at the bottom are just dumb dumbs who are incapable of using the ones at the top.


I didn't rank any languages. I made an observation that it is easier for non-technical people to pick up dynamically typed languages and be productive enough for use in many business cases than to pick up statically typed ones. That doesn't mean the dynamically typed ones are "easier" or "worse" than statically typed ones. It doesn't mean people who prefer them or learn programming with them are "dumb dumbs," either. There's a reason I put "lousy" in quotes and didn't flat out agree that they were, in fact, "lousy".

Seems to me that's a chip on your shoulder; not mine.


Hmmm, I re-read your comment and its parent a couple times, and maybe I didn't give proper credence to your sarcasm quotes. I do think that your comment strongly implies agreement with the non-sarcasm-quote-using parent comment, but hey, maybe that's really just my reading of it. Your edit also confusingly says that you don't think the "lousy" languages are really any easier than the static languages you prefer, despite your second paragraph seeming to say the opposite. So maybe I'll just bow out of trying to interpret what you think :)

I'll freely admit that it peeves me to no end when people make value judgments based on what programming languages people do and don't like and use, on both sides of the static/dynamic divide, so maybe I do have that chip on my shoulder.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: