Thursday, November 18, 2004

JEdit 2

Quick way to get the syntax checking on is to create a macro that runs JCompiler. This worked for me because the classpath that I have JCompiler set up with (from maven) will compile the files I'm working on. So all I do is run a macro that saves the buffer and compiles it. JCompiler updates ErrorList with the line numbers of the issues it
encounters. Everything works beautifully.

Jedit rules

Okay, I've had it again with Eclipse. It's slow, cumbersome, and drives me nuts with its unresponsive behavior. Several times this week I've completely lost my keyboard functionality. Sure it responds to the mouse and I can navigate, click on menus, etc. But i can't type! Usually I have to either reset the beast or I have to open a model
dialog, then close it, and then the keyboard may work. Either way, I'm jumping back to JEdit.

Several huge plug-ins I got working this morning and absolutely love:

a) Open It. This functions just like the Open Resource in Eclipse: a dialog pops-up, you type in the filename and it matches as you type. This is great because it alleviates the necessity to use the built-in file-explorer in JEdit (which I think is kind of a pain).

b) Dot-Complete. Finally had some inspiration this morning in getting this to work the way I want it. Our projects are Maven projects. How to get the classpath into Dot Complete? Solution is simple, maven -X build-ourproject. Dumps out the the classpath that's created from the dependencies in project.xml. This is great! Now it works and is saving me time and pain of constantly referencing Javadocs.

c) XML/HTML. While I have had this working forever, I simply love how easy it is to create XML/HTML docs in JEdit. It's awesome because it auto-completes closing tabs, shows the hierarchy of the DOM (in relation to the current element) and is overall so fluid. Have yet to find something so simple and powerful. Oxygen is too bloated, Eclipse HTML editor is crap, etc. JEdit reigns in this area.

d) JDiff. This is a beautifully simplistic diff. Nothing else to add. It just works, and functions nicely.

e) Java Browser. If you like the ctrl+o functionality in Eclipse, then this does an adequate job of replicating the behavior. Opinions may differ.

f) Getters/Setters. Autogenerate these by selecting the the variables for which you want them created. Then run the build-in macro.

g) Class Wizard. Rather simple but competent class wizard (for those that like using wizards).

Only thing missing now is a nice syntax validator for the missing ;

Monday, November 15, 2004

MVC definition

Best definition I've yet to find of the Model-View-Component design pattern:

* A Model that represents application data or state
* The View that processes, formats and renders the display of the Model
* The Controller that is responsible for taking user/client input and
updating the Model
(Enhydra XMLC, David H. Young, Sams Publishing, 2002)

Thursday, November 11, 2004

Search through jars for a class, then invoke javap

Script now works nicely--now to track down my DOM problem:
#!/bin/bash
temp='./temp.out'
temp2='./temp2.out'

echo -n "Enter class name: "
read -e SEARCHEE
echo Beginning recursive search through jars $PWD for $SEARCHEE
for i in `find . -name "*.jar"`;
do
# result= sed -e 's/\//\./g `jar tf $i | grep -i $SEARCHEE`'
result=`jar tf $i | grep -i $SEARCHEE`
if [ "$result" != "" ]; then
echo $result > $temp
#replace / to .
result=`sed 's/\//./g' $temp`
echo $result > $temp
#get rid of the .class, print to file for awk evaluation
`sed 's/.class/\ /' $temp > $temp2`
result=`awk 'BEGIN {FS="[ ]"}; { print $1 }' $temp2`
echo $i
echo $result
#setting the bootclasspath to . otherwise this search
#will report classes found in the bootclasspath jars and not the
#jars starting in .
javap -classpath $i $result -bootclasspath .
`rm $temp`
`rm $temp2`
echo
fi
done

javap and classpath resolution

Having a heck of a time trying to get javap to spit out correct info
for a class that's contained in many jars--it was spitting out the
same thing for each class in the jar (from my script that searches
through the jars for a particular class). After about 10 minutes of
frustration and figuring this out I went to the web and found this:
http://www.ecst.csuchico.edu/~amk/foo/java2tools.html. So, no thanks
to the man page for javap. If the class on which you are invoking
javap resides with the JDK, it'll ALWAYS be decompiled from the JDK
entry. What you need to do is add "-bootclasspath ." to the command
line so that you bootclasspath gets reassigned (to something you don't
care about) to your local dir. Glad this didn't waste too much more
time. Once I get the script completed I'll post it.

Friday, October 22, 2004

importance of having DEVFS in Gentoo

Had a buddy here at work install Gentoo, and he chose dev-sources
which gave him 2.6.7-gentoo-r11. I have r7. Turns out that he *had to
include* dev fs to be compiled into the kernel. The menu states
OBSOLETE, but when Gentoo boots it gives you a warning message if you
don't have it. Without it he could only use terminals (xterm,
gnome-terminal) in X if he was root.

The terminal (gnome-terminal) that he invoked was essentially dead
and was not functional. It loaded a blank, white screen with a
blinking cursor. Took about 5 minutes to figure what he needed in the
Gentoo forums: he needed dev fs. Quick kernel reconfigure, recompile,
copy to /boot, and lilo execution. After a reboot and loading Gnome,
his problem was solved..

Thursday, October 21, 2004

Bluetooth, speedstep

I needed to get Bluetooth working so I could toy around with my iPaq
(tossed the Zaurus, too slow and the iPaq is far more aesthetic).
After reading around a bunch of places what to do (mostly at the
Gentoo forums), I reconfigured my kernel and pretty much added all of
the Bluetooth options there are (L2CAP, SCO, RFCOMM, RFCOMMTTY, BNEP,
Multicast filter, Protocol Filter, HCI USB, sco, HCI uart,BCSP). At
the time I also changed my power settings to fix the wierd
clock-synching problem I've been having (since day 1). I enabled CPU
Freq. scaling, ACPI Proccesor P-states driver, Intel Enhanced
SpeedStep.

Bluetooth was easy to get up and running after finally figuring out
that modprobe hci_usb was the only thing needed to get the Dell D800
integrated bluetooth alive. But, since this kernel
recompilation/reconfiguration I've been running noticebly slower.
However, my clock as begun to work. Finally decided to take a look at
the CPU freq today (cat /proc/cpuinfo) and noticed that it's been
capped at 600MHZ! No wonder i've been going crazy with delays. SImple
fix, modprobe speedstep-centrino and the clock is kicked to the max at
1698MHZ (1700MHZ rated).

Thursday, October 07, 2004

Multisync

To get multisync to work correctly with Opie Datebook running on the
SharpROM, you have to SIGHUP the actual process. Kind of a pain, but
at least it works. You don't appear to need to do this with the
contact list.

Wednesday, October 06, 2004

Zaurus pxa255 5600

So I sold my Palm Tungsten C for a Zaurus. And then I bricked the
thing by renaming the wrong file and trying to reflash. Solution was
to get into the Service menu by holding down "d" and "m" while
pressing reset, then powering on (to get out of the Service menu, just
reset). From here you can restore from a NAND flash (4th menu, I
think).

Nice fellow (stormer) from Ireland helped me out by creating two clean
NAND backups from his devices. One an Opie 3.6-pre, the other a QPE.
Both of which I still have and am waiting to post to
zaurususergroup.com for downloads. If you would like this NAND, email
me, securityDOTidentityATgmail.com and I'll make it available.

Secondly, I was able to get the wireless synchronization working with
Evolution using Multisync. I love Gentoo. I didn't need to download
the plugins for this, just typed the following:

USE="evo opie" emerge multisync

Too lazy to add those to my official USE flags. This built the plugins
right into Multisync. Withing minutes everything was up and running.

Love the unit so far. Love being able to SSH and FTP with the thing.
Wireless works wonderfully. Need an SD card for more room.

Tuesday, September 21, 2004

Tapestry 2

Beautiful, only took me about 10 minutes to figure out the way to do get multiple stylesheets into the Shell component. Here's what what I have working in Border.jwc:

----(begin)----


expression="{assets.ColorPrintStyles, assets.ColorStyles,
assets.Content, assets.FontStyles}"/>





----(end)----

So, now all the pages will have the Border component and inherit the style. Plus, the style is easily managable for the designer at the component level.

Tapestry

Okay, so the Home service with Tapestry is HARD-CODED to resolve a blank URL to a Home.page. Well, the beauty of open-source is that you can modify that to your heart's content. I tried that, spent a couple hours on getting it to work and ended up just overriding the service with a local one (extends org.apache.tapestry.engine.HomeService & )

Next piece I'm working on is modifying a basic Border component to provide only the shell and specific stylesheets. According to the Shell component you can provide many stylesheets to be applied by assigning an array or collection of IAsset. At this point I'm not sure where I should do that. Should it be in the engine that I define my list? I've got the entries as context-assets, can I just provide that as the expression? Gotta figure it out and record it.

Friday, September 17, 2004

JSF or Tapestry?

Heard a bit about Java Server Faces lately and I'm interested in investigating. At work I'm beginning a new project in Tapestry and am looking forward to really delving in.


So in searching out information on JSF, Raible Designs added some insight to the process of creating a JSF app.


Thursday, September 16, 2004

script to find a class in jar files

Thanks to N. Jarvis for the guts of this:


#!/bin/bash


echo -n "Enter class name: "


read -e SEARCHEE


echo Beginning recursive search through jars $PWD for $SEARCHEE


for i in `find . -name "*.jar"`; do echo $i; jar tf $i | grep $SEARCHEE; done


xdiskusage

xdiskusage is a great linux app to graphically mesaure your disk usage. Can be a bit lengthy to generate on a large disk, but it's quite useful to be able to drill down into the directory structure and view the numbers.


Thursday, September 09, 2004

rox-filer key binding

Bothering me that rox-filer default ctrl+n is set to Create New File. So, how to change it to Create New Directory? After scouring Google, #rox, and the mailing list I pieced together the information. You have to have ROX-Session running in order to edit the menu entries. I guess it's assumed in the Help that you do have ROX-Session running.


Of course, it would be nice to just have .roxrc or something equivelant...ROX Faq Keyboard Shortcuts

Wednesday, September 08, 2004

VIM color pain, change search highlight color

Finally found where to change the search highlight color in VIM. This was a great resource:


http://www.vim.org/tips/tip.php?tip_id=14


Simply added the following lines in my .vimrc:


hi Search ctermbg=LightBlue ctermfg=White


map :let &hlsearch=!&hlsearch


More info available in :help hlsearch

Tuesday, August 31, 2004

Lexmark T632 working Gentoo

What a fiasco here at work to get the T632 working in Gentoo, compared with Fedora. It was entirely user error.


So today I decided to give it another shot by downloading the drivers from Lexmark's site. I chose the Suse/Redhat driver because it appears to be the only legit linux driver. Steps for operation:


1) emerge rpm


2) rpm -Uvh --nodeps whateverdrivername.rpm


3) /usr/local/lexmark/setup.lexprint


4) /usr/lexprint/bin/lexprint


The Java app will take it from there. It was a breeze to browse to the T632, create a queue, and print a test page. "gnome-cups-manager" will then have the queue listed, right-click to make default and the setup was complete.


Another completely satisfactory Gentoo experience.

Thursday, August 05, 2004

X Font Server, who needs it?

I dunno who needs it, but removing it from startup now returns my initial speed of booting up.

Updating FC Cache

Do I really need X-Font Server? It takes an extra 10+ seconds on boot and I'm wondering what purpose it serves. I emerged it due to the font problem I had some time ago, but I don't think that it solved anything. For now I'm removing it from startup for efficiency's sake.

Eterm versus aterm,materm,multiaterm

I've had enough of using aterm and it's variants. I continually find descrepencies in behavior when running jboss and other apps. The terminal will simply vanish and take whatever was running with it.


Eterm appears more solid, just as configurable, and more polished.