We offer an offsite backup service :
http://tech.coop/Offsite%20Backup .
We are a not-for-profit member owned services co-operative, which basically means you own a share and have voting rights along with the other shareholders. The goal of the Tech Co-op is to provide the best services we can to our members.
drop us an email if you want to know more.
drewc
why would it be practical to do web programming in LISP instead of a platform like PHP, JSP, ASP.NET, or even Perl?
Because those other languages are terrible at web programming. I program Common Lisp web applications for a living, and i've found it to be the best tool for the job. I'm into Continuation based web programming now (rather than the ad-hoc finite-state-machine model), and you can add CPS transformation to CL with a few macros.
PHP, Perl, etc are all a little slow when compared to (a native compiled) Lisp as well. The cliki i run at http://lisp.tech.coop/ was slashdotted this morning. It runs under araneida ( a lisp based web server) and SBCL. It does not use threads or fork processes, but does all the work in a single process using SERVE-EVENT (which is like unix select()).
So, a single lisp process can handle a minor slashdotting (on a UML instance with 128 mb ram). That seems like a good reason to try lisp.
http://lisp.tech.coop/Web%2fContinuation might give you some idea as to the power of lisp for web programming. I suggest you give CL a try. if you are looking for a better way to write web applications, lisp may just be for you
According to that URL, Raymod Scott had already *PATENTED* numerous Electronic Music Machines before these guys ever got their tape Machine.
There is also the Theremin, which came way before these two as well. To give them credit for being "the first" is really quite silly.
If anymody is to be credited with this, it is Raymond Scott. Not only did he compose electronic music, but invented the syntesizer, sequencer and drum machine, which together form the basis of modern electronic music. Hell, Bob Moog himself cites Scott as his biggest influence.
Some 2" tape, a razor and some resistors do not a genre create!
At the Tech Co-op, we charge our members $80CAD an hour, $50 if they are a non-profit/co-operative. We also offer discount rates for bulk hours, and monthly service contracts.
Having touched on that, the real issue is not how much money :
"I don't want to be a jerk and gouge people who should be able to trust me with their machines."
Trust is the real issue at stake here. Once there is money changing hands, your customer has to be able to trust you fully. For the most part, our members are non-technical people who, like most people who work in an office, use their computers every day. When we tell a customer that they need a new RAID controller or to re-install XP, they have to believe us. If this trust is broken, our business becomes more diffcult.
We solved this problem by choosing a non-profit, member-owned services co-operative model for our business. This means that the company is owned by its customers and by its workers. Since the primary responsability of a corporate entity is to the shareholders, our customers are secure with the knowlege that legally, our only function is to provide them with superior technical services. And because we are a non-profit (and, an 'open-source' business, in that all our financial data is available to our members), they trust that our prices are as low as we can make them.
While i'm not suggesting you start a co-operative (infact, there is a great one you could join! see sig), i am suggesting you tread carefully. If you charge people money, and they procceed to mess up the system with spyware/viruses.. they are going to blame you. eventually you will have to deal with somebody who feels they were ripped off, or thinks you 'fixed' their computer b/c you were a little short on cash.
just some advice from someone who has been there. I started out about 10 years ago doing tech support for small businesses. I'm a programmer now, but most of our business is still tech support, and trust is the primary issue in our industry today.
Surely you can see the difference between the Guerilla Street Theatre and some guy standing (sitting?) in line for a movie.
I can... can you? Somebody waiting in line for a movie is a normal, everyday event. It transcends into art when there is something being expressed by the act of standing in line. But i'm not trying to convince you. Just trying to open your eyes a little. Just because you don't like, or don't understand what it is the creator is trying to achieve does not make it any less valid as a statement.
Obviously, it's subjective. Some people would rather look down on something then try to understand it. In this case, the reaction this guy got was what turned me on to the idea...
Here are people saying that sitting in line for months is a waste of a life. Me, i'm sure that all that time alone, and the people you meet, and the struggle of the whole thing would be a very rewarding experience. You would certainly learn more about yourself and the world you inhabit by "wasting your life" in line on the street than you would sitting behind a computer all day working for someone else.
The fact that the reasoning behind the act is trivial only adds to the piece as a whole. If he was stting on the corner for world peace or something, the entire "pointless" motif would be lost. I think it's contradiction that is being expressed here. The artist is saying, "here is what i'm doing, what are you doing with your life". "pissing it away, day by day" would probably be a fair answer for most. YMMV.
./ is not the best place to discuss art, so i'll stop now.
Art? When did camping out on the street like a bum become considered an art form?
Obviously you know little of art. The "form" of the art, in this case, is theatre. Specifically, "Guerilla Street Theatre". The object of such theatre is to surprise the audience through strange use of venue or subject matter. Ideally, the 'audience' is never sure if what they are witnessing is "real" or simply an act.
Many artist have been criticized for being "pointless and moronic". Duchamps "Fountain" (a urinal with a signature) and Warhols various pop-culture prints come to mind. Artists tend to thrive off this type of thing... if the artist can make those who normally wouldn't notice art stand up and take a look, then they have achieved something IMO.
Art should make you think and feel. obviously you've thought about this, and you feel strongly enough to comment about it. This "non-art" has certianly had an effect on you. kudos to the artist.
There are a lot of posts here that question why he is doing this.
Typical of the responses: * why doesn't he just get a job * he must be trying to make money somehow... 1) live on street 2) ???? 3) profit * how can he just step out of "His Life" like that * get a life!
etc etc.
Do you thing Van Gogh painted because he wanted profit? what about Warhol? Why did Dante takes years out of his "life" to write _The Inferno_ in a language that 'nobody' would ever read/write a book in?
The fact is, your "Life" of screens and cubes is not what this man aspires to. When you say "GET A LIFE".. are you saying "Be like me" because you are afraid? What is it that motivates these negative responses to a beautiful idea. Is it because the idea of doing something not for profit or glory is so far removed from the geek mind set? It wasn't always ths way. Hackers and painters used to understand each other.
This guy is doing something amazing. Here it is.. waiting for something, in a world that demands instant gratifcation, this man is willing to wait for months for something that is significant to him. Geeks, listen, THERE IS NO POINT! IT'S ART!
If it makes you think, or more important, feel something, then he has done his job.Maybe it made you question how pointless your own meager existance is.
This man is living his own life according to his own rules, and all you have to say is "GET A LIFE", demanding that this man conform to your ideals.
I remember when the mainstream press treated geeks and nerds with the same disdain you show towards artists. Imagine writing an kernel for fun to give away free? get a life!
How soon we forget. Or, how soon we let our inferiority complex rear its ugly head.
I used to work at Celestica on a hardware assembly line. We used an alcohol based solution to clean solder paste off the PCB's.
Just use as pure an alcohol as you can get, and follow all advice about ventilation.
although not specifically a time management app, i store my TODO, along with just about everything else, in Leo.
Leo is really the most important tool in my toolbox. i find i can't work without it anymore. If you are not familiar with leo, check it out. there is not enough room here to explain everything that leo does, but if you have information of any kind to store, or if you are a programmer who's source consists of more then one file (which *is* most of us... non?) i'm sure you'll find leo to be the best for doing what it does.
Leo is really unique in that it lets you organize your data in your own way, and then 'tangle' the result to create your actual source files. i use it for web-sites as and html template system, and in just about every program i write as an IDE. it interfaces with your favorite editor and has a host of great plugins.
it's the padding and margins that always are the problem.
If you want to avoid tables for formatting, you have to use div's with padding/margins. which look very different across browsers due to IE's broken box model.
I truely beleive in the semantic web, and try to avoid using markup for formatting, prefering to let CSS do it's job. I try to stick to XHTML as much as possible. When ie expands a box instead of letting the text overflow (the overflow propoerty is particularly broken), you're page is messed.
if it were as simple as using valid CSS+XHTML, i'd be a happy camper. that's all i want! but i'm forced to use hacks/tricks (the famous voice-family hack and others) just to make ie look like it should
my clients unfortuantly usually get the site designed by a graphic designer, and want to maintain a consistent look n feel across browsers. sites like quirksmode.org go a long way for explaining how/why browsers are broken and how to fix them, but in the end it's me who has to test and maintain them.
I always test my sites in the w3c validators. then i test them in ie, and have to hack the stylesheet. Its more important (to my clients) that my sites display properly, they honesly couldn't care less about standards. I could just use tables, but then i may as well use frontpage or *gasp* dreamweaver. I'm not prepared to take that step:) Semantic markup + css is the future, IE is the past.
Firefox Makes me have to do twice as much work. Let me explain.
Firefox is by far the best browser ever. It is fast, standards compliant, and runs on every platform i support.
The problem is when i develop in firefox. I do some web development, often on a dealine. If i make a stylesheet that looks awesome in firefox, 90% of the time it does not work in internet explorer, which, unfortunatly, is what 90% of my clients use.
So, after i think i'm done, and i test in ie, i know have to go back and fix it, which takes a while as IE is really borked. Therefore, i have to charge more, and my clients are not as happy.
I tell them to switch to firefox, but for some reason, they dont.
It's to the point now that i've installed IE5.5 under wine, and i use that as my main development browser. sad but true. I use phoe^H^H^H^Hfirefox for my daily browsing, for sure, but IE to develop.
Strangely, if i make a site that works in IE, it'll usually work in ff and safari/khtml.
of course, this is all IE's fault.. my tongue is planted firmly in my cheek... but it is something that drives me nuts.
Remember, friends don't let friends use Internet Explorer.
I spent a good three months with a pencil and paper and taocp vol. 1.
I'm surprised it only took you that long. I figure that it is taking Knuth his entire life to write the series, so I should at least do him the honor of taking the same amount of time reading it. =)
lol, perhaps i phrased that wrong. that three months was simply to wrap my head around MIX and how it operates. i'll never be done with tAoCP!
I agree that knowing assembly language is beneficial, but I don't think that it gives as large of a boost as it used to; a computer architecture class is almost more useful/necessary.
Perhaps that's where my personal bias shows up. Assembly programming _was_ my class in computer architecture. Perhaps this is the point i was trying to get across. I have to agree the it may not have practical uses anymore, but it's like ESR said about lisp "LISP is worth learning for a different reason -- the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.
Actually, Knuth sums up the requirements for his book as, "the reader should have already written and tested at least, say, four programs for at least one computer." (Preface, AoCP Vol. 1) Though some assembler skills definitely help, I don't think that a strong background in it is an absolute necessity. Plus, just to be picky, I doubt that you really know machine language.
Exactly my point. "the reader should have already written and tested at least, say, four programs for at least one computer.". what knuth means is to have written those programs _for_ the computer in assembler (or machine language). He didn't say 'for at least one compiler or runtime'.
I spent a good three months with a pencil and paper and taocp vol. 1. Learning how asm translates to the machine's language help me a lot with regards to my conceptual understanding of stored program computing
my first computer was a commodore PET. perhaps learning on such a simple architecture tainted me, but i still think that thinking 'close to the machine' has helped. with regards to machine language, if you know binary, you know machine language. but yes, i have written programs for MIX emulators in Octal. if that doesn't qualify knowing machine language, then i concede the point
Bill Gates thinks differently: "If you think you're a really good programmer... read AoCP... you should definitely send me a resume if you can read the whole thing." (back cover of AoCP) Assembly language may be important to know, but it isn't the Alpha and Omega of programming.
regardless of the wisdom behind posting a billg quote here (j/k), i fully agree with him on that issue. before reading AoCP, i thought i was good. now i know that i'm better then average, but by no means a genius. The chapter on memory allocation (best vs first fit) opened my eyes to an entire level of programming i never even thought existed.
Rather then rehash the articles reasons why assembly is important, i'd just like to note that all programs eventually parse down to machine langauge. it may not be the Omega, but it sure is the Alpha. A computer doth not grok anything but it's machine language. ASM is a level above that, but close enough that one can see what the machine is doing.
Drew Crampsie -- sending my resume to microsoft as we speak.
I've been reading this site since it was chips n dip, but this is the first time i've ever felt the need to comment.
I can't believe that any developer could write and code without some knowlege of ASM. Disclaimer: I'm self-educated, so have no bias except my own.
More importantly, if you don't know ASM and can't understand machine language, you'd never get through Knuth's tome "The Art Of Computer Programming".
In my opinion, this is the most important work ever written in our field. Any developer worth his/her salt should have at least read and understood these books, and completed at least the simple exercises.
the examples in tAoCP are written in machine language for a fictional machine, but the depth one learns by reviewing what that machine does with its data is important in any project.
I've never programmed professionally in ASM. infact, i usually work in Perl/PHP/Python. But i would not be able to write quality code in those languages if my mind was not constantly thinking of the machine. After all, i'm a computer programmer, not a linguist or scientist.
Not knowing assembly, or at least having some idea as to how a computer processor works, would make a programmer useless in my eyes. leave them to Access or VBA, and leave the coding to us pro's:)
I beleive that ASM should be taught first. If you can't understand ASM, you'll neer be a good programmer, so why bother learning Java/C++ or whatever? would you trust a doctor who didn't know how the body works?
Because music sounds how feelings feel.
We offer an offsite backup service : http://tech.coop/Offsite%20Backup . We are a not-for-profit member owned services co-operative, which basically means you own a share and have voting rights along with the other shareholders. The goal of the Tech Co-op is to provide the best services we can to our members. drop us an email if you want to know more. drewc
zlib written in CL, sans buffer overflows: http://www.cliki.net/Salza
Because those other languages are terrible at web programming. I program Common Lisp web applications for a living, and i've found it to be the best tool for the job. I'm into Continuation based web programming now (rather than the ad-hoc finite-state-machine model), and you can add CPS transformation to CL with a few macros.
PHP, Perl, etc are all a little slow when compared to (a native compiled) Lisp as well. The cliki i run at http://lisp.tech.coop/ was slashdotted this morning. It runs under araneida ( a lisp based web server) and SBCL. It does not use threads or fork processes, but does all the work in a single process using SERVE-EVENT (which is like unix select()).
So, a single lisp process can handle a minor slashdotting (on a UML instance with 128 mb ram). That seems like a good reason to try lisp.
http://lisp.tech.coop/Web%2fContinuation might give you some idea as to the power of lisp for web programming. I suggest you give CL a try. if you are looking for a better way to write web applications, lisp may just be for you
According to that URL, Raymod Scott had already *PATENTED* numerous Electronic Music Machines before these guys ever got their tape Machine.
There is also the Theremin, which came way before these two as well. To give them credit for being "the first" is really quite silly.
If anymody is to be credited with this, it is Raymond Scott. Not only did he compose electronic music, but invented the syntesizer, sequencer and drum machine, which together form the basis of modern electronic music. Hell, Bob Moog himself cites Scott as his biggest influence.
Some 2" tape, a razor and some resistors do not a genre create!At the Tech Co-op, we charge our members $80CAD an hour, $50 if they are a non-profit/co-operative. We also offer discount rates for bulk hours, and monthly service contracts.
Having touched on that, the real issue is not how much money :
"I don't want to be a jerk and gouge people who should be able to trust me with their machines."Trust is the real issue at stake here. Once there is money changing hands, your customer has to be able to trust you fully. For the most part, our members are non-technical people who, like most people who work in an office, use their computers every day. When we tell a customer that they need a new RAID controller or to re-install XP, they have to believe us. If this trust is broken, our business becomes more diffcult.
We solved this problem by choosing a non-profit, member-owned services co-operative model for our business. This means that the company is owned by its customers and by its workers. Since the primary responsability of a corporate entity is to the shareholders, our customers are secure with the knowlege that legally, our only function is to provide them with superior technical services. And because we are a non-profit (and, an 'open-source' business, in that all our financial data is available to our members), they trust that our prices are as low as we can make them.
While i'm not suggesting you start a co-operative (infact, there is a great one you could join! see sig), i am suggesting you tread carefully. If you charge people money, and they procceed to mess up the system with spyware/viruses.. they are going to blame you. eventually you will have to deal with somebody who feels they were ripped off, or thinks you 'fixed' their computer b/c you were a little short on cash.
just some advice from someone who has been there. I started out about 10 years ago doing tech support for small businesses. I'm a programmer now, but most of our business is still tech support, and trust is the primary issue in our industry today.
I can... can you? Somebody waiting in line for a movie is a normal, everyday event. It transcends into art when there is something being expressed by the act of standing in line. But i'm not trying to convince you. Just trying to open your eyes a little. Just because you don't like, or don't understand what it is the creator is trying to achieve does not make it any less valid as a statement.
Obviously, it's subjective. Some people would rather look down on something then try to understand it. In this case, the reaction this guy got was what turned me on to the idea...
Here are people saying that sitting in line for months is a waste of a life. Me, i'm sure that all that time alone, and the people you meet, and the struggle of the whole thing would be a very rewarding experience. You would certainly learn more about yourself and the world you inhabit by "wasting your life" in line on the street than you would sitting behind a computer all day working for someone else.
The fact that the reasoning behind the act is trivial only adds to the piece as a whole. If he was stting on the corner for world peace or something, the entire "pointless" motif would be lost. I think it's contradiction that is being expressed here. The artist is saying, "here is what i'm doing, what are you doing with your life". "pissing it away, day by day" would probably be a fair answer for most. YMMV.
Obviously you know little of art. The "form" of the art, in this case, is theatre. Specifically, "Guerilla Street Theatre". The object of such theatre is to surprise the audience through strange use of venue or subject matter. Ideally, the 'audience' is never sure if what they are witnessing is "real" or simply an act.
Many artist have been criticized for being "pointless and moronic". Duchamps "Fountain" (a urinal with a signature) and Warhols various pop-culture prints come to mind. Artists tend to thrive off this type of thing ... if the artist can make those who normally wouldn't notice art stand up and take a look, then they have achieved something IMO.
Art should make you think and feel. obviously you've thought about this, and you feel strongly enough to comment about it. This "non-art" has certianly had an effect on you. kudos to the artist.I used to work at Celestica on a hardware assembly line. We used an alcohol based solution to clean solder paste off the PCB's. Just use as pure an alcohol as you can get, and follow all advice about ventilation.
although not specifically a time management app, i store my TODO, along with just about everything else, in Leo.
Leo is really the most important tool in my toolbox. i find i can't work without it anymore. If you are not familiar with leo, check it out. there is not enough room here to explain everything that leo does, but if you have information of any kind to store, or if you are a programmer who's source consists of more then one file (which *is* most of us ... non?) i'm sure you'll find leo to be the best for doing what it does.
Leo is really unique in that it lets you organize your data in your own way, and then 'tangle' the result to create your actual source files. i use it for web-sites as and html template system, and in just about every program i write as an IDE. it interfaces with your favorite editor and has a host of great plugins.
because ie breaks my box model, that 27 hacks i'll need in my stylesheet. (actually .. probably half that. but still.)
not a minor issue at all.it's the padding and margins that always are the problem.
If you want to avoid tables for formatting, you have to use div's with padding/margins. which look very different across browsers due to IE's broken box model.
I truely beleive in the semantic web, and try to avoid using markup for formatting, prefering to let CSS do it's job. I try to stick to XHTML as much as possible. When ie expands a box instead of letting the text overflow (the overflow propoerty is particularly broken), you're page is messed.
if it were as simple as using valid CSS+XHTML, i'd be a happy camper. that's all i want! but i'm forced to use hacks/tricks (the famous voice-family hack and others) just to make ie look like it should
my clients unfortuantly usually get the site designed by a graphic designer, and want to maintain a consistent look n feel across browsers. sites like quirksmode.org go a long way for explaining how/why browsers are broken and how to fix them, but in the end it's me who has to test and maintain them.
I always test my sites in the w3c validators. then i test them in ie, and have to hack the stylesheet. Its more important (to my clients) that my sites display properly, they honesly couldn't care less about standards. I could just use tables, but then i may as well use frontpage or *gasp* dreamweaver. I'm not prepared to take that step :) Semantic markup + css is the future, IE is the past.
Firefox Makes me have to do twice as much work. Let me explain.
Firefox is by far the best browser ever. It is fast, standards compliant, and runs on every platform i support.
The problem is when i develop in firefox. I do some web development, often on a dealine. If i make a stylesheet that looks awesome in firefox, 90% of the time it does not work in internet explorer, which, unfortunatly, is what 90% of my clients use.
So, after i think i'm done, and i test in ie, i know have to go back and fix it, which takes a while as IE is really borked. Therefore, i have to charge more, and my clients are not as happy.
I tell them to switch to firefox, but for some reason, they dont.It's to the point now that i've installed IE5.5 under wine, and i use that as my main development browser. sad but true. I use phoe^H^H^H^Hfirefox for my daily browsing, for sure, but IE to develop.
Strangely, if i make a site that works in IE, it'll usually work in ff and safari/khtml.
of course, this is all IE's fault.. my tongue is planted firmly in my cheek... but it is something that drives me nuts.
Remember, friends don't let friends use Internet Explorer.
lol, perhaps i phrased that wrong. that three months was simply to wrap my head around MIX and how it operates. i'll never be done with tAoCP!
Perhaps that's where my personal bias shows up. Assembly programming _was_ my class in computer architecture. Perhaps this is the point i was trying to get across. I have to agree the it may not have practical uses anymore, but it's like ESR said about lisp "LISP is worth learning for a different reason -- the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.
Exactly my point. "the reader should have already written and tested at least, say, four programs for at least one computer.". what knuth means is to have written those programs _for_ the computer in assembler (or machine language). He didn't say 'for at least one compiler or runtime'.
I spent a good three months with a pencil and paper and taocp vol. 1. Learning how asm translates to the machine's language help me a lot with regards to my conceptual understanding of stored program computing
my first computer was a commodore PET. perhaps learning on such a simple architecture tainted me, but i still think that thinking 'close to the machine' has helped. with regards to machine language, if you know binary, you know machine language. but yes, i have written programs for MIX emulators in Octal. if that doesn't qualify knowing machine language, then i concede the point
regardless of the wisdom behind posting a billg quote here (j/k), i fully agree with him on that issue. before reading AoCP, i thought i was good. now i know that i'm better then average, but by no means a genius. The chapter on memory allocation (best vs first fit) opened my eyes to an entire level of programming i never even thought existed.
Rather then rehash the articles reasons why assembly is important, i'd just like to note that all programs eventually parse down to machine langauge. it may not be the Omega, but it sure is the Alpha. A computer doth not grok anything but it's machine language. ASM is a level above that, but close enough that one can see what the machine is doing.
Drew Crampsie -- sending my resume to microsoft as we speak.I've been reading this site since it was chips n dip, but this is the first time i've ever felt the need to comment.
I can't believe that any developer could write and code without some knowlege of ASM. Disclaimer: I'm self-educated, so have no bias except my own.
More importantly, if you don't know ASM and can't understand machine language, you'd never get through Knuth's tome "The Art Of Computer Programming".
In my opinion, this is the most important work ever written in our field. Any developer worth his/her salt should have at least read and understood these books, and completed at least the simple exercises.
the examples in tAoCP are written in machine language for a fictional machine, but the depth one learns by reviewing what that machine does with its data is important in any project.
I've never programmed professionally in ASM. infact, i usually work in Perl/PHP/Python. But i would not be able to write quality code in those languages if my mind was not constantly thinking of the machine. After all, i'm a computer programmer, not a linguist or scientist.
Not knowing assembly, or at least having some idea as to how a computer processor works, would make a programmer useless in my eyes. leave them to Access or VBA, and leave the coding to us pro's :)
I beleive that ASM should be taught first. If you can't understand ASM, you'll neer be a good programmer, so why bother learning Java/C++ or whatever? would you trust a doctor who didn't know how the body works?
drewcOpen Source Business: The Tech Co-op