Domain: quadium.net
Stories and comments across the archive that link to quadium.net.
Comments · 40
-
you can build great Web apps using Java
I have had great experiences using the "Java EE" toolkit (basically just a combination of servlet and JPA technologies) and Spring MVC (Spring's front-end Web framework) to build nice clean modern Web sites and applications.
The great thing about this combination is nothing is too different from the stuff you've done before if you've done any medium- to large-scale Java programming before. Multiple vendors, commercial and FOSS, implement the specifications. JPA is one of the better ORMs I've seen (second only to CLSQL and probably more comprehensive, anyway). Most everything is done with simple annotations. And Spring is very well-mannered; you can take as much or as little as you like. Once I had to hook a Web front-end up to an application with a custom authentication system... it was cake to implement the Spring interfaces and suddenly my application was a fully acceptable auth provider for its own Web interface.
I have started a write-up on this at http://quadium.net/~vsync/tech/java-servers/ and my goal was to consolidate and smooth some of the information I had to scrounge over the years about the process. There is a lot of Java information out there but lots is outdated and much seems to assume familiarity or use of this or that IDE, and at least online I haven't found many comprehensive sources. That said, sadly once you get past the first bits of my write-up it gets to be more and more of an outline. But your perspective as someone familiar with Java but wanting to get into this aspect of it would be greatly appreciated.
If you're interested I believe a while ago someone on Reddit gave me some links to some Spring MVC tutorials that seemed decent as well. I can try to dig them up if you'd like.
-
Re:Why hasn't there been more focus?Surely Befunge proves that visual languages can be a usable alternative to textual ones
:)vv < <
2
^ v<
v1<?>3v4
^ ^
> >?> ?>5^
v v
v9<?>7v6
v v<
8
. > > ^
^< -
I've tried this
Here's the letter I wrote to Gap [PDF] regarding how they're currently engaged in destroying my reputation. I addressed it to Paul Pressler, the President and CEO. I have proof of delivery, but no reply yet and the calls are still coming. We'll see how it goes...
-
Re:"Still an important tool"
VIM and the Funge Specification
... that's all you need for some made Befunge programming. Can my plug get modded up too? -
Re:microsoft smart text?Here's what I had to say about Smart Tags at the time. Of course they catered to the "designers" and the one interesting feature they had was cancelled.
it stealses our precious vision!
There's been a lot of whinging about Micros~1's latest Innovation, with talk of the horrible nerve they have to "re-edit anybody's site, without the owner's knowledge or permission, in a way that tempts users to leave".
Aside from the usual Micros~1 practice of claiming others' technology as their own, and the icky ripoff of the Aqua GUI in their screenshot (What is with this fascination with white or almost-white backgrounds? GUIs, Web pages, everything. White backgrounds are too harsh and make reading difficult. One of the more significant advances between Win3.1 and Win9x was the death of the horrible white background everywhere, and now they're doing their best to revive it.), I see this as a good thing.
For once, they seem to be behaving somewhat responsibly in the integration of new functionality (although I wonder how true this would be were the specter of an antitrust breakup not looming over them). Smart Tags are quite visibly different, both in appearance and behavior. They aren't including any tag packages with IE (although I have no doubt they'll plug their ad-pimping package as much as they possibly can). All processing is done locally, which saves bandwidth and prevents a list of all the URLs you visit being sent to Redmond ("What's Related", anyone?).
Smart Tags scare Web "designers" to no end, because they exploit the most fundamental and useful feature of the World Wide Web: hyperlinks. Hyperlinks scare them for 2 simple reasons:
- Their sites are boring.
- They lie to their readers.
Obviously, these can't be used as arguments against the introduction of these tags, so instead they complain about how their sites are being edited behind their backs. But this is a lie and everyone knows it. Their pages are still stored on their server in exactly the same pattern of bytes as before. What frightens them is that the reader might be given the option to go read something else, and this is not right.
What they don't realize is that they never had the right nor the ability to control the presentation of their site. From the moment their pages are posted on a public server, I have the right to do anything I want with them. I can view the source. I can critique their site and their product. And I can disable their grotesque colors, their unreadable fonts, and their gratuitous JavaScript. I can see if their site contains any value to me, and if not, I can leave. A browser is not a television for them to flash pretty images on. It is a tool for me to explore publications, and as such I expect it to provide me with cross-referencing features.
There is public documentation on creating Smart Tag packages. Anyone can write their own annotations and distribute them to friends or the world at large. Of course, this ability is only useful to "the hate groups, the spammers and the junk marketers on the Web". I want to see Smart Tags in Mozilla. I want to see widespread grassroots dictionaries, references, and
-
why no mention of stevia?
Here's something I posted on my site recently:
The November 2003 issue of Wired has an article about artificial sweeteners, tagatose in particular. I was strongly disappointed to find that the article only mentioned stevia once, in passing, and that it was not included in their chart of sweeteners. I would expect Wired, of all publications, to want to be all over something so subversive.
I'm even more disappointed to see no mention of it in this Slashdot discussion.
-
Re:Bad career choicesMy apologies for the bad phrasing. I certainly would not be one to assume that familiarity with a specific language or tool implies cognizance of the entirety of computer science and engineering. Rather, I listed the languages I did (C, Java, and Lisp) in an attempt to show the breadth of my knowledge, my ability to master different paradigms (low-level portable assembly languages, trendy and object-oriented BDSM languages, and (mostly) functional languages), and yes, my mastery of specific languages. Theory means nothing if you can't apply it.
As I said, I've also become used to HR people disinterested in general knowledge, looking for buzzwords and specific technologies. Hopefully my résumé is a little more generic and abstract (I didn't link to it before simply because I didn't want my post to be interpreted as a simple plea for work, although if anyone has an offer I'd gladly take it), and do I welcome any suggestions.
I am a rabid advocate of an abstract knowledge base and of personal adaptability; occasionally I forget that this is not widespread and I could be perceived otherwise. In an attempt to mollify your legitimate criticism, therefore, here are the reasons I believe myself to be highly employable:
Computers aren't just a career to me; they are a passion. Ever since I was a small child I've been fascinated by them. I like to think of myself as a hacker. My dad had a dual-head (CGA and Hercules) XT system when I was 4 or 5, something like that. I was curious how some programs used one and some used another, but he told me I didn't need to worry about that. Exploration led me to MS-DOS's MODE command, and I was hooked.
My personality type (INTP) means I am naturally drawn to theory and abstract representations, that I want things done "properly". My physics classes were a bit strange, as I wanted the formulas for collisions, rather than drawing them out on a piece of paper and having a 15% margin of error be "acceptable". I just figured it out myself (basic trig) and programmed it into my calculator for good measure. I'm a big fan of automation as well -- most error seems to come from human mistakes -- but only if the operator has a vague idea of what's going on in the guts of the machine (I disagree with Joel Spolsky on a fair number of things, but he's correct with the basic idea of "leaky abstractions".).
My early BASIC programs shunned GOTO in favor of GOSUB. I then moved to QuickBASIC, then Pascal and C, then stuck to Java for quite a while, always seeking something that would allow me to do things "right" and abstract away the implementational cruft. Eventually I found Common Lisp, and I'm quite happy with it for now; it seems a good blend of the theoretical and the pragmatic. It's also quite useful as I can "backport" what I learn from it into more mainstream languages, if need be.
I've implemented IRC clients, Web servers, interpreters, simple operating systems, various components of content management systems, and a smorgasbord of small utilities and integration tools. They may seem trivial, but the last are my favorites, simply because they have a tangible effect on the computing experience. Computers are supposed to make our lives easier, and it doesn't do much good if the disparate components have to be hand-massaged into usefulness and handled as discrete cases. In everything I make an effort to adhere to specs, to be platform-agnostic, and to plan for extensibility. This has helped me time and time again: the initial implementation may seem to drag a bit, but adding requested enhancements later is a matter of minutes or hours rather than days or weeks.
While I don't have an extensive formal training in computer science, I'm not half bad at developing efficient algorithms. At numerous times, I have sped up existing systems 10x or 100x by noticing poorly nested loops or redundant code. I've caught security holes caused by passing tainted strings to the databa
-
i've talked about this
I've written about this in varying detail on my Web site. Here's an excerpt from one of the more pertinent entries:
I'm hoping to tie this rambling into a coherent conclusion. I've had people tell me that it doesn't matter what data collection is being undertaken by the government; if you have nothing to hide you have nothing to fear. If my slowing down for a stopped vehicle is suspicious enough to warrant following, what happens when they have a list of the books I read, the sites I visit on the Internet, and the people I send mail to (even if I use PGP, you think there aren't honeypot remailers out there?)?
Howard Rheingold pointed out on the radio the other night that once all this data is collected (note that They doesn't have to gather the information, just collect it from private companies), the potential for data mining is enormous. What happens when whatever AI and heuristics they have scanning our lives flags a particular coincidence, and the person writing the report is lazy or is ideologically prejudiced? Remember, once it's typed up in a report with a nice abstract by someone told by the computer that you're "suspicious", things look a lot more airtight than they are.
Do you want the police crashing your door, cursing and beating you, and kicking in your teeth, because of a red-flagged coincidence? Do you want to die in a shootout defending your family based on a misunderstanding, bad spin, or a lie? And don't forget, Bush's Justice Department now wants to be able to force you to incriminate yourself.
-
i've talked about this
I've written about this in varying detail on my Web site. Here's an excerpt from one of the more pertinent entries:
I'm hoping to tie this rambling into a coherent conclusion. I've had people tell me that it doesn't matter what data collection is being undertaken by the government; if you have nothing to hide you have nothing to fear. If my slowing down for a stopped vehicle is suspicious enough to warrant following, what happens when they have a list of the books I read, the sites I visit on the Internet, and the people I send mail to (even if I use PGP, you think there aren't honeypot remailers out there?)?
Howard Rheingold pointed out on the radio the other night that once all this data is collected (note that They doesn't have to gather the information, just collect it from private companies), the potential for data mining is enormous. What happens when whatever AI and heuristics they have scanning our lives flags a particular coincidence, and the person writing the report is lazy or is ideologically prejudiced? Remember, once it's typed up in a report with a nice abstract by someone told by the computer that you're "suspicious", things look a lot more airtight than they are.
Do you want the police crashing your door, cursing and beating you, and kicking in your teeth, because of a red-flagged coincidence? Do you want to die in a shootout defending your family based on a misunderstanding, bad spin, or a lie? And don't forget, Bush's Justice Department now wants to be able to force you to incriminate yourself.
-
Re:security fixes? not really
I said this elsewhere. I also pasted a tangentially related rant about Smart Tags.
-
Re:How do you explain this?I think the better question is, "Why build a browser that finds simple HTML inaccessible?". I used to make sure everything would look hunky-dory in NS4 because it was the only browser available in most of the computing world. Those days are over. Mozilla is perfectly usable even on P120s (don't argue; my dad has one and still uses it) and is standards-compliant besides.
NS4 is broken beyond belief. Perfectly valid CSS isn't handled, isn't ignored, but is used to shrink text to ~2px and splatter visual elements all over each other. The browser frequently hangs and JavaScript crashes it like nobody's business. It is obsolete and deprecated, and as you can even get Mozilla for OpenVMS, I really don't care to cater to people too lazy to fix their broken system.
All my current content is written in XHTML 1.0, which is basically HTML 4.01 with XML prettiness (although I have includes that are nowhere near fully compliant). I make heavy use of semantic elements, such as (and it's ironic that Slashdot doesn't support <code> here) cite, dfn, abbr, q, blockquote, code, samp, kbd, etc. NS4 doesn't support much, and that's no surprise, but the scary thing is that neither does IE6. It doesn't even support <q>! Konqueror tries, but it makes a mess. (Opera seems to do okay, but it's crashy, does weird things with spaces, and I don't like what it does with the title attribute.) Mozilla's the only one I've really seen to handle semantic elements in a sensible manner.
I'm tired of trying to represent semantic content with visual markup, and I've given up caring about IE and other browsers whose developers can't be bothered to support valid and useful HTML elements. NS4 especially, since it's just plain broken. In the end, semantic markup is the only hope, not only for the disabled, but for those of us who want to do any real work with documents.
-
Re:Beyond FUD, ...
I said this myself recently.
-
arrrrggghhhhThis really isn't fair. From the end of my most recent log entry:
I'm extremely upset. 8 hours ago I downloaded Mozilla 1.2b for Win32 for Joie's parents' computer. It looks like they released 1.2 while I was downloading 1.2b. This isn't the first time a fresh download of mine has been obsoleted, but never this quickly.
So today I downloaded 1.2. This is quite upsetting.
Anyway, in order to save Bugzilla the crush, I'm pasting the bug report (#182500) here. It seems that the main issues are broken user-defined XML tags, broken document.write(), and checkins to the 1.2 branch missing in the release.
This is a meta-bug whose dependencies will be problems caused by the incorrect backout described in bug 167493 comment 21. Some of these bugs have been reported as Windows-only, but I've also been able to reproduce them on a gcc 3.2.1 Linux build with -O2.
[Emphasis mine.]------- Additional Comment #1 From David Baron 2002-11-28 07:38 -------
I've corrected the backout on the 1.2 branch (although I admit I only tested the change on the trunk, but I did the backout by backing out the backout with cvs up -j -j and then backing out the original checkin the same way). It remains to be seen what (if anything) we'll do with the 1.2 release.------- Additional Comment #2 From Malcolm Rowe 2002-11-28 08:26 -------
We may have to do something with the 1.2 branch anyway. Some of the checkins to the 1.2 branch disappeared from the 1.2 release - see bug 182506.------- Additional Comment #3 From David Baron 2002-11-28 09:07 -------
I think I've gone through all the Browser bugs filed between the 1.2 release and now (mostly by just skimming bug summaries), and added all the relevant dependencies. However, bug 182317 and bug 182433 are probably also dependencies of this bug, but I didn't add them since I'm not sure.------- Additional Comment #4 From Phil Schwartau 2002-11-28 13:21 -------
Note I've added this bug as a dependency:bug 182253, "document.write() eats initial characters in 1.2"
It explains why so many sites with DHTML menus are being hit by the current bug. The sites are using document.write() to create them -
------- Additional Comment #5 From Dawn Endico 2002-11-29 16:50 -------
I removed links to 1.2 from the releases page and the home page, and announced the release of 1.2.1 when we have a correct tag and new builds. Since this happened on a 4 day holiday weekend the new release may not happen till Monday.------- Additional Comment #6 From Bryan 2002-11-29 17:28 -------
Hi,
Yes I did see it happen in that relase but somebody beated me to the punch. Are you giong to remove it form the ftp://ftp.mozilla.org/pub/mozilla/realses page or you going to keep it there for people to download and test this problem. IF you can e-mail me wiht that info that will be great I will like to see still on there for the people who want to take risks like me.------- Additional Comment #7 From Asa Dotzler 2002-11-29 20:10 -------
We're not talking about a security exploit or even major dataloss here. I see no need to re-write history. The 1.2 release will stay where it is.This bug is likely to see some traffic. I'm taking this oportunity to ask all of you folks that read about this bug at mozillazine or slashdot or wherever to not comment. Unless you're actually working on this problem your comments will only get in the way. Thanks.
-
Re:Browser wars? That's so three years ago
We're talking about actual running speed, as in the time required to render a given web page. IE is faster than other browsers.
I read a story in The Psychology of Computer Programming about a guy brought in to look at some sort of card-based system (for manufacturing cars, I think). He came to the conclusion that it needed a complete overhaul, as the existing system was brute-forced and called for things like cars with 6 wheels and no steering wheel. The code would break in random places, and any addition or removal of options would require the generation of hundreds or thousands of new possibility cards. So he redid it, and it ran much more sensibly.
When he explained his new software at the meeting, the programmer who had written the original software grew defensive. "My software", he pontificated, "takes only 850ms/card. How long does yours take?" The new guy adroitly dodged the question. "I can write one that takes 0ms/card, if it doesn't have to work."
-
Re:Some thoughts
And quite frankly, knowing the language du jour is incredibly valuable, and picking up Java, or any other language, in your "spare time" in college is so preposterous that it only serves to make you look foolish for even suggesting it.
Really.
As I said, I haven't gone to college, but the fact that it seems as if it would prevent you from learning anything even the slightest bit outside the official curriculum is making me less enthusiastic about ever trying it.
I'd just like to note that I learned Java in my spare time in high school (I'm guessing freshman year, when the world is a very strange and confusing place). I found one of Sun's very early basic Java training guides (one that refers to HotJava 0.9, etc) and just went for it. And I kept coding.
You mention later in this thread that you were forced to get a job answering phones. I don't really have much sympathy, considering that I'm stuck in retail selling furniture right now. A coworker of mine was a Navy reactor operator, got a BS in CS, and is now a stockboy. Another coworker completed most of an aerospace engineering degree (and possibly completed an MIS degree) and is now a cashier.
I'm still coding (although sadly I haven't gotten some of my more recent projects posted yet). In my current job, I implemented an (admittedly somewhat simple) application in Scheme, on my PDA, in the tiny little 15min breaks I get, over the course of a week and a half or so, just to make my job easier and for the fun of it. I've just about finished a second and more complex app, in the same circumstances. And I'd never used Scheme before, nor programmed for PalmOS.
-
Re:Some thoughts
And quite frankly, knowing the language du jour is incredibly valuable, and picking up Java, or any other language, in your "spare time" in college is so preposterous that it only serves to make you look foolish for even suggesting it.
Really.
As I said, I haven't gone to college, but the fact that it seems as if it would prevent you from learning anything even the slightest bit outside the official curriculum is making me less enthusiastic about ever trying it.
I'd just like to note that I learned Java in my spare time in high school (I'm guessing freshman year, when the world is a very strange and confusing place). I found one of Sun's very early basic Java training guides (one that refers to HotJava 0.9, etc) and just went for it. And I kept coding.
You mention later in this thread that you were forced to get a job answering phones. I don't really have much sympathy, considering that I'm stuck in retail selling furniture right now. A coworker of mine was a Navy reactor operator, got a BS in CS, and is now a stockboy. Another coworker completed most of an aerospace engineering degree (and possibly completed an MIS degree) and is now a cashier.
I'm still coding (although sadly I haven't gotten some of my more recent projects posted yet). In my current job, I implemented an (admittedly somewhat simple) application in Scheme, on my PDA, in the tiny little 15min breaks I get, over the course of a week and a half or so, just to make my job easier and for the fun of it. I've just about finished a second and more complex app, in the same circumstances. And I'd never used Scheme before, nor programmed for PalmOS.
-
Re:Huh?When I wrote my first PalmOS app, I used the impressive LispMe Scheme environment. I have a pretty heavy Lisp background, so admittedly I had a running start, but I'm a Common Lisp guy and there are enough differences to keep it from being completely trivial. I loaded the LispMe reference into Plucker and wrote the whole thing during downtime while walking around on the floor. No reference books, no Web access, nothing. And it didn't take long.
You don't need to write everything in assembly, you know. High level languages are there for a reason.
-
Re:Some more information
Back when I worked at Sun, I had a nasty experience involving final. I performed the same experiment you did, with the same results, and wrote a paper about it. Yes, it does suck.
-
Re:Small irony
wasn't the addition of hyperlinks to the page without the author's knowledge one of the features that was widely critizied in the upcoming version of Internet Explorer?
Not by me it wasn't (you may have to scroll down a bit).
-
I used one of theseAt my previous employer I had one of these to switch between my laptop (Sony Vaio Z505, mmm) and my tower (HP Kayak, bleh). I'm almost positive it was the GCS124U, but it didn't have the OSD stuff they mentioned in the review. I remember that the one thing which annoyed me about the KVM was that there was no way to jump past the 2 empty slots, and there wasn't any way to switch via a keystroke or anything but the Big Button. Then again, I was running Slackware, so maybe it required some sort of special software. Other than that, it was a really solid unit, and I highly recommend it.
You can see my setup right before they laid us all off. And of course they kept the KVM and the shiny laptop...
:( -
Re:Valley startup syndrome. My life in a bucket.Well, I'd like to thank all of you who replied with comments and/or advice. Even streetlawyer; he had 1 or 2 sentences of thought-provoking value.
I really liked the ideas about making the managers manage (whiteboards and all) and was actually planning to implement such a scheme (well, I was going to make a little HTTP app to do it, but whatever
:). I had also decided that it wasn't worth scrounging for respect, and had started checking out other opportunities.We were pretty much all laid off yesterday. There is some irony in this.
--
-
Re:My God...
-
I've done this... sort ofWell, I know it's nowhere near what these guys are doing, but this brought back a neat memory (one of the few) from high school. My biology teacher was one of the sadistic ones, and one week he decided to assign an 8x8 Punnet square. My friend and I looked at each other and said, "Why do it manually?"
Thus was The Punnetizer born. Once I had the basic functionality working, I went hog-wild with output formats. So you can have your Punnet squares in ASCII text, HTML, LaTeX, and CSV. What was really fun was running it on a StarFire with 2GB of RAM with the maximum number of traits. The output HTML was something like 347MB.
:PAnyway, that was one of the few times we impressed Cowell. He actually volunteered to give us extra credit. Of course, he graded our next assignment extra tough, but oh well.
:P
--
-
Re:Valley startup syndrome. My life in a bucket.
As an interesting side note, I work with Zeio. He's the "IT guy" mentioned below...
Several things struck me immediately in this article:
The application I had written was finished, but I received no kudos from the management at the team meeting. [...] I fell just short of "superstar." It wasn't for lack of intellect, I was told, but for lack of focus. Overdelivery was my coping mechanism; I figured that no one would be able to overlook the fact that even though I was spread far too thin, I kept hitting deadlines.
This is me, except for the "meeting deadlines" part (I'll be the first to admit that long-term concentration is not my strong point). Where I work, I'm having my "top priority" constantly jerked out from under me by my boss. Then I rush to get acquainted with the new situation, rush to get something accomplished, get 50%-90% done, and then get my "top priority" reset again.
The most frustrating experience I can recall in recent memory is when I had been working on learning our new system and porting my bug fixes to it (despite being told that I'd be a valuable team member, come up with neat stuff, etc, I ended up getting assigned to bug fix after bug fix) when I was told that I absolutely needed to drop everything and work on getting a new QA server set up. So I did. I got in sometime in the morning and worked completely straight until 1900, no breaks of any sort, my coworker hovering over my shoulder and breathing tobacco-smoke-tinged breath on me. Finally, I finished what I could do, and with a splitting headache, I took my laptop and sat on one of our futons.
"Did you finish the bug fixes?" I look up to see my boss standing over me. "What?" I am the tiniest bit incredulous. "What's the status of the bug fixes?" "Not done." "Why not?" "Because you told me I had a new top priority." "Well, yes, but you have other priorities as well." Apparently "drop everything" has a different meaning for different people.
Anyway, this is pretty much par for the course. When I do get a moment to myself, I'm unable to just sit down and code. I can't just hack new code in between 5e6 other things; my mind doesn't work that way. I'm not blaming anyone else for this, either — I know I'm not getting anything done — but it sucks to want to be creating new code, to add a little piece of myself to our product, but to sit and fester when I have the chance to do so.
So I'm unproductive, unhappy, and unfocused. Yippee. This is not at all the environment I was promised when I was hired, and a number of coworkers have exactly the same cheated feeling. I'm the butt of all jokes, the person all odd jobs get handed to, and the assumption is always that I can pick up whatever crap J. Random Sloppy Coder left lying about. My suggestions are mocked, my self-esteem is shot, and at the core, I know only I can earn any respect for myself, but I'm sick of trying to impress these people. Oh, and when I had a deadline the next morning and did my best to stick to my word and have it ready, I was openly insulted for being so gauche as to spend the night at the office.
My resumé's up now, and I've got a few job offers coming in, but I don't know how firm they are, and I really don't want to leave one company in which I have stock options (no matter how few) and a decent salary for another one which might be just as bad.
I've taken to sitting around with our IT guy and posting to Slashdot. I don't feel like a vile festering leech; I'm actually helping get things done for the company, but it's not what I was hired to do, and I know that my "projects" are getting held up while I cower in the corner. I'm just hoping that I can work myself back up to writing something decent tomorrow or this weekend (yay for wasting my weekends doing a poor job of recovering the time lost during the week).
AND I HATE THE FLUORESCENT LIGHTS!!! They give me painful headaches and destroy my concentration. But what am I supposed to do? Sabotage the circuit breakers?
Whee. What a rant.
:-PIf you're a manager, the one useful thing I hope you get from reading this post post is to give your people a chance to accomplish what you've assigned them, and treat them as competent professionals.
--
-
thoughts on Paul Graham and Common Lisp
I'm a big fan of Common Lisp as well as Paul Graham (having read his book ANSI Common Lisp, I can see that he possesses both in-depth technical knowledge and a sense of humor). This article seems to match what I've read of him in quality, and I look forward to reading it in more depth when I get home.
I'm not a Lisp guru by any means, but the one thing that I always get a kick out of is how easy it is to become a low-level guru. After a few weeks of playing, I was doing things I wouldn't have dreamed of doing in C or Java. And it changes one's perspective. It all translates to machine code at the lowest level, of course, but after learning Lisp I can say without a doubt that I'm a better C programmer.
Lisp is an interesting language, because in some ways it's ridiculously high level (closures, generic functions, garbage collection, et cetera), but you're also able to get down and dirty with the cons cells with no trouble. I think this quote expresses it best:
What I like about Lisp is that you can feel the bits between your toes.
Lisp is extremely versatile. While it was originally used in AI, it's honestly the best tool for most situations I come across. (You can see one thing I've done here, and I've done some other stuff that I haven't had a chance to post yet.) Whenever I need to do more in the shell than loop through a few files, I write it in Lisp (I've written 5-line programs to leech an entire Web page's MP3 archive). Lisp is great at processing logs, the output of various subprocesses, and other such things. It's also got a wonderful OO system.-- Drew McDermott
Graham's "Blub" example holds true for everyone I've met who has a disdain for Lisp. The advanced features it provides really do go over their heads, which is sad, because these are often intelligent people. Also, they don't look beyond the syntax differences, and often have a lot of misinformation (Lisp is slow, you can't do iteration in Lisp, Lisp is for lists and AI) fed to them by CS professors or whoever. I also often see a lot of posts from newbies who want to write "C-Lisp" and give up when that doesn't work. Lisp is a different paradigm, and needs to be treated as such.
If you're interested in Lisp, I would recommend reading The Evolution of Lisp (don't be angry at the poor fonts in the PDF; they didn't use scalable TeX fonts, the weenies
:), Paul Graham's ANSI Common Lisp, and Winston and Horn's LISP, 3rd Edition (but ignore them when they disparage car and cdr), in that order.Also, don't be confused by the various Lisps out there. First, ignore Emacs Lisp. Among its quirkyisms, it's dynamically scoped, which means that if you declare a variable, every function you call will also have access to that variable. Secondly, Scheme and Common Lisp are vastly different. Scheme is much leaner, and has 1 namespace, which means you can't name a variable and a function the same thing (I dislike this, but it's a hotly contested issue). Common Lisp has a huge set of standard APIs and much more versatility prebuilt into its core, while Scheme tries to stay small so as to provide an easily implementable standard. I'm a Common Lisp man, myself, but try things out for yourself.
One final thing is that if you hang out with them, you'll realize that most of the long-time posters are extremely knowledgable and have a great sense of heritage. I've learned a great deal by simply lurking through their flamewars, since I find out a lot about what issues may crop up for an individual programmer.
If you want a bit more advocacy, see my recent posts on the subject.
--
-
Re:obscurity of Lisp and functional languages
I've been planning for quite a while to write my own site engine in ANSI CL. I don't like CL-HTTP for a number of reasons:
- It seemed overly complex, from the quick overview I gave it.
- It has a (to my mind) truly vile license agreement.
- I want to do it myself. I feel that taking preexisting software projects will only get you so far, and if you have a specific goal in mind, it can often be better to start from scratch, so you have a firm understanding of your project's foundation.
Anyway, I haven't gotten beyond writing a few really silly socket demos for myself, but I keep planning to start RSN. My general idea is to have a core functionality of receiving HTTP requests and handing them off to various hooks. I'd probably write a simple reference server that serves up static files and such.
From there, I'd build a second layer of actual site functionality. My goal is to move quadium.net over to this server once its basic implementation is working correctly. I want to have everything accessible as content chunks, not HTML files, and I have some neat ideas on organization, linking, historical context, and a format-independent front-end (for generating WML (ugh) or PDFs or whatever from the site automatically).
One other goal I have is to avoid a database backend, keeping everything as native Lisp data structures. I don't know how feasible or wise this is, but some decent prototyping should allow me to get a general idea.
Wow. I'm very annoyed that I haven't worked on this more. I think I'll play around tonight.
--
-
wowI've been saying for years that this kind of anonymous tip thing is a bad idea. The way it's set up eliminates any other moderate options, leaving only the drastic full red alert panic reaction. It's similar to the situation with teachers and counselors; they are required to report instances of abuse (or even suspected abuse) and therefore have lost any discretion or ability to help. Here's a hint, kids: unless you're comfortable with public and forceful police involvement with your situation, never tell a teacher or counselor anything.
--
-
Re:Corporate presence in schools
It encourages duplicity amongst school children and could lead to greater levels of fear and viciousness in revenge. How often in high school did someone piss you off and you wished you had a way to really get back at them?
No kidding. It gets even scarier when you add profit to the list of possible motivations for reporting your enemies.
--
-
Re:TypeWell, according to jwz:
Oh, we'll have both kinds: country and western.
--
vsync@quadium.net, hopeless jwz fanboy -
Re:A little ironic..
Too weird. I made an incredibly similar poster and put it up in my school.
-
abddfr efrdgfdf
When the stories started coming out of Columbine, I was horrified--not because I couldn't believe things like that would happen ("yeah, they were freaks, so we called them fags and squirted ketchup on them") but because the things I had run into myself had actually been carried out to the extent of driving somebody to kill. These people snapped, and in a way I'm selfishly glad they just shot a bunch of random people. I don't condone their actions at all, but if they had actually gone after their tormentors and left innocent people alone, I don't know how much I would have been able to hold it against them. There is only so much abuse a person can be expected to take, and the stuff getting thrown at you in high school would make a sadistic Nazi guard proud.
I always feel kind of bad mentioning this stuff, because I know it's nowhere near the magnitude of what I see others going through, but I had a very hard time in school. I didn't go out of my way to avoid people; I tried (every day!) to make friends. But for some reason I just didn't fit, and so a number of people decided to make me their primary target.
For those of you who haven't experienced what I'm talking about, imagine that you are required to report to a certain place every day, and throughout the whole day someone is right by your side, publically insulting you. The idea of schools being a place of education is a joke, because aside from them being tuned only to a specific learning style, it's impossible to learn when you dread going to your most interesting class because some guy in it has decided you deserve public humiliation. You don't dare try to actively learn because you know it will attract more attention, and therefore mockery.
Oh yeah, girls. I wouldn't consider myself incredibly attractive, but I'm not so low on self-esteem to consider myself repulsive. And yet girls didn't ever talk to me, except if they needed, say, help with their calculator or something. I got to the point of slapping myself romantically if I even noticed a girl and just thinking "Don't bother. You'll just get hurt." When you see everyone holding hands with their current romantic obsessions, and you have to keep yourself from even entertaining the smallest crush, that's gotta do some damage.
Thing is, my little adventures notwithstanding, I'd say I didn't even go through a significant fraction of the stuff I hear about, and I could feel myself ready to snap. My mind just bent under the pressure until I actually wished I would just start ranting and screaming in class and I could let it out; maybe it would get some attention and things would ease up a little. But I didn't. I have to point out that Mr. Gill, my history teacher, helped significantly in this regard. I'm not sure he ever really understood fully why many of the assignments were intellectually offensive to me and why I couldn't seem to have a social life, but he made a little time to listen, and that was important.
It's true - the world after high school is a big, beautiful place.
I'll second that. I made up my mind to quit after my junior year, and I went and took my GED (2.5 months ago, I think). I planned to just go on to college, but things didn't happen that way, and now I've got a full-time programming job. Salary, benefits, and everything; I've got my own apartment, and life is good. There's still a ton of stress, but it's amazing how life can be a little bit less horrible when the people around you aren't actively tormenting you for amusement.
Interestingly, I was on the train home from work last night when I saw some kids (I'd guess high school age) riding the same car as me. I instantly tensed up; my primitive Pavlovian response was to expect them to point and snicker, or maybe walk over and taunt me. That they didn't was an incredible relief.
If you're in a similar situation, and the pressure just keeps building up, my advice is get out. My guess is it's distracting you from getting "good grades" anyway. You've probably arrogantly told yourself "I know most of this stuff; I can do it better than they're teaching it." Okay, prove it. If you're willing to work hard and know what you're doing, you can at least scrape by, and I know I would rather do that than suffer what I know must be going on in the lives of so many kids.
-
Big deal...They did this at my high school and at every public library I've been to. I just turned it into a game to see how many distinct ways to bypass the "security" I could find and how fast I could get.
I can sit down at almost any "locked-down kiosk" and be completely in control within 10 seconds (a minute for the well-done ones). Take that, librarians! =)
-
I had to deal with this kind of thingI got suspended from my high school for 5 days due to posters I put up in the aftermath of Columbine (I was in the Jefferson County school district at the time).
After that, I skipped my senior year, got my GED, and now have a great job at a California startup. Now I just shake my head sadly as I hear about each "new study" or whatever.
-
Re:I can't believe it
oh man... you exactly described an idea I thought up a few days ago, and am planning to implement this week. check my site for details soon... this garbage is getting out of hand, and for once i am deliberately going to step in the FBI's way.
-
Re:Predictable
I have a demoronised mirror of the MPAA brief on my site.
-
Re:So, lets see if I have this right...
>your servers can't handle the current demand so you put a link to it
>on Slashdot!?Okay, good point... =) Seriously, though, our servers were fine (the "crushed" was metaphorical, and meant to show how I thought it was nifty-neato that the unwashed masses can still act of their own volition, without an actual
/. link). The main thing was bandwidth, and the people here did a great job getting the connection upped. I wasn't really involved in that, but I did get to look at pretty network load graphs.Do you really think this guy or his employer has anything to do with the "Main Gnutella site?" Want to lay odds this guy is really a RIAA/MPAA Stooge?
I have nothing to do with Gnutella. My employer has nothing to do with it, either, except that we host it. And most of the employees know the people involved (I don't really, since I'm kinda new there).
I hate this sort of thing, but I might as well point out that I am speaking personally and not as an agent of my employer, that my employer is merely hosting the data and not supporting it, cigarettes cause cancer, et cetera, et cetera, et cetera.
Why would anyone involved with the Gnutella site pose such a question to Cliff, especially worded in this rather odd fashion?
See above. And I posted it because I am genuinely interested... The only MP3s I have are ripped from my own CDs or from MP3.com, and I have never used Napster or Gnutella. But it's interesting, and I think the social effects could be far-reaching. Or not.
-
Re:$3.000?
I wrote a Java class to convert dates automatically...
-
Re:PaymentThis is sad but true. I personally support free software, but it was still nice that the little guys were trying to make money without being sucked into yet another giant faceless corporation.
Personally, I wouldn't want to make my living off of the free software I write. I think it would create too much of a conflict of interest for me. It would be nice, though, if there was a better way to encourage (voluntary) profits for free software developers. Right now, at least, "libre" == "gratis".
-
I had a dream like this
Once I dreamed that I was reprogramming my brain.
-
I got into trouble for protesting this stuff
We had tons of CrimeStoppers posters at my school, saying nothing but "Remain anonymous. Earn $2000." I put up posters protesting this, and was suspended.