Struts Kick Start
What is Struts?
Struts is a framework for developing web applications. It is a distilation of the current set of known best practices into a working code set that can be extended to meet almost any web application requirements. It part of the Jakarta Project at the Apache Software Foundation.
What do I know about Struts? I have been developing web applications, using Java, for four years and using struts for over a year, and am a regular participant on the Struts mailing list. I was also a technical reviewer for one of the other Struts Books released this fall and was recently invited to speak at the University of Wisconsin, Eau Claire on the use of Struts.
What's good about this book? There are many excellent things that I could point to. I particularly like the obvious depth of research that accompanies this book. There is a very interesting history of the development of the MVC design pattern and they even name the inventor. Do you know who invented MVC? If you want to know, buy the book! The chapters cover everything that you will need to know, in the order you are most likely to need to know it. There's even a chapter explaining the "struts-config.xml" file's DTD! (You may want to skip that on the first few readings :-)
There is good coverage of the Struts taglibs. I see a lot of questions about these on the mailing lists, so this information is very timely and it looks very well explained.
I like the coverage of other open source tools that work well with Struts. This is an important point because Struts does not do everything for you (by design), so there will be areas that will benefit from other tools. I'm looking forward to trying out some of their recommendations and easing my own Struts development lifecycles.
What's not so good? Just one niggle, and it's more of a programming style issue, but in their example code they have references to their business objects. They explain that it is important to separate out business logic from action logic, which it is, but then proceed to use their business object within the action.
Now, I realise that example code is not the same thing as robust, production-ready code, but when people are first learning a language or framework, they tend to copy exactly what they see in the book they are learning from. Even though example code should be light on error checking, it should be heavy on correctness and good style.
Should you rush out and buy it? If you are about to use Struts on a project, are new to Struts and need dead tree documentation for those RTFM moments or are evaluating Struts for future projects, then you absolutely need this book.
If you are an intermediate Struts user, then this book would still be very useful to you and I can certainly recommend it.
If you are an experienced Struts user, then you've almost certainly exchanged emails with James or Kevin, on the Struts mailing list, so you can make your own mind up!
Table of Contents
- Struts in Context
- The Model-View-Controller Design Pattern
- Hello World!
- HTTP Protocol
- JSP, Taglibs and JSTL
- The Sample Application
- View Components
- The Controller
- Model Components
- The struts-config.xml File
- How the Struts Tag Libraries Work
- Struts HTML Tags
- Struts Bean Tags
- Struts Logic Tags
- The Nested and Template Struts Tag Libraries
- The Struts Tiles Tag Library
- DynaForms and the Validator
- Using Struts with Enterprise Java Beans
- Using Struts with Web Services
- Building, Deploying and Testing Struts Applications
You can purchase Struts Kick Start from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Struts kick start you!
Why learn a whole new framwork? A combination of FrontPage and MS Access will do wonders for you - MS Access will even make the VB Code for you after you use the easy drop down utilities to create macros. From there, if you really need more, it is a simple step to port it over to MS SQL Server 2000, which is much, much more enterprise scalable than PostGreSQL or MySQL.
Without Struts, my project at work would be about 100 times more difficult than it already is.
I think Struts has a very bright future...
That's simple man.. Al Gore invented the MVC.
-- jimmycarter
What is Struts?
Struts is a framework for developing web applications. It is a distilation of the current set of known best practices into a working code set that can be extended to meet almost any web application requirements. It part of the Jakarta Project at the Apache Software Foundation.
Struts is a Java/J2EE based framework. Although you could change it to use with other languages, it has taglibs and other features that are pretty much Java only.
Why such an influx of Struts books? Its becoming quite the standard in the Java/JSP+servlet world. J2EE developers are still being hired (hear that unemployed CS people?), and have been strong through the IT drought, and Struts experience is an even bigger plus.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
This morning I'll be escorting my wife to the hospital, where the doctors will perform a caesarean section to remove our first child. She didn't want to do it this way - neither of us did - but sometimes the Fates decide otherwise. The Fates or, in our case, government employees.
On the morning of October 26th Mary and I entered Portland International Airport, en route to the Las Vegas wedding of one of my best friends. Although we live in Los Angeles, we'd been in Oregon working on a film, and up to that point had had nothing but praise to shower on the city of Portland, a refreshing change of pace from our own suffocating metropolis.
At the security checkpoint I was led aside for the "inspection" that's all the rage at airports these days. My shoes were removed. I was told to take off my sweater, then to fold over the waistband of my pants. My baseball hat, hastily jammed on my head at 5 AM, was removed and assiduously examined ("Anything could be in here, sir," I was told, after I asked what I could hide in a baseball hat. Yeah. Anything.) Soon I was standing on one foot, my arms stretched out, the other leg sticking out in front of me àla a DUI test. I began to get pissed off, as most normal people would. My anger increased when I realized that the newly knighted federal employees weren't just examining me, but my 7½ months pregnant wife as well. I'd originally thought that I'd simply been randomly selected for the more excessive than normal search. You know, Number 50 or whatever. Apparently not though - it was both of us. These are your new threats, America: pregnant accountants and their sleepy husbands flying to weddings.
After some more grumbling on my part they eventually finished with me and I went to retrieve our luggage from the x-ray machine. Upon returning I found my wife sitting in a chair, crying. Mary rarely cries, and certainly not in public. When I asked her what was the matter, she tried to quell her tears and sobbed, "I'm sorry...it's...they touched my breasts...and..." That's all I heard. I marched up to the woman who'd been examining her and shouted, "What did you do to her?" Later I found out that in addition to touching her swollen breasts - to protect the American citizenry - the employee had asked that she lift up her shirt. Not behind a screen, not off to the side - no, right there, directly in front of the hundred or so passengers standing in line. And for you women who've been pregnant and worn maternity pants, you know how ridiculous those things look. "I felt like a clown," my wife told me later. "On display for all these people, with the cotton panel on my pants and my stomach sticking out. When I sat down I just lost my composure and began to cry. That's when you walked up."
Of course when I say she "told me later," it's because she wasn't able to tell me at the time, because as soon as I demanded to know what the federal employee had done to make her cry, I was swarmed by Portland police officers. Instantly. Three of them, cinching my arms, locking me in handcuffs, and telling me I was under arrest. Now my wife really began to cry. As they led me away and she ran alongside, I implored her to calm down, to think of the baby, promising her that everything would turn out all right. She faded into the distance and I was shoved into an elevator, a cop holding each arm. After making me face the corner, the head honcho told that I was under arrest and that I wouldn't be flying that day - that I was in fact a "menace."
It took me a while to regain my composure. I felt like I was one of those guys in The Gulag Archipelago who, because the proceedings all seem so unreal, doesn't fully realize that he is in fact being arrested in a public place in front of crowds of people for...for what? I didn't know what the crime was. Didn't matter. Once upstairs, the officers made me remove my shoes and my hat and tossed me into a cell. Yes, your airports have prison cells, just like your amusement parks, train stations, universities, and national forests. Let freedom reign.
After a short time I received a visit from the arresting officer. "Mr. Monahan," he started, "Are you on drugs?"
Was this even real? "No, I'm not on drugs."
"Should you be?"
"What do you mean?"
"Should you be on any type of medication?"
"No."
"Then why'd you react that way back there?"
You see the thinking? You see what passes for reasoning among your domestic shock troops these days? Only "whackos" get angry over seeing the woman they've been with for ten years in tears because someone has touched her breasts. That kind of reaction - love, protection - it's mind-boggling! "Mr. Monahan, are you on drugs?" His snide words rang inside my head. This is my wife, finally pregnant with our first child after months of failed attempts, after the depressing shock of the miscarriage last year, my wife who'd been walking on a cloud over having the opportunity to be a mother...and my anger is simply unfathomable to the guy standing in front of me, the guy who earns a living thanks to my taxes, the guy whose family I feed through my labor. What I did wasn't normal. No, I reacted like a drug addict would've. I was so disgusted I felt like vomiting. But that was just the beginning.
An hour later, after I'd been gallantly assured by the officer that I wouldn't be attending my friend's wedding that day, I heard Mary's voice outside my cell. The officer was speaking loudly, letting her know that he was planning on doing me a favor... which everyone knows is never a real favor. He wasn't going to come over and help me work on my car or move some furniture. No, his "favor" was this: He'd decided not to charge me with a felony.
Think about that for a second. Rapes, car-jackings, murders, arsons - those are felonies. So is yelling in an airport now, apparently. I hadn't realized, though I should have. Luckily, I was getting a favor, though. I was merely going to be slapped with a misdemeanor.
"Here's your court date," he said as I was released from my cell. In addition, I was banned from Portland International for 90 days, and just in case I was thinking of coming over and hanging out around its perimeter, the officer gave me a map with the boundaries highlighted, sternly warning me against trespassing. Then he and a second officer escorted us off the grounds. Mary and I hurriedly drove two and a half hours in the rain to Seattle, where we eventually caught a flight to Vegas. But the officer was true to his word - we missed my friend's wedding. The fact that he'd been in my own wedding party, the fact that a once in a lifetime event was stolen from us - well, who cares, right?
Upon our return to Portland (I'd had to fly into Seattle and drive back down), we immediately began contacting attorneys. We aren't litigious people - we wanted no money. I'm not even sure what we fully wanted. An apology? A reprimand? I don't know. It doesn't matter though, because we couldn't afford a lawyer, it turned out. $4,000 was the average figure bandied about as a retaining fee. Sorry, but I've got a new baby on the way. So we called the ACLU, figuring they existed for just such incidents as these. And they do apparently...but only if we were minorities. That's what they told us.
In the meantime, I'd appealed my suspension from PDX. A week or so later I got a response from the Director of Aviation. After telling me how, in the aftermath of 9/11, most passengers not only accept additional airport screening but welcome it, he cut to the chase:
"After a review of the police report and my discussions with police staff, as well as a review of the TSA's report on this incident, I concur with the officer's decision to take you into custody and to issue a citation to you for disorderly conduct. That being said, because I also understand that you were upset and acted on your emotions, I am willing to lift the Airport Exclusion Order...."
Attached to this letter was the report the officer had filled out. I'd like to say I couldn't believe it, but in a way, I could. It's seemingly becoming the norm in America - lies and deliberate distortions on the part of those in power, no matter how much or how little power they actually wield.
The gist of his report was this: From the get go I wasn't following the screener's directions. I was "squinting my eyes" and talking to my wife in a "low, forced voice" while "excitedly swinging my arms." Twice I began to walk away from the screener, inhaling and exhaling forcefully. When I'd completed the physical exam, I walked to the luggage screening area, where a second screener took a pair of scissors from my suitcase. At this point I yelled, "What the %*&$% is going on? This is &*#&$%!" The officer, who'd already been called over by one of the screeners, became afraid for the TSA staff and the many travelers. He required the assistance of a second officer as he "struggled" to get me into handcuffs, then for "cover" called over a third as well. It was only at this point that my wife began to cry hysterically.
There was nothing poetic in my reaction to the arrest report. I didn't crumple it in my fist and swear that justice would be served, promising to sacrifice my resources and time to see that it would. I simply stared. Clearly the officer didn't have the guts to write down what had really happened. It might not look too good to see that stuff about the pregnant woman in tears because she'd been humiliated. Instead this was the official scenario being presented for the permanent record. It doesn't even matter that it's the most implausible sounding situation you can think of. "Hey, what the...godammit, they're taking our scissors, honey!" Why didn't he write in anything about a monkey wearing a fez?
True, the TSA staff had expropriated a pair of scissors from our toiletries kit - the story wasn't entirely made up. Except that I'd been locked in airport jail at the time. I didn't know anything about any scissors until Mary told me on our drive up to Seattle. They'd questioned her about them while I was in the bowels of the airport sitting in my cell.
So I wrote back, indignation and disgust flooding my brain.
"[W]hile I'm not sure, I'd guess that the entire incident is captured on video. Memory is imperfect on everyone's part, but the footage won't lie. I realize it might be procedurally difficult for you to view this, but if you could, I'd appreciate it. There's no willful disregard of screening directions. No explosion over the discovery of a pair of scissors in a suitcase. No struggle to put handcuffs on. There's a tired man, early in the morning, unhappily going through a rigorous procedure and then reacting to the tears of his pregnant wife."
Eventually we heard back from a different person, the guy in charge of the TSA airport screeners. One of his employees had made the damning statement about me exploding over her scissor discovery, and the officer had deftly incorporated that statement into his report. We asked the guy if he could find out why she'd said this - couldn't she possibly be mistaken? "Oh, can't do that, my hands are tied. It's kind of like leading a witness - I could get in trouble, heh heh." Then what about the videotape? Why not watch that? That would exonerate me. "Oh, we destroy all video after three days."
Sure you do.
A few days later we heard from him again. He just wanted to inform us that he'd received corroboration of the officer's report from the officer's superior, a name we didn't recognize. "But...he wasn't even there," my wife said.
"Yeah, well, uh, he's corroborated it though."
That's how it works.
"Oh, and we did look at the videotape. Inconclusive."
But I thought it was destroyed?
On and on it went. Due to the tenacity of my wife in making phone calls and speaking with relevant persons, the "crime" was eventually lowered to a mere citation. Only she could have done that. I would've simply accepted what was being thrown at me, trumped up charges and all, simply because I'm wholly inadequate at performing the kowtow. There's no way I could have contacted all the people Mary did and somehow pretend to be contrite. Besides, I speak in a low, forced voice, which doesn't elicit sympathy. Just police suspicion.
Weeks later at the courthouse I listened to a young DA awkwardly read the charges against me - "Mr. Monahan...umm...shouted obscenities at the airport staff...umm... umm...oh, they took some scissors from his suitcase and he became...umm...abusive at this point." If I was reading about it in Kafka I might have found something vaguely amusing in all of it. But I wasn't. I was there. Living it.
I entered a plea of nolo contendere, explaining to the judge that if I'd been a resident of Oregon, I would have definitely pled "Not Guilty." However, when that happens, your case automatically goes to a jury trial, and since I lived a thousand miles away, and was slated to return home in seven days, with a newborn due in a matter of weeks...you get the picture. "No Contest" it was. Judgment: $250 fine.
Did I feel happy? Only $250, right? No, I wasn't happy. I don't care if it's twelve cents, that's money pulled right out of my baby's mouth and fed to a disgusting legal system that will use it to propagate more incidents like this. But at the very least it was over, right? Wrong.
When we returned to Los Angeles there was an envelope waiting for me from the court. Inside wasn't a receipt for the money we'd paid. No, it was a letter telling me that what I actually owed was $309 - state assessed court costs, you know. Wouldn't you think your taxes pay for that - the state putting you on trial? No, taxes are used to hire more cops like the officer, because with our rising criminal population - people like me - hey, your average citizen demands more and more "security."
Finally I reach the piece de resistance. The week before we'd gone to the airport my wife had had her regular pre-natal checkup. The child had settled into the proper head down position for birth, continuing the remarkable pregnancy she'd been having. We returned to Portland on Sunday. On Mary's Monday appointment she was suddenly told, "Looks like your baby's gone breech." When she later spoke with her midwives in Los Angeles, they wanted to know if she'd experienced any type of trauma recently, as this often makes a child flip. "As a matter of fact..." she began, recounting the story, explaining how the child inside of her was going absolutely crazy when she was crying as the police were leading me away through the crowd.
My wife had been planning a natural childbirth. She'd read dozens of books, meticulously researched everything, and had finally decided that this was the way for her. No drugs, no numbing of sensations - just that ultimate combination of brute pain and sheer joy that belongs exclusively to mothers. But my wife is also a first-time mother, so she has what is called an "untested" pelvis. Essentially this means that a breech birth is too dangerous to attempt, for both mother and child. Therefore, she's now relegated to a c-section - hospital stay, epidural, catheter, fetal monitoring, stitches - everything she didn't want. Her natural birth has become a surgery.
We've tried everything to turn that baby. Acupuncture, chiropractic techniques, underwater handstands, elephant walking, moxibustion, bending backwards over pillows, herbs, external manipulation - all to no avail. When I walked into the living room the other night and saw her plaintively cooing with a flashlight turned onto her stomach, yet another suggested technique, my heart almost broke. It's breaking now as I write these words.
I can never prove that my child went breech because of what happened to us at the airport. But I'll always believe it. Wrongly or rightly, I'll forever think of how this man, the personification of this system, has affected the lives of my family and me. When my wife is sliced open, I'll be thinking of him. When they remove her uterus from her abdomen and lay it on her stomach, I'll be thinking of him. When I visit her and my child in the hospital instead of having them with me here in our home, I'll be thinking of him. When I assist her to the bathroom while the incision heals internally, I'll be thinking of him.
There are plenty of stories like this these days. I don't know how many I've read where the writer describes some breach of civil liberties by employees of the state, then wraps it all up with a dire warning about what we as a nation are becoming, and how if we don't put an end to it now, then we're in for heaps of trouble. Well you know what? Nothing's going to stop the inevitable. There's no policy change that's going to save us. There's no election that's going to put a halt to the onslaught of tyranny. It's here already - this country has changed for the worse and will continue to change for the worse. There is now a division between the citizenry and the state. When that state is used as a tool against me, there is no longer any reason why I should owe any allegiance to that state.
And that's the first thing that child of ours is going to learn.
REF: Sam Williams at Salon.com
.csv file and parse it. Some people even had it running as a cron job."
Educational Archive for Irony, where ever she is:
Same job. Different cubicle" With the promise of stock riches now a distant dream, VA Linux's former programmers keep the open-source faith.
By Sam Williams
July 31, 2002 | In 1999, when 22-year-old Linux developer Michael Jennings accepted a job with the promising, albeit slightly obscure, West Coast start-up company VA Linux Systems Inc., he had no idea he would be participating in one of the biggest roller-coaster rides in Silicon Valley history.
"To be perfectly blunt about it, I had no idea what an IPO was or what stock options meant," admits Jennings.
Three years and $1.4 billion in evaporated investors' money later, Jennings can no longer feign ignorance. Like a farmer who has seen a tornado from the inside, Jennings recalls the company's historic first day of public trading with a mixture of bemusement and awe.
"None of us expected it to be nearly as big as it was," he says, drifting back to Dec. 9, 1999, the day NASDAQ investors turned Jennings and many of his co-workers into momentary paper millionaires. "I don't think even the president of the company knew it was going to be such a massive deal."
That was then, of course. VA's soaring stock price -- propelled by almost every major investment fad of the late 1990s: dot-coms, b2b, open-source software -- would soon come hurtling earthward. By the end of 2000, the company was outpacing the NASDAQ collapse. Caught between plummeting market share and an investment community clamoring for profits, VA Linux dumped its core hardware business in the spring of 2001. In October 2001, after posting a quarterly loss of $290 million, VA Linux laid off the bulk of its technical staff, including Jennings.
One could forgive Jennings a moment's bitterness. Since leaving VA, Jennings has returned to his native Louisville, Ky., where he now works as director of engineering at N+1, a Linux services and training firm with no immediate IPO prospects. Asked to dish dirt on the company that pulled him west, however, Jennings, like many of his former co-workers, can only shake his head and wax nostalgic.
"VA was, without a doubt, the most incredible team of people I'd ever worked with," he says. "Laid-back. Fun. Interesting projects. The managers and V.P.s were all very approachable. For the most part, they treated the engineers just like peers.
"We were all a big group of friends."
Three years after leading the Linux charge, the words "VA Linux" elicit a complex mixture of emotions. To investors, they represent the ultimate betrayal: a can't-miss stock that missed big. To the company that changed its name to VA Software Inc. last December, they signify the distant past. To ex-employees like Jennings, however, they symbolize something larger. They symbolize a time when many of the world's best open-source programmers worked under the same roof, a time of promise and, ultimately, of failed opportunity. The epitome of investors' irrational exuberance to some, VA Linux has become the corporate equivalent of paradise lost to the open-source developers who used to work there.
Next page | It cost him $25,000 a year to work there, thanks to taxes on stock options
----
P2:: "Same job. Different cubicle" | 1, 2, 3
"I think, had they concentrated on what they were good at, which was basically creating Linux boxes better than everybody else, they would have done well," says Jeremy Allison, co-leader of the Samba project and a fellow ex-VA employee. "Basically, if they hadn't gone public, they'd be doing fine."
Such comments might qualify as a final twist of the knife to investors who bought into the company during its heyday, but as Allison is quick to note, it was VA Linux employees who bled the most following the company's moonshot IPO. Thanks to the alternative minimum tax -- an obscure tax that kicks in as soon as options are exercised and that can wallop employees who don't sell immediately -- employees who bought VA Linux shares with an intention to hold paid dearly for their loyalty.
"I know people who are going to be paying off the government for the rest of their lives," says Allison.
One such victim was Ted Arden, a former sales engineer who, thanks to VA's knockout opening-day performance and the SEC-mandated six-month "lockup" period, wound up owing more than $100,000 on $180,000 worth of vested stock. Subtracting total taxes from total salary and the money he finally did recoup from stock sales, Arden estimates it cost him $25,000 a year to be a VA Linux employee.
"Don't get me wrong," Arden says. "I had a blast there. It was one of those places where you would come in at 7 a.m. and you wouldn't leave until 1 or 2 in the morning, because you didn't want to miss anything."
Arden, like Jennings and Allison, keeps in touch with his former work mates via an ex-employee mailing list. The list goes out to roughly 100 people, of whom 20 or 30 participate on a regular basis. Arden says the discussions are candid, offering plenty of analysis of what went wrong and which managers should be sharing a bunk with Kenneth Lay at Club Fed. For the most part, however, the list offers a way to keep in touch with some of the best programmers in the business.
"People feel remorse more than anything," says Arden, now working at another Linux company. "At VA, we had more Linux knowledge in our tech support department than most companies had on their entire staff. It's sad that something like this could be brought down through mismanagement."
The term "mismanagement" gets batted about a lot in ex-VA circles. Most industry analysts credit the VA swoon to heavy hitters such as Compaq, Dell and IBM carving up the Linux server marketplace. According to International Data Corp. (IDC), VA Linux's market share in the entry-level server marketplace (IDC's term for servers costing below $100,000) plummeted 78 percent in 2001. That statistic is offset, however, by VA Linux's decision to get out of the hardware server market midway through the year. Nonetheless, says Arden, it glosses over internal mistakes that magnified the impact of lost sales.
"We were pre-building systems for deals that were forecasted but never closed," Arden says. "If you pre-build a million dollars worth of systems and you don't sell them, it's all on the books. That's where the mismanagement occurred."
VA Software representatives declined to comment for this story, but ex-employees like Doug Bone, chief operating officer of California Digital Corp., the Santa Clara company that purchased the bulk of VA Linux's hardware division in the fall of 2001, are still willing to plead the old management team's case.
According to Bone, the investment community itself was the ultimate culprit. Until the April 2000 market correction, Bone says, the bulk of VA Linux's clients were Web start-ups looking for low-cost Linux servers. When the investment tap shut off, demand crashed. With no hardware revenue to support expansion into other, more profitable arenas, company executives had to perform the equivalent of corporate triage.
"It was a simple Econ 101 effect," Bone says. "As soon as they saw contraction, the fixed costs became untenable."
A VA employee from 1994 to 2001, Bone, like Allison, is convinced that if his former employer had somehow missed the IPO window, it would still be a major player in the Linux server market today. He offers his own privately held company as evidence. Although California Digital does not release financial results, Bone says the company has found a sustainable niche and is "on record" as being profitable.
"The market is still strong," Bone says. "It's different than it was during the dot-com frenzy. You don't get as many people calling and demanding 100 servers within a month. What you do get are more biotech companies, more movie production companies and more oil exploration companies calling in and asking for Linux clusters."
Next page | Hopping from job to job, but working on the same software projects 1, 2, 3
---- P3::
As Bone is quick to admit, one major difference between the California Digital business model and the VA Linux model is cost. In 1999 VA Linux aggressively recruited programmers from throughout the open-source community, using the incentive of a big IPO payoff to distinguish itself from market rivals. Today, California Digital relies on a Bangalore-based engineering division to stay competitive. That makes it easy to understand why many open-source developers look back on the pre-IPO VA Linux with nostalgia.
Then again, time hasn't exactly been cruel to the ex-VA workforce. Because many had built up sizable reputations working on community development projects such as Samba, Enlightenment and the Linux kernel, few people contacted for this story seemed overly traumatized by the last 12 months. The same projects that once provided political cushion inside VA have performed equally well as flotation devices in the post-crash employment market.
"I didn't want to just run around and take the first job I could get," says Allison, recalling the few, brief weeks between working for VA Linux and working for rival hardware firm Hewlett-Packard. "There were plenty of companies wanting to fund Samba. It was mainly a matter of waiting until somebody came forward with the right contract."
Indeed, if the VA Linux collapse proves anything, it proves the continuity of open-source software projects and the growing power of the star programmers who run them. Reflecting on his current job, Allison sounds about as emotional as a major league baseball player who just switched uniforms.
"It's like a co-worker at SGI once said: 'Same job. Different cubicle.'"
For those working on less visible projects, the transition has been a little bumpier. Brian Finley is a former VA Linux sales engineer who also leads the development team of SystemImager, a software tool that automates the Linux installation process. During his days at VA Linux, Finley divided his time between providing software support to customers and working on SystemImager.
"During the downtime, I would work on SystemImager," Finley says. "It would make the periods of intense uptime that much more enjoyable."
Although Finley still finds SystemImager enjoyable, the number of companies willing to subsidize the work is small. Since leaving VA Linux, Finley has faced the age-old creator's dilemma.
"You want to be able to do the work you want to do, but you also want to be able to eat," says Finley, who, after a few months of contract work on non-SystemImager projects, has built up a roster of clients willing to fund SystemImager development. Clients include Hewlett-Packard, Compaq and Open Source Developers Network, or OSDN, an online subsidiary of VA Linux's current incarnation, VA Software Inc.
Because SystemImager is backed by the GPL (GNU Public License), Finley doesn't worry too much about companies misappropriating his work. Still, he has noticed a new twist to the creator's dilemma. Call it the creative manager's dilemma: Food, art or compatibility -- choose two.
"If what you're being paid to work on is specific as opposed to general, you're not getting paid to do the general maintenance work," Finley says. "If you don't find a way to fund that work too, then you ultimately end up with a piece of software that is buggy.
"It's a difficult balancing game."
Maybe that's why Finley's view of VA Linux is already sepia-toned. "It was one of the best jobs I ever had," says Finley, recalling the days when performing the usual open-source balancing act wasn't so difficult. "You were basically paid to work with Linux and do whatever you wanted to do."
Like the other veterans, Finley holds especially high regard for the pre-IPO days.
"Prior to the IPO, the company was small enough that each individual felt that their effort truly affected the company's success," Finley says. "After the IPO happened, there was a six-month period that no one could sell [shares]. I would say during that period -- I don't think that I'm alone in this -- I would have checked the stock once every five to 10 minutes. It was an exciting time. We even had a shell script written by [VA Linux CEO] Larry [Augustin] and modified by [Geoff] Mandrake [Harrison] that would go out to Yahoo, pull down the
Jennings, too, remembers the collective fascination with the VA Linux ticker price.
"There were a lot of people who would check the stock ticker multiple times a day and keep track of the minute ups and downs," he says. "Needless to say, it tended to be extremely counterproductive."
When the ticker price began its yearlong tumble, it didn't take long for stress levels to climb within the company. Through it all, however, Jennings remembers a general feeling of calm in the engineering department. Whether it was because developers were better at tuning out the bad news or simply shielded from market pressures by the nature of their open-source work, Jenning says that calm is one reason so many ex-VA employees remain in contact today.
"The way a lot of people see it is we were doing open-source before [VA Linux] and we've continued doing open source after VA Linux for the exact same reason: because we love to do it," Jennings says. "It was nice to get paid for it, but getting paid was always viewed as kind of a perk."
That many ex-VA Linux employees still get to hack for pay is probably the top reason so few complain when it comes to the former company. As the old high-tech saying goes, it's the pioneers who usually end up with the most arrows in their backs. Rather than lament what could have been, Jennings prefers to hold on to what was.
"I am not really in a position to point fingers," he says. "There are a lot of other people who were a lot closer to management, but I can say with absolute certainty it wasn't for lack of talent. And I'm not talking about myself. I'm talking about all the other people they had."
"All I can say is it was an honor to work with those people on a daily basis, and it's an honor to still have them as friends."
salon.com
About the writer Sam Williams is a freelance reporter who covers software and software development culture. He is also the author of "Free as in Freedom: Richard Stallman's Crusade For Free Software."
Sound Off Send us a Letter to the Editor
Related stories Complete list of Salon's coverage of VA Linux
If we don't fight for ourselves no one will.
I still have NO IDEA what struts does. the struts website is not helpful in a brief overview. Saying it helps develop web applications is a joke. What does it replace because I can develop web apps without struts.
Should I be using it? Im too unknowledgeable to even know what question to ask. I use EJB, and I have a webapp. I'm just baffled.
--The Wall Street Journal is read by the people who
run the country.
--The New York Times is read by people who think they
run the country.
--The Washington Post is read by people who think they
ought to run the country.
--USA Today is read by people who think they ought to
run the country but don't understand The Washington Post.
--The Los Angeles Times is read by people who wouldn't
mind running the country, if they could spare the time.
--The Boston Globe is read by people whose parents used
to run the country.
--The New York Daily News is read by people who aren't
too sure who's running the country.
--The New York Post is read by people who don't care
who's running the country, as long as they do something
scandalous.
--The San Francisco Chronicle is read by people who aren't
sure there is a country, or that a country is a good idea
in the first place.
--The Miami Herald is read by people who are running
another country.
--The Chicago Tribune is read by people who live in the
Midwest, which readers of the other newspapers don't think
is part of the country.
--Slashdot is read by people that know enough to run the country
I've been working on a reasonably sized project for some time now (still undercover, so can't go into details)... I'd been looking for a good framework to use, and Struts looked like it fitted the bill.
Until I started dealing with the display (view) side of things.
Getting to grips with the Action and ActionForm stuff is simple, and I think that anyone could do it. However, because they expect you to use all the usual standard stuff (taglibs, etc), building new taglibs and dealing with that was going to be a nightmare.
Also, the HTML taglib, when told to output XHTML only, doesn't work. tags like the BASE tag aren't closed properly.
Fortunately, I'd been looking at using Tea earlier on (Jason Hunter uses it at servlets.com). Someone on the tea mailing list posted a link to a very useful article on using Struts for the backend of a web app and Tea for the front end. You can find it here:
http://www-106.ibm.com/developerworks/library/wa-
http://www-106.ibm.com/developerworks/library/wa-
this article is so fucking sad.
Hey Slashboteers!! It's almost New Year! What will you be doing?
You god damned racist pigs.
that's what you want from webbing.
Come, skript kiddies, your next toolkit is here
Full Lyrics.
Sheena Easton invented Struts.
i thought these were going to replace struts sometime soon...
'Be the change you want to see in the world' - Al Gore
Maybe if we trot out the ol' "Al Gore invented X" meme for a few more years it might get tired, but it sure isn't yet. Hey! I have an idea! Maybe we can even COMBINE CLICHES!
Hahahaha. I'm so clever. And let me just take a moment to make a joke about cigars and interns. And maybe even drop some comment about Vincent Foster, if I'm feeling really bona fide. MMMMMhmm.
Original work: Jonkatz
Archived for the future:
"Posted by JonKatz on 2:00 Wednesday 10 March 1999
from the stop-reading-if-you-are-super-moral dept.
Engineers, programmers and futurists believe that programmable robots that provide sexual companionship are likely to be commonplace in the 21st century, at more or less the same time as computers become able to process information as quickly as the human brain. The implications of tactile sexbots, likely to contain vibrators, sound systems and other equipment, are as significant as they are unexamined. If you thought the fight over the CDA was bad, wait till Rev. Falwell and his many pious friends in Congress discover Sexbots. For better or worse, computing might be breaking down another big wall.
Techno-futurists have a sorry record when it comes to predicting technology and the future. Remember the intergalactic travel that was the centerpiece of Disney's Tomorrowland? The magnetic hover cars, cancer cures, and climate-control systems that were supposed to have been long in place by the Millenium? And only a handful of technologists imagined how big the Net would get.
But here's a futuristic vision that's a far surer and troubling bet than e-sex: sexbots.
For several years now, engineers and futurists have been writing (quietly) in academic journals and other venues about the intuitive computer-programmed robots - sexual companions that contain vibrators to provide tactile stimulation and sounds systems to provide love talk - that some researchers believe are likely to become commonplace in the next century.
A few years ago, these predictions could have been brushed off as more digital hype, but computers are obviously becoming more intelligent and intuitive, and are fast processing information as rapidly as the human brain. Inventors and futurists like Ray Kurzweil (author of The Age of Spiritual Machines), are guaranteeing that computers will equal or surpass human intelligence early in the 21st century.
So sexbots not only don't seem far-fetched, they seem likely.
The contemporary news media, odd in many ways, are never more so than when it comes to their reticence to talk openly about sex (unless it's Presidential). They talk about sex scandals and Viagra, but the ordinary experience of sexuality is almost a taboo. The Net has liberated sex from XXX-rated movie theaters and porn parlors - it's the third biggest money-maker online, after e-trading and shopping.
For better or worse, it's hard to think of a bigger killer app for computing and software than sexbots. According to a computing engineer who asked not to be quoted, prototypes of sexbots already exist in Japan.
"I guarantee you," he e-mailed me, "that within 25 years, programmable, digital sexbots will be in many, if not most, American homes and apartments." The idea of sexbots will be horrifying to many, for whom the very idea of mechanized, roboticized human passion is beyond any Orwellian nightmare. Mary Shelley, who warned in the novel "Frankenstein" about scientists playing God, and the horrors of unthinking technology, would have flipped-out over the very idea of sexbots. Yet for some people - the lonely, the severely handicapped, the isolated - sexbots could be a great relief and release. And for others - unhappy spouses, troubled adolescents - digitalized, mechanized sexuality is an open invitation to addiction or to avoiding problems of face-to-face human contact. Robotic sex would also eliminate the emotional component of sex. Like fertility drugs and cloning, this is the kind of technological issue in urgent need of discussion and consideration, even though history suggests it won't be thought about much at all in advance. Like the drugs that give couples the option of having seven or eight children at once, or the medical technology that prolongs life sometimes beyond reason, sexbots, will simply be here one day, and we'll be on our own when they appear. But sexbots are a techno-prediction that has the ring of truth. Writer Joel Snell predicted in l997 (he's quoted in Richard Rhodes new book Visions of Technology) that robots providing sexual companionship were likely to see widespread use in the future. Snell could foresee the problems. Marriages might be damaged or destroyed if spouses choose sex with sexbots over making love with their mates. Jealous lovers might destroy sexbot rivals, or sue manufacturers for emotional damage. On the other hand, Snell pointed out, people seeking clarity about their sexual identities would have a safe, reliable way to experiment. Heterosexuals might use same-sex sexbots to experiment with homosexuality or bi-sexuality. Gay people might use other-sex sexbots to try out heterosexuality. Predators with sexual addictions might no longer prey on human beings. Given that people become addicted to all sorts of pleasures from slot machines to e-mail, sexbot addiction might be inevitable. Users could become obsessed by their ever-faithful, willing-to-please sexbot lovers that never say no or get headaches, and rearrange their lives to accommodate their addictions. Support groups are inevitable. Or perhaps, Snell speculates, a new category of sexuality might emerge among humans - the technovirgin, people who find it simpler, perhaps even preferable, to have sex exclusively with sexbots. This would avoid all the emotional and physical complications of having sex with people. Like wondering if it was as good for them as it was for you. Or as bad.
Intuitive and recognotion technologies are already changing computing, from search engines to recognition software to voice recognition. Sexbots would almost surely be programmed to be highly intuitive, keeping track of what worked and what didn't. They would become better sexual partners as they learned more about their human counterparts, storing everything from gasps of pleasure to frequency of orgasm in their memory banks. Every time they had sex with a human, it might get better.
Meanwhile, sexually- transmitted diseases might fall, along with teen pregnancy, abortions, pedophilia, prostitution and Viagra prescriptions. The divorce rate might plummet as well, since Sexbots could keep marital partners happy. The affair itself might become outmoded. Why take the risk when your sexbot is waiting to meet your needs?
Technology never works in predictable ways. The idea that computing machines could take over the function of human passion is as chilling as it is fascinating. But it's also almost totally unexplored. Neo-Luddites will have a field day with the advent of digital or robotic sex, as will parents, politicians, teachers, moral guardians. If local communities flip out whenever Johnny logs onto the Playboy website, and Congress twice passed blatantly unconstitutional Communications Decency Acts to regulate "decent" speech online, how might they respond to the idea of sexbots sold next to Imacs at Compusa?
Sex is a hair-trigger issue in American politics, and the idea of machines performing it round-the-clock will rock some of the most powerful elements in society. From information to MP3's and Open Source software, computing and the Internet is about freeing up ideas and information and giving individual people more control over their own lives. It's logical that this relentless empowerment would extend to experiences like sexuality.
Sexbots seem inevitable. But in a culture that refuses to think much about either technology or sex, the one thing we do know is that we won't be ready when they get here.
"jonkatz@slashdot.org"
Junis was a TROLL
If we don't fight for ourselves no one will.
What does car parts have to do with slashdot, and computers?
Someone there doesn't know how to use it then. The first XML RSS link points to localhost:5335.
Don't get me wrong, Struts is great and I am currently using it in my applications... But, I have to ask, what the big friggin' deal with struts - why all the hype...
.02
Strust is just an implementation of what has already been developed by several companies - I will use Apple as an example. The same sort of thing is done with WebObjects in that the HTML from end and back end Java (or Obj-C) is linked with the need to create any real glue to connect them - it just sort of does it for you - with a nice IDE I might add.
WebObjects (like Struts) allows a developer to connect front end HTML to a server and pass data back and forth so that it's easier to deal with on the server...
Okay so why the rant? Well do you really hear about WebObjects being used all that much, NO! The reason (outside of the fact that when it was a NeXT product it use to cost a forture) it that the learning curve is wicked steep. That is where I see Strust going, it's a great technology, can do all sorts of cool stuff, will ease development but requires some time to get ones head around how it works.
I have seen more than a few projects that claim they use Strust when in fact they use maybe 5% of Strust and still need to use code to glue the front and middle tiers together. It's a real shame that we do not have really nice editor integration - ya ya, I know a few editors have the integration but face it folks, they all suck.
What we need is one of the big guns to step up to the plate and really integrate (and support) struts integration *wink wink* Borland...
Just my
JSF could replace Struts one day, but not for a few years at the least. JSF is still in the early phases, whereas Struts has had several years to mature. I would definately keep an eye on JSF, but wouldn't recommend using it on non-experimental sites for a while.
I like struts and think it is a good step forward, but I have to nit pick. MVC works great in environment where the business logic and functional requirements rarely change. In an environment where requirements change daily and weekly, MVC is a burden on the developers. In those cases a page centric approach is more desireable. If for example your site uses lots of banners and that logic changes rapidly, having it in bean makes life harder than it should. Some one is going to argue, "you didn't do a good enough job generalising it." Sometimes that is a luxury you don't have. How many people have worked in shops where there were no written requirements and requests for changes and new feature are sent every day. Struts borrows some ideas from swing and awt. If your sitaution is one that has an established development process with rigorous requirements stage, then struts should work. If not, look else where.
say it with me now ...
"web-work is monkey-work"
"web-work is not amazing"
"web-work takes a pea sized brain"
i should know - i do web work. because it pays.
because some bunch of fools decided to pay me for
it does not make it clever. because some bunch of
fools decided to pay You for it definitely doesn't
make it clever. step back and look at what you
do and then tell yourself there is anything
remotely complex in there. there isn't. its
crap. its not scottish its crap. quit selling
me books about crap. quit pushing your crap on
everyone else. crap crap crap crap crap.
...and why is Strut kicking it? In other words, why would I even look at a book that can't even get its title right?
It's a overhyped, overcomplicated, manager-type
buzzword compliant "API/framework". It's the
(a)moral equivalent of a 1000 line C++ program
to print "hello world". Those who "get" dynamic
web page creation - don't use struts. It's
a runaway buzzword train and it's a good way
to seperate the wheat from the chaff - if
someone claims to be a "struts programmer", pray
that your competition hires him
...or model/view/controller, was invented by Trygve Reenskaug, and first appeared in Smalltalk at Xerox Parc.
...or is it that Struts, JavaServer Faces and MVC methodologies merely enforce good coding techniques/styles that one should be using anyway? Regardless of if you are using PHP, Perl, etc.
Or is there something more here?
Sometimes I think Java, OO and other development technologies are like grammer school teachers hovering over our heads saying, "Now, we *know* you are going to be sloppy if left on your own, so are going box you in so that you CAN'T do those sloppy things."
Except that you still can. VERY easy to understand and maintain applications can be coding procedual languages. VERY difficult to understand and maintain applications can be written in OO languages.
But I digress... by nature.
I swear by MacOS X. Although I use to swear *at* MacOS 9...
Hm. I'm not quite sure I follow you here. I haven't read the book, only your review, and I'm a bit puzzled by your statement regarding business objects in actions.
Is it so that the example code for the actions contain business logic directly, or do they use business objects without wrapping them in controllers (like a session bean)
If they're using session beans or controllers in the actions, I can perfectly understand that. You have to use the business logic somewhere.
On my current project, we have a (yuck) flash-client (using macromedia's Flash Remoting MX, btw. nice thing, saves a lot of time usually spent on devicing your own xml-based protocol to communicate with the flash client) . The flash client accesses a standard java class/bean. This bean contains code to massage the output from a session bean to simple data structures more suitable for a flash client (and programmer. Ok, low blow.
The session bean acts as an facade to all the functionality required by/provided to the client (authentication, fetching and updating data etc.) The system has about 10 session beans and quite a few entities.
We've used this approach before, and when we had to add some new types of clients, we only have to add a bean convert to/from client requests and the controller (session bean).
(At first, we only developed a Flash client. Later, we added a SMS client and a web client.)
Struts 1.1 has added nice features like Dynamic Action Forms, integration with JAAS for request level authorization, and separation of functionality through modules.
If you have not previously used Struts this may not mean anything to you. Trust me when I tell you that these advances will be very welcomed by Struts users. I higly reccomend learning Struts, however the existing books only cover previous versions. If you are looking into using Struts on a future project you may want to check out the upcoming release.
Life is like an elevator, sometimes you get the elevator and sometimes you get the shaft.
Actually, what I would like to see is a review of the Ted Husted book Struts in Action , ISBN 1930110502. It was listed as not published yet yesterday at amazon.com, but is now listed as "usually ships in 13 to 14 days." It is available sooner at bn.com or direct from the publisher. Husted is one of the more well-known Struts gurus, and I think his book has been much more anticipated than the one reviewed.
One thing I like is that the publisher, Manning Publications, lets you buy a PDF version of the book for half price. They will also deduct the cost of the PDF version if you decide to buy the tree version later. There are a couple of sample chapters online, one about integration with Tiles and another about validation. The sample chapters I have read seem very complete and well-written.
I know this post sounds like an advert for the book, but I'm not associated with the book in any way. I'm just a Struts developer who's been waiting for a good Struts book to come along, and the Husted book looks like it might be the one.
his looks like the abstraction used in asp.net which changes the interaction of web pages to an event based model rather than just posting back forth and checking user values. (correct me if i'm wrong)
it's a big step forward cleaning up web programming. i'm sure it will come to php sooner or later, although i'm happy with old stylee.
...what a thin review. The styrofoam cup is more dense that this. Makes me want to run right out and buy this - not.
XMLC and Barracuda offer a nice alternative to Struts without all the crap of JSP and the enormous clusterf**k single XML file that Struts uses.
XMLC enforces a nice clean seperation of code and presentation data and has a great framework (Barracuda) that does everything Struts does and more. (polymorphic event dispatch and real OO event handling, for example)
Check it out at www.enhydra.org. There's also a great book out on XMLC, if you prefer paper.
I've never used Struts, and my web apps are almost all Perl/CGI, but I'm still curious (of course)..
Would this analogy be reasonably accurate?
Struts : web apps as Cascading Style Sheets : HTML ?
"Truth is not decided by majority vote" consensus gentium -- Norman Geisler
Can anybody help explain the difference, as well as pro's/cons of using XSP vs. Java?
I've been thinking about learning JSP for web development but recently I've started looking at Apache Cocoon which is an XML framework, built on java. It uses XSP to call java business logic which then gets rendered in html. This looks very similar to JSP (except for the XML stuff).
Phrame
I have used Struts, and personally, I really don't see anything special about it. While I agree that having "scriptlets" in your HTML is generally bad form, I have similar problems with putting Java-centric tags in presentation code as well.
Struts, Java Server Faces, Servlets... All of these tools do not solve a real issue at hand, which is that when it comes to internet/HTML applications, the presentation layer should not tie you to any language, or to any language-specific framework.
I should be able to write a "View" that simply Looks at a standard XML-based model, and construct my page from that. Without having to put any kind of Java or Java-based tags in my code. XSLT comes far in doing that, but has a few shortcomings.
The missing piece is a standardized interface upon which posts/gets etc... can be performed without regard to the View, or to the language used in the application server. This interface should of course handle necessary things such as session management, authentication, and the like. This way, we could change out our underlying backend without having to change the presentation code at all.
This is where I give CORBA a lot of props. It definitely had some problems, but it was a wonderful intermediate interface that didn't care who its client was. As long as the client spoke IIOP... life was good.
The same should be done for web interfaces. The presentation layer should not care beans about the backend... expect that the container is aware of a common/neutral interface. No vendor specific tags. No language-specific tags. No proprietary garbage that ties you to any particular container.
XML, XSLT, XSD are great. Java is great. All these technologies are great. But the lack of a common interface/framework which seamlessly ties them together for web applications is the real problem.
We are doing a rewrite of our web application, and have pretty much decided to use struts. However, we can not decide on what to use for object persistance and caching. We have ruled out CMP for performance reasons, BC4J is a option but many of us don't like being tied to Oracle. Are there any open source frameworks for doing this that someone has used successfully and are happy with? Object Relational Bridge? Torque? We could really use some outside input on this.
First off, I probably shouldn't have even brought up Tapestry, I'm generating a bad reputation for trying to monopolize discussions and steer them towards Tapestry.
Struts rounds off the rough edges of servlet/JSP development. It does a little streamlining, such as creating an abstraction between actions and JSPs. Actions are subclasses of a struts-provided class and are very, very similar to servlets ... in fact, they must be stateless, just like a servlet.
JSPs are called "forwards" and, in fact, the plumbing doesn't require that the output be JSPs, you can plug in other templating systems such as Velocity.
There's standard taglibs that help with creating URLs that reference actions, help with building forms, and there's a system, called form beans, where query parameters are picked up and dumped in as properties of a bean, which is then passed to an action for processing.
That's really about it.
Tapestry is simply a different kind of beast. It's goals are different ... it doesn't round out the edges of the servlet API ... it makes the servlet API irrlevant to the developer. You create Tapestry applications without thinking about URLs, query parameters or any of that jazz. It's all "objects, methods and properties".
Let's take a simple form example. In Struts you would have to
Struts doesn't have any kind of namespace management, so if you are on a a big team, you have to be careful to name things uniquely.
In Tapestry, you would
Although this looks similar, its much easier in Tapestry. Everything you need to do is localized in the three resources of the page (the specification, the template or the class). You write very, very little code ... instead, you declare what you want the framework to do inside the page specification (an XML document), or even inside the HTML template (more like taglibs, and a 2.4 feature in progress right now).
These page specification entries are pretty short, for example:
This says "use a TextField component, bind its value parameter to the name property of the employee property of the page". This assumes that your page class provides a JavaBeans property, "employee". The accessor method knows how to obtain this object from a backend database or EJB.
You and the other developers aren't conflicting on access to struts_config.xml. No change that another developer makes to thier page will break yours. Name conflicts simply can't happen ... each page is like a little application unto itself.
In both frameworks you have to provide the business object to the form. In Struts, an action has to store a bean as a HttpServletRequest. In Tapestry, the page provides an accessor method that exposes the business objects to the components on the page.
Tapestry does much more work for you when the form is submitted. Notice that you don't specify a URL, action, page or anything with a Form component, you simply tell the Form component what method to invoke when the form is submitted.
The form components will pull request parameters, convert the parameters to correct Java types, and apply changes to the properties of the business object. If you are using the validating text field component, then more conversions and validations occur, automatically (and properties are only updated if the input is valid).
Once all the properties have been set, the Form will invoke the listener method which carries things forward from there, including selecting which page will render the response.
On something like a login page (i.e., user name and password), you don't need a seperate business object; your form components can simply update corresponding properties of the page object itself.
Right there is one of the big differences; the objects Tapestry users work on are stateful, not stateless. You don't have to deal with that problematic indirection (storing everything as request or session attributes). Tapestry does the shuffling of data to and from the session for you, invisibly. It uses object pooling so that you code naturally (objects with methods and properties) without worrying about multi-threading issues.
Now, that's just off the top of my head and doesn't scratch the surface of what Tapestry can do. The important thing is that its all about components, and creating new components (and even packaging them into libraries of components) is a snap, in fact its often a necessary and natural part of creating an application.
Unlike taglibs, Tapestry components can (and usually do), have their own templates and often are constructed from other components. Very natural, much more like a Swing GUI in terms of composition.
Because all of the request dispatching is performed by the framework (both during render, when the framework creates URLs, and in subsequent requests, when the framework interprets those same URLs), components can have thier own private listeners and behaviors.
Thus you can have things like MindBridge's Table component, that has sortable column headings. The links for the headings are components embedded within the Table component, and the Table component provides the listeners for those links. You can have ten Table components on ten different pages, or ten on the same page and everything just works, no questions asked.
Everything in Tapestry is designed to assist the developer ... wringing more functionality out of less effort. When things go wrong, it has incredible exception reporting.
Right now we're working on release 2.4 which includes significant improvements that will make Tapestry the easiest (and still, most powerful) web app framework available.
There's reams of documentation at the Tapestry Home Page and you might just want to check it out (if you want something more coherent).
Howard M. Lewis Ship -- Independent J2EE / Open-Source Java Consultant -- Creator, Apache Tapestry and HiveMind
Here's what I don't understand - what jakarta technologies are mutually exclusive with each other? I did apache jserv development for a couple of years and I want to update by using java for a large scale personal project. My brain is tumbling around several options:
1) struts
2) tomcat/jetty
3) EJB (jboss/resin)
4) enhydra
So, what can be used with what? Can #1-#3 be all used together? I mostly just want to gain wide experience to help the old resume.
skkkoooonnnggggkkk ptui
Thank a lot dude, I wanted to find out in the book
Of course, MS SQL is actualy more scaleable then MySQL, but that's beside the point :P
autopr0n is like, down and stuff.
The problem with web development in java is two fold. It is slow and not a very productive environment. PHP, NET and Perl will always be more productive. Now the PHP ported struts framework, now we are talking.
Got Code?
Thanks to AC for the pointer to the Struts in Action review, I don't know how I missed that one. I put in a link, since your URL got munged by the Slashcode...
And, thanks to James Turner for the heads-up about Safari and the sample chapter over at strutskickstart.com. I'll check it out right away. Good luck with the book, it looks like it is getting a lot of good reviews so far.
It was built using Userland Radio, and we haven't set up the RSS channels yet. I've been busy helping with the 1.1b3 Struts release... James
really, enhydra is just awful. Too bad you wasted time writing it.
http://sf.net/projects/tapestry
This is *much* nicer than struts/JSP. It makes producing reuseable components much easier, and abstracts servlets very nicely, while still allowing access to the bare meal if needed. And it has the best documentation of any OSS project I've seen!
Tom
I have discovered a wonderful
As someone who has recently moved over to Java from other languages, Struts has really helped me understand MVC and the power of XML to control large applications. Servlets are extrememly powerful and robust and very handy to be controlled from one line of code in the config.xml... If you want to see some of cooler things you can do with struts, check out keyboardmonkey's site- servlet tree hierarchy... very handy.
For all those who have never tried out the struts framework- give it a chance... and you don't need a $50 book to try it out. Try out Ted's Tutorials and learn through example!
www.startvino.com