Monday, December 27, 2004

Linux Kernel - Selective Module Compile

FedoraForum.org - kernel compile:
cd /usr/src/linux*
make modules SUBDIRS=fs/ntfs
make modules_install
ls
/lib/modules/2.4.22-1.2188.nptl/kernel/fs/ntfs

Wednesday, December 15, 2004

Slashdot | What are Some Essential Java Libraries?

Slashdot | What are Some Essential Java Libraries? Commons Logging. [apache.org] Yeah, you said you wanted to avoid extra libraries, but the overhead of commons logging is so incredibly small, and the extra libraries you'll want to otherwise use are going to require it anyway. It's a measly 28KB last I checked, and well worth it. HttpClient [apache.org] If you want to do any form of HTTP transfers, avoid HttpUrlConnection (built in to Java) at all costs. The HttpUrlConnection code is broken in many ways (too many to list), so you'll need another library. HttpClient does a good job of hiding the HTTP transfer behind the scenes, and has easy ways of letting you extend/change what you need. JGoodies Looks [jgoodies.com] Swing is getting better every day, but for that extra polish, you'll want to use the JGoodies Looks library. It does a great job of making Metal look just that much better, and also helps out the Windows L&F in some places. Xerces [apache.org] I'm not sure if the bulk of this is included in the latter versions of Java, but Xerces is definitely a must-have for any XML parsing. Other goodies... For rendevous (multicast DNS) support, use jmDNS [sourceforge.net]. It just works. If you need i18n handling (normalization, etc..), IBM's icu4j [ibm.com] does a great job. GlazedLists [publicobject.com] - UI List/Table Manipulation Doug Lea's Concurrency Utilities [oswego.edu] - If you haven't yet made the plunge to Java 5.0, this is indispensable for anything thread related. Trove4J [sourceforge.net] - High performance collections that work with primitives. We do wire-speed packet capture and flow analysis with this stuff. 'nuf said. * Logging - log4j (I agree with the previous poster. Don't write log4j off) * Unit Test - junit * Xml Serialization - xstream (very light-weight and easy to use object->xml serialization ) * Data access - iBATIS (a beautifully simple data access layer) * App framework - Spring (not just for the web controller... the IoC and AOP stuff is quite nice.) cglib [sourceforge.net], a library that lets you do metaclass programming efficiently in Java; it's similar to java.lang.reflect.Proxy, but more flexible and compiled to bytecode. Cglib is commonly used to create decorators -- for example, Hibernate uses it to generate proxies, to transparently track whether persistent objects have changed in memory and must be re-saved to the database -- but there are other uses, such as mimicking the mixin pattern. Xalan [apache.org] for XSLT and XPath processing. Here's a tip: Never, ever use SAX for XML parsing of application-specific data structures. SAX is a nice low-level interface for building upon, but unless you're programmatically emitting a document from scratch, it's painful to use -- you always end up writing a stack-based content handler to keep nesting state. XPath makes parsing a breeze. JGroups [jgroups.org] (formerly JavaGroups) is a protocol stack for building reliable, fairly efficient network communications based on, among other things, multicast IP. The entire stack is user-defineable, so you can pick and choose the level of reliability and which features you want (TCP support, pinging, group membership management etc.). Lucene [apache.org] is a text-indexing engine. It's actually pretty crap, and does not scale very far (we're talking a few seconds for result sets of only a few thousand documents), and the code is pure spaghetti (abstract base classes! Inheritance!), but if you need a little indexing engine or some decent text tokenization classes, and your performance requirements are modest, it works well enough. SableCC [sablecc.org] is a good BNF-based parser generator that generates type-safe parse trees that can navigated at runtime. Unlike the more well-known JavaCC [java.net], it's easy to get started, not least because the BNF-like grammar is so simple. JFreeChart [jfree.org] - for all your plotting needs. Robust, quick, and fairly bug free. Not perfect, but hackable. iText [lowagie.com] - a free Java PDF library. My preferred method for creating reports, especially since a lot of my output needs to be e-mailed or submitted to the government, not printed out. JAMA [nist.gov] - a Java Matrix package. The fact that this library has a working singular value decomposition has saved me bunches of time programming a boring and tricky algorithm. I guess it has other stuff, too.

Tuesday, November 16, 2004

Mounting Bochs hard disk image

Today I have made some tests with the loop device, because I want to exchange files with the bochs disk images. This is what I found out: 1. Using Floppy images is easy, because there is no partition table: losetup /dev/loop0 /usr/local/bochs/dlxlinux/floppya.img Now you can use the image like a real floppy: - format : mkfs.minix /dev/loop0 - filesystem check : fsck.minix /dev/loop0 - mount : mount /dev/loop0 -o loop /mnt/floppy Before you want to restart bochs you must do this: losetup -d /dev/loop0 Don't forget to umount before. 2. If you want access to a hard disk image, you have to calculate the size of the first cylinder. This value is the offset argument for losetup. offset = bytes per sector * sectors per cylinder The command for dlxlinux image looks like this: losetup /dev/loop0 /usr/local/bochs/dlxlinux/hd10meg.img -o 8704 For images created by bximage you must use the value 32256. 3. The hard disk image access doesn't work if the image contains more than one partition. 4. I have made this tests with linux and I don't know how this could be done with other operating systems.

Wednesday, September 01, 2004

Modifying Styles with Javascript

Manipulate CSS with javascript

Friday, July 16, 2004

Set PHP include path in runtime

ini_set('include_path',ini_get('include_path').';'.'C:/gtkdev/scripts/firemail/global_include');

Saturday, July 03, 2004

CodeGuru: Interfacing VC , Java, and Assembly

javah jnitest
cl -c jnitest.cpp /Ij:\jbuilder8\jdk1.4\include /Ij:\jbuilder8\jdk1.4\include\win32 -Fejnitest.dll -MD
link jnitest.obj mydll.lib /dll
CodeGuru: Interfacing VC , Java, and Assembly