I assume you meant to reply to my post, since this response has nothing at all to do with Ant. Although the parent brings up a good point - Apache's Ant / Maven solve a lot of the problems we're talking about.
Your question centered around defining 'hot' java directories on a unix-like system. And you're complaining about having to write (7 line!) shell scripts to do it! Um, I may be speaking out of turn here, but perhaps you should consider a different language or environment for your project, especially if it needs more setup than my snippet can provide.
If installation on multiple (including non-unix) platforms is your goal, I'd suggest looking at something like InstallAnywhere or something that takes care of these details for you. If installation is only on a single unix-like platform (say for a www application deployment) that 7 lines of code will take you a long way!
I just don't get it. People must like to complain.:/
Yup, nothing like having your Windows users install and configure Cygwin in order to use your Java app....
You were paying attention, right? The parent asked about classpaths in unix-like system directories. Nobody asked about Windows compatability, and the discussion did not center around distributable Java products.
If you don't find the snipped useful, just fucking ignore it. Shithead.
Man you are so full of shit I can't believe this post is modded +5 and no-one has responded.
First you say:
Java makes using functions as arguments, variables, etc. very painful
Yeah, and your point is? In case you didn't notice, passing functions as arguments does not make the worlds most legible / maintainable code. On the other hand, an explicit interface is both legible and maintainable, plus you have an explicit place for documenting the interface (Javadoc in the interface definition).
Then you go on to say:
Then you have the issues with collections (to be fixed, we're told, in 1.5) -- the omnipresent downcasts.
This is an implicit downcast:
class foo { ; }
class bar extends foo { ; }
foo f = new bar();
It compiles perfectly and works as expected.
The last line of this:
ArrayList l = new ArrayList(); l.append("A String"); String s = (String)l.item(0);
Is an upcast. and I dare you to find a list implementation in any type-strong language that doesn't require an upcast in this situation. You need it to be able to store objects of an anonymous type on a list.
How such misinformed tripe ends up at +5, I'll never know...
Yes, but relying on the backtick operator limits your CLASSPATH to only about 64K characters, so you'll probably need to split that into 5 or 6 chunks.
Do you have any clue how much text 64,000 characters is?! I did say "usually" takes care of the problem. I've never seen such a big classpath. You're blowing smoke.
for x in `find/usr/local/java/lib -name '*.jar'`; do
CLASSPATH="$CLASSPATH:$x"; done
for x in `find $HOME/java/lib -name '*.jar'`; do
CLASSPATH="$CLASSPATH:$x"; done
You could put the first for x in... statement in the global/etc/bash.bashrc, and put the second $HOME for loop in ~/.bashrc so that it's run on user login.
At least this way you don't have to maintain it, but if you add.jars to one of the directories, you'll have to re-login to bash before starting the runtime.
There are 200 billion suns in this Galaxy and 125 billion galaxies.
Just remember that you're standing on a planet that's evolving And revolving at nine hundred miles an hour, That's orbiting at nineteen miles a second, so it's reckoned, A sun that is the source of all our power. The sun and you and me and all the stars that we can see Are moving at a million miles a day In an outer spiral arm, at forty thousand miles an hour, Of the galaxy we call the 'Milky Way'.
Our galaxy itself contains a hundred billion stars. It's a hundred thousand light years side to side. It bulges in the middle, sixteen thousand light years thick, But out by us, it's just three thousand light years wide. We're thirty thousand light years from galactic central point. We go 'round every two hundred million years, And our galaxy is only one of millions of billions In this amazing and expanding universe.
The universe itself keeps on expanding and expanding In all of the directions it can whizz As fast as it can go, at the speed of light, you know, Twelve million miles a minute, and that's the fastest speed there is. So remember, when you're feeling very small and insecure, How amazingly unlikely is your birth, And pray that there's intelligent life somewhere up in space, 'Cause there's bugger all down here on Earth.
-- The Galaxy Song; Monty Python's Meaning of Life
nubile adj.
1. Sarah Kerrigan
2. Ready for marriage; of a marriageable age or condition. Used of young women.
3. Sexually mature and attractive. Used of young women.
If I wasn't already married, I would have proposed by now;)
Mandrake is an excellent choice for MySQL. It works great out of the box. MySQL on Mandrake is actually twice as fast as FreeBSD, Mandrake wins MySQL benchmarks
Did you actually read the rest of that thread before jumping to conclusions?
MySQL Statically compiled with libc_r...
That's your killer. You're using the the single-process polling loop based threads and comparing it to linux's parallel process based threads. The moment one thread blocks on disk IO, everything stops.
it's pretty rare for the most part to take a random package off the net and have./configure; make all install; work at all
Any package that fails to do this in a Unix-like environment is *severely broken*.
This is getting sligtly offtopic and I have to write this in a hurry, but wtf.
When you use autoconf/automake correctly, your package should be able to build on any platform with autoconf/automake/make and package dependencies. The trick is to tell autoconf/make only this:
what your dependencies are
where your sources are
and let the system handle everything else. A local administrator has setup autoconf/automake so that the macros invoked work with the system in question.
I built a (now defunct) Gnome applet on RedHat 6 or so. A user notified me that it built and worked perfectly on Gnome under *Solaris*. I've never even had access to a Sun box;)
Ah yes, forgot about this one. It is strange isn't it? It makes my Cygwin+X as big as any base Linux installation (~800MB).
I suppose it must be one of two things: a) There is no.so (.dll?) support yet, or b) individual packages aren't using the.so support correctly, or it's simply much easier to switch the build to static and call it a day.
Either way, you're right it would be nice if they fixed this prob. Are you listening Cygwin?
Re:My Win desktop already runs *nix code...
on
Unix To Beef Up Longhorn
·
· Score: 4, Interesting
I call binary bias!
Your statement is a half-truth. You are actually running *Windows* code. From the point of view of binary distribution, yes I totally agree that Cygwin is a very useful set of tools.
Source code, however, is another matter entirely. You can't just take some random package off the net, do a
./configure; make all install;
and expect it to work. Yes, on some occasions it does, but often not.
Many times developers use
`uname`
in their build system, and if they don't expect 'CYGWIN_NT-5.0', the build breaks. Unless you have a good idea how autconf/make works, you could be up the creek.
Now whenever the page detects it's popup was blocked, it will force the user to view a full-screen advertising page
This is interesting. So, maybe what should happen instead is that a dummy window object should be returned. One that has all the functionality of the standard DOM window, but doesn't display any actual window...
In order to really implement it though, browsers would have to actually load the requested content, so that to the server it would *appear* that everything is going as planned (via session tracking or whatever).
It would mean the same network-performance hit as if the advert had worked, but at least we wouldn't have to see the ad.
Semi offtopic, but I just wanted to point out how cool it was that San Francisco has been buying up old classic trains from the early 20th century, refurbishing them, and actually have a great many of these near-antiques actually in service.
I've seen some really cool classic cars from Italy, Germany, and a great old one from the Chicago 'el' train.
Very cool. Great history and better for the environment! Get rid of that awful SUV today!
It's reminding me of my old train set in my parent's basement. Ooh, must resist urge to fire up RR Tycoon;)
Interesting... Just sent this mail to the author of jailkit. Enjoy.
Thought I would share the fascinating setup I have managed to create using Jailkit.
As I mentioned before, I am creating a public development environment, and want my users to be highly isolated from each-other. Each user gets their own whole jail, complete with Java, Apache Tomcat, and Postgresql.
Outside the jail, Apache 2 and mod_jk2 forward requests to the Apache Tomcat container instance running inside the jail on a unique port. Web applications running under Tomcat connect to the user's unique database port. This means that each user can stop and restart Tomcat, or destroy their Postgres database without affecting any other user.
I've even given each jail it's own mini-init system, which executes start/stop/restart commands in an/etc/init.d directory.
This would not have been possible without Jailkit. Or, if it were, maintaining file permissions alone in such a system would have been a nightmare. Jailkit provides a partition that makes permissions management simple.
That my friend is the difference between marketing and defamation.
Yes, but we tend anthropomorpihize OSes. For example, Tux, the BSD daemon, clippy, that little XP doggie, ad nauseum, have very human qualities.
I say, these entities deserve every bit as much protection as any human, because attacking them results in the same hurt feelings by OS users as the family of a defamed human would feel.
I saw an episode of Iron Chef recently where the translated captions called it the "Piglet Battle", but the announcers clearly called it the "Suckling Pig Battle". I'm sure the reason was that they didn't want children in the US freaking out because the Iron Chefs are cooking and eating the lovable cartoon pig they've been reading about in Winnie the Pooh! Linux deserves at least as much respect as Piglet!
OK, I'm a newbie experimenting here, perhaps you will help. After reading your post and a good definition of the Zeta function, I knocked this up to calc zeta on the real number line:
from math import pow
def zeta(s): t = 0; # does no. samples affect results? for x in range(1, 25): f = 1.0/x n = pow(f,s) t += n return t
print str(zeta(-2))
(ugh stupid 'ecode' tag doesn't indent my python correctly)
For zeta(n<=-1) I get a large positive integer (which I believe translates to infinity). For zeta(n>=1) I get a number approaching 1 for larger values of n.
Am I missing something here? How do (-2, -4, -6...) etc produce a "trivial zero"? Does this function only work with complex numbers?
It would take a long time to rewrite the entire J2EE spec or to rewrite Struts, but it doesn't take long to write something that does what my own application needs.
The arrogance!
There are major flaws with this line of thinking. I just started a new job where the developer I replaced shared your philosophy. It was a disaster. He wrote a half-assed persistent object model tied heavily to our application and MySql. Now that he's gone:
* Nobody can update his code on schema changes
* The code has bugs, we aren't digging through 1000+ lines of shash to figure it out..
* There isn't a single javadoc comment in the whole project.
So, by your logic I should throw out his work and write it again. What utter BS. Apache Torque (a Jakarta project) does a *far* better job with a cleaner interface than you can write, I guarantee it. Plus, we can upgrade Torque itself (if there is any need... doubtful). The new object model now can support any database and is not tied at all to the application. Even if I leave the company, someone else *will* be able to maintain it: change XML schema, rebuild, voila new object model.
It really sounds like you're grepping for a justification for re-inventing the wheel. Take the time to learn the frameworks. Some of them (esp Jakarta stuff) will suprise you.
I assume you meant to reply to my post, since this response has nothing at all to do with Ant. Although the parent brings up a good point - Apache's Ant / Maven solve a lot of the problems we're talking about.
:/
Your question centered around defining 'hot' java directories on a unix-like system. And you're complaining about having to write (7 line!) shell scripts to do it! Um, I may be speaking out of turn here, but perhaps you should consider a different language or environment for your project, especially if it needs more setup than my snippet can provide.
If installation on multiple (including non-unix) platforms is your goal, I'd suggest looking at something like InstallAnywhere or something that takes care of these details for you. If installation is only on a single unix-like platform (say for a www application deployment) that 7 lines of code will take you a long way!
I just don't get it. People must like to complain.
If you don't find the snipped useful, just fucking ignore it. Shithead.
First you say: Yeah, and your point is? In case you didn't notice, passing functions as arguments does not make the worlds most legible / maintainable code. On the other hand, an explicit interface is both legible and maintainable, plus you have an explicit place for documenting the interface (Javadoc in the interface definition).
Then you go on to say:This is an implicit downcast:It compiles perfectly and works as expected.
The last line of this:Is an upcast. and I dare you to find a list implementation in any type-strong language that doesn't require an upcast in this situation. You need it to be able to store objects of an anonymous type on a list.
How such misinformed tripe ends up at +5, I'll never know...
At least this way you don't have to maintain it, but if you add
Hope that helps!
some dude has pics here.
It makes a lot of sense... he lives in the area (across the bay), and they really do look like AT-ATs.
Attack of the Killer Tomatoes
And revolving at nine hundred miles an hour,
That's orbiting at nineteen miles a second, so it's reckoned,
A sun that is the source of all our power.
The sun and you and me and all the stars that we can see
Are moving at a million miles a day
In an outer spiral arm, at forty thousand miles an hour,
Of the galaxy we call the 'Milky Way'.
Our galaxy itself contains a hundred billion stars.
It's a hundred thousand light years side to side.
It bulges in the middle, sixteen thousand light years thick,
But out by us, it's just three thousand light years wide.
We're thirty thousand light years from galactic central point.
We go 'round every two hundred million years,
And our galaxy is only one of millions of billions
In this amazing and expanding universe.
The universe itself keeps on expanding and expanding
In all of the directions it can whizz
As fast as it can go, at the speed of light, you know,
Twelve million miles a minute, and that's the fastest speed there is.
So remember, when you're feeling very small and insecure,
How amazingly unlikely is your birth,
And pray that there's intelligent life somewhere up in space,
'Cause there's bugger all down here on Earth.
-- The Galaxy Song; Monty Python's Meaning of Life
nubile adj.
;)
1. Sarah Kerrigan
2. Ready for marriage; of a marriageable age or condition. Used of young women.
3. Sexually mature and attractive. Used of young women.
If I wasn't already married, I would have proposed by now
Aarg! Either:
./ id than you :P
1) Fix the quotation in your sig.
or
2) Change it entirely because I've been using that one for years and I have a lower
OK back on topic:
Cray r00lz! No, Beowulf r00lz! No, a Beowulf cluster of Crays r00l!!1
This is getting sligtly offtopic and I have to write this in a hurry, but wtf.
When you use autoconf/automake correctly, your package should be able to build on any platform with autoconf/automake/make and package dependencies. The trick is to tell autoconf/make only this:
- what your dependencies are
- where your sources are
and let the system handle everything else. A local administrator has setup autoconf/automake so that the macros invoked work with the system in question.I built a (now defunct) Gnome applet on RedHat 6 or so. A user notified me that it built and worked perfectly on Gnome under *Solaris*. I've never even had access to a Sun box
Must go... kitty/vet thing.
Ah yes, forgot about this one. It is strange isn't it? It makes my Cygwin+X as big as any base Linux installation (~800MB).
.so (.dll?) support yet, or b) individual packages aren't using the .so support correctly, or it's simply much easier to switch the build to static and call it a day.
I suppose it must be one of two things: a) There is no
Either way, you're right it would be nice if they fixed this prob. Are you listening Cygwin?
Your statement is a half-truth. You are actually running *Windows* code. From the point of view of binary distribution, yes I totally agree that Cygwin is a very useful set of tools.
Source code, however, is another matter entirely. You can't just take some random package off the net, do a and expect it to work. Yes, on some occasions it does, but often not.
Many times developers use in their build system, and if they don't expect 'CYGWIN_NT-5.0', the build breaks. Unless you have a good idea how autconf/make works, you could be up the creek.
At least we're keeping Pud busy... ;)
In order to really implement it though, browsers would have to actually load the requested content, so that to the server it would *appear* that everything is going as planned (via session tracking or whatever).
It would mean the same network-performance hit as if the advert had worked, but at least we wouldn't have to see the ad.
Semi offtopic, but I just wanted to point out how cool it was that San Francisco has been buying up old classic trains from the early 20th century, refurbishing them, and actually have a great many of these near-antiques actually in service.
;)
I've seen some really cool classic cars from Italy, Germany, and a great old one from the Chicago 'el' train.
Very cool. Great history and better for the environment! Get rid of that awful SUV today!
It's reminding me of my old train set in my parent's basement. Ooh, must resist urge to fire up RR Tycoon
I say, these entities deserve every bit as much protection as any human, because attacking them results in the same hurt feelings by OS users as the family of a defamed human would feel.
I saw an episode of Iron Chef recently where the translated captions called it the "Piglet Battle", but the announcers clearly called it the "Suckling Pig Battle". I'm sure the reason was that they didn't want children in the US freaking out because the Iron Chefs are cooking and eating the lovable cartoon pig they've been reading about in Winnie the Pooh! Linux deserves at least as much respect as Piglet!
(ugh stupid 'ecode' tag doesn't indent my python correctly)
For zeta(n<=-1) I get a large positive integer (which I believe translates to infinity). For zeta(n>=1) I get a number approaching 1 for larger values of n.
Am I missing something here? How do (-2, -4, -6...) etc produce a "trivial zero"? Does this function only work with complex numbers?
Thanks for the great post!
Hmm, well you could try "Java The Hut" down by the docks, or if your on the north side, there's always "The Java Server" :)
There are major flaws with this line of thinking. I just started a new job where the developer I replaced shared your philosophy. It was a disaster. He wrote a half-assed persistent object model tied heavily to our application and MySql. Now that he's gone:
* Nobody can update his code on schema changes
* The code has bugs, we aren't digging through 1000+ lines of shash to figure it out..
* There isn't a single javadoc comment in the whole project.
So, by your logic I should throw out his work and write it again. What utter BS. Apache Torque (a Jakarta project) does a *far* better job with a cleaner interface than you can write, I guarantee it. Plus, we can upgrade Torque itself (if there is any need... doubtful). The new object model now can support any database and is not tied at all to the application. Even if I leave the company, someone else *will* be able to maintain it: change XML schema, rebuild, voila new object model.
It really sounds like you're grepping for a justification for re-inventing the wheel. Take the time to learn the frameworks. Some of them (esp Jakarta stuff) will suprise you.
Possibly some kind of automated abattoir between the cage and the oven.
./lunch.sh, and voila... 5 minutes later lunch is served!
:P
Then, I just do a quick
I'd be interested in collaborating on an open-source project for building the drivers, if anyone's interested.
Activity Percentile (last week): 0%
This Project Has Not Released Any Files
Informative?! My ass...
Oh yes, 2 days ago. I call repeat.