Friday - January 16, 2009
Don't use Wonder's Deprecated AjaxRoundEffect!
I got brave and used AjaxRoundEffect a while back ignoring the fact that it is deprecated. However it is deprecated for a reason....
Posted at 11:12 AM Read More
Friday - January 02, 2009
Open your WebObjects app in a browser other than your system default browser
After 10.5.6 Update, I found I had to update my WOOpenURL script to use the full path to Firefox.app...
Posted at 10:24 AM Read More
Thursday - December 04, 2008
OS X talking to Windows with Sockets
Found an unusual compatibility problem last week
when using Sockets to communicate between OS X and Windows. The bottom line is
if you have a java application on OS X that does some high volume TCP/IP socket
communications to a Windows service, then you had better be using OS X Leopard
to get the best performance ... about 9X better.
Posted at 08:28 AM Read More
Thursday - September 13, 2007
Web Standards Solutions & Bulletproof Web Design
The excellent Web Standards Solutions book has
been around for a while, but it is still the book I most often refer to
developers who are trying to move away from ugly tagitis-ridden table based
layouts and who want to embrace web standards, CSS layout and
styling.....
Posted at 02:35 PM Read More
Friday - August 03, 2007
WebObjects Feed Aggregator
I had not looked at Yahoo pipes before until
Quinton from Australia posted about it on the WebObjects list. The nice thing is
that you can edit anyone's feed and save a customized copy under your own
profile. Here is the one I made from Quinton's original ....
Posted at 08:32 AM Read More
Thursday - July 19, 2007
Installing MySQL on OS X 10.4 Tiger
This article details how to setup MySQL 4.1 or
later on Mac OS X Tiger 10.4.x. Additionally it tells you how to add java
support and configure MySQL so that all new database tables use the InnoDB
transaction-safe database engine instead of the default MyISAM engine. This is
essential if you are writing applications with technologies such as WebObjects
that automatically utilize the ACID commit or rollback capabilities of a
transaction-safe database.
Posted at 09:52 AM Read More
Tuesday - July 17, 2007
Monitoring and Resetting MySQL Replication
OK, so you have a nice replication setup, but how
do you know it is actually working, and what do you do when it stops? This short
article shows how to check and quickly fix replication that has stopped. This
procedure takes 2 minutes and can be done remotely on the command
line.
Posted at 10:51 AM Read More
Wednesday - July 11, 2007
Eclipse Regex (Regular Expression) Plugin
Came across this little gem, "QuickREx
", the other day. Up to now I have used the free open source "RegexPlor.app"
for OS X, but I really like this open source Eclipse plugin ...
Posted at 11:49 AM Read More
Thursday - July 05, 2007
Importing a WOLips Project into Subversion Repository
Simple tutorial on how to do an initial import of
an existing WebObjects project into a Subversion repository using the Subclipse
plugin. At time of writing I had latest subversion (1.4.4) and subclipse (1.2.3)
installed.
Posted at 02:36 PM Read More
Thursday - July 05, 2007
Setting up Subclipse for access to a Subversion Repository
This is pretty simple task, but for completeness
of the Subversion articles I am doing, here it is .........
Posted at 12:55 PM Read More
Thursday - July 05, 2007
Setting Up Subversion Repository on OS X
Subversion is becoming more popular than CVS over
time as a source code version control system. Subversion is impressive in it's
design goals and from the outset, it's goals and objectives appear to be very
well thought out. Subversion is flexible and repositories can be made available
in many flexible ways from as simple as a repository on your local hard drive to
internet based repositories served over http or https
protocols.For this exercise we show
how to set up a simple repository on a network server with secure shell access.
The requirements of the repository are accessibility by a small stable
development team of 3 trusted inhouse developers with a need to update and
commit remotely outside of the local area network. The requirement for tunneling
repository traffic over ssh is simply to protect the small amounts of sensitive
data such as API pins or private SSL keys that are shared by the repository.
Also keep in mind that there are many, many ways to set up a Subversion
infrastructure. This is just one way that suits my needs and is based on the
concept explained in the Subversion book in the section SSH
configuration tricks . There are other ways and variations that may
suit your needs better.This article
assumes that you have a basic knowledge of unix command line
usage...
Posted at 12:41 PM Read More
Friday - June 29, 2007
WebObjects Community Survey
Posted at 10:06 AM Read More
Wednesday - June 27, 2007
Wonder Source Download, Installation, Setup and Upgrading
I had Wonder CVS source tree on disk and also had
some Wonder projects checked out directly from CVS into Eclipse workspace.
Anyhow, this means I had to update both simultaneously and it made sense to have
only one Wonder source tree on my hard drive, so I reconfigured for what I
consider the "ideal" Wonder setup for Eclipse development. While I was at it, I
decided I may as well document it for others .......
Posted at 12:17 PM Read More
Saturday - April 21, 2007
Goodbye XCode!
At last, I am free of XCode ......
Posted at 03:58 PM Read More
Tuesday - April 17, 2007
WOWODC 2007
Agenda just posted to the mailing lists by
Pascal Robert .......
nice agenda ..... can't wait to get the digital download afterward ..... great
job by the usual suspects in organizing this sharing of their extensive
knowledge and experience .........
Posted at 11:23 PM Read More
Monday - March 12, 2007
Compiling MySQL from Source
OK, I just upgraded to a MacBook Pro Core 2 Duo.
Generally the binary distributions are easier to work with, but I need SSL
connections capability, so I have to compile from source to have that feature
included. Her is how...........
Posted at 01:47 PM Read More
Monday - March 12, 2007
I Really Like MySQL
I really like MySQL. I definitely would recommend
it for any enterprise database beginner with the only caveat being that you
should configure your /etc/my.cnf paying attention to using innodb as the
default table engine.....
Posted at 01:19 PM Read More
Wednesday - January 17, 2007
Adding a Second WebObjects Host to a Basic Config
This article explains how to add another computer
as a WebObjects application host to an existing simple setup. By simple setup, I
mean a setup where currently one computer is running the default WO setup of
being the apache web server and also hosting WO apps.
Posted at 09:59 PM Read More
Monday - January 15, 2007
Nice Intro to Ant
If you are switching from XCode to Eclipse for
your WO development, then understanding 'ant', the popular java build tool is
very important. Check out this easy to digest PowerPoint presentation from John
Munsch:
http://www.johnmunsch.com/projects/Presentations/
Posted at 11:13 AM Read More
Friday - January 05, 2007
Setting up Java Packages in XCode
I has a few source classes belonging to a package
and I had trouble figuring out how to set up the physical folder structure on
the hard drive and the group structure in XCode so that XCode would not change
its mind about where it expected the java files every time I tried to build the
app. Ray Kiddy
had the know how .......... here is a transcript ........
Posted at 04:28 PM Read More
Monday - December 11, 2006
Nice OS X Command Line Guide
Even though the guide is named "OS X Server
Command Line Administration", anyone who is familializing themselves with unix
on OS X will benefit greatly from the first 6 chapters of this handy reference
manual......
Posted at 11:27 AM Read More
Tuesday - November 28, 2006
ssh without password interaction
OK, interacting with my build and deploy script
to enter the server password for scp was a pain, so I implemented dsa
authentication keys instead. Pretty easy.....
Posted at 02:54 PM Read More
Wednesday - November 22, 2006
mounting a volume in a script
diskutil requires the use of a device name to
mount a disk....
Posted at 02:47 PM Read More
Tuesday - November 21, 2006
Building MySQL From Source with SSL Secure Connections Support
I needed SSL connection feature for secure
offsite replication. The prebuilt binaries do not include the SSL option, so I
had to build MySQL from source with the SSL option....
Posted at 02:14 PM Read More
Tuesday - November 21, 2006
EOGenerator - Referencing Prototypes in a different EOModel
Today when I ran my eogenerator script, I got an
error ... it has been over 10 days since I needed to run eogenerator on my
project, so I had obviously done something. After getting over the few seconds
of that uneasy feeling in your stomach at the thought of losing productivity (I
was in the developer coding rapidly zone .... and now I had a derailment to deal
with) fixing a problem on something that has always worked reliably up to
now.......
Posted at 10:33 AM Read More
Wednesday - November 15, 2006
Using 'wc' to check the size of your project.
Navigate to your project folder on the command
line and ....
Posted at 12:51 PM Read More
Friday - November 10, 2006
Configuring Mac OS X Server Tiger for WebObjects Deployment
This are the steps to setup a brand new
installation of OS X Server Tiger. This is for an "all in one" server typical
for a small or startup WebObjects website or as a server used for testing. This
setup is for MySQL 4.1, WebObjects 5.3, Apache webserver. The mechanics of
WebObjects setup on a new installation of OS X Tiger is straight-forward and
easier than with previous versions of OS X Server.
Posted at 12:16 PM Read More
Monday - November 06, 2006
Using launchd
Now that we have Tiger, launchd seems to be the
preferred way to run regular tasks instead of cron and besides just editing the
crontab file with a new task like I used to do does not seem to work, so rather
than mucking around with it I decided to learn how to use launchd. Setting up a
launchd task to run daily is pretty straighforward....
Posted at 11:49 AM Read More
Friday - November 03, 2006
MySQL Backup and Maintenance Strategy
This is a description of a simple backup strategy
for MySQL. At the time of this writing, we were using MySQL version 4.1.21 in a
master-slave replication configuration, described in a previous
article . The replication setup forms a basis for the backup strategy
and makes backup very easy while providing 24/7 planned uptime on the master
MySQL server.
Posted at 04:11 PM Read More
Thursday - November 02, 2006
MySQL built-in help
When I was upgrading from 4.0 to 4.1 I noticed
the internal 'mysql' database had tables of reference data. This allows clients
to get help directly from the server instead of browsign the online docs at
mysql.com. This is convenient when you are not connected to the
internet.....
Posted at 03:19 PM Read More
Monday - October 30, 2006
Setup XServe G5 with 10.4 Client as MySQL Server
Well, the new Quad Xeon 64-bit Intel XServes are
shipping November 2006, so there are deals to be found on PowerPC XServes on
eBay. We needed another XServe to add to our few G4 XServes, so we decided to
get the fastest machine we could on eBay and use it as our dedicated MySQL
server instead of the G4. We got a good deal on a cluster Dual 2.0 GHz G5 on
eBay recently. It came with 10.3 Panther Server, but we want to use Tiger and I
don't want to pay $499 for OS X Server Tiger right now (I'll wait a year when
they are going to be $149 long after Leopard Server has shipped). So we are
going to use Tiger 10.4 client on this headless G5 XServe. This article
documents some of the details in getting this set up......
Posted at 01:37 PM Read More
Friday - October 27, 2006
"Setting up a MySQL Replication Slave" Revisited for MySQL 4.1
Ah well, since my first article on this, MySQL
has had multiple version changes and I have gained more experience in using
MySQL. (Off topic...... I really like the fact that I am stuck in everything
from MySQL server config/support thru Apache thru WebObjects/Java development,
deployment and administration ...... never a dull day in the job!). Here is my
"new improved" process for setting up a replication master-slave configuration
using MySQL 4.1.21. These instructions will definitely not work for version
4.0.XX and earlier and may not work for some earlier versions of 4.1. Earlier
version incompatabilities are mostly related to the parameters used in
mysqldump.
This article assumes a
basic knowledge of unix (cd, ssh, scp, mkdir, chown) and a basic knowledge of
mysql (mysqld, mysql, mysqldump, mysqladmin)
Posted at 09:51 PM Read More
Monday - October 16, 2006
Screenshots
Using Grab and default OS X settings can be slow
when trying to construct a series of jpeg screenshots of portions of the screen
associated with a tutorial article, but there are better ways to get this done
without buying yet another little shareware utility...
Posted at 03:00 PM Read More
Monday - October 02, 2006
SIPS
sips is a great little command line utility built
into OS X....
Posted at 09:50 AM Read More
Monday - September 18, 2006
VNC over ssh on OS X Tiger Server
Apple Remote Desktop 3 includes secure encrypted
sessions for remote access. However, I use the free alternative - VNC over ssh
tunnel. Here is how to get up and running.
Posted at 10:18 PM Read More
Sunday - September 17, 2006
First-time install of MySQL 4.1 on OS X Tiger Server
Just the notes for the installation steps on a
clean OS X Tiger Server 10.4.7 setup.
Posted at 06:52 PM Read More
Thursday - August 24, 2006
Understanding Class Paths
Class Paths can be confusing. Here is some info
and links to info on that:...
Posted at 02:56 PM Read More
Monday - June 12, 2006
Java Debugger for debugging deadlocked apps
Article can be found here
http://wocode.com/cgi-bin/WebObjects/WOCode.woa/2/wa/ShareCodeItem?itemId=439
Posted at 12:20 AM Read More
Thursday - May 18, 2006
Using niutil to get user and group info
Some common niutil commands....
Posted at 12:26 AM Read More
Thursday - May 11, 2006
Export CSV file from MySQL with headings in first row
A tip posted by Heywood in the MySQL
manual on how to export headings in your CSV export....
Posted at 02:10 PM Read More
Thursday - May 04, 2006
DarwinPorts and example installation of tcpflow port
I needed to use tcpflow the other day for the
first time since I got my Intel Macbook Pro running Tiger. I downloaded and
installed Marc Liyanage's Panther installer sicne no Tiger installer available.
I figured it might work, but it did not. I really needed to use this excellent
tool, so after a quick Google search, I came across the tcpflow port in
DarwinPorts. Now I was familiar with DarwinPorts, but had never looked at it in
detail or installed it. So, after understanding it a little, I just installed it
and then used it to install (download, fetch, make, build, install, etc) in one
easy command. This was a really simple, smooth and pleasant
experience.....
Posted at 08:23 AM Read More
Thursday - April 27, 2006
WebObjects on Rails
Pierce T Wetter shared a nice trick on global
page direct actions with url query parameters. Nice tip
Pierce!
Read More....
Posted at 09:02 AM Read More
Tuesday - April 25, 2006
Default Submit Action on Multiple Submit Form
This tip comes from the webobjects-dev mailing
list....
"Problem: Some browsers trigger
the WOForm action, whilst other trigger the first submit button action when a
user hits the enter key. I've tested my test app with IE v4+, Netscape v6+,
Opera and Chimera on both mac and windows and can confirm that it is a browser
related issue.
After much playing about
with this issue, i have decided that the best way to get the behaviour i
required was to add a 1x1 pixel image as an WOImageButton at the very top of my
form and bind it's action to the action that I want to trigger if the user hits
the enter key, and leave the form action method unbound (thanks to Pierre
Bernard for this tip). This provides consistent behaviour across all browsers
mentioned above. Note that i also add an extra tag to the WOImagButton of
TABINDEX="" - this means that as the user tabs through the form elements it
doesn't pick up on the single pixel image and hence it is completely invisible
to the user."
Posted at 08:51 AM Read More
Thursday - April 06, 2006
Removing HTML tags from text
Courtesy of Zak Burke on the WebObjects dev
list:
/**
* Return input string with simple HTML tags removed.
The
* original string is not
changed.
*
*
@param s string with embedded HTML markup
*
@return string with HTML tags removed.
*/
public void tagZap(String
s)
{
return s.replaceAll("<[^>]+>",
"");
}
Posted at 10:02 AM Read More
Wednesday - April 05, 2006
Upgrade 10.3.9 to 10.4.5
I recently took advantage of my Apple Select
membership hardware discount and purchased a 2.16GHz, 2GB, 100GB-7200rpm Intel
Core Duo MacBook Pro. So, here are the abbreviated notes of what was involved in
moving to that new machine from a Powerbook 1.67GHz running OS X
10.3.9
Here are my "quick and dirty"
notes on the upgrade process........
Posted at 08:45 AM Read More
Monday - March 27, 2006
Using Bonjour hostnames instead of IP addresses
OS X Panther and Tiger come with built-in
multicast dns host name
resolving.
...In Panther client, I
could just use ssh admin@xmysql and it worked, however in Panther server and
Tiger client/server I have to correctly use ssh admin@xmysql.local to resolve
the host name.
For WO https
development, you can use your dev machine name as the host name for the ssl
certificate.
...Bonjour is available as
a download from Apple (just google "Bonjour for Windows" to find it) so that
your Windows PC's can easily access your mac services and in particular your
development WO app on your dev machine using mymac.local as the
host.
Posted at 12:04 PM Read More
Monday - March 27, 2006
Operating System Version Info (uname & sw_vers)
To find out what Darwin version, etc. you are
using use
$ uname
-vp
To find out OS X version info
use
$ sw_vers
Posted at 10:39 AM Read More
Monday - March 20, 2006
Instantiating inner classes using Class.forName
I designed a class with a number of pluggable
behaviours using the strategy pattern . However this time, I decided to
implement the concrete Strategy algorithm classes as inner classes of the
Context class just to keep the code organized and reduce the number of tiny
classes hanging around the project. Rather than use a bunch of if statements,
the concrete Strategy class was simply created using its text name which came
from an attribute of the Context
class.
...It turns out that there is an
implicit constructor for inner classes that passes the outer enclosing class as
a reference .....
Posted at 11:59 AM Read More
Monday - February 27, 2006
Updating from 10.3.7 to 10.3.9
OK, we updated XServes to 10.3.9 from 10.3.7
using the following procedure and had no
problems.
First updated MySQL Server
XServe to 10.3.9 and MySQL 4.0.26- Standard for Darwin 7.9 - no issues
there.
Next Web App XServes were
updated from 10.3.7 to 10.3.9 using the following procedure and no
issues.
Posted at 04:15 PM Read More
Monday - February 27, 2006
Understanding Deployment Permissions
At some point during the Panther releases, not
sure when though, Apple introduced the appserver user and the appserverusr and
appserveradm groups.
...If yours is a
standard installation, you will see that the user running some (if not all in
the case of WebObjects only running on the server) of the processes are running
as user 'appserver'.... Note that appserver is a user in both the appserverusr
and appserveradm groups by default.
Posted at 10:25 AM Read More