Domain: paulgraham.com
Stories and comments across the archive that link to paulgraham.com.
Comments · 1,105
-
Re:Only in jail?
And it costs me nothing to delete the spam.
http://www.paulgraham.com/raprespamisd.html
The cost of spam is much more than than the time hitting "delete". -
Re:Publicity
The several "Google is becoming evil like Microsoft" articles that have popped up in the recent days contain a lot of the exact same ideas:
- Google is also attracting unfamiliar epithets such as "arrogant"
- Its sheer financial power has sent salaries in Silicon Valley rocketing
- Dotcom start-ups are also finding it difficult to persuade potential financial backers that their prospective markets will not be squashed by the might of Google
This looks a lot like the works of a PR company working for one of Google's competitors (Probably Microsoft, perhaps Yahoo). The articles show a lot of the patterns described by Paul Graham in his "Submarine" essay (April 2005).
If the media did some actual research, instead of just printing whatever content the PR firms feed them, we'd have some more interesting content in the news. -
Re:This is an excellent idea
I'm also curious. This reminds me a great deal of the Iain Banks novel "The Business". It's not a particularly riveting story compared to some of his other works, but it does have the very interesting concept of a huge, democratically run multinational corporation.
Complete internal financial transparency, leadership elections, and the majority of advancement bonuses paid in company-owned perks - it's always struck me as the single most ideal place to work I've ever heard of.
I'm also inclined to agree with Paul Graham - normal employer/employee relationships are basically holdovers from master/servant roles, and so artificially restrictive and inefficient in the modern day workplace.
sure there are always people who'll need a goodkick up the arse, but why does that have to come from a boss, and not their co-workers. If you vote for your boss and you can vote to have people fired/demoted, it's more likely people will get punished for being crap in the opinion of the majority of people they work with, not just the boss's opinion. Whose opinion do you trust more? -
PR at it's finest
Paul Graham has an essay about this: The Submarine.
"Suits make a corporate comeback," says the New York Times. Why does this sound familiar? Maybe because the suit was also back in February, September 2004, June 2004, March 2004, September 2003, November 2002, April 2002, and February 2002.
Why do the media keep running stories saying suits are back? Because PR firms tell them to. One of the most surprising things I discovered during my brief business career was the existence of the PR industry, lurking like a huge, quiet submarine beneath the news. Of the stories you read in traditional media that aren't about politics, crimes, or disasters, more than half probably come from PR firms.
We have seen this before with anti-Linux campaigns. Nothing new. -
Re:Can Google Solve the LJ_Abuse Problem?
He's talking about the corruption problem in general. Like what happens with mail spam blacklists
-
Upgrade your programming style
If you'd really like to upgrade your programming style, why try a real book?
I see so much stuff about writing better OO code, better Java, better PHP...hardly much at all about changing the way you think about programming. I know it's written about Lisp, but it's a book about high-end coding - about what being a master at code is all about.
Free download here.
-
Upgrade your programming style
If you'd really like to upgrade your programming style, why try a real book?
I see so much stuff about writing better OO code, better Java, better PHP...hardly much at all about changing the way you think about programming. I know it's written about Lisp, but it's a book about high-end coding - about what being a master at code is all about.
Free download here.
-
For Zones there is VServers
from TFA: Solaris containers (aka 'zones') are also noteworthy. They're virtual environments a bit like BSD jails, only slicker.Though not part of the mainline kernel yet, there exists Linux Vservers project. I don't know much about Solaris zones not having any hands-on experience (though I did attend a talk on it), but I can say that Linux VServers beats the hell out of FreeBSD jails, which is sad IMO because in all other respects I prefer FreeBSD to Linux.
So I think it's the other way around - the Linux community will catch up much faster with Solaris, if only to show that they can.
Also this article looks like it could be Sun-sponsored PR - Sun seems to do very well comparing itself to Linux all the time.
-
Re:Spammers fate
But wouldn't it be better to make spam unprofitable by creating better spam filters? This way so very few people even see the spam that no company will even invest in this sort of marketing anymore.
-
Re:Advertisement
High-End Aluminum PC Cases Make A Comeback
Suits make a corporate comeback -
funny AND interesting, but yeah FP...Paul Graham has written extensively on how languages are becoming more and more like one from yesteryear: LISP.
See Beating the averages for a well-written and thoughtful essay.
In a nutshell, languages themselves vary in power. No one disputes that. All things being equal, you should generally choose the most powerful language you can all the time. As we move more and more to server-hosted software, your choice of language is incredibly important because a) it's your choice, not forced on your by being the language of the OS and b) it can be a huge competitive advantage.
Matz (Ruby's creator) acknowledges ripping off ideas from Lisp (but putting a friendlier face to it). Python is Lispy. Javascript has been called Lisp in C's clothing. These are all functional languages, or can be used functionally.
Graham noted how all languages are trending more towards Lisp in terms of features (see the essay linked above). Want further proof? C# 2.0 is getting lexical closures. Innovation from Microsoft! These were available in Lisp for 30 years, javascript for 10 (since it was created), they're in Perl 5, Ruby, I can go on...
If languages continue to become higher and higher level, wouldn't we need to investigate this weird AI language from 1958 and see what features it doesn't have in order to do more meaningful research? 'cause these days, all the "new" features of today's languages are decades old...
-
Another interesting angle
The fine article is interesting, though it sure reads a bit like the sort of article mentioned in Paul Graham's excellent essay "The Submarine". The suit is back!
-
Re:This guy is VC slimePaul Graham *IS NOT A VC* though he is funding several startups through http://ycombinator.com/.
Have a read of his essay "A Unified Theory of VC Suckage"
http://www.paulgraham.com/venturecapital.html
He hates them even more than most. -
Quoting his own article -
Five Antonio Salieris won't produce Mozart's Requiem. Ever. Not if they work for 100 years.
Replace Saliery with Joel and Mozart with Paul Graham and the statement will still be very much true. -
Wow!
Talented, capable, motivated people able to out perform people just in it for the money! Slashdot post available at your local terminal!!
Seriously, though, this has been said before by Paul Graham. This article talks about talent, as do some of his other essays -
Wow!
Talented, capable, motivated people able to out perform people just in it for the money! Slashdot post available at your local terminal!!
Seriously, though, this has been said before by Paul Graham. This article talks about talent, as do some of his other essays -
Re:If they're not interested, they're not interest
TBH, even then the reward is the prize, and not the programming.
There are two types of programmers in the world - hackers and code-grinders.
Hackers live for interesting problems, matching their wits and expertise against the hardest and most intracable problems they can find, and smash through complexities that would make anyone else's your brain bleed with a gleeful laugh. No reward you can offer them is better than a selection of interesting challenges, adequate pay and freedom from drudgery.
Code-grinders code because they have to, not because they like it - it's a job, nothing more. Nothing you can do will make them love it, or they'd be hackers, not code-grinders. You can try to improve morale with rewards, incentives and fun games, but you'll only be teaching them to work hard for extra rewards, not to love what they're doing or to do their best work.
On the upside, code-grinders don't do their jobs for fun or stimulation, so you can give them the shittiest, most boring problems and make them work under the most unnecessary, arbitrary restrictions, just as long as you also keep giving them the paycheques with the other hand. After all, that's the only reason they're there.
If you're lucky, you've got a room full of hackers, and your productivity will be enormous as long as you don't do something stupid like giving them drudge-work, putting a non-hacker manager in charge of them or needlessly forcing them to follow a non-optimal solution.
If you're unlucky (as it sounds) you've got a room full of code-grinders. You'll never motivate them to enjoy their jobs, only to tolerate them better.
Against this background I'd advise you not to bother tring to awaken their interest in programming - if they ever had one it would have sparked the second they first tried coding, and if it didn't, it ain't there.
Instead, focus on perks, pay and working conditions, to make their job more tolerable.
Ok, so I'm generalising a bit here, but I've found it broadly to be true - either you live to code, or code to live, and people don't really change that much. -
Re:Perl?
Paul Graham would disagree with you. Languages are tools, true. But not all tools are equally powerful. Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages:
I am a big fan of Paul Graham's work -- read Hackers and Painters for an insightful series of essays that cover topics ranging from the education system to startups to Lisp. But I would disagree with him on the concept that good people can use Lisp effectively .... based on the type of people I've seen in a number of software companies, I would say that excellent people would be needed to effectively use Lisp as an advantage.
Paul had that small talented team working on Viaweb and Lisp was the tool that magnified their talent to effectively compete with companies using scores of engineers in their development shops. But then, Paul had a world class software team ... how many projects have that kind of firepower at their disposal? -
Re:As mentioned by Paul Graham
What's your reasoning behind the assertion that Lisp isn't suitable for most "mainstream programming tasks". Just saying it doesn't make it true.
I don't think any real Lisp user will tell you that Lisp is perfect. There is a litany of complaints your average Lisp user has about the language (even Paul Graham). However, most will tell you that its definitely better than what exists in the mainstream. Lisp users are kind of like Linux users in that way, actually. Feature for feature, mainstream languages just can't compete with Lisp. And it's not just a Lisp thing. Listen to Python or Ruby folks talk about how much more productive they are in those languages versus Java or C++. There is a reason for that. It's because those languages are more like Lisp. -
The problem with patterns
Patterns themselves are good to have in code, but the idea that they must be reimplemented for each case (as opposed to being packaged up into a concrete, first-class language object) really shows the limitations of mainstream languages. Peter Norvig (formerly at Harlequin, and now at Google) did a good writeup of the issue. Paul Graham also has an interesting take on this subject.
-
As mentioned by Paul Graham
As mentioned by Paul Graham, in his essay "Revenge of the Nerds", Peter Norvig found that 16 of the 23 patterns in Design Patterns were "invisible or simpler" in Lisp.
-
Re:Perl?
I agree with many other people posting. The language itself is not important. Good design and good people are what leads to good code. The language is only a tool.
Paul Graham would disagree with you. Languages are tools, true. But not all tools are equally powerful. Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages:
I'll begin with a shockingly controversial statement: programming languages vary in power. Few would dispute, at least, that high level languages are more powerful than machine language. Most programmers today would agree that you do not, ordinarily, want to program in machine language. Instead, you should program in a high-level language, and have a compiler translate it into machine language for you. This idea is even built into the hardware now: since the 1980s, instruction sets have been designed for compilers rather than human programmers.
Everyone knows it's a mistake to write your whole program by hand in machine language. What's less often understood is that there is a more general principle here: that if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one.
He goes on to say tha the most powerful language around is Lisp:
Many languages have something called a macro. But Lisp macros are unique. And believe it or not, what they do is related to the parentheses. The designers of Lisp didn't put all those parentheses in the language just to be different. To the Blub programmer, Lisp code looks weird. But those parentheses are there for a reason. They are the outward evidence of a fundamental difference between Lisp and other languages.
Lisp code is made out of Lisp data objects. And not in the trivial sense that the source files contain characters, and strings are one of the data types supported by the language. Lisp code, after it's read by the parser, is made of data structures that you can traverse.
If you understand how compilers work, what's really going on is not so much that Lisp has a strange syntax as that Lisp has no syntax. You write programs in the parse trees that get generated within the compiler when other languages are parsed. But these parse trees are fully accessible to your programs. You can write programs that manipulate them. In Lisp, these programs are called macros. They are programs that write programs.
Programs that write programs? When would you ever want to do that? Not very often, if you think in Cobol. All the time, if you think in Lisp. It would be convenient here if I could give an example of a powerful macro, and say there! how about that? But if I did, it would just look like gibberish to someone who didn't know Lisp; there isn't room here to explain everything you'd need to know to understand what it meant. In Ansi Common Lisp I tried to move things along as fast as I could, and even so I didn't get to macros until page 160.
But I think I can give a kind of argument that might be convincing. The source code of the Viaweb editor was probably about 20-25% macros. Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary. So every macro in that code is there because it has to be. What that means is that at least 20-25% of the code in this program is doing things that you can't easily do in any other language. However skeptical the Blub programmer might be about my claims for the mysterious powers of Lisp, this ought to make him curious. We weren't writing this code for our own amusement. We were a tiny startup, programming as hard as we could in order to put technical barriers between us and our competitors.
A suspicious person might begin to wonder if there wa
-
Re:Perl?
I agree with many other people posting. The language itself is not important. Good design and good people are what leads to good code. The language is only a tool.
Paul Graham would disagree with you. Languages are tools, true. But not all tools are equally powerful. Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages:
I'll begin with a shockingly controversial statement: programming languages vary in power. Few would dispute, at least, that high level languages are more powerful than machine language. Most programmers today would agree that you do not, ordinarily, want to program in machine language. Instead, you should program in a high-level language, and have a compiler translate it into machine language for you. This idea is even built into the hardware now: since the 1980s, instruction sets have been designed for compilers rather than human programmers.
Everyone knows it's a mistake to write your whole program by hand in machine language. What's less often understood is that there is a more general principle here: that if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one.
He goes on to say tha the most powerful language around is Lisp:
Many languages have something called a macro. But Lisp macros are unique. And believe it or not, what they do is related to the parentheses. The designers of Lisp didn't put all those parentheses in the language just to be different. To the Blub programmer, Lisp code looks weird. But those parentheses are there for a reason. They are the outward evidence of a fundamental difference between Lisp and other languages.
Lisp code is made out of Lisp data objects. And not in the trivial sense that the source files contain characters, and strings are one of the data types supported by the language. Lisp code, after it's read by the parser, is made of data structures that you can traverse.
If you understand how compilers work, what's really going on is not so much that Lisp has a strange syntax as that Lisp has no syntax. You write programs in the parse trees that get generated within the compiler when other languages are parsed. But these parse trees are fully accessible to your programs. You can write programs that manipulate them. In Lisp, these programs are called macros. They are programs that write programs.
Programs that write programs? When would you ever want to do that? Not very often, if you think in Cobol. All the time, if you think in Lisp. It would be convenient here if I could give an example of a powerful macro, and say there! how about that? But if I did, it would just look like gibberish to someone who didn't know Lisp; there isn't room here to explain everything you'd need to know to understand what it meant. In Ansi Common Lisp I tried to move things along as fast as I could, and even so I didn't get to macros until page 160.
But I think I can give a kind of argument that might be convincing. The source code of the Viaweb editor was probably about 20-25% macros. Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary. So every macro in that code is there because it has to be. What that means is that at least 20-25% of the code in this program is doing things that you can't easily do in any other language. However skeptical the Blub programmer might be about my claims for the mysterious powers of Lisp, this ought to make him curious. We weren't writing this code for our own amusement. We were a tiny startup, programming as hard as we could in order to put technical barriers between us and our competitors.
A suspicious person might begin to wonder if there wa
-
Lisp
Lisp is the answer. Paul Graham explains it at http://paulgraham.com/icad.html .
-
PR article for Yahoo
It kind of seems to me like they mentioned Yahoo for a lark in this article.
Actually, I'd bet you dollars to donuts that this article was "seeded" by a PR firm in the employ of Yahoo. Their goal: create the impression that Yahoo is second only to Google as a search engine and an employer of Smart People. Make Yahoo seem cool like Google is. For example, the sentence "Yahoo also carries substantial geek cred."
Paul Graham unveils this concept in great detail in his essay The Submarine.
Notice the number of quotes from Yahoo employees vs. the number from Google employees, the insider information about Yahoo's future plans vs. the use of facts you already knew about Google anyway.
Bet.
-
What it meansThese results tell you nothing about Google, or Yahoo, or MSN. They speak volumes about Bear Stearns, ComScore Networks, and WebSideStory.
The announcements mean that ComScore has managed to score marketing dollars that WebSideStory hasn't (yet?). Bear Stearns promoting obviously flawed stats means they're involved, too, at one end or the other. (Did they buy the stats from CS, or did CS or its patron buy the promotion from BS?) Now we know in the future to ignore ComScore and Bear Stearns announcements, and suspect anybody they are seen to associate with.
WebSideStory's case is more complicated. Are they promoting their measurement service, or are they trying to provoke Yahoo and MS to pay them to pipe down or (for just a little more) change their tune? The PR business is more scummy than people like us can even imagine.
-
Sounds like Paul Graham
That sounds a lot like what Paul Graham says in his "Great Hackers" essay. Although I think you could also sub other words for Hacker. (Programmer, Artist, etc)
Essay
http://www.paulgraham.com/gh.html
Audio version read by the author:
http://www.itconversations.com/shows/detail188.htm l -
Welcome to the D table
I think the whole mod system is insane quite frankly. I usually tweak my settings so I can see all the posts and post anonynously, and it's fascinating - about 10% of the posts that get modded down are retarded stuff like "first post". The rest is people who have views that disagree with the mainstream, but aren't otherwise objectionable. Suddenly the people who get +5 insightful for posting pro Linux gossip look like the cheerleaders they are.
Hey, you realise that we're sitting at the slashdot equivalent of the D table
And put that way, you suddenly realise why moderation is so offensive. -
Another Paul Graham article, and textbook editing
An even more relavant essay of his is What You Wish You'd Known.
Also be sure to check out The Muddle Machine by Tamim Ansary, a school textbook editor who describes the apalling state of textbook publication today.
-
Paul Graham's take
This question reminded me of the classic Paul Graham essay "Why Nerds Are Unpopular". Despite the title, much of the essay is about how much high school sucks and what could be done to fix it.
-David -
Perspective of non-C Programmers
It is really something that this flaw impacts so many applications.
This situation is unnecessary; the problem is that C is not a type-safe language, like ML, CAML, Haskell, Common Lisp, Scheme, Java, etc.
You could write that code in SML/CAML/Common Lisp and likely get it to run as fast or faster than the original (particularly if you did some space/time tradeoffs ala partial evaluation). Integration with the applications in the form of a library would be the tough part.
Here's a provocative bit from Paul Graham (Lisp expert entrepreneur) on buffer overflows. -
Re:These "innovations" are up to 40 years old.
You may or may not find this interesting, but Lisp was invented by John McCarthy in 1958 while he was at MIT. That's makes it pretty old as far as languages go... And yet it is still the highest level language we have
-
The actual value of certifications
Yeah, certifications mean nothing to people who know anything about the craft of software engineering. That right there tells you why you'd bother getting them. I've just started with a consulting company, and they require their developers to get four certifications a year (and give a bonus for each one). It isn't because the certifications make the developers better, but because it makes them more marketable to potential clients who know neither jack nor shit about software. The only criteria those potential clients have to judge a consulting company on are 1) case studies of previous projects, and 2) arbitrary measures of skill like "90% of our developers hold MCSE certifications."
Forget for the moment that you know anything about software development. Forget that you give a damn about the differences between C#, Java, C, and Perl. Forget that you actually comprehend why an object-oriented programming paradigm benefits certain kinds of software projects. You're just a guy at some company who has a business or even liberal arts degree, who understands just enough about computers to expect email to be sent and received by Outlook, and who has been tasked with replacing/upgrading some mission-critical software system by the end of the fiscal year. How do you judge who should do the work? You know all the computers at work run Microsoft [sic]. You are told by these consulting companies who are bidding on your project that the M in MCSE stands for Microsoft. You figure that's got to be good, so the company with the most MCSE thud factor sounds the best, especially if their bid is near the lowest.
That's how business is conducted in the real world. This also applies to hiring developers internally. I refer you to Paul Graham's essay on how it takes a good hacker to know a good hacker. For those unfortunate companies who do not have good hackers in their employ to judge the quality of potential developer employees/contractors, the certifications are the next best thing (however sad that may be).
I don't have any certifications at the moment, but I expect to have an MCSE within a year or so. I need to know the material so I can do my job, and that will come by actually doing it. I also need to know the material well enough to pass the tests, and for that I recommend hitting the library. I'll be damned if I'm going to buy books for this crap if I can possibly avoid it. My colleagues at this company recommend the Exam Cram series, but I found MCAD/MCSD Self-Paced Training books (from Microsoft Press) at my library, so that's what I'm using.
-
Re:You don't need new standards
And then there's the syntax of the language. Try writing a parser that can correctly parse any valid C program. Or try to write a program that does transformations on C programs, both reading and writing C code.
If that kind of thing matters to you, you should look at Common Lisp. The built-in programmable parser is powerful enough to parse all CL programs and is configured to do so by default. Defining source-to-source transformations with DEFMACRO is an important technique
-
Eh...I don't think automation is a problem. Paul Graham says it best:
The prospect of technological leverage will of course raise the specter of unemployment. I'm surprised people still worry about this. After centuries of supposedly job-killing innovations, the number of jobs is within ten percent of the number of people who want them. This can't be a coincidence. There must be some kind of balancing mechanism.
This is what has always happened since the Industrial Revolution: we find other things to do. The next hot industry, the more important work, is always around the corner. This phenomenon is suggested in an essay in Wired about the coming "Conceptual Age". The jobs that can't be automated - jobs that require creativity, empathy, or insight - will become our society's important work. The greater value in them will attract more people. It's as simple as that. -
Re:Columbine? Jon Katz is calling!
Teachers have no real power.
Do they have a witness protection program? Let's assume they can get a bully banned from the town. Does that stop their friends from having a "conversation" with the victim?
Furthermore, what can they do in the normal channels? To get a kid expelled is serious. And in the end, the teacher is going to be at most the equivilent to a cop at a trial. Impartial, but only a witness to an event.
I can half see the point of the staying in class at lunch, but the student would probably be better off laying low elsewhere. Mainly, because if it is discovered that they are hiding in a class the result will most likely not be positive.
The only thing a teacher can really do is get someone kicked out of their class. But in the case of bullies, what good does it do when the person is left to have a "conversation" with the bully and their friends outside of school property?
I know I linked this earlier, but I think the blame is placed on the board of education for turning the school system into a prison.
http://www.paulgraham.com/nerds.html/
This verbalizes a lot of my observations while in junior high and high school. -
school is a prison
http://www.paulgraham.com/nerds.html/
This article is pretty good. In the context of Columbine, it states, what I believe to be, a partial why of the situation. Other than the obvious fact the shooters were fucked up. Then again, save self-defense, what human being that shoots another isn't fucked up? -
Page 2 and scripting languagesThe entire second page of the article talks about scripting languages, specifically Javascript (in browsers) and Groovy.
1. Kudos to the Groovy authors. They've even garnered James Gosling's attention. If you write Java code and consider yourself even a little bit of a forward thinker, look up Groovy. It's a very important JSR (JSR-241 specifically).
2. He talks about Javascript solely from the point of view of the browser. Yes, I agree that Javascript is predominently implemented in a browser, but it's reach can be felt everywhere. Javascript == ActionScript (Flash scripting language). Javascript == CFScript (ColdFusion scripting language). Javascript object notation == Python object notation.
But what about Javascript and Rhino's inclusion in Java 6? I've been using Rhino as a server side language for a while now because Struts is way too verbose for my taste. I just want a thin glue layer between the web interface and my java components. I'm sick and tired of endless xml configuration (that means you, too, EJB!). A Rhino script on the server (with embedded Request, Response, Application, and Session objects) is the perfect glue that does not need xml configuration. (See also Groovy's Groovlets for a thin glue layer).
3. Javascript has been called Lisp in C's clothing. Javascript (via Rhino) will be included in Java 6. I also read that Java 6 will allow access to the parse trees created by the javac compiler (same link as Java 6 above).
Java is now Lisp? Paul Graham writes about 9 features that made Lisp unique when it debuted in the 50s. Access to the parse trees is one of the most advanced features of Lisp. He argues that when a language has all 9 features (and Java today is at about #5), you've not created a new language but a dialect of Lisp.
I am a Very Big Fan of dynamic languages that can flex like a pretzel to fit my problem domain. Is Java evolving to be that pretzel?
-
Re:MySQL good, PHP not so good
Speaking of Graham, read http://www.paulgraham.com/pypar.html.
Python is a lot more open than Java, and by Paul Graham, a better language.
Anyway, don't mean to start a flame. I read Graham too. -
Re:MySQL good, PHP not so good"Not so fast. Java is proprietary."
Have a look at how mustang is being developed and how the JCP works. Java is about as open as you can get without being osi approved. Also, the world existed just fine before open/free software came about. Many corporations/people out there still depend on proprietary software to keep their business going because there isn't a free/open equivalent to everything out there.
Open/Free software is good but trying to label java as "proprietary" and pretending it's a bad word is a weak argument. Try reading this.
-
Design Patterns are the symptom of a problemThe usefullness of Patterns is really just a symptom that you're not solving the right problem or using the wrong tools.
Paul Graham said it best:
For example, in the OO world you hear a good deal about "patterns". I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough-- often that I'm generating by hand the expansions of some macro that I need to write.
He goes on to reference Norvig's paper Design Patterns in Dynamic Programming that points out that in more productive environments, many if not most of the classic "design patterns" are totally invisible in better platforms today.If you are spending a lot of code writing stuff that fits nicely into design patterns, you'd be far better off switching to a platform (any lisp platform; any python platform; ruby/rails) that frees you from this redundancy automatically.
-
Summer of LispBeing an mentoring organization, LispNYC has received a lot of feedback regarding the summer of code.
Because of the overwhelming popularity and financial support of Google's Summer of Code, LispNYC is proud to announce it's continued dedication to same great idea: Summer of Lisp.
The reality is that although many of our projects are worthy endeavors, not all will get funding from Google, which is why our mentors are willing to work unfunded with students who are willing to learn Lisp. So if you're serious about computer science and are interested in continuing your education in order to beat the averages ( http://www.paulgraham.com/avg.html ) while working on projects that matter, please stop by.
-
"Hacker" vs. "Cracker"
*Dramatic drum roll*
A LOT OF US ARE HACKERS! ...but (hopefully) a measly few of us are crackers.
Every so often the media prints bad stuff about hackers. More often than not this is a misnomer. A cracker -- the correct term -- is a person who uses computers to do Bad Things (breaking copy protection, committing electronic break-in and theft, writing viruses, etc).
On the other hand, the term "hacker" describes a skillful and devoted programmer. Yes, hackers break some rules, but so do artists - it's a good bad attitude. To stay in that context, for obvious reasons hackers would no more be affiliated with crackers than artists would with graffiti scribblers (though even graffiti has its good and bad sides), so naturally the "hacker" vs. "cracker" discord perpetuated in the media is uncomfortable.
Anyway, in spite of constant media abuse I will not eschew the word. In fact, I frequently pester journalists about their term misuse, though I realize that attempting to enlighten the media about their misconception is probably a lost battle by now, after years and years of misuse.
But, as they say, you miss 100% of the shots that you don't take.
Go ahead, mod me down. Be a sheep. -
Re:When I choose ___ OS, it is because..."When scientists publish their ideas which are formed based on the accumulated knowledge of others, are they asked to give up their copyright?"
I wasn't talking about copyright. I was talking about recognition and respect. When researchers publish their work they will cite tons of other research that they used as a basis for their own. Many times they can do their research because of grants/funding from commercial entities. Too many times you see free software advocates deriding commercial unixes and other proprietary systems. I think this linux mag interview with Bill Joy is a good read for people with an open mind. It's a bit dated but still interesting but it's a world apart from what Theo de Raadt said. From what I've seen it's not so much the core developers of open source software that do this but the developers that come later and some users. A lot of this is also fueled by the IT press. Like when wired magazine wrote "Linux Sucks" on their cover when they had an interview with Bill Joy. He never actually said that. What he said was more along the lines of linux is good for developers that were 20 years younger than him, he had no interest in writing a kernel he already did it. He wasn't even working on Solaris anymore. If someone comes up with a good idea for a new operating system and they ask Linus to be a part of it they'd probably get a similar response. Unfortunately Bill Joy gets painted as a wacko sometimes too because of one of his other wired interviews. Unfortunately those people probably haven't read this either.
Basically I think linux, gnu and other free software owe a lot to the work that was done before them that isn't properly attributed and is instead mocked.
"I make money by charging for my time, not other people's products. Typically I hear about someone or some company that needs some piece of software, or I think it would be beneficial to them. I push as much free software that I am familiar with on him as I possibly can, and hope that he will need some revision to it with the understanding that he can go anywhere he likes to get those changes. Very often he comes to me to get them, because I have earned his trust. End users give me my bread and butter."
It sounds like you're doing more integration rather than innovation and I don't mean that in a bad way. But you're still being paid to develop software. When you're done I'm assuming you contribute the code changes back so the next time nobody gets paid. A lot of open source is reengineering commercial software. Who is going to pay for the r&d to come up with the new stuff if they can't make money off their research? Who is going to do the boring work that comes with software development?
It's not that I'm opposed to free/open software. I use a lot of it. I just think that the goal of all software being free isn't obtainable. Not because free software is in anyway inferior but because the way society works doesn't support it and free software isn't the type of vehical that can make those types of changes to society. Just like free television. PBS wouldn't be around without gov't funding as well as corporate and private donations.
What I see being more practical is better synergies between free and commercial software. Where software progresses more like a tidal wave. Commercial software and funded open source projects are on the break of the wave and as the wave passes and levels out free software is a greater force. This is the model I think will work for making better software. There needs to be an impetus for people to break new ground and not just customize existing software. In our world that's money, so people need to be able to make money off their work at all levels. No cat fighting between groups either, especially between unix and linux. The goal should be for unix and linux to grow, not for one to grow at the expense of the
-
Re:Religion stifles advancement in our speciesonly so long as the results agreed with the religious diatribe of the day
And how is 17'th century religion that different from todays religions of Political Correctness and Environmentalism?
Go read an excellent essay on todays blacklist of topics by Paul Graham titled what you can't say.
-
Re:Start with CEO
It's meant as a joke but.. why not? Start a company. The worst thing that will happen is you build a lousy product but develop a useful set of skills. Paul Graham had an interesting article on it here: http://www.paulgraham.com/hiring.html
-
non-mail server in SBL, what about mail server?From TFA,
As of this writing, any filter relying on the SBL is now marking email with the url "paulgraham.com" as spam. Why? Because the guys at the SBL want to pressure Yahoo, where paulgraham.com is hosted, to delete the site of a company they believe is spamming.
E-mail w/ the 'url "paulgraham.com"'? The SBL doesn't check URLs, it'd doesn't even check domain names, it checks IP numbers. paulgraham.com resolves to [66.163.161.45], which is listed in the SBL (details for SBL27945), but since this isn't a mail server, I don't see how e-mail from paulgraham.com gets marked as spam by users of the SBL. I note that the MX record for paulgraham.com is milter1.store.vip.sc5.yahoo.com [216.136.232.238], which is not in the SBL. He never mentions what he uses as his smtp server, but I'm supsecting it either not the SBL -- or it's in for a different reason than he thinks.Also, for what it's worth, I've found the SBL incredibly reliable (except recently, when I've found it's been increasingly unreachable at peak times), but I check it as one of many spamassassin rules -- I don't mark e-mail as spam just because it's in the SBL, though the way I have spamassassin score things, it doesn't take much more...
-
*PLONK*In 1997, a group of anti-spam vigilantes called MAPS started a blacklist of mail servers... This is, strictly speaking, terrorism
His other stuff on spam also missed the mark. -
A few commentsFrom Paul Graham's original article http://paulgraham.com/spamhausblacklist.html
any filter relying on the SBL is now marking email with the url "paulgraham.com" as spam
The primary use of the SBL is to allow sysadmins to refuse e-mail coming from listed IP addresses. The mail should be rejected during the SMTP header conversation, and the senders of genuine (non-spam and non-virus) e-mails will receive a non-delivery report from their outgoing MTA.I assume that what Paul Graham is complaining about must be SpamAssassin, or some other content filter, applying a score to articles containing URLs, which when looked up in DNS resolve to listed IP addresses. This is much less acceptable, since the sender has no way to know that their e-mail may have been classified as spam.
The details of the listing can be found at http://www.spamhaus.org/sbl/sbl.lasso?query=SBL27
9 45. This is a /32 - i.e. a single IP address. I don't know why Paul Graham's web site (which has that IP address) has been associated with textileshop.com, which has a completely different IP address.The other Yahoo listing on the SBL is also a
/32.I also note in another of Paul Graham's articles http://paulgraham.com/sblbad.html he claims
The most notorious example is the MAPS RBL
As any fule kno, the most notorious spam blacklist is SPEWS. ~ -
A few commentsFrom Paul Graham's original article http://paulgraham.com/spamhausblacklist.html
any filter relying on the SBL is now marking email with the url "paulgraham.com" as spam
The primary use of the SBL is to allow sysadmins to refuse e-mail coming from listed IP addresses. The mail should be rejected during the SMTP header conversation, and the senders of genuine (non-spam and non-virus) e-mails will receive a non-delivery report from their outgoing MTA.I assume that what Paul Graham is complaining about must be SpamAssassin, or some other content filter, applying a score to articles containing URLs, which when looked up in DNS resolve to listed IP addresses. This is much less acceptable, since the sender has no way to know that their e-mail may have been classified as spam.
The details of the listing can be found at http://www.spamhaus.org/sbl/sbl.lasso?query=SBL27
9 45. This is a /32 - i.e. a single IP address. I don't know why Paul Graham's web site (which has that IP address) has been associated with textileshop.com, which has a completely different IP address.The other Yahoo listing on the SBL is also a
/32.I also note in another of Paul Graham's articles http://paulgraham.com/sblbad.html he claims
The most notorious example is the MAPS RBL
As any fule kno, the most notorious spam blacklist is SPEWS. ~