background preloader

Java

Facebook Twitter

UDP

Sockets. Profiling. EDA. The Absolute Minimum Every Software Developer Absolutely, Positi. By Joel Spolsky Wednesday, October 08, 2003 Ever wonder about that mysterious Content-Type tag? You know, the one you're supposed to put in HTML and you never quite know what it should be? Did you ever get an email from your friends in Bulgaria with the subject line "???? ?????? ??? I've been dismayed to discover just how many software developers aren't really completely up to speed on the mysterious world of character sets, encodings, Unicode, all that stuff.

But it won't. So I have an announcement to make: if you are a programmer working in 2003 and you don't know the basics of characters, character sets, encodings, and Unicode, and I catch you, I'm going to punish you by making you peel onions for 6 months in a submarine. And one more thing: In this article I'll fill you in on exactly what every working programmer should know. A Historical Perspective The easiest way to understand this stuff is to go chronologically. And all was good, assuming you were an English speaker. Unicode Hello Next: J-Interop: An Open Source Library for COM Interoperability Witho. I have spent a good part of the last year trying to "wrap" COM servers in Java for a content management organization. It had an array of syndication servers supported by an integrated messaging platform developed using COM.

The purpose of this exercise was to increase the organization's market penetration by hooking on to the J2EE bandwagon across multiple platform configurations. With so many different complex COM servers to work with, some supporting automation and others not, I struggled with the all too familiar JNI cycle...code, crash, code some more, and then crash. Literally speaking, I must have brought down the JVM hundreds of times. To top it off, some syndication servers worked on a "pull" mechanism, they could pull the content out from the interfacing repositories.

This meant bi-directional access and an event-based interoperation. I had a look at some Open Source projects, but they were all using native libraries and didn't sufficiently meet the requirements in hand. 1. Journal - September 2004 Volume 3 Issue 7. Lasse Koskela Accenture Technology Solutions Continuous Integration is one of the buzzwords most people have probably heard of but surprisingly few are actually following this XP best practice. Keeping this in mind, I'll begin this tutorial by briefly describing what Continuous Integration actually means, why you should consider doing it, and finally, showing step by step how to do it using one of the most used Continuous Integration products, the open source CruiseControl developed by a bunch of ThoughtWorkers.

Technically, the term "Continuous Integration" means that everyone on the team integrates their changes back into the source repository frequently, verifying that the changes didn't break anything. These days, most people associate Continuous Integration to be highly automated as well, i.e. having an automatic build system in place to continuously verify that the code in the repository compiles and passes all its tests.

You also may have heard of Daily Builds or Nightly Builds. Using VM Agents. Traditionally a Java VM agent is loaded into a VM at initialization with the option -XrunNAME, where NAME is the name of the native shared library or DLL, e.g. "libNAME.so" or "NAME.dll". For example, using HPROF you would say "java -Xrunhprof", it would find "libhprof.so" or "hprof.dll" in the JDK, load it, and make a call into that agent library to get it started. Of course in JDK 5.0, the new option spelling is "-agentlib",.e.g. "java -agentlib:hprof", but JDK 5.0 will accept either option spelling. There is a set of sample JVM TI agents in the demo directory of the JDK available in the JDK 5.0 download, or if you are brave the latest JDK 6.0 download.

Source and binaries are included for anyone interested in creating their own custom agent library. Once a VM has managed to successfully load an agent library, it looks for a symbol in it to call and establish the agent to VM connection. So I won't go into the older agent API, but concentrate on JVM TI. See how simple it is? Java theory and practice: Garbage collection in the HotSpot JVM. Dealing with Large Memory Requirements ... Replies: 18 - Pages: 2 [ 1 2 | Next ]