skysight-inc/HackerNews huggingface dataset:
It's obvious, to me at least, that hygienic macros are generally preferable to unhygienic ones. It's also clear to me that macros are an atypical way of thinking about programming. And yet I have a hard time seeing what advantage they yield over code that employs dynamic typing and proper composition of functions.

I have seen lots of examples of macros used to do things like square numbers. These are just minimal demonstrations of the technique, so you expect the code to be longer and make less sense. But the same thing appears to happen when the problem is more involved. The code makes less sense, and it's longer than the code I would write for a more traditional solution.

I know little about Lisp, but I wonder if Lisp programmers aren't conflating the advantages of macros with the advantages you get simply by building up functions in an intelligent way. Macros are neat, granted, but I've yet to see an instance where they actually increase productivity.

If this hypothesis is wrong, I would love to have someone point out why. I have been wary about approaching Lisp precisely because the preoccupation with macros seemed to me to be unjustified (and thus symptomatic of a culture more preoccupied with doing things the computationally interesting way rather than the more powerful way, e.g., using recursion when a for-loop would be shorter and faster).
Keep your head up! Learn, make mistakes, and get up! Best wishes to your future ventures!
I'll check him out :-)
Lcd wall brackets
Specialist UK supplier of lcd wall brackets, Plasma Wall Mounts, and LCD Stands,tv mounts,tv trolley. Order from our secure website today!
The three deadly sins of GPS
This guy for some reason hates our current model of computing. He thinks that it can never be effectively parrallelized because our traditional languages dont do it very well. Now functional programming languages like Haskell start showing tremendous promise for parrallel programming so he attacks them for proving him wrong. And he really hates turing machines.
VCs probably still think the venture capital market is biased in their favour when at least in software that has changed.
Wow, I thought he was just some obnoxious prick, but he's actually an extremely intelligent guy.

He gets American business.
Flickr founder's bizarre resignation letter to Yahoo
Making strided arrays as fast as native arrays
Yeah I still didn't get the connection to startups/web/hacker news/etc. Is he on TV in the US?
Craigslist should go into micropayments. Requiring a micropayment of a few cents for posting an ad could completely shut down spammers.
Well, the short answer is that composing functions allows you to build algebraic abstractions but not syntactic abstractions.

I would never use squaring things as an example of macros: as you properly point out, this does not illustrate anything that cannot be done at least as easily with functions.

The examples I would trot out are things like let, which adds block scoping to languages that don't have it built in, or things like cond/case/switch. If you have a languge that doesn't have a case-like statement, you can use a macro to make one.

Your current language probably has these things built in, but such macors at least demonstrate a kind of abstraction that cannot be done with functions.

For example, you could build a function that looks like a case statement, but because most languages these days employ eager evaluation, your case function would evaluate all of its outcomes rather than only evaluating the one you want.

To make it work as a pure function, you would have to roll your own thunks by passing anonymous functions in for each case to be evaluated and each outcome. That works, but all that boilerplate becomes tedious.

The macro merely automates that kind of boilerplate for you in places where eager evaluation is harmful.

Time for me to stop, but I'll leave with a suggestion: syntactic abstraction is most useful when there's something unusual about the way you want to evaluate things.
I have a Logitech VX Revolution, and I just love it. The free-spinning scroll wheel is very smooth and natural to use, and it's as fast or slow as you want.
Three More Managers Leaving Yahoo
"No, I am not taking Apple to task for anything"

I just want to share with you that when I read the title, I thought you meant something like "The false expectations Apple is setting with Snow Leopard."

After I read the article, I came away with the thought that what you were saying is "The false hopes people are clinging to when they read about Snow Leopard."
For Olympics, Lenovo to Downplay Its Heritage
A rough equation: Macro = Language level customization (for example, you want to mix two different languages, like HTML + Java or Java + SQL etc and still make the resulting code very readable vs using quoted strings all over the place)

Think of frameworks or code generators. (Assuming familiarity with Java) Consider a JSP page, and contrast it to the Java servlet that a JSP page generates.

JSP allows you to embed Java fragments in a HTML file. A Java compiler cannot by itself read it, so a JSP pre-compiler takes it, generates Java servlet code out of it. That servlet code has HTML strings embedded in it all over the place, so is hard to read, hard to maintain, and hard to write in the first place.

The JSP solution allows you to separate the visual design part (HTML/CSS) from the Java part.The pre-compiler generates normal Java code from this Java-embedded-HTML.

This is a classic macro solution. In Lisp, unlike Java, the macro code generation facility is built-in. This is both a plus and a minus. You don't do Lisp-embedded-in-HTML, but you would do Lisp-made-to-look-sort-of-like-HTML. A well-designed macro like that would make code easier to understand than traditional non-macro code which will have HTML fragments embedded as strings all over the place.

I personally prefer code generators to macros, because when you want that linguistic convenience, you really want it (I want full HTML/CSS, not someone's bastardized macro that kind of looks like HTML).

Thinking in terms of code generators also keeps macro-abuse minimal, simply because you have to work a bit harder to do code generation. A lot of Lisp macros are really mental masturbation by show-off artists.
Building a successful community
What's new here:
http://docs.python.org/dev/3.0/whatsnew/3.0.html
Perhaps a more accurate assertion would be this: companies like Intel and AMD have a lot more smart people working on this problem, and can actually tweak the hardware to assist in their search for a solution and yet they still have not managed to crack this nut -- anyone who believes that an OS vendor will be offering more than a simplistic solution to this problem is quite delusional.
Lights, Camera, Inaction
The making of: https://bugzilla.mozilla.org/show_bug.cgi?id=417302

edit: This got downmodded? Really? I thought it was at least of marginal interest.
The author fails to understand two critical factors:

1. Compilers have been applying the sort of "strength reduction" optimization he talks about automatically for about 20 years.

2. The performance penalty of strided memory access is due to cache issues, not due to address computation.
Business plan competitions: What's the value, to participants and judges?
U.S. Will Lag in Tech Growth, Study Says
http://blogs.reuters.com/reuters-dealzone/2008/03/06/icahn-l...

"So far, however, readers wanting a fix of the latest Icahn blast on The Icahn Report, have been disappointed, with the site simply sporting a dour picture of Icahn with the notation, "blog coming soon."

At a meeting last night, Icahn explained that he’s not suffering from writers’ block, but said his lawyers are stopping him. "Every night, I write for an hour and they tear it up," said Icahn with a sardonic laugh. "
Preach it Carl!

"They reward the CEO with pay packages and bonuses when the stock is floundering or the CEO is leaving the company. Corporate performance and the shareholders welfare seldom enter the picture. What kind of democracy is this? There is no accountability."

I don't mind CEOs who make a lot of money for shareholders also making a lot of money for themselves. But CEOs doing a bad job and still making extravagant sums because of quid pro quo relationships among the executive class is nothing short of fraud.
might want to read the code before saying its "good" pylons code.
I've heard the last bit about the boats too. There is a theory that the common folk never really thought that the earth was flat, but a round earth jived with other theories at various times in history (turtles all the way down!) causing the literate few to reject what simple observation makes clear.
Also, jwz's resignation from Netscape letter: http://www.jwz.org/gruntle/nomo.html
It goes by keystrokes? APL would win!

http://en.wikipedia.org/wiki/APL_(programming_language)
APL would win, hands down, especially if you allowed specialized APL machines with all of the symbols available from the keyboard.

APL was the original language for entire systems implemented in two lines of code that you had no hope of understanding after you wrote it.
For the sake of debate, I'll challenge this. As long as money is made by spamming the site, even a micropayment wouldn't completely eradicate spam. Profits from spamming would decrease and spam would probably drop, but only until the expected value of each post equals the micropayment price.

Micropayments could even increase spam. People might feel entitled to take more liberties with their posts if they are paying for them.
I'm confused. Who thought the promise of Snow Leopard was that it was going to solve concurrent programming? You'd think if it was that big a deal, they'd have named it Liger.

Apple has done a release like Snow Leopard already: 10.1. This is supposed to be the release that fixes all the broken stuff and optimizes the platform for X86 and (more importantly) the X86 chipset and peripherals on Macs. 10.1 worked beautifully.

If this writer had "false hopes" about Snow Leopard, he acquired them from somewhere other than Apple.
An Obvious Business Model for Twitter
Obviously a lot of these posts are the result of recent Yahoo fights - especially the poison pill one.

I have some sympathy for what he suggests (company board members should always fear for their lives... errr... jobs) but it is necessary to have _some_ stability.

Short term thinking already drives a lot of US companies, making radical strategic action hard. Speeding up the process to remove boards to a single EGM (as he suggests) could cripple the ability to do any kind of long term planning.
That's probably best to get into after I'm not a Yahoo employee anymore, should I decide to get into it at all of course... :-)
Two family members lost their minds slowly, until they became walking ghosts, nothing left but meat. I've been horrified. They were heavily doped with drugs even though they were well over 80 years old. 70 strikes me as an arbitrary boundary after which I'd rather die if I am to, than torture my family and my society around me with my presence.

In a less interventional medicine system, my elder relatives would have been diagnosed "old age" instead of some obscure illness and left to themselves to die earlier (oh horrors!), sparing everyone and themselves from the tragedy of the mind dying and the body not dying.
300 words That Make CIA, FBI, and NSA Look at Your Site
http://news.google.com/news?q=yahoo%20icahn
One interesting thing about those three companies (if I'm not totally on crack) is that Yahoo and eBay have made a whole ton of really high profile purchases, to the point where it almost seems like flailing. Amazon's always seemed a whole lot more deliberate about that stuff, and generally ended up buying small, complimentary companies.

None of this "Skype is cool! we might be able to do something with it!"
That doesn't concern me much. If one were to decide to join Y! to help it take a new course there will be open positions. Hiring freeze is likely about "old" Yahoo, not the "new" one.
It'll be interesting to see what kinds of comments he allows.
I wonder if "about:robots" is involved.
Would you work with micromanaging boss, no salary, and all your work thrown away?
1. Ask family and friends if they're willing to invest in your idea and look for an angel investor. How? Network like crazy!!

5. A good book to check out is Art of the Start by Guy Kawasaki.
It's a red queen world. So most likely we would.
I'm looking forward to them... don't let us down.

Best of luck on your ventures going forward.
IPhone application price points and business models
It sounds like you're saying that a pervasive multicore strategy is a good thing, and I agree. Microsoft Research is doing a lot of facilitate multi-processor software, and companies like NEC and SGI have built entire businesses on toolchains + hardware for parallel computing.

I also think that the author is ignoring a significant advantage to having access to inexpensive, multi-core processors, which is that even if most of your tasks don't parallelize well, modern OS's run a LOT of tasks concurrently, out of necessity.

I think that he is also ignoring the fact that there are quite a few software shops out there that are working on paralellizing their software (e.g. Valve, Mental Images, Adobe, Project:Messiah Group, PIXAR, etc).

Another missed point is that most people don't actually have a real need for more computing power than a Pentium4 or AthlonXP, let alone a Penryn or a quad-core CPU. Quad-core (or more) PC's are overkill even for most software developers. Most of the people buying MacPros with 8 cores aren't writing software, they're editing and encoding video, large photographs, rendering large CG projects, compositing... the sort of thing that drives most markets: content.

The real issue here is, IMO, the lack of a "killer app" to convince the average user to WANT a multi-core system.
Weird that so many people complain about the bugginess of Eclipse. I don't recall experiencing any bugs at all (using it regularly at work). Maybe you have a fishy plugin installed?
Apple Ships SUIDs With AppleScript Dictionaries. Hilarity Ensues.
8 Ways of visualizing the news
If you incorporate, this is handled by creating or exchanging shares. You would probably start out owning 100% of it -- say there are 100 shares. If you sell someone else one third to fund the business, they will own 50 shares (out of 150 now outstanding) and the company will get the money. So yes, they should expect a payout, even if they don't invest the next time you ask.

And when you think about it, that makes sense: the opposite would be to sign a contract saying "I will invest $X in the company. And if they ask for more money, I will either give it to them or forfeit my investment." It would make it very easy for a startup to screw anyone who backed them.
A new experimental "similarity search" algorithm. Thoughts?
I looked at Lightning recently, but it looked sort of as if it was dead. Is it still being maintained?
But then you have to have the full domain, which is shitty. Defeats the purpose of having it search at all.
You are very unlikely to get funding. And, by that, I mean that everyone is very unlikely to get funding. If you're going to throw down 40k of your own money, have a plan that gets you from A to B without the "and then a miracle occurs" step.
"web-based research aggregation tool"

I personally know of at least two other in-the-works tools like this. I'm interested to see what the competitive space looks like for this market in the next 6-18 months.
One of my professors in law school wrote some great papers about the structure of venture capital deals. What each party is searching for, how they structure the legal documents to protect them, etc. The answer to your question about what to expect is that you negotiate the deal, so you get what you can, and give up what you have to.

His papers deal with the nitty gritty, and are kind of nerdy, but you'll learn a ton of how things actually work. You can download them here. http://papers.ssrn.com/sol3/cf_dev/AbsByAuth.cfm?per_id=1769...

I recommend the first two in the list, The Exit Structure of Venture Capital, and How Early Stage Entrepreneurs Evaluate Venture Capitalists.

That said, while thats how funding actually works, the work of getting funding all takes place before an agreement is signed.
Right - profit sharing. Unless they are trying to build a cash hoard for an acquisition (doubtful) or buy out Ebay (somewhat more likely).
We've traveled this road fairly extensively as well. You will almost certainly find that you will have countless ideas on how to improve things. The better the idea, and the more it will help, the less likely it is that you will be allowed to do it.

Implementing good ideas requires change. I can't think of many fields where change is more resisted than medicine.
Currently, we're text-mining the english version of Wikipedia.

There's a lot of room for improvement: optimizing for speed and pruning down the results are at the top of our "TODO" list.

Also, the UI is simplistic -- that's because we've been spending 99% of our time working on the algorithm in matlab.

But, we wanted to get something out -- warts and all -- to get some feedback on the general idea.

We'd value any feedback -- positive or negative.
which two are you thinking of?
"Strnagely enough, insurance companies are part of the gatekeepers for this, since they don't want to pay out of their pockets to provide expensive care for things that don't work."

Consider the economics here. If something is not expensive, you don't need insurance. So it's in the insurance companies' interests to inflate the prices so more people will need health insurance and can't pay for procedures out of pocket. The insurance companies just have to raise their premiums to compensate, and the larger the amounts of money passing through their hands, the easier it is for them to keep some of it.

I'm not attacking insurance companies, just pointing out that it's not entirely logical to assume that their interests are aligned with yours.
I too am not very experienced in Lisp, but one rule of thumb I have seen for macros is: "If you don't want to automatically evaluate all the arguments of a function, use a macro instead."

As you point out, macros can be overused, but there are some things that you can do with macros that simply can't be done with functions alone (like implementing short-circuiting "and"s and "or"s using just "if" statements).

Many syntactic sugar improvements to programming languages -- like .NET's "using" statement, which allocates a resource, runs some code, then frees the resource -- can be implemented directly with macros. These improvements make code shorter, easier to read, and less error-prone... and with macros you don't have to wait for the language designer to add that functionality for you.
I get the sentiment, but this type of title worship is precisely what he's preaching against (when you're the CEO, you can do whatever).
Pretty cool, what is the kind of math behind it? PLSA?
heheh very funny!!!
Maybe we need to redefine the problem. Some of the suggestions below were about automating the paperwork. Why not automate the treatment? I mean consider how unscalable it is to have a doctor, an actual person, see each patient. At most they can get through one patient every 15 minutes.

A doctor normally looks at a patient, asks them a few questions to rule out certain conditions and then prescribes a pill or requests a test for more information.

Sounds like the perfect kind of job that software can do if it knew the parameters.

The hard part is training the software, so you'd need doctors to perform treatments in a way that a computer can understand it (codified in some way) and then you need patients to report back on whether or not that treatment worked.

There's your business opportunity and a real opportunity to help people, both the doctors and the patients.
Besides the fact that it thinks too long, what is new about it, what are you trying to achieve?

I search for "Test" and results were not really relevant.
Of Algorithms, UAVs and Teams
Equating education with work is kind of silly. I mean, being silly is obviously the point of the post, but there's no need to be so morose about school. Education is incredibly valuable, and receiving it for free is nothing to sneeze at. In fact, millions of people pay tens of thousands of dollars a year for it after they get done with the free stuff.

Plus, summer vacation is totally awesome.
Funny, but too lightweight for #1
I agree that Lispers sometimes overestimate the usefulness of macros. A lot of supposedly powerful macros can be (and are, in other languages) replaced by plain functions. I ranted about this on the Arc forum recently, but no one seemed to share my concern.

Also, many common macros (e.g. HTML generators) confer a performance advantage by doing computation at compile time, but do not confer any expressive advantage.

But, this is not to say that macros can't increase expressivity. You agree that the creation of new languages (metalinguistic abstraction) is an important tool, right? Think of a macro as a compiler for an arbitrary language or sub-language into Lisp. Lisp's homoiconic syntax just makes such compilers extremely easy to write. The trade-off is that the homoiconic syntax is harder to read (IMO).

If you want an example of a useful macro, here's one I used in a recent program. The interface was a simple command line where commands and their arguments generally corresponded to functions and their arguments. Much of the code looked like this (highly simplified):

(define (add a b) (print (+ a b)))

(new-command 'add add "Adds two integers" (a integer) (b integer))

The program would then display "add" among the list of available commands, along with its description and syntax. When the user typed e.g. "add 1 2" it would validate the input and call add on it.

Obviously, there's a lot of duplication above, because the properties of a function (its name, its parameters, etc.) aren't available at runtime; theoretically some reflection system could provide this, but it would be kind of a mess. So I wrote a macro that unified define and new-command, roughly like this:

(define-command add (a integer b integer)
"Adds two integers"
(print (+ a b)))

In short, I designed a domain-specific language to attack my problem, and Lisp made it easier than any other language would have.

Also, I'd suggest dropping the rhetoric about Lisp "culture," which you clearly have only a vague understanding of. Have some trust in your fellow humans.
I wish we could see who voted on what so I could henceforth have no respect for those people.
I like the way open-desk seating is regarded as a bad thing, surely it's better than being sat in a cube all day?
This link looks awesome. Thanks!
Do not think so, this is really important and sad. Taming of the wild animals starts at school, and then we wonder why so few are growing up entrepreneurs?
> you would have to roll your own thunks by passing anonymous functions... all that boilerplate becomes tedious.

In many cases you could just define plain functions and have a way to denote what parts of the input should be converted to lambdas. I proposed something like this on the Arc forum, but it just got brushed aside. I still think it's a decent idea.

http://arclanguage.org/item?id=7216
So in other words, if you have an extensible editor you can keep extending it until you've built an IDE.
I agree with you. My comment was meant to be sarcastic. It's a good idea to try reading articles or posts before you know who the author is and judge them based on the merit of that. Knowing the author affects your judgement.
Thank you for trying it out.

Re: performance
- It's mining through ~40gb of data on server with 8gb of ram.
- Also, we're not using caching of search results -- it computes on-the-fly for each query.
- If we can get a hold of more servers, we should be able to bring down the query time below 1 second.

Re: query "Test"
- You have to search for something you're interested in.