Domain: sitraka.com
Stories and comments across the archive that link to sitraka.com.
Comments · 13
-
Re:Can't install anything?I don't see how anything else could work.
I'm blatantly plugging our product here, but DeployDirector sends a bootstrap client using whatever crappy VM is installed in the browser and uses that to install a real JVM, the application and lots of other stuff. It absolutely meets the requirement of letting you run stuff on a machine without ever doing a "installation". You click on a hyperlink in a browser and magic happens.
-
DeployDirector
Disclaimer: this is a commercial product made by the company I work for.
http://www.sitraka.com/software/deploydirector/
DeployDirector will deploy client-side Java apps through a browser exactly how you need it to. It deploys full apps, not applets. It will use the browser's VM, any version, to bootstrap the installation of another, better JRE on the system, install the whole app, everything.
It's similar to Java Web Start, but we began before Web Start and are a much more complete, industrial-strength solution. Check the web site for the obligitory customer success stories.
Yes, it costs money. Try using plain Web Start for a while and you'll see why - it's worth it. You can evaluate it for free though.
-
Re:Escrow and a sample source SLA
The company where I work occaisionally allows the source to burned to a CD to by held by the purchaser (NOT a 3rd party) for escrow purposes only. It's worked fine for us. I work on a very small product line for a very small company with some very large clients; they primarily want the source because they worry about this product disappearing. Unfortunately, I can't provide you with a copy of such an agreement -- I don't have one.
On the other hand, you sound like you you want to do is sell source code that your customer can actively use it, but still maintain maintenance fees. I'd look at SLAs for commercial components as an example -- some will sell source. One example (for JClass Java components) is here.
Personally, I'd recommend going the escrow route, and perform modifications for the customer for an additional fee as required -- it would be extremely difficult from a technical point of view to support software that has been modified by 3rd parties who may not fully understand the side-effects of their changes. It sounds like your customer primarily wants security; escrow can provide that.
-
Re:Java? You could try Java Web Start
Actually, if you're doing an internal or extra-net application (that is, you're distributing in a corporate environment, not an ISV) then you actually want to use DeployDirector by Sitraka.
The apps deployed with it do not have to run in a sandbox, which is a benefit if your users consider you a trusted souce (i.e., internal IT group). It's not free, but it's really good.
It's got some great administration/management capability as well -- far superior to WebStart, which has NO such capabilities.
Incidentally, Java Web Start is still really rough. (I've played around with a few Java deployment technologies, and JWS is the crappiest -- but then again, it's just the reference implemenation.)
-
Re:Multi-threading
For those working in the comfy Java world, there's JProbe Threadalyzer . It can detect deadlocks, race-conditions, and other such niceties, and display them visually.
-
Plenty of options for Java
For Java we have a really nice choice of profilers. There are basically three great products available, all of them have proved to be absolutely useful. There is JProbe, OptimizeIt and JProfiler (the 2.0 beta of JProfiler looks cool). I don't know what the problems on Linux are, but when programming Java, profiling is quite an enjoyable task.
-
what works for me
Haven't had much luck finding a decent IDE for my environment (servlets->EJB->JDBC, etc, etc). What I have found that works well is a good text editor: gvim. Syntax highlighting, and my fingers know vi. CVS for source control and ant for build/distribution. Also have had good luck with optimizeit for profiling java apps. Profilier is especially nice because it lets me attach to an application server and filter out application server specific classes (which can be many). This allows me to really see what my beans are doing. Also fond of jprobe for debugging. Using many different apps for different aspects of development can be a pain in the ass, but I've found that after a little meddling around, it works quite well. Anyhow, just my 2 cents.
-
In Java, I like
I'm currently building some server-side Java web applications. Since the Java Servlet stuff is inherently multi-threaded, I have indeed occasionally been reminded that multi-threaded applications are tricky.
A few months back, we purchased a suite of tools from an outfit called Sitraka (nee KLGroup). They have three products that are part of the JProbe Suite, a CPU and memory profiler, a thread analysis program, and a code coverage tool.
These are all good tools; when I was having some problems that I suspected were due to my less-than-perfect understanding of threading, I used their thread analysis tool under simulated load, and it immediately identfied my race condition, plus a couple more potential races I hadn't noticed yet.
(This is a little off-topic, but I have to mention that their memory/CPU profiler is, pardon my french, fucking awesome; it is the best thing I have ever seen for visualizing the interior structure of a running program. After a day with the profiler, my Java code was substantially faster than the C it was replacing, despite having more features and being more secure.)
Another tool I'm very pleased with is JUnit, a unit-testing framework. If you're interested in trying out the Extreme Programming-style approach to testing (wherein you make automated, integrated unit tests that are run more or less continuously) then this is for you. And if you are having so many problems with bugs that you are considering changing languages, then I would strongly recommend that you do this. Good unit tests slow initial writing down a little, and save you extraordinary amounts of time and agony later.
Oh, and run out right now and buy several copies of Code Complete and Rapid Development for the team. If you are having such large problems on the project, the problem is probably not with your choice of debugger. These books will help you figure out what the problem actually is, and give you all sorts of solutions.
--
For the record, and I don't have any financial interest in any of the things I've mentioned here; I just use 'em and like 'em. -
In Java, I like
I'm currently building some server-side Java web applications. Since the Java Servlet stuff is inherently multi-threaded, I have indeed occasionally been reminded that multi-threaded applications are tricky.
A few months back, we purchased a suite of tools from an outfit called Sitraka (nee KLGroup). They have three products that are part of the JProbe Suite, a CPU and memory profiler, a thread analysis program, and a code coverage tool.
These are all good tools; when I was having some problems that I suspected were due to my less-than-perfect understanding of threading, I used their thread analysis tool under simulated load, and it immediately identfied my race condition, plus a couple more potential races I hadn't noticed yet.
(This is a little off-topic, but I have to mention that their memory/CPU profiler is, pardon my french, fucking awesome; it is the best thing I have ever seen for visualizing the interior structure of a running program. After a day with the profiler, my Java code was substantially faster than the C it was replacing, despite having more features and being more secure.)
Another tool I'm very pleased with is JUnit, a unit-testing framework. If you're interested in trying out the Extreme Programming-style approach to testing (wherein you make automated, integrated unit tests that are run more or less continuously) then this is for you. And if you are having so many problems with bugs that you are considering changing languages, then I would strongly recommend that you do this. Good unit tests slow initial writing down a little, and save you extraordinary amounts of time and agony later.
Oh, and run out right now and buy several copies of Code Complete and Rapid Development for the team. If you are having such large problems on the project, the problem is probably not with your choice of debugger. These books will help you figure out what the problem actually is, and give you all sorts of solutions.
--
For the record, and I don't have any financial interest in any of the things I've mentioned here; I just use 'em and like 'em. -
In Java, I like
I'm currently building some server-side Java web applications. Since the Java Servlet stuff is inherently multi-threaded, I have indeed occasionally been reminded that multi-threaded applications are tricky.
A few months back, we purchased a suite of tools from an outfit called Sitraka (nee KLGroup). They have three products that are part of the JProbe Suite, a CPU and memory profiler, a thread analysis program, and a code coverage tool.
These are all good tools; when I was having some problems that I suspected were due to my less-than-perfect understanding of threading, I used their thread analysis tool under simulated load, and it immediately identfied my race condition, plus a couple more potential races I hadn't noticed yet.
(This is a little off-topic, but I have to mention that their memory/CPU profiler is, pardon my french, fucking awesome; it is the best thing I have ever seen for visualizing the interior structure of a running program. After a day with the profiler, my Java code was substantially faster than the C it was replacing, despite having more features and being more secure.)
Another tool I'm very pleased with is JUnit, a unit-testing framework. If you're interested in trying out the Extreme Programming-style approach to testing (wherein you make automated, integrated unit tests that are run more or less continuously) then this is for you. And if you are having so many problems with bugs that you are considering changing languages, then I would strongly recommend that you do this. Good unit tests slow initial writing down a little, and save you extraordinary amounts of time and agony later.
Oh, and run out right now and buy several copies of Code Complete and Rapid Development for the team. If you are having such large problems on the project, the problem is probably not with your choice of debugger. These books will help you figure out what the problem actually is, and give you all sorts of solutions.
--
For the record, and I don't have any financial interest in any of the things I've mentioned here; I just use 'em and like 'em. -
In Java, I like
I'm currently building some server-side Java web applications. Since the Java Servlet stuff is inherently multi-threaded, I have indeed occasionally been reminded that multi-threaded applications are tricky.
A few months back, we purchased a suite of tools from an outfit called Sitraka (nee KLGroup). They have three products that are part of the JProbe Suite, a CPU and memory profiler, a thread analysis program, and a code coverage tool.
These are all good tools; when I was having some problems that I suspected were due to my less-than-perfect understanding of threading, I used their thread analysis tool under simulated load, and it immediately identfied my race condition, plus a couple more potential races I hadn't noticed yet.
(This is a little off-topic, but I have to mention that their memory/CPU profiler is, pardon my french, fucking awesome; it is the best thing I have ever seen for visualizing the interior structure of a running program. After a day with the profiler, my Java code was substantially faster than the C it was replacing, despite having more features and being more secure.)
Another tool I'm very pleased with is JUnit, a unit-testing framework. If you're interested in trying out the Extreme Programming-style approach to testing (wherein you make automated, integrated unit tests that are run more or less continuously) then this is for you. And if you are having so many problems with bugs that you are considering changing languages, then I would strongly recommend that you do this. Good unit tests slow initial writing down a little, and save you extraordinary amounts of time and agony later.
Oh, and run out right now and buy several copies of Code Complete and Rapid Development for the team. If you are having such large problems on the project, the problem is probably not with your choice of debugger. These books will help you figure out what the problem actually is, and give you all sorts of solutions.
--
For the record, and I don't have any financial interest in any of the things I've mentioned here; I just use 'em and like 'em. -
In Java, I like
I'm currently building some server-side Java web applications. Since the Java Servlet stuff is inherently multi-threaded, I have indeed occasionally been reminded that multi-threaded applications are tricky.
A few months back, we purchased a suite of tools from an outfit called Sitraka (nee KLGroup). They have three products that are part of the JProbe Suite, a CPU and memory profiler, a thread analysis program, and a code coverage tool.
These are all good tools; when I was having some problems that I suspected were due to my less-than-perfect understanding of threading, I used their thread analysis tool under simulated load, and it immediately identfied my race condition, plus a couple more potential races I hadn't noticed yet.
(This is a little off-topic, but I have to mention that their memory/CPU profiler is, pardon my french, fucking awesome; it is the best thing I have ever seen for visualizing the interior structure of a running program. After a day with the profiler, my Java code was substantially faster than the C it was replacing, despite having more features and being more secure.)
Another tool I'm very pleased with is JUnit, a unit-testing framework. If you're interested in trying out the Extreme Programming-style approach to testing (wherein you make automated, integrated unit tests that are run more or less continuously) then this is for you. And if you are having so many problems with bugs that you are considering changing languages, then I would strongly recommend that you do this. Good unit tests slow initial writing down a little, and save you extraordinary amounts of time and agony later.
Oh, and run out right now and buy several copies of Code Complete and Rapid Development for the team. If you are having such large problems on the project, the problem is probably not with your choice of debugger. These books will help you figure out what the problem actually is, and give you all sorts of solutions.
--
For the record, and I don't have any financial interest in any of the things I've mentioned here; I just use 'em and like 'em. -
Re:Java, it could have been good...
Probably the biggest problem for the targets that Java was aimed at is the fact that performace wise, most Java sucks compared to a good native code implementation.
Let's be honest here; about 99% of code currently in use sucks compared to a good native implementation. Although there are some delightful exceptions (e.g., a lot of the Linux kernel), most code is written to run adequately fast, rather than as fast as possible.
This isn't a bad thing; it's just that most programmers write code to solve a particular real-world problem, and stop when the problem has been solved. They only put a lot of work into performance when they're forced to.
Right now I'm in the middle of rewriting a high-volume Perl and C website using Java servlets. Initially, my code was slower than the C, but faster than the Perl. And then I spent a day using a performance analysis tool" and optimizing the bottlenecks and now it's faster than the C and about 10 times faster than the perl, even though it does more and is much more reliable.
This is not to knock Perl or C; I use 'em both when appropriate. But for most of the situations where you'd think about using Java, getting the most out of your CPU isn't the overriding concern.