Tuesday, March 20, 2007
Friday, January 5, 2007
Thunderbird 1.5.09 vs Outlook 2003: Can O' Spam
I find myself constantly battling between my desire to use standardized business software (ie Microsoft products) and the desire to have software make me more productive and make my life easier. I gave Outlook another shot today (I was feeling guilty about using Thunderbird) and quickly kicked myself. We have a listserv at work that spammers seem to really enjoy flooding with spam. Unfortunately, it is a listserv which we need and frequently use. Thunderbird utilizes a Bayesian filter, so it learns what a spam email looks like based on what you have told it is spam. In contrast, Outlook allows you to whitelist/blacklist senders, so any known spammers get filtered. The downside to Outlook (and upside to Thunderbird) is that when you are getting spam and good email from a sender, you can't just filter the messages you don't want. It's all or nothing. Thunderbird doesn't care who it is from, only what the content of the message is. With all of the communication that we get through email and with the regularity that listservs and email accounts get compromised by spammers, Thunderbird's Bayesian filter wins hand down.
I should be getting a copy of Office 2007 in the near future and will give Outlook 2007 a shot to see if any improvements on the spam filtering have been made. I will blog another posting with my results.
Please don't interpret this as being a Microsoft hater. I think Outlook is an very capable email client, in certain situations, preferable to Thunderbird regardless of the spam issue. If you use Microsoft Exchange or POP3 email, Outlook is the best, hands down. If you use IMAP for your email, Thunderbird has the edge. Outlook 2003's handling of the IMAP protocol is "clunky". I use IMAP for my work email, so there is little incentive to stay using Outlook 2003, for now.
I should be getting a copy of Office 2007 in the near future and will give Outlook 2007 a shot to see if any improvements on the spam filtering have been made. I will blog another posting with my results.
Please don't interpret this as being a Microsoft hater. I think Outlook is an very capable email client, in certain situations, preferable to Thunderbird regardless of the spam issue. If you use Microsoft Exchange or POP3 email, Outlook is the best, hands down. If you use IMAP for your email, Thunderbird has the edge. Outlook 2003's handling of the IMAP protocol is "clunky". I use IMAP for my work email, so there is little incentive to stay using Outlook 2003, for now.
Thursday, January 4, 2007
Cross Platform Open Source (Javascript, HTML, CSS) IDE
Ran across a very nice plugin for Eclipse over the holiday break named Aptana. I already had the latest version of Eclipse installed so I just installed it as a plugin. Did a quick test using the Yahoo! User Interface (YUI) library to do a quick and dirty AJAX page that automatically updated weather info (from Yahoo Weather rss feeds).
I had been searching for a good open source tool to aid in developing xhtml/css/javascript pages and was mainly interested in command completion/suggestion. This one was the best of all I checked out. The code assist features worked great and I found the help features to be great, especially when dealing with css/javascript. I didn't try out the javascript debugger.
http://www.aptana.com
I had been searching for a good open source tool to aid in developing xhtml/css/javascript pages and was mainly interested in command completion/suggestion. This one was the best of all I checked out. The code assist features worked great and I found the help features to be great, especially when dealing with css/javascript. I didn't try out the javascript debugger.
http://www.aptana.com
Killing an oracle session to remove a lock
I always have to search around for the right commands in order to remove table locks in Oracle. Thought I'd post and hopefully will remember I can look her for it in the future. Below seems to work at least in 8/9i.
Identifying the locks:
Deep Six the session:
The SID and the SERIAL# fields can then be used to issue the kill command:
Using this combo I almost never have to resort to a "kill -9 OS_PID" on the database server itself.
Identifying the locks:
SELECT l.inst_id,
SUBSTR(L.ORACLE_USERNAME,1,8) ORA_USER,
SUBSTR(L.SESSION_ID,1,3) SID,
S.serial#,
SUBSTR(O.OWNER||'.'||O.OBJECT_NAME,1,40) OBJECT, P.SPID OS_PID,
DECODE(L.LOCKED_MODE, 0,'NONE',
1,'NULL',
2,'ROW SHARE',
3,'ROW EXCLUSIVE',
4,'SHARE',
5,'SHARE ROW EXCLUSIVE',
6,'EXCLUSIVE',
NULL) LOCK_MODE
FROM sys.GV_$LOCKED_OBJECT L
, DBA_OBJECTS O
, sys.GV_$SESSION S
, sys.GV_$PROCESS P
WHERE L.OBJECT_ID = O.OBJECT_ID
and l.inst_id = s.inst_id
AND L.SESSION_ID = S.SID
and s.inst_id = p.inst_id
AND S.PADDR = P.ADDR(+)
order by l.inst_id
Deep Six the session:
The SID and the SERIAL# fields can then be used to issue the kill command:
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
Using this combo I almost never have to resort to a "kill -9 OS_PID" on the database server itself.
Thursday, December 28, 2006
Reviewing the W3 basics
Some nice basic tutorials at http://www.w3schools.com/. Each tutorial only takes 10-15 minutes and they provide a quiz at the end. I found the XSL-FO and XLink/XPointer information to be a good introduction. Only bad thing about the site is that it seems to favor .NET (in ads and some tutorial paths) over Java.
Monday, December 25, 2006
Liferay vs Stringbeans open source portals
Took a quick peek today at open source enterprise portals Liferay 4.2 and Stringbeans 3.2. Also wanted to try out uPortal 2.5.3 quick start but had no success (page not found). Below are my 5 minute reactions (5 minutes to download the software bundled with tomcat, start it up, log on and poke around).
Liferay 4.2 impressions
Very polished looking with nice animations when loading portlets (showing off the multi-threaded rendering). Very disappointed with user management features and lack of portlet configuration support in the admin portlets. When assigning roles to portlets or users it was just free-form typing (i.e., you are given an edit box and asked to type in each role name on a new line). Web services were also not readily visible while logged in as an administrator.
Stringbeans 3.2 impressions
While less polished looking (Liferay seems to have better graphic artists on the project) I was impressed with the admin portlets. You can configure new portlets online without editing the various xml files that are normally involved in plumbing a portlet. It also had nice stats portlets that displayed portlet and web service usage. Besides the ability to configure portlets online it also had a portlet dedicated to web services, though I didn't test any out at least you can tell they put some thought into it. It was going good until I tried to add multiple roles to a user.
Summary...
I realize that in an enterprise setting there is probably (has to be) some way to hook up these portals to a directory, but I found their lack of built-in user administration features a show stopper. I also did a quick 5 minute review of the source code for each and in my uneducated opinion found the Stringbeans source to be easier to read and seemed to make more logical sense in terms of classes/interfaces used. For now, if I wanted to setup a quick portlet test or test WSRP production/consumption I think I'd go with Stringbeans.
I also wanted to try out the open source Sun Java portal server, but thought otherwise when the system requirements listed 1.5Gb as the required RAM. Maybe when I have time for a 5-day instead of 5-minute test...(why can't BEA, Sun, Oracle and IBM put quick start packages together).
Liferay 4.2 impressions
Very polished looking with nice animations when loading portlets (showing off the multi-threaded rendering). Very disappointed with user management features and lack of portlet configuration support in the admin portlets. When assigning roles to portlets or users it was just free-form typing (i.e., you are given an edit box and asked to type in each role name on a new line). Web services were also not readily visible while logged in as an administrator.
Stringbeans 3.2 impressions
While less polished looking (Liferay seems to have better graphic artists on the project) I was impressed with the admin portlets. You can configure new portlets online without editing the various xml files that are normally involved in plumbing a portlet. It also had nice stats portlets that displayed portlet and web service usage. Besides the ability to configure portlets online it also had a portlet dedicated to web services, though I didn't test any out at least you can tell they put some thought into it. It was going good until I tried to add multiple roles to a user.
Summary...
I realize that in an enterprise setting there is probably (has to be) some way to hook up these portals to a directory, but I found their lack of built-in user administration features a show stopper. I also did a quick 5 minute review of the source code for each and in my uneducated opinion found the Stringbeans source to be easier to read and seemed to make more logical sense in terms of classes/interfaces used. For now, if I wanted to setup a quick portlet test or test WSRP production/consumption I think I'd go with Stringbeans.
I also wanted to try out the open source Sun Java portal server, but thought otherwise when the system requirements listed 1.5Gb as the required RAM. Maybe when I have time for a 5-day instead of 5-minute test...(why can't BEA, Sun, Oracle and IBM put quick start packages together).
Sunday, December 24, 2006
JSR-168 portlet and PeopleTools 8.46
Today I tried installing an open source JSR-168 portlet in our PeopleTools 8.46 development environment just to get a feel for how much work it takes to integrate a standards based portlet with PeopleSoft. I used the NotepadPortlet from the Java.net repo of free portlets:
https://portlet-repository.dev.java.net/public/Portlets.html
First hurdle was that it required a CVS client so I had to download WinCVS which is a nice GUI frontend for CVSNT (but SVN still beats CVS hands down). Second hurdle was that I wasn't able to do "maven war" on the project to build because it failed to download some jar dependencies. I personally don't like Maven (much prefer plain old Ant) so I just fired up JDeveloper to build the war file. Both issues of course were due strictly to the project I was trying to use and had nothing to do with PeopleSoft, but does illustrate that there are still many different ways in which software is distributed and each can present its own challenges even before you start the real work.
The installation in our PIA environment running WebLogic 8.1 was pretty straightforward following the PeopleBooks steps and the delivered helloportletapp example. There are several xml files that need to be created/edited, so it's pretty old-school compared to most PeopleTools setup.
For now, I think my feeling is that writing JSR-168 portlets is probably best when developing a general utility application that you may at some point want to use in another portal project. The drawbacks I see currently to using portlets (besides the required knowledge of Java) are with database access and security. I'm still pretty fuzzy on the persistence mechanism that portlets use and how best to integrate security into portlet applications. It's kind of cool to be able to write a portlet and run it on any compliant portal container, but for now PeopleTools still offers the best RAD environment for developing applications.
Now to produce my newly added portlet using WSRP...
https://portlet-repository.dev.java.net/public/Portlets.html
First hurdle was that it required a CVS client so I had to download WinCVS which is a nice GUI frontend for CVSNT (but SVN still beats CVS hands down). Second hurdle was that I wasn't able to do "maven war" on the project to build because it failed to download some jar dependencies. I personally don't like Maven (much prefer plain old Ant) so I just fired up JDeveloper to build the war file. Both issues of course were due strictly to the project I was trying to use and had nothing to do with PeopleSoft, but does illustrate that there are still many different ways in which software is distributed and each can present its own challenges even before you start the real work.
The installation in our PIA environment running WebLogic 8.1 was pretty straightforward following the PeopleBooks steps and the delivered helloportletapp example. There are several xml files that need to be created/edited, so it's pretty old-school compared to most PeopleTools setup.
For now, I think my feeling is that writing JSR-168 portlets is probably best when developing a general utility application that you may at some point want to use in another portal project. The drawbacks I see currently to using portlets (besides the required knowledge of Java) are with database access and security. I'm still pretty fuzzy on the persistence mechanism that portlets use and how best to integrate security into portlet applications. It's kind of cool to be able to write a portlet and run it on any compliant portal container, but for now PeopleTools still offers the best RAD environment for developing applications.
Now to produce my newly added portlet using WSRP...
Thursday, December 21, 2006
Reporting with REST webservices
The Collegenet R25 application our campus runs now provides REST style webservices that look promising for developing reports. XML.com has a brief but decent article on REST Reporting that I think provides a decent overview.
I like the idea of using standard XML along with XSLT in order to produce web-based reports and is definitely an improvement over non-standard reporting tools like Crystal Reports. The best is that XSLT can be applied in other areas so learning it will be applicable in a wider range of applications (as opposed to being a Crystal Reports guru). Found a decent XSLT tutorial article also at XML.com.
I like the idea of using standard XML along with XSLT in order to produce web-based reports and is definitely an improvement over non-standard reporting tools like Crystal Reports. The best is that XSLT can be applied in other areas so learning it will be applicable in a wider range of applications (as opposed to being a Crystal Reports guru). Found a decent XSLT tutorial article also at XML.com.
Wednesday, December 20, 2006
Program to the extreme!
One philosophy that I'm beginning to really appreciate from Extreme Programming is to not try to code features not requested. You still have to code what's required and have to code in a way that will be flexible enough to handle future requirements, but don't try to anticipate and code features that aren't asked for. It's still sometimes very tempting to throw in a cool feature not requested but that you know would be fun to develop. But I sometimes find that one cool feature eats up the bulk of development time and takes away from time that could be spent testing the features requested.
That's where test-driven development comes it, you should code only so you can test. If you don't have good mock data to test with in an environment you will never be able to validate how well your coding is going. So I've been trying to practice coding just enough so I have something to test and repeating that process until the development is complete.
That's where test-driven development comes it, you should code only so you can test. If you don't have good mock data to test with in an environment you will never be able to validate how well your coding is going. So I've been trying to practice coding just enough so I have something to test and repeating that process until the development is complete.
Oracle SQL Developer 1.1 out of beta
This happened last Friday, but we didn't have the blog up yet, so.....
Get the software here
If you haven't heard of this software and use Oracle products, think of it like Toad, but free.
Get the software here
If you haven't heard of this software and use Oracle products, think of it like Toad, but free.
Making Firefox more like Opera (what!?)
After playing around a little with the latest version of Opera (it was a weak moment) I decided I had to have an extension that would do the tab previews. After fumbling around awhile, I came upon Tab Preview (http://ted.mielczarek.org/code/mozilla/tabpreview/). This extension will display a quick thumbnail of what is on a tab when you hover your cursor over it. While searching for that extension, I also came upon Colorful Tabs (https://addons.mozilla.org/firefox/1368/), another cool extension that breaks up the monotony of the Firefox color scheme. I know, I know, why not theme the browser? I have yet to find one I like and that is consistent enough across the tabs and toolbars to continue to use. The one that I do like a little is macfoxIIgraphite, but it is a Mac theme and I will get tarred and feathered by my fellow contributors for using that theme.
Tuesday, December 19, 2006
Document Conversion: Open Source saves the day
I am currently working on a project that requires converting documents in various formats (but mostly MS Word) to PDF. I reviewed several commercial offerings, but most were several thousand dollars.
Open Office 2.1 and the JOOConverter open source projects saved the day. While I was hoping to accomplish the conversion completely in Java without having to run an extra service somewhere, the cost savings were well worth it. The JOOConverter project walks you through the steps of setting up OpenOffice to run as a service and provide Java classes that allow you to interact with the service either locally or via TCP. And best of all it delivered a quasi-webservice that would run on any servlet container (such as tomcat) as well as a webapp that can be deployed to allow users to upload a file and convert it to various formats.
More on my document conversion project later...
Open Office 2.1 and the JOOConverter open source projects saved the day. While I was hoping to accomplish the conversion completely in Java without having to run an extra service somewhere, the cost savings were well worth it. The JOOConverter project walks you through the steps of setting up OpenOffice to run as a service and provide Java classes that allow you to interact with the service either locally or via TCP. And best of all it delivered a quasi-webservice that would run on any servlet container (such as tomcat) as well as a webapp that can be deployed to allow users to upload a file and convert it to various formats.
More on my document conversion project later...
Subscribe to:
Posts (Atom)