Domain: apache.org
Stories and comments across the archive that link to apache.org.
Comments · 2,937
-
Re:Code-in-HTML and HTML-in-code are both dead!
vanza wrote:
Velocity.
Great. Now how do I plug modules of other languages in there? Or more to the point, why was this designed to be specific to just one language? My prior post did say "and total pluggability".
-
Re:Code-in-HTML and HTML-in-code are both dead!
The one and true answer is separation of content vs. application, and total pluggability between the two.
Anyone who does servlets like described in the article needs a brain wash...
--
Marcelo Vanzin -
Re:Disappointed...
I disagree with your interpretation of the YMTD article, and certainly with your assessment of Velocity .
However, I think that despite the theatrics, you have some good discussion points, and I (and others in the Velocity community) would be happy to discuss on our user list.
I believe that Velocity and it's kin ( WebMacro , for example) are strong, viable alternatives to JSP, and believe that after more discussion, and you actually trying it, you may see some validity to this assertion.
I invite you to repost your article to the velocity-user list (velocity-user@jakarta.apache.org). The instructions for subscribing start here
geir -
Re:Disappointed...
I disagree with your interpretation of the YMTD article, and certainly with your assessment of Velocity .
However, I think that despite the theatrics, you have some good discussion points, and I (and others in the Velocity community) would be happy to discuss on our user list.
I believe that Velocity and it's kin ( WebMacro , for example) are strong, viable alternatives to JSP, and believe that after more discussion, and you actually trying it, you may see some validity to this assertion.
I invite you to repost your article to the velocity-user list (velocity-user@jakarta.apache.org). The instructions for subscribing start here
geir -
Suggestion
Try Velocity. It separates code from presentation much better than JSP in my opinion. We're currently using it where I work, and it works out quite well!
-
No hashes in Java? WRONG!
The article also incorrectly states that there are no hashes in Java. This is also quite incorrect. The java.util.Hashtable class is one example of how to do this:
import java.util.Hashtable;
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
numbers.put("two", new Integer(2));
numbers.put("three", new Integer(3));
System.out.println( numbers.get("two") );
The above code will, of course, output "2". The Hashtable supports having ANY object used as a key, not just a String. As well, Java has a Properties class which pretty much has the same functionality, but can be loaded and saved from a file.
Also, those who are interested in developing web applications should have a look at Velocity. It's much cleaner than JSP in that it more closely enforces the separation between code and design. I'm currently using Velocity in a web application project I'm working on and it's working out wonderfully! -
Apache mod_perl + (HTML::Mason || Embperl) PHP
The author of that article obviously does not know about Apache mod_perl (http://perl.apache.org/), HTML::Mason (http://www.masonhq.com/), or Embperl (http://perl.apache.org/embperl/).
Those provide a PHP or ASP like templating system with full access to the Apache API and all of full fledged Perl (and thus the CPAN modules). It's way better than PHP!
Anything that can be done in PHP could be done with either of these systems. I think it would be worth doing to port a lot of that fancy PHP HTML magic over to either HTML::Mason or Embperl. (May the better engineered solution win!)
There is, additionally, an emacs extension called "mmm-mode" (found via the HTML::Mason site) that makes psgml-html mode and cperl-mode co-exist! The perl parts are in cperl-mode, and the HTML parts are in HTML mode. It's really cool!
-
Apache mod_perl + (HTML::Mason || Embperl) PHP
The author of that article obviously does not know about Apache mod_perl (http://perl.apache.org/), HTML::Mason (http://www.masonhq.com/), or Embperl (http://perl.apache.org/embperl/).
Those provide a PHP or ASP like templating system with full access to the Apache API and all of full fledged Perl (and thus the CPAN modules). It's way better than PHP!
Anything that can be done in PHP could be done with either of these systems. I think it would be worth doing to port a lot of that fancy PHP HTML magic over to either HTML::Mason or Embperl. (May the better engineered solution win!)
There is, additionally, an emacs extension called "mmm-mode" (found via the HTML::Mason site) that makes psgml-html mode and cperl-mode co-exist! The perl parts are in cperl-mode, and the HTML parts are in HTML mode. It's really cool!
-
Cocoon
Apache's cocoon is a basically jsp done right using XML/XSLT.
-
Apache configurators
-
CVS Hooks
Well, several open-source projects that I have seen have set up CVS hooks, to send email to a cvs mailing list whenever something is committed. Then at least some people subscribed to the CVS list review the code. As for patches sent in by non-committers, obviously whoever eventually commits the patch reviews it, then the same thing happens, and the list reviews it. All in all I have seen it work quite well on both the Apache Portable Runtime and Subversion projects.
>~~~~~~~~~~~~~~~~ -
Re:And now you know..If you had access to some of the
.NET "bluesky" videos presented at the PDC when .NET and VS.NET was more or less unveiled, you might think that this interview is practically a narration of one of the many examples of the "scenarios with a .NET connected world".Ok, so s/\.NET/web\ services/g. I saw one of those 'blue-sky' videos and was sufficiently insprired to start working with SOAP using ( I didn't have a
.NET SDK available :( )Java and Apache SOAP.Web services are much better than a cluster of HTTP POSTs for the same reason that Java servlets are better than CGI scripts (at least for large scale development). Just because MS is hyping web services in
.NET doesn't mean web services are bad.
____________________________
2*b || !(2*b) is a tautology
____________________________
2*b || !(2*b) is a tautology
-
Velocity 1.0 Is Out!Velocity 1.0 has been officially released, check it out.
It's more than a web based template engine, it also works wonders for generating any type of text-based content from templates.
The Velocity engine can be loaded in stand alone apps as well as Java Servlets, so it's very flexible!
It also performs great, I found it significantly faster than JSP for some simple pages.
-
Re:mod_perl 2.0?
Well, here is the source from cvs. Dont know if it works.
There is some info on the modperl-dev mailing list, Hope this helps. There is probably a lot more. -
or if you don't care about stupid press stories...
go look at what is actually being done at http://xml.apache.org/.
-
Re:As A Web Designer
This is bad for two reasons:
I disagree about as strongly as it's possible to disagree. Content negotiation is a Good Thing(tm).
Here's an example: when I go to a web site, I expect (hope?) that the content of the site will be rendered in English. For large web sites with a multi-lingual user base, that's not always a safe assumption. Fortunately, content negotiation makes that possible.
3.10 Language Tags
A language tag identifies a natural language spoken, written, or otherwise conveyed by human beings for communication of information to other human beings. Computer languages are explicitly excluded. HTTP uses language tags within the Accept-Language and Content-Language fields.
- from RFC 2616Apache makes on-the-fly decisions about what content to send based on this.
Does that mean that webmasters need to be careful about how they set up their sites if they're using this technique? Sure. But it also opens up a wide range of options.
1. It's more expensive to design 2 sets of pages. That money should be spent on more content.
Speaking on behalf of webmasters everywhere: thanks for telling me how to spend my money. Allow me to suggest that doing two versions of the same image - one at a high bit-depth, and another at a lower quality - isn't too much of a strain on my budget.
2. Sometimes people with slow modems don't mind waiting - maybe they let your site load in the background while they do something else. It's not polite to make these choices for your users.
Content negotiation doesn't have to be like making the choice for the user. Instead, it can work as a reasonable best-guess. Besides which, I've seen plenty of sites which simply assume high bandwidth (or pathetic bandwidth) and make all the design decisions based on that information. In what way is that giving the user a choice, other than to vote with his feet?
-----
"You owe me a case of beer. Sucka'." -
Re:JSP + Servlet + EJB = Heaven
I would be very hesitant to base any enterprise solution on any of the current templating languages. There's just too much String manipulation happening at runtime.
Also, last time I checked (approx three months ago), these language were missing some very important features. For example, WebMacro has no for loop, only a foreach loop. This means that during runtime, you must recurse through the entire collection, not just the desired sub-collection.
There really isn't one good answer out there that seperates out view logic from application logic, but the eventual solution *will* be JSP (read: taglibs...struts is headed in the right direction, just down the wrong path)...JSP's are only messy if you have java code in them.
</$0.02> -
TclTcl is an excellent solution, available also for Apache in the form of mod_dtcl, neowebscript, or other systems. There are several reasons to use Tcl:
It's easy to use, even for the web people who often don't have a lot of programming experience.
It has a great C API, so that you can write the really speed critical components in C, and call them from your Tcl code.
-
Killer Apps 'R' Us
Personally I think Python and Perl are the same toolkit with trivial differences in syntax, and wish language designers would take a leaf out of Mark-Jason Dominus's book and go easy on the theology.But, FYI, Perl has a coupla thousand killer apps, most of which are available on CPAN.
Industry Standards include:
The Beatles never flamed the Stones. The Stones never dissed the Beatles. And at no time did either party rip on Bob Dylan or badmouth Marvin Gaye. Language designers should celebrate their brethren. Particularly when the similarities so overwhelmingly outnumber the differences.
Perl is worse than Python because people wanted it worse. Larry Wall, 14 Oct 1998
Frankly, I'd rather not try to compete with Perl in the areas where Perl is best -- it's a battle that's impossible to win, and I don't think it is a good idea to strive for the number of obscure options and shortcuts that Perl has acquired through the years. Guido van Rossum, 7 Jul 1992
When I originally designed Perl 5's OO, I thought about a lot of this stuff, and chose the explicit object model of Python as being the least confusing. So far I haven't seen a good reason to change my mind on that. Larry Wall, 27 Feb 1997 on perl5-porters
If Perl weren't around, I'd probably be using Python right now. Tom Christiansen in comp.lang.perl, 2 Jun 1995
Python is an excellent language for learning object orientation. (It also happens to be my favorite OO scripting language.) Sriram Srinivasan, Advanced Perl Programming
-
Re:JSP + Servlet + EJB = Heaven
It's even easier to build a great OO design (using the Model-View-Controller pattern) if you dump JSP and use a template package like FreeMarker, Velocity or WebMacro. JSP lets you embed Java code in your webpage, so business logic gradually creeps out of your servlets and into your HTML, making maintenance more difficult. Template packages help you keep your business logic and page design separate by keeping the code in the Java servlets and the HTML in the webpage templates.
-
Clarification: consumer portals are the problem
Consumer portals are the ones with a troubled future, but I think there is a great future in intranet portals. Meaning, portals that let you organize your companies internal information. How many wasted minutes a year are spent by employees looking for the correct HR form, for example?
Most companies have done a great job of web-ifying everything in their company, unfortunately, there are now too many web resources in a company. Portals can help organize that and show an employee only what is important to them.
So, I think products like JetSpeed and the product I'm working on, Novell Portal Services have a bright future.
People who just want a very simple web-experience are going to get AOL, which in effect is a web-portal for internet newbies. I also think that soon people will be able to build their own portal with a much simpler drag and drop metaphor that will be local to their machine or web-hosted in a very simple way. I don't think there is much money in doing that, but I think it will happen.
- Twid -
Re: "Patches? We don't neeed no steekeen patches!"I think that the real problem here is that a lack of diversity in OS's creates huge security problems. ie: One world, One Operating System, One exploit.
Um, this is on the server, where Microsoft dosen't have a monopoly, not even a plurality. According to netcraft, that title belongs to Apache.
So what's microsoft's problem?
There are a number of them, as I see it:
-
Microsoft dosen't have a good mechenisim for staying up to date on the latest patches. For example, I can put security.debian.org in my
/etc/apt/sources.list, and set cron to run apt-get upgrade nightly. This will automagically install any security patches with no user intervention. Even non-debian distributions have mechenisims like manually-installable packages and quick (and honest) reporting of security issues, which make it easy to stay up to date. - Their closed-source and propietory systems extend the time between an exploit being found, and a usable patch being produced. For a classic example, look at the Ping of Death. Linux had a patch out in (exactly) 2 hours, 35 minutes, and 10 seconds. Microsoft took almost a month.
- This is the most important: Microsoft administraters tend not to be as good at network administration as Unix administraters. I'm not trying to insult any softies out there, and I'm sure there are some really good Microsoft admins and poor Unix admins, but with Microsoft handing out MCSE's to any dipshit who can memorize a questions book (but probably has no experence or training with security), it's bound to happen. Unix administraters have (generally) taught themselves, which means they have many years of practical experence with their OS, or learned Unix at a real academic instution, which means that they got more than just the crash course.
Bruce Schneier once called security a "process, not a product". Microsoft has tried to pretend that they are selling a product. That you go to the store, buy Microsoft Foo 2000, pull the disks out of the shrink wrap, and use it like you'd use a television or a vacume cleaner. An Operating System is too complex of a beast for that to be the case, and no amount of Wizards or flying folders is going to change that simple fact.
-
Microsoft dosen't have a good mechenisim for staying up to date on the latest patches. For example, I can put security.debian.org in my
-
Re:Dear nerd: speak for yourself
How can I set up a local server to test my PHP and CGI scripts [which use Sendmail and MySQL along the road]?
Apache for Windows
PHP for Apache for Windows
MySQL for Windows (which works with PHP for Apache for Windows)
I use this software daily on my Win2K machine for developing PHP for use on my Linux servers.
I wouldn't dream of using Windows as a big server - same as I wouldn't dream of using Linux as a decent desktop.
As for macs, well...
-
Re:What a TERRIFIC idea!
-
Re:Why SOAP is so important
garoush seems to have hit the nail on the head. SOAP is important not because Microsoft is using it, but because everyone can use it. If you're a Microsoft junky and want to communicate your data through
.Net, go for it. If not, there's no reason Microsoft should have to be involved in your SOAP implementation.
There are open-source SOAP implementations all over the place. Somebody has already mentioned the xml.apache.org/soap SOAP server, and there's a nice Perl SOAP client at Soap::Lite. A search for "SOAP XML" on Google will provide a plethora of pinatas...I mean matches.
My company is working on a product that will tie SOAP Web Services to back-end databases, legacy systems, wireless devices, and more. The possibilities are endless. -
Open Source has also discovered SOAP
Of course Dave points out that open source has noticed XML RPC (his baby), but the open source community has also discovered SOAP: http://xml.apache.org/soap/.
-
Re:It will be an interesting century
Getting govt to refuse GPL would be a huge point to them. What they really want is probably to get universities to ban GPL (something like : you can't get govt fund if you produce
They may run into some problems here. IBM, while no longer a factor in the personal computer, does have a massive foothold in the higher education world - at least in the administrative side. MVS is deeply ingrained....more so since those people who are responsible for payroll have to manage MVS systems and get paid to do so. The academic side is slightly more interesting - most CS departments (and some engineering) usually use some form of Unix - AIX, Solaris, variations of the Linux kernel, etc.An interesting attack angle is the court challenge of the GPL. You can bet that millions of dollars are currently spent to find how, and to bribe key people. But will MS have the balls to challenge the GPL ? This would be a disastrous PR, in an order that have never been done before. They may loose big time.
The article states that "Sun has embraced GPL.." - one has to assume that Sun has people on capital hill also. Sun is _not_ a small company. IBM has done some nice hacks for the opensource community itself.IBM® Developer Kit for Linux® on Itanium(TM)
IBM-SOAP has been contributed to form the Apache SOAP project.
IBM is major contributor to Apache's Xerces-J code base
Computer hardware giants Hewlett-Packard, Intel, IBM, and NEC are joining together to fund an independent, nonprofit laboratory to help speed the development and testing of enterprise-targeted Linux projects.
Vested interest? Sure. IBM is not the powerhouse they used to be but IBM, Intel, HP, Sun (etc) do know how to play the capitol hill fiddle.
It will indeed be a very, very interesting next couple of years.....
-
Re:It will be an interesting century
Getting govt to refuse GPL would be a huge point to them. What they really want is probably to get universities to ban GPL (something like : you can't get govt fund if you produce
They may run into some problems here. IBM, while no longer a factor in the personal computer, does have a massive foothold in the higher education world - at least in the administrative side. MVS is deeply ingrained....more so since those people who are responsible for payroll have to manage MVS systems and get paid to do so. The academic side is slightly more interesting - most CS departments (and some engineering) usually use some form of Unix - AIX, Solaris, variations of the Linux kernel, etc.An interesting attack angle is the court challenge of the GPL. You can bet that millions of dollars are currently spent to find how, and to bribe key people. But will MS have the balls to challenge the GPL ? This would be a disastrous PR, in an order that have never been done before. They may loose big time.
The article states that "Sun has embraced GPL.." - one has to assume that Sun has people on capital hill also. Sun is _not_ a small company. IBM has done some nice hacks for the opensource community itself.IBM® Developer Kit for Linux® on Itanium(TM)
IBM-SOAP has been contributed to form the Apache SOAP project.
IBM is major contributor to Apache's Xerces-J code base
Computer hardware giants Hewlett-Packard, Intel, IBM, and NEC are joining together to fund an independent, nonprofit laboratory to help speed the development and testing of enterprise-targeted Linux projects.
Vested interest? Sure. IBM is not the powerhouse they used to be but IBM, Intel, HP, Sun (etc) do know how to play the capitol hill fiddle.
It will indeed be a very, very interesting next couple of years.....
-
Re:SOAP
-
Re:XSLT book
You're kidding, right? Xerces-C is the best third-party C/C++ library I've ever seen! It has a neat Java-like design, but with the speed and flexibility of C++. (I just wish they used std::wstring instead of XMLString, but the conversion is trivial) What I love about it is that it uses Java-like autodoc comments, so I can produce unified documentation for my code as well as xerces-c using an external tool called DOXYGEN which also generates class-hierarchy and dependency graphs. Very cool.
-
Everything can be Art!
Why do you consider programming to be something other than art? Sure, a non-programmer may not be able to appreciate the code in raw form, but even a layman can appreciate an intuitive, well-written interface or an efficient-running program.
No matter what field you're in, be it Programming, Painting, Architecture or Demolitions, there is beauty and art to be found. If you ever get a chance to watch a demolitions crew topple a tall building, go see it. Watching a skyscraper coming down is a sight to behold. The fact that the moment is gone when the dust clears doesn't change the fact that it's art.
If you are one that likes to burrow into code, make sure to check out the code for Ogg Vorbis. I don't understand most of the math behind the encoding algorithm, but the structure is beautiful and easy to understand. This code was definitely written by artists. The code for the Apache Foundation's Xerxes XML is another project that I would consider to be great art.
Those who judge programming and art by seperate measures need to go back and read their Zen. It may all come down to differences in the definition of 'art', but I'll always shake my head when someone claims there's something that falls outside the scope of what can be considered art.
Seth -
XML--logical next step up from UNIX text filesUNIX used to rely on tabular data a lot: that's what awk, grep, cut, paste, and other UNIX programs were designed to deal with. That was a great system, because it allowed you to deal with huge amounts of data on machines with very limited memory.
The problem with tabular data is that it doesn't let you represent a lot of information in a convenient form: people often do need and want hierarchical/tree-structured data. And tabular data in UNIX isn't self-describing. Configuration files, package descriptions, bibliographic citatinos, etc. all need fairly complex descriptions.
There are many ways of representing tree structured data. XML wouldn't be my favorite, but it is workable. And XML is getting a fairly complete set of tools for dealing with tree structured data: search, extraction, restructuring, etc.
With this, maybe the Linux community will pick up some of that old UNIX spirit again. Today, the habit seems to be that when anything needs to get done on Linux, someone writes a big Gnome or command line program in C, or, on a good day, writes a monolithic Perl program. For example, something like "rpmfind" should really just be a collection of a few command line tools: something like the Xerces tools for extracting information, gunzip to uncompress the data, and curl to retrieve information. The same is true for a lot of other Linux applications.
Oh, if you want to play around with XML, I found some of the Apache Xerces tools at http://xml.apache.org/ to be quite useful. They come in both Java and C++ flavors.
-
Portability.
XML does offer great portability of content across devices. IBM uses it to provide content to their website, wap site, bluetooth devices, etc. Using XML, XSL, XSLT, Apache's Coccoon, and numerous other additions. The dynamic generation of PDFs is always nice too.
-
Java and XML bolted at hip? Try Xerces-C (C++)!I was pretty perplexed by Sun defending its statement that XML and Java are bolted at the hip.
Now don't take me for a Microsoft fan or anything. But until Sun releases the Java specification to a vendor-neutral international standards body I have no use for this large corporation trying to manipulate the market by winning developer mindshare. Remember your choice of development platform is a vote you make, either in favor of one company or another, but hopefully a choice you make with clear thought behind it.
What Sun basically said is that XML is platform independent, and Java is platform independent, so it makes a lot of sense to use XML with Java.
Now, I'm not arguing that there is lots of great XML software available for Java. But in my feeling (and Bjarne Stroustrup's opinion too) Java is not platform-independent, but a proprietary platform unto itself.
And in fact most of my actual working experience with XML has been in C++ using the platform-independent Xerces-C validating parser for DOM and SAX from the good folks at the Apache XML Project. (You can also use Xerces-C from Perl or Win32 COM with provided wrappers).
I used Xerces-C on MacOS and Win32 for the config files and user documents of a consumer GUI application after integrating it with the similarly cross-platform ZooLib cross-platform application framework - something that would have been really inappropriate to do in Java, as this was meant to be a free downloadable app for which tech support costs had to be near zero, and we could not expect our users to install a Java runtime.
According to its web page, the C++ version of Xerces works on:
- Win32
- Linux
- Solaris
- AIX
- HP-UX
- OS/390
- AS/400
- SGI IRIX
- Macintosh
- OS/2
- PTX
- "and more!"
If more powerful players than you want to trip each other up with competing initiatives - well, just let them, and go on about your business by using open source like Xerces-C.
BTW - the Win32 port listed on the web page says it builds with Visual C++, I think others have built it with Borland C++ and I was building it with Metrowerks Codewarror for both my Mac and Windows versions, and could cross-compile on each platform for the other.
Michael D. Crawford
GoingWare Inc -
Java and XML bolted at hip? Try Xerces-C (C++)!I was pretty perplexed by Sun defending its statement that XML and Java are bolted at the hip.
Now don't take me for a Microsoft fan or anything. But until Sun releases the Java specification to a vendor-neutral international standards body I have no use for this large corporation trying to manipulate the market by winning developer mindshare. Remember your choice of development platform is a vote you make, either in favor of one company or another, but hopefully a choice you make with clear thought behind it.
What Sun basically said is that XML is platform independent, and Java is platform independent, so it makes a lot of sense to use XML with Java.
Now, I'm not arguing that there is lots of great XML software available for Java. But in my feeling (and Bjarne Stroustrup's opinion too) Java is not platform-independent, but a proprietary platform unto itself.
And in fact most of my actual working experience with XML has been in C++ using the platform-independent Xerces-C validating parser for DOM and SAX from the good folks at the Apache XML Project. (You can also use Xerces-C from Perl or Win32 COM with provided wrappers).
I used Xerces-C on MacOS and Win32 for the config files and user documents of a consumer GUI application after integrating it with the similarly cross-platform ZooLib cross-platform application framework - something that would have been really inappropriate to do in Java, as this was meant to be a free downloadable app for which tech support costs had to be near zero, and we could not expect our users to install a Java runtime.
According to its web page, the C++ version of Xerces works on:
- Win32
- Linux
- Solaris
- AIX
- HP-UX
- OS/390
- AS/400
- SGI IRIX
- Macintosh
- OS/2
- PTX
- "and more!"
If more powerful players than you want to trip each other up with competing initiatives - well, just let them, and go on about your business by using open source like Xerces-C.
BTW - the Win32 port listed on the web page says it builds with Visual C++, I think others have built it with Borland C++ and I was building it with Metrowerks Codewarror for both my Mac and Windows versions, and could cross-compile on each platform for the other.
Michael D. Crawford
GoingWare Inc -
Same but different
It all boils down to this, basically:
.NET includes a Java-like language called C#. It's another C++ - derived language, with automated garbage collection; one of its main claims to superiority is that it has an XML-based auto-documentation feature. It also offers some other XML manipulation features built-in. But .NET is also a complete reworking of the Windows development platform. At its heart is a common language runtime (CLR)-- essentially a virtual machine, just like Java. The difference here is that .NET will allow you to write objects in different languages -- C++. C#, Visual Basic.NET, COBOL, Eiffel, etc. -- and mix and match them in the same project. You can have procedures in C#, VB and COBOL in the same application. Everything compiles down to the same CLR bytecode. Microsoft also just announced a Java porting strategy called Java User Migration Path (JUMP) which will allow Java code to be compiled to run on the CLR. So, what's Java got going for it? Well, Microsoft is only going to produce a CLR for Windows (though they are working on a reference implementation of the CLR and C# -- and, according to Tony Goodhew, a MS product manager, that implementation, which will be of everything they've submitted to ECMA as a standard, will be on Linux.) The Java VM is already running on multiple OS's and OS-less hardware platforms. Also, most of the advantages of the .NET platform design can be easily incorporated into Java through existing XML API's like the Apache Group Xerces. Xalan, and other SML oriented projects (look here). In the end, it all comes down to marketing and developer religious preferences. -
Re:A good take on this?
The development of this new nameserver daemon should be under a Free software liscense (GPL(!!)).
Then again, I could be wrong....
Yes, you're wrong. It's critical that there exist an absolutely free software implementation of all important internet protocols. Then vendors who want to write their own stuff have a base which correctly complies with the standards. There is a reason that apache httpd is licensed under BSD rather than GPL.
This is the same situation.
-
Embedded PerlWhile I haven't used Mason, so can't really comment on it, another very nice Perl embedder that runs very well under mod_perl is embedded perl (HTML::Embperl). Makes application development quite fast and manageable, especially if you write reusable code in perl modules!
Check it out at: http://perl.apache.org/embperl/
-
Server-side
I forgot in my last post, to deal with the other problem with your post. You state that
.NET will be server-side, like PHP. This is only half-true, in asmuch as PHP is server-side only, whereas .NET is supposed to allow both server-side, and client-side applications to be written (again, more like Java than PHP). And, in case you didn't know, there is a server-side version of Java. It is called JSP (Java Server Pages), and the Apache project is the maintainer of the Open-Source reference implementation of JSP. -
Re:.NET - actually some substance
This asp.net thing you're talking about is the one cool thing I see coming of out
.net. Does anybody know if there's a Java and/or open source effort anything like this? I know Cocoon uses XSLT to deliver differently-formatted content to different browsers, but it's not the same as the event-driven stuff asp.net does. -
primary difference: Java is more matureGoing through the C# language documentation, it really looks like Java with some of the top items of Sun developer's Java wishlist (signup required) added: call-by-value for classes, syntax for looping over sequences, and a few others. Typical MS style: clone the competitors product and add the most visible gimmicks.
Microsoft makes a big deal out of the universality of their runtime, but it isn't significantly more universal than the JVM. They claim they compile C++ into their runtime, but it isn't C++, it's a "safe subset" (full C++ is compiled into native code and linked in--useful, but not a feature of their runtime). In fact, more than 100 languages have been implemented on top of the JVM, including C; there are also semi-automatic translators for C++.
.NET is about not just C# and the runtime, but also about XML. Of course, that's a big thing with Java as well, with several excellent XML projects in Java, perhaps most notably the Apache efforts.I wouldn't actually care much about whether Java or C# ultimately "wins" in the market, if it weren't for the fact that C# is years behind and has the wrong motivations behind it. Java is, by now, fairly mature and it has an excellent set of APIs and libraries behind it, both from Sun and from other sources. There are numerous compilers to the JVM for languages like Python and Smalltalk. And there are several third party implementations. Java's implementation isn't particularly tied to any one platform, and it actually runs better on Windows than on Sun's own Solaris. And it will take a C#/.NET implementation at least as long to mature as the JVMs--building these kinds of runtimes is hard and requires a lot of benchmarking and user feedback to get the bugs and performance bottlenecks out.
If Slashdot readers care about open source and open standards, rather than complaining about Microsoft, there is a much more effective thing you can do: support open source Java efforts like Kaffe, Intel's Intel's Open Runtime, GNU GCJ (now part of GCC), and GNU Classpath. By "support" I mean: use them, consider them for your next open source project, submit bug reports, and maybe contribute code. GNU GCJ, in particular, should be a good basis for you to write Linux applications: it compiles to executables that start up quickly, it lets you use native code almost as if it were written in Java, and you can even write native Gtk/Gnome applications in it.
But perhaps most importantly, educate yourself about Java rather than complaining about it; Java is really a pretty decent engineering effort. Give it the benefit of the doubt, and wher it needs improvement, help it along. C/C++ will not make it in the long run. It's Java or C# or something else similar to those languages.
-
Crimson
I'm surprised nobody mentioned Crimson (scroll down to the bottom of the directory).
This Java parser open-source, under the Apache project. It was developed by Sun under the name of JAXP and is far more lightweight than IBM's Xerces, mainly because it uses built-in Java I/O instead of reinventing the wheel as Xerces does (with its ChunkyByteArray etc.)
For whatever reason Sun plans to adopt Xerces as the official JAXP implementation. I dunno why... I think Crimson is much better for a lot of applications. -
Re:ISAPI vs. CGI...
Sure. Look at mod_perl, newer versions of PHP, and (I think) the Java-Apache project.
-
Re:ISAPI vs. CGI...
Sure. Look at mod_perl, newer versions of PHP, and (I think) the Java-Apache project.
-
XML/XSLT parsers
There are several good XML parsers, some free, some commercial. Have a look at the following URLs for more info on free versions:
xml.apache.org
users.iclway.co.uk/mhkay/saxon
www.jclark.com/xmlI hope this is of some use to use.
-
JAVA: look at Lucene but NOT Turbine
For Java code afficionados, I'd heartily recommend taking a look at Lucene. It's small but pretty. One particularly bad example of code out of control would be Turbine. The latter is very frustrating because they generally have great ideas and lots of energy, but wading through the convoluted class hierarchies and gratuitously overloaded methods (some of which must be called more than once with different arg types) is not for the faint of heart.
-
34 Line Web Server
Check out the 34 line web server written by Rick Klement, the best Perl programmer I've ever known, who says of it:
I wrote this after seeing a small HTTP server that took ~650 lines of C. I thought it would be an interesting challenge to try for a ten-to-one reduction. Not only did I exceed that, but the ~650 line server did not do POST type CGI's, which mine will.
This server (which I name 'ws') has been quite useful. I use it for CGI testing, it's much simpler launching 'ws' with all parameters given on the command line than modifying an Apache conf file and firing the new Apache server up.
'ws' takes four arguments on the command line,
ws port_number doc_tree_base cgi_tree_base cgi_location
but they all have defaults. I usually fire it up with
ws 80 . .
and then fetch plain docs from machine/somedoc.html and CGI's from machine/cgi-bin/somecgi.pl -
XML/XSL/FOP - PDF
An option nobody else has mentioned (which I'm probably going to be flamed for anyway
:-) ) is to generate an XML document from your database (with Perl or PHP or whatever) and use Apache's XML tools (http://xml.apache.org) to generate a PDF from that. There's a lot to learn, especially if you've never used XML, but it's enormously flexible. It's certainly not as easy to use as Access reports, but it's much, much more reliable and flexible.
It's also slow as shit, but that's probably acceptable. -
Re:Easier said than done!
First of all, thanks for the comments.The important thing to remember is that all of the recommendations fit together. You can take just one (simple design, comprehensive unit testing), apply it to your work, and see some benefit. If you use all of them together, the interactions will give you more benefit.
If you avoid the tenets of 'simple design' and 'reduce complexity', you'll have lots of trouble testing things. You'll spend lots of time debugging complex interactions between components.
However, if you decouple things, test aggressively, and use simple and sane interfaces whenever possible, you'll have less difficulty. It's not a magic bullet, but simplicity really is a virtue in this case.
Finally, the idea that change is always more expensive in the future is a very pervasive belief in software engineering. I'm not so sure. I can't back it up, but I'm willing to bet that projects like the Gimp, Mozilla, and even Apache have spent or will spend more on their ground-up rewrites than they would have spent refactoring and simplifying. (Heck, I'd pay money to get a set of unit tests with a web browser!)
I have no way to prove that. Then again, that CS professor who said "It will cost more to change things in the future" couldn't prove it either, and I know he'd never worked with requirements that changed every two months.
At least in the software I'm writing where I can use XP, it's helping.
-- -
JSP==Bad
Ah Hah! I bet you expected to find a java hating bigot. Nope, just a JSP hating one. If you want something similiar to JSP, but much more interesting (for a number of reasons I won't mention here, go to the webpage lazy ass) try Apache's Cocoon
With a name like Apache it's gotta be good...