HN user

vsingh

345 karma

Toronto-based hacker. Currently interested in Lisp, Erlang, and Ruby.

Posts5
Comments42
View on HN

No, I do not believe in a strict order imposed by the hierarchy. My view, which I've come to through studying both Maslow's Hierarchy and Dabrowski's Theory of Positive Disintegration, is that you're able to operate at the highest level you've so far achieved during your lifetime, even if one of the lower levels is missing. For example, one who had all five levels fulfilled during childhood will be capable of self-actualization in later life even during periods of physical or fiscal insecurity.

The "Chinese mother" approach to raising children is based around motivations at the second-highest level of Maslow's hierarchy:

http://en.wikipedia.org/wiki/File:Maslow%27s_Hierarchy_of_Ne...

While this aggressive approach to parenting can be made to sound right on a certain dispassionate level, to some people it just feels intensely wrong in a way that's hard to explain. Why is that?

What happens is that children raised to heavily optimize "Esteem" have a hard time switching gears into "Self-actualization". It's no surprise that the "Chinese mother" disallows her child from starring in the school play. That would be a means of self-expression; it would throw a monkey wrench in the whole works.

I've found many times in life that in order to self-actualize further, I've had to give up things that others praised. I think that in quitting Google and joining a startup (despite her parents' likely disapproval), the author has taken a big step towards self-actualization.

[dead] 16 years ago

>Some sort of ethnic autonomy that says Indian rule of India is better regardless of the lot of the common man?

I'm surprised you find this hard to understand. People throughout history have fought and died for self-rule.

Hell, anyone who's been a kid knows how much it sucks to be told what to do, especially when the person doing the telling thinks it's "what's best for you".

Ah, that makes things clearer - thanks.

> What I'd like to know is how you can guarantee that all garbage is eventually collected in a system like this.

Me too. If you can't guarantee that, it seems that when you unmap a page of virtual memory, you'd have to make sure never to use that page again. You'd also have to keep around your table of "mappings from old pointers to new pointers" forever, just in case you encounter a lingering bad pointer and need to correct it.

Could anyone explain the "self-healing" algorithm in simplistic terms?

From what I gathered, when they compact a page of memory, moving all the objects within it to different locations, they will set a marker on all pointers to be "unset". Then, while program execution is still going on, the GC thread will be busily going through the pointers and correcting them to their new locations as necessary, then setting the marker flag. If, during this period, the executing code tries to use an unmarked pointer, a "read barrier" is hit in the VM, and the GC code corrects that pointer ("self-heals"), sets the marker, then allows execution to continue.

Do I have this right? What about the initial unsetting of all these markers? It would seem to require going through all pointers before you want to compact a page, and I would suspect they're being more clever than that.

That's really neat. Bravo!

I've hit a roadblock in my attempt to install the proper Clojure SLIME environment in Emacs. I've got clojure-mode, SLIME, swank-clojure, and leiningen installed, and I get as far as the slime-repl showing up properly, but my Clojure forms seemingly get ignored by the swank-clojure process. It's frustrating. From my readings of various Google Groups, people often seem to have trouble getting this whole machinery up and running. While the developers have done their best to set up ways to install the whole shebang automatically, that tends to make it more difficult for those of us who like to download systems piece by piece and put it together ourselves.

For that reason, a new way to interact with Clojure excites me. However, I may not take the leap of installing this project immediately. The main thing I like about the SLIME environment is that you get the full power of your text editor even in the REPL, which is invaluable for playing around with complex forms. With this system, it seems that you can either evaluate expressions in Textmate (which is not a REPL and forces you to context-switch to another window) or connect to cake in a terminal (which doesn't give you the flexibility of a text editor).

Perhaps a special Textmate buffer that automatically pastes the output of the eval'd form after the cursor would give me what I want. I will clone the project repo and start looking into what I can do. Thanks for the work you've done.

"Today, he was deep in his own personal maelstrom of defensiveness and hostility. His head was frequently down; in fact his whole posture betrayed his unhappiness. He frequently hid his hands behind his back — a classic defensive posture — when he wasn't clasping them in front of his stomach (another defensive posture)."

It was a defensive press conference, by nature. It's not like he's announcing a new product or something. Do you expect, or even want Steve to summon fake enthusiasm on command?

Say what you want about the "reality distortion field", but Steve is a profoundly honest guy, in the sense that he won't convey any impression other than that which he really feels. I bet he couldn't give a Stevenote about a toaster no matter how hard he tried.

Is Arc a success on the same scale as Viaweb or Y Combinator?

In the academic sense ("was it a design that influenced others?") I think the answer is yes. pg's essays about Arc and the language itself got a lot of people thinking about how to improve Lisp. Rich Hickey, creator of Clojure, was influenced to some extent by Arc.

In the practical sense ("is the community active and thriving?") I think the answer is no, so far. #arc on freenode is dead quiet and nearly empty, and there are only 20 new posts on arclanguage.org in the last 40 days. There's nothing wrong with that. It's just not "on fire", that's all. Not yet, anyway.

But it's only fair to give it time. pg said:

"Number one, expect change. Arc is still fluid and future releases are guaranteed to break all your code. It was mainly to aid the evolution of the language that we even released it."

So it's not surprising that an active, thriving community of library creators hasn't sprung up yet.

"If we believe something about the world, we are more likely to passively accept as truth any information that confirms our beliefs, and actively dismiss information that doesn’t."

This is important. Darwin, on his journeys, was very strict on himself about noting down any information that seemed to contradict his theories, because he knew that the natural tendency of the brain is to turn a blind eye to any such inconvenient facts.

I'm trying to understand the lesson behind this result.

I don't think it's the obvious, well-understood fact that biological systems have massive, redundant parallelism, whereas our software systems do not.

I believe it in fact says something very specific and fairly non-intuitive: that biological systems have many slightly different copies of key routines, whereas our software systems as they are designed today do not.

"That’s why E. coli cannot afford generic components and has preserved an organization with highly specialized modules, said Gerstein, adding that over billions of years of evolution, such an organization has proven robust, protecting the organism from random damaging mutations."

For example, imagine instead of having one 'sort' function, you had different sort functions dispersed throughout every area of your code that performs sorting, and each one was very slightly optimized (through design or some unspecified evolutionary process) for the particular characteristics of the data being sorted at that program location.

Thus, 'sort' is no longer a single point of failure. If one of your sort routines has an exploitable buffer overflow, then it's probably the only one that does, which limits the potential damage to the system as a whole -- especially if you've designed your entire system this way.

Could it be better in some cases to copy and slightly modify a software component, than to simply reuse it?

>The whole system is built so that everything mostly works, most of the time, usually recovers, and it doesn't matter much whether this cell dies or that mitochondria malfunctions.

What makes you think we can't design reliable software systems that way? In fact, I think it has already proven to be a remarkably good idea: http://erlang.org/

Here's another way to look at it: not only do they get their employees to spend 20% of their time working on their own cool stuff for Google, they have ex-employees spending 100% of their time working on their own cool stuff for Google. :)

I like studying all sorts of different things, even if it's not deemed the best route to success these days. I don't usually do what I'm supposed to do, anyway.

An engine that scans forum posts for factors like "emoticon content", builds a network of who replies to whom, and uses that information to establish a hierarchy of social status among the participants.

Starting Forth 18 years ago

I've been toying with Factor for about a week. It's been an enjoyable experience, as both the language itself and the included development environment are extremely well designed.

Having never played with Forth-like languages before, I'm finding writing even the simplest algorithms strains my mind -- in a good way, though. It's mind expanding in the same way Lisp was the first time.

I doubt that Factor is the next big thing, but I think that for smart people it's one of the most fascinating things around right now. Zed Shaw, for example, is a big fan:

http://blog.cusec.net/2009/01/16/zed-shaw-on-factor/

I realized that Google didn't really get design when they added dropdown menus to Google Docs. Even Microsoft has moved past that. One of the things that impresses me about 280 Slides is the amount of functionality they've been able to pack in without resorting to a menubar.

I think you're committing a sort of broken-window fallacy. You're seeing what is there, and thinking it's alright. I'm seeing what's not there, and thinking it could be so much better.

It's actually surprising how terrible the front page articles are on a weekend. Among the trash today are this tired rehash of useless proverbs, a PDF presentation of UNIX commands, and a pop psychology article from the LA Times.

I thought the idea was that anything that would have seemed appropriate on the old Reddit would be appropriate here. By that measure I think this article passes.

I wonder if this forum is misnamed. Maybe it should be called "Maker News". Stuff that makers are interested in.