nxt's place

Search


Calendar

« September 2008
MonTueWedThuFriSatSun
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today


Tag Cloud

3com acer ajax apache apr awt buitenkunst c++ car charva cross debug design domain drop dwr ejb fold fuse glass google gui ie injection jboss jna jni linux looking microsoft mime native newsgroup nntp officeconnect raxco remoting resource router scm software ssl subversion sun superversion svn swing travel ui web

IE8: opt-out mime sniffing

July 22, 2008 by nxt

According to a recent blog entry on msdn  Microsoft has finally decided to fix a very annoying 'feature' of internet explorer. Mime-sniffing.

 It always irritated me that when I specified a content-type for a web page, Internet Explorer would just look at the content and say: "your wrong" and renders the page the way it thinks you intended.
If I give a html page text/plain as content-type I intend to let it show the source, not render it as html because if I wanted that I would have given it text/html as content-type.

At least in IE8 they allow us to disable the mime sniffing by appending ";authoritative=true" to the content-type header. This way it won't hurt other browsers and we are still able to provide the mime type ourselves.

 

JNA: Java Native Access

December 09, 2007 by nxt

If you use JNI to access native code you'll quickly find yourself writing some glue in c/c++ to access the native library. With JNA you can write nice clean code in Java without the need to glue your java code to the native library. This is all done by JNA.

All you need to do is define an interface that  (extends the Library interface and) exposes the methods in the library that you want to access:
import com.sun.jna.*;
// kernel32.dll uses the __stdcall calling convention
// Most C libraries will just extend com.sun.jna.Library
public interface Kernel32 extends StdCallLibrary {
// Method declarations, constant and structure definitions go here
}

Next you load the library using the following code:
Kernel32 kernel32Instance = (Kernel32)
    Native.loadLibrary("kernel32", Kernel32.class);


That's all there is to it, you can now access all methods you defined in the interface.
 Checkout the project page

 

cross domain AJAX

November 25, 2006 by nxt

Using AJAX (which implies the use of the XMLHttpRequest) has one big limitation, you can only make requests to the server from where the page was downloaded.
As an alternative you can use javascript to dynamically include other javascript files which should be generated serverside.

An example on how to call the server:

function callServer() {
 var head = document.getElementsByTagName("head").item(0);
 var myTag = document.createElement("script");
 myTag.setAttribute("type", "text/javascript");
 myTag.setAttribute("src",
  "http://example.com/application/getjs/?var1=value1");
 head.appendChild(myTag);
}

The idea is that you generate the javascript that you need by dynamically add another script tag on the page.
for an excellent example of this approach you can read this javaworld article

 

Fuse 0.1

February 11, 2006 by nxt

Fuse 0.1 has been released

A brief overview of the features in this release:
* Multiple ResourceInjector instance support
* TypeLoader property support
* Global resource syntax
* SWT support
* Fully modular architecture (/Core, /Swing, and /SWT)
* Documentation (both javadoc and TypeLoader specific)
* A brand new build system and instructions on how to use it

 

Fuse, UI Oriented Resource Injection

February 05, 2006 by nxt

With Fuse you can easily inject data in your application at runtime by specifying them in a properties file,
for example using an background image
you used to do something like this:
class CustomComponent extends JComponent {
 private Image background;
 CustomComponent() {
  try {
   background = ImageIO.read(getClass()
    .getResource("/resources/background.png"));
  } catch (IOException e) { }
 }
}

With fuse the code would look like this
class CustomComponent extends JComponent {
 @InjectedResource
 private Image background;
 CustomComponent() {
  ResourceInjector.get().inject(this);
 }
}

Ofcourse you must load a properties file before calling inject using:
ResourceInjector rInjector=
 ResourceInjector.get().load("/resources/fuse.theme");



For more information about Fuse see this entry in the Romain Guy's blog. or take a look at the project page
 

 

new car

January 14, 2006 by nxt

I finally bought a car.
car