anonymous tech woman

Yet another woman in technology blog. I'm actually a developer who uses a variety of Java and database technologies on a variety of platforms.

Wednesday, June 28, 2006

Annoymous Inner Classes

I pondering why use Annoymous Inner Classes for anything rather than GUI events so after a quick search I found this article, Readers ponder the virtues (and defects) of annoymous classes. This poll indicates that most readers of the site think Annoymous Inner Classes are good when they are small but not liked if they are big.

Then looking at the sun tutorial I found this information:

" An anonymous class is generally used inside an expression and it does not have member scope, since it isn't visible to the enclosing class. Anonymous classes can make code difficult to read. You should limit their use to those classes that are very small (no more than a method or two) and whose use is well understood, such as event-handling classes."

Sunday, June 25, 2006

Finally finished chapter 7 about Generics and Collections

 This chapter was taking me over a week to finish then at the end of the chapter I found that it can take 48 hours before you get through the chapter. Grrrrr. Anyway I understand a lot but will  have to go through it again.

Friday, June 23, 2006

Generics

 I have been on the certification chapter about Collections and Generics for nearly a week. The reason is that I'm writing little test programs to test everything about the chapter. I still don't understand wildcards and am trying to see where I am going wrong. I have found this tutorial which is a pdf file.


Thursday, June 22, 2006

EJavaGuru

I find a free Java Certification mentor program and signed up for it. It is based in India and is free at the moment because it is in the beta stage.
I will start my course on Monday. In the meantime I'm struggling through Collections and Generics which is seeming to take ages.
The reason for this is that Generics are a new feature of Java 5 and are now back on the certification exam.  

Monday, June 19, 2006

Book Corrections

I decided one of the answers for the multiple choice questions in my SCJP Sun Certified Programmer for Java 5 Study Guide was incorrect. So I wandered over to the Osborne site and found a nice long list of corrections. The corrections are in a zip file here

Friday, June 16, 2006

Emacs

I keep learning emacs commands and forgetting them because I don't use emacs to write text files or program, so I figure that I'm going to have to have a cribe sheet of commands as I get asked in interviews if I know emacs or vi. I don't actually use the command line to edit files because I normally use a windowing system such as KDE and a good text editor such as KWrite or an IDE such as Eclipse.

Computers are suppose to make your life easier so if you have a text editor available or an IDE why use the command line terminal to edit files? It makes no sense, shows that you are disorganised with your folder layouts and is a purists view. I know where to find the information if needed and know whatever system I'm using be it windows, unix or linux without internet access to bring a good reference book with me.

I am currently using the commands in one of my linux books however there are a few online tutorials here and here plus you can download a version of emacs for windows

Tuesday, June 13, 2006

Setting Path and Envirnoment Variables

I forgot how you are suppose to set path variables and was trying to set them with PATH=$PATH:/directory/to/app but then I remembered I was not using a bash shell. So after a quick search through my books I find this was suppose to work for tcsh or zsh shells:
set path =($PATH /directory/to/app)

Then to set my envirnoment variables I needed to use:
setenv VALUE /directory/to/app

To set the environment variables permanently for system wide users I edited /etc/profile.local with:
export APP_HOME=/directory/to/app

and the path with:
export PATH=$PATH:/directory/to/app

I then logged in and out of KDE and confirmed the envirnoment variables where set.

I found a google search useless because most of the sites I found had the information for bash shells if they had any information at all. I did however find a nice tutorial on the zsh shell.


Monday, June 12, 2006

JBoss and Spam


I recieved my JBoss book on Saturday. It is an O'Reilly book and covers using JBoss for Servlets, EJBs and xDoclet. I don't understand why you would want to use JBoss for Servlets as it is over-kill when Tomcat can be used but after a brief look at the book it seems that you incorporate Tomcat in JBoss for this purpose like you include Tomcat in Apache if you were using a live system. At the moment I have just been setting up my envirnoment on my linux box. I know there is a JBoss Eclipse IDE plugin which I have on my windows box but at the moment I aim to copy the book.

I noticed on one of my domain name's that I use now mainly for email that I am getting loads of spam. I think some spammers just hunt for domain names that are in use and just spam anything there. At the moment the most spam seems to becoming via China. It is pointless sending it to me as the addresses use for the spam don't correspond to any used email address, so my spam filter catches it all.

Friday, June 09, 2006

Eclipse 3.1.2 and JDBC

I'm trying to connect a servlet application I made to a database. In theory it should be easy all I have to do is:

1. Download the JDBC driver from the mysql download page
2. Unzip it somewhere
3. Install the driver on my project build path by right clicking the project name->selecting "build path" -> "Configure build path"-> the libraries tab and "add external jars"
4. click ok and the jar should be loaded

However this doesn't work.

So after spending a few hours googling I discovered that if I add the jar file to "lib/ext" close, Eclipse then reopen it the jar file loads. I also have to remove the port number from the url.

Tuesday, June 06, 2006

Emotional Intelligence


I am currently reading "Emotional Intelligence" by Daniel Goleman. Emotional Intelligence is the factors of self-awareness, self-discipline and empathy which make people what they are or simply put another name for "Character". The reason I read this book is IT is an area which seems dominated by people with poor emotional intelligence. I have experienced this myself in companies where senior management don't have the ability to see that improper criticism and blame, personal attacks, in effective hierarchies of middle management, managers who intimidation of staff below and give poor feedback leads to poor staff morale, high staff turnover and a company who is likely to have staff who turn to the law to resolve issues. While this doesn't not affect profit margins in the short term in the long term profit margins are seriously suffer.

Good emotional intelligence makes people successful in work, relationships and social settings, whilst bad emotional intelligence makes people more likely to be criminals, jobless and be divorced. Emotional Intelligence is not linked to IQ which explains why you get people who do well academically but seem to do badly in other aspects of their lives.

The majority of the factors involved in the development of emotional intelligence are developed during childhood but they can be nurtured during adulthood. The reason emotional intelligence is important that it under pins learning new skills, the control of impulsive behaviour and our relationships with others.

The book is divided in to 5 sections. The first section is "The Emotional Brain". This section explains the concept of emotional intelligence and the neuroanatomy of emotional intelligence. It explains why some of our instincts and behaviours are a throw back to caveman times.

"The nature of Emotional Intelligence" starts with a chapter about self-awareness. This breaks people down into those who are self-aware, engulfed or accepting of their emotions, and gives examples of people who cannot show their emotions for different reasons such as alexithymia for people who seem to lack any emotions.

"Emotional Intelligence Applied" is the section that shows that different ways of how you interact with people can produce good or bad results. For example a domineering boss who intimidates people will not have team of people behind them that will warn of any disasters, so if this boss is a lead pilot it can cause a plane crash. This section explains the roots of prejudice and shows that children are taught hateful stereotypes against a group at a young age but with the reasoning behind their hatred given to them when they are older. It also shows that even if people are not given reasons later for their hateful stereotypes they will still discriminate for example when choosing a non-white job applicant they will decide that applicant doesn't fit exactly whilst the white applicant who also doesn't fit gets the job. It then uses an US restaurant chain to show how ineffective leadership and individuals who say nothing will allow "evil" to flourish. Other examples are used to show how bad emotional intelligence is likely to lead to depression, drug addiction, criminality and divorce.

"Windows of Opportunity" talks about where people learn their emotional intelligence. It uses studies of families and gives good and bad examples of parenting that lead to well adjusted children. Inept parenting styles include ignoring the child's feelings altogether, being laissez-fair, being contemptuous and showing no respect for how the child feels and being simply abusive. This section also mentions post-traumatic stress disorder in adults and children, and examples of how to heal from the trauma.

"Emotional Literacy" gives examples of school programs where children learn emotional intelligence from the youngest age possible. It illustrates how wars on drugs etc. don't work but teaching children emotional intelligence at school will lead them to resist drugs, stop girls getting pregnant and stop children being criminals at a young age.

This book is an eye-opener by explaining what people are really seeking for psychotherapy and shows how emotional intelligence affects our daily life. It doesn't not show how you can affectively harness what you have learnt to apply it to your own life but aims to give a broad background to what is emotional intelligence.

Saturday, June 03, 2006

What is web 2.0?

I was reading an article in today's Times newspaper (print edition) about web 2.0 I know from previous experience that when things end up being published in the main stream media I need to go and check the original sources as the main stream media often puts things incorrectly.

Wikipedia describes Web 2.0 as:
"Web 2.0 generally refers to a second generation of services available on the World Wide Web that lets people collaborate and share information online. In contrast to the first generation, Web 2.0 gives users an experience closer to desktop applications than the traditional static Web pages."

Basically Web 2.0 sites are services to get things done usually with other people.

Examples of Web 1.0 services compared to a Web 2.0 service are given below:

Web 1.0 --------------------------->Web 2.0
personal websites-------------------> blogging
mp3.com---------------------------> napster
content management systems ------> wikis
Britannia Online--------------------> Wikipedia
Akamai ----------------------------> BitTorrent
DoubleClick-------------------------> Google AdSense


O'Reilly Media where one of the inventors of the term Web 2.0 and have a 5 page article explaining more about it here.

Friday, June 02, 2006

Java 1.5 and Enums

As I'm currently not working I thought I would try and study for the Sun Certified Programmer examination. I was searching the web for concised information about the new features and found a nice slide show in the form of a powerpoint presentation on the new features of Java 1.5.

Anyway I am currently learning about enums. There is not really that much to learn if you have come from a C or C++ background however what is good is that there something to finally replace having to use int constants to represent enums in your programs e.g.
public static final int foo = 42;
public static final int bar = 43;
Now you can just use:
enum Foo { foo, bar}

More information about enums can be found in this Sun article "Enums".