Help coderanch get a
new server
by contributing to the fundraiser

Jim Doyle

Ranch Hand
+ Follow
since Jul 18, 2003
Jim likes ...
IBM DB2 Netbeans IDE Spring
Merit badge: grant badges
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Jim Doyle

I think the answer to your question is "It depends on other circumstances".
I'll give three reasons why an SCEA is a great idea:

For people without a college degree ; having a series of increasingly challenging certifications shows a committment to reading and studying a body of knowledge. IT is no longer the wild-west like it was in 1997 and now even people with only 2-3 years of college who left an engineering degree unfinished due to financial reasons are being squeezed out despite 5+ years experience.If you are in this situation, and dont have the time for part-time college, you really really need to have a portfolio of certifications to remain competitive. There's alot of folk out there we call "grunt programmers" - they can borrow ideas from corwokers, and cut and paste examples from support sites, but they are very weak with blank-slate design from requirements or insight into performance/maintainability. The livelihood of grunt programmers is going away and you need certification to distinguish yourself from the herd.

In the USA, there's an increasing concern that IT workers near or over 40
are no longer desireable. I think an SCEA is a perfect 40th Birthday Present to yourself. After all, I dont think most people are ready for heavy, enterprise architecture (or managing projects) until your mid-30s.
Every other field has Continuing Education requirements, why not IT. The
SCEA will show that even though you are 40, you will make time on your own
time to stay up to date and invest in your professional development.

Last, I think if you are a hardcore developer that likely makes architectural decisions on the fly, the SCEA is a nice FORCE FED lesson on
planning *AND* documentation. You can use the SCEA as an opportunity to learn some UML and documentation skills that you might be rusty on so that you can ENHANCE your skills in the future by augmenting your projects with SOME degree of formal documentation. It's just practice at that point, and you can take away from the experience the certification plus some familiarity with process that will let you work alot better with other developers and your project manager.
REQUIRES_NEW means the Client txn is suspended, and a new Txn is started.
Since there is never a Client Txn in the case of an MDB, it makes no sense.
MANDATORY,NEVER and the others also assume the existence of a well-defined client transaction scope.

-- Jim
An issue I run into on *EVERY* project are staff/coworkers who are not
adequately trained/educated/prepared for the project. Quite often, people
will get very aggressive about getting a position they are really not ready
for. In my last project (2005), we had a DBA / Data Modeller with extremely
clever ways of hiding her ineptitude. The chaos and drama that resulted
from her strategy to deflect questioning her design decisions, delay producing deliverables and generally being evasive had severe impact on the project.

Thats why its important to CHECK before you hire ; at least verify the degree,
some dates of employment and make sure their credit record doesnt indicate
something insane is going on.
16 years ago
If a prospect is asking for scores, rest assured if you win the bid or the
gig that you will be CONSTANTLY in conflict with either the PM or the Project Sponsor over requirements, billable time and other minutiae.

What makes you think someone asking to see scores isnt also going to ask you to spend more time justifying your billed time than actually using
your time to complete deliverables?

Dont bother and move on. Life is too short to deal with project management
subject to untreated personality disorders.
Timeouts are scheduled for the bean by the bean. The container provides
and delivers the times to the bean. In this special case, the Container
*IS* the client that invokes the timeout method, and thus, deals with
exception thrown. Since the container is the client, why wouldnt you want
it to nuke the bean instance if an exception is thrown?

You cant use timeouts to interrupt a client-call thread. Why? Because the
timer might fire onto just one of many pooled stateless session bean instances. Further, you cant do thread control inside the bean method!

If you dont want the bean to nuke, then catch any possible exceptions inside
your @timeout method and send them to your logger.

Remember what timers were put there for. They are there to support scheduling jobs to be run in the future. So, lets say you want the container to execute jobs out batch - for instance you might want to sweep the database for customers that are 30 days past due every day and change some column value for those rows. You can do THAT with timers. Just setup a stateless session bean to hold all the business logic. Put the "business" in the timeout method. You'll a method on the batch-job-stateless bean
to call that will cause the bean to post a timeout on itself. Away you go!

-- Jim
I passed the exam yesterday. Some background on my preparation. I started
and finished a year long implementation cycle in EJB 3.0 for my current client. 2 years prior I had extensive Hibernate implementation experience.
Before starting my studying campaign, I was very comfortable with JPA from hands-on experience and had developed Stateless, Stateful and MDB experience
along the way. Following the implementation, I started studying in Dec 2007.
It took 2 months to study in 3 bursts of weeklong effort. Burst 1 was reviewing the core principles by reading Headfirst EJB (EJB 2.1 spec). Burst 2 was a detailed review on Txn Propagation / Exceptions / Bean Lifecycle in mid January using the O'Reilly EJB3 book. Burst 2 was done by getting up very early in the AM (5:30) and reading until 7 AM with another pass at lunch time. Burst 3 involved shutting out all interruptions / obligations 4 days before the exam and covering the side issues (Web Services, Interceptors, Security, Timers).

It's a hard exam. You must absolutely understand the principles of distributed transactions to score reasonably well. Dont even think you can do the SCBCD if you've spent most of your time with Hibernate development.
Hibernate developers who think the SCBCD is within reach might be very disappointed to find that the transaction processing semantics expected on the exam are often seldom-encountered the the typically stateless web applications that the Hibernate often finds itself employed within. They
key to passing the SCBCD is to understand transaction propagation, as well
as the risks and requirements you need to manage when you translate a business process requirement into a transaction scope and how those transactional resources cooperate with the container to meet the objectives.

As far as "high" scores on the Sun Exams ; I dont think high scores
are a predictor to skill or ability competitiveness given my 83% despite
extensive deliverables prior to the exam and 3+ years of JPA
indicate anything substantial given that I've had extensive deliverables prior to the exam and my experience level is very good. There are two few questions, too little exam time available and too few cases to make a connection between high score and high ability. However, I do believe it is important to score WELL BEYOND the pass threshold to confirm your competence and preparation commitment.

-- Jim
I'm working on the same project. I've been picking away at it for
months now because I am fully employed on a contract. However, my entire
back end is finished (and unit tested ) and what remains is for me
to pick away at the front end. Though I wont give you details on what I've done, I will tell you what you need to consider in your design.

FYI - I'm an architect, but am doing this damn assignment because I paid
$250 for it years ago and I want the "Street Cred" of SCJD.

Looking at your ideas, you havent fully thought through ALL of the concurrency issues. They are subtle. You can expect to spend sizeable time
to get it right. You will be handsomely rewarded in intellectual value though, since you will get first hand experience in database internals.

Some things to think about, which will reveal issues with concurrency:

1. What happens if a thread calls lock() twice in a row?

2. Lets say you call lock(). Now you are wait()-ing because someone else
holds the lock. What happens when your wait ends and you are woken back
up? Is it possible that the other thread that you were waiting for did
a delete on that row?

3. Is there a primary (possibly composite) key for this table ??
3a. If there is a candidate key, what happens if you UPDATE a row and
the requested updates collide with the primary key? How can you
prevent this?
3b. Lets imagine you have two threads. One is INSERTING and the other is
UPDATEing. Is there a situation where the INSERT and the UPDATE
happen close enough that two rows end up in the table that create
a primary key violation? The race condition requires that the check
for key constraints race at the right time.

These are some things to think about. Deletes Racing Row Locks, Updates
and Inserts Racing each other, Updates (as well as inserts) causing Key

Next, you might think about Row Locks as well as Table Locks to resolve
these races. However, whenever you have two (or more threads) and two (or
more) locks, there is a possibility of deadlock. So, you must design your
locking protocol to escalate, as well as be deadlock free. Design wise,
your database needs to be sequentially consistent ; so, as a start, all
reads and writes need to be atomic.

This is GOOD STUFF and the only place you get to play with this (other
than the SCJD) is a good, solid graduate level course in Database Theory
that includes a Systems approach. Finding courses taught from this perspective is tough - usually only full-time day programs at big campuses.

It sucks writing this, but doing it JUST ONCE is rewarding as you may
never get a chance to do real systems level design once you move onto
J2EE and what not.

If you want true illumination - seek out "Principles of Transaction Processing" by Jim Gray. Everything you take for granted with CMP and
JTA is spelled out there.

-- Jim
If global outsourcing is here to stay, I am wondering where the honest
advice and guidance is for what Americans should be training and preparing
to do in this new world order.

Quite frankly, I have no idea what I should be doing to prepare for the
future. No-one I've talked to can offer suggestions, just smug advice
that I have an entitlement mentality I need to overcome if I honestly
think that its unfair that I should be competing with thousands of
people 12,000 miles away for a job located 5 miles from my house.

I have been told by people in the MA State Unemployment system that I
need to "retrain" myself. I've also been told by others that I need to
find a new career because my former field is sunsetting.

What should I "retrain" in? I have a Bachelor's in Chemistry, a minor
in Physics. 8 years of software development experience including Unix
internals and distributed computing. SCJP, SCWCD, IBM DB2 certified.
I can develop in any number of UP processes, write use cases and draw
UML until the sky comes down. I am literate and mentally flexible. I
always tested in the upper 95% of those silly exams they gave us in school,
so, I assume, that I am adequately prepared to compete for most jobs.
Oddly enough, I enjoy building systems and build things that are reliable fairly quickly. I entered this profession because it loads my source impedance for intellectual stimulation and I take pride in the quality of my work and relationships with my colleagues. I doubt it my looks or my
age, I look like I'm 25 and run/bike almost every day.

What - pray tell - should someone like myself be "retrained" for ?
What poor choices did I make in my own training and education that
I need to correct for to fit into an entitlement mentality-free global

Clearly I am retrainable, but in what. I would like to remain in America.
I like the weather and the outdoor activities. Moving to Pune is not
something that I should have to consider. Should I completely cash out
of America?

If am I competing with people half a world away for jobs in my home
town despite having made good life choices and investments in myself,
what exactly should I be doing to prepare myself for the new economic
game plan? They just tell me I need to be retrained... Someone at the
State Unemployment Office told me that they project huge demand in the
next few years as health-care aides. I was hoping I could find something
more exciting to do with my education and background than change bedpans
and push a wheelchair around. I was told to forget about training as a
radiology or nuclear medicine technologist since most of those jobs go
to foreign workers...

Thus far - noone has told me what the new game plan is, just that the
rules have changed and be prepared to deal. Maybe its just my entitlement
mentality. My current gig is up in December and I'm wondering what will
happen next.

-- Jim
19 years ago
Please dont contact me with questions or application materials. I am not a representative. You MUST contact PCCI as they run this project.

The opportunity is in Jamaica Plain right on the Orange Line (T).

Just passing this along in case there are any Metro-Boston people here
who are qualified for this and would like to work right off the MBTA.

Contract position details
19 years ago
The answer is no. You book the entire firm, because the requirements are that you
book the record, the whole record and only that record.
The purpose of the exam is to test your ability to fit requirements to implementation
while using best practices in OO Design and the features of the language. This is NOT a
case study in business analysis. If it were a case study in business analysis, you'd
be measured on maximizing profit, margin and utilization of all resources available.
You begin to see that the EFFORT required to automate certain processes is
non-trivial. In certain cases, the cost of automating these processes are only realized
for large economies of scale.
At the end of the day, the computer stores and retrieves information. It's up to you
to decide how to invest your time to maximize the abilities of the computers storage
and retrieval capabilities against the other needs for your time and ability.
-- Jim
Good lord, a veritable neurotic checklist of dos and donts.
Might I suggest Wellbutrin SR or Paxil, possibly with a short half life
benzodiazepine for acute OCD spells.
Order what you want. If you feel hesitant about something expensive, just
say that you want something on the menu and that you want to pay for it
yourself because it's more than you'd want to impose on someone paying.
I prefer to order something light off the menu.. For one, the less YOU have
to eat the MORE you can talk. Let your interviewer enjoy eating and talk to
them. After all, they want to hear about you.
The other advantage to eating something light is that you wont have
food coma.
The prior etiquette checklist reads like an Prisoner's handbook in
the concentration camp to avoid incurring wrath by the guards. Lighten
up, please!
-- Jim
20 years ago
Post Dot-Com, references and background checks have become very important to hiring BDMs in the know. In the boom years, there were alot of "fluffers"
running around as well as upstarts trying to enter the profession for the lure of cash rather than disciplined committment to the body of knowledge.
Background checks are inexpensive and easy to do and the number of firms
offering this as a service are growing. The benefit of these services firms
is that they consolidate all of the metrics and can issue a single, unified report that includes education credentials, national and county criminal
and court records checks as well as credit.
Yahoo Hotjobs has a nice service for this that is cheap, you can get a
complete dossier for about $100 and you can control who gets to see it
and for how long.
I invite all of my prospects to background check me as I have nothing to
hide. I also respect people that require this since I know that the likelihood of me having to work with a BS-artist or con-artist is lower.
If you've ever had to work with someone that uses lies to cover up for their
incompetence, or worse, weasels you into doing THEIR work for THEM - you know how important it is for your sanity to keep these mentalities out of the workplace. It's all about a civil workplace and enjoying the company of likeminded peers - not having to enable and accomodate others' dysfunctionalities...
When I interview for work, I carry a portfolio dossier with me. This
includes my diploma, all certifications as well as a notarized copy of
my criminal record check that indicates "All Clear". If I show this to
a prospect, I also invite them to conduct their own background check anyways to satisfy their needs. I have nothing to hide.
-- Jim
20 years ago
It's not pretty. I live in Boston and just came back from two pitches
in that area (Lake Mary/Heathrow/Sanford). These were with two small
VC funded startups in the area one with a medical application the other
with a financial services application.
I was fully prepared to underbid, just to get some work since I have an
offer to stay at someones house down there for free for several months.
I lost the Financial services bid to someone with Series 7, Series 6x
credentials who was a SW developer from NJ. The medical application folks
had a guy from India they talked to after me who had an established team
in Chennai. They went with him despite my willingness to run low on the bid
and put in rigid deliverables milestones into a sliding payment schedule.
It's ugly out there. You need to run with a cohesive team (pack-up like
wolves) if you want work right now.
-- Jim (SCJP2/SCWCD/DB2 AppDev)
20 years ago
Can I use code generated by the NetBeans IDE for simplifying my UI
coding task? I have heard several conflicting rules about SCJD:
1. You may use whatever IDE you wish.
2. You can only use code that you write. Does that include "generated"
code from a UI Builder? Or is this forbidden?
After all, the "generated" code from the UI builder is useless unless
you know how to write code that uses the event model.
-- Jim
Some of the jobs will come back, but it's going to be a 40-55K max salary.
Recent grads will start in the low 30s just like every other profession
out there. "Good money" will be 70K, and for that you need to be a
business analyst plus an architect with bench skills and a history of
having delivered implementations on time and budget. Get used to the
lowered salaries. To get into the 70K range, you will have to have
been a veteran in the field and in your early 40s before you can compete
for these kinds of positions. You will report directly to executive staff.
If you are making north of 60K right now, consider yourself lucky.
I'd start saving as much as you can and wind down your lifestyle to fit
comfortably (i.e. expenses covered and savings monthly) at 45K/yr.
Look at salaries for other kinds of professionals, particularly doctors,
chemists, electrical engineers, etc. i.e. professions that require ALOT
of school and extreme numeracy.
The number of people capable of programming and designing will always
be are tiny minority. The cognitive skills are a rarity and always will
be. You will not, however, be paid for having them necessarily. Get
used to it. There are many great artists out there who remain poor despite
exceptional mastery of their medium and expressive talents. It will be
no different for superb programmers.
In the end, if you like this profession, you will be fortunate enough to
have a job to go to that you like most of the time and you will be able
to pay your rent and take a modest vacation once a year. Get used to that
-- Jim
20 years ago