Friday, October 14, 2016

Test Team Lead

A few years ago, I worked myself into a leadership role at my job. Being one of the better Oracle Developers and one of the few that was willing to speak to people in a meeting, I was promoted to Oracle Development Lead. That was pretty ok. I had a great team and, for the most part, they knew what they were doing.

Then, my project got canned, but the contract didn't. Since I was now at a manager-level, I ended up writing PowerPoint presentations for the next year on how to make a massive behemoth of an organization into a more "Agile" massive behemoth. In addition to being massive, they are also underfunded, so progress was slow and highly resisted. I quit that job -- but they asked me to stay. I said I'd had it with PowerPoint presentations and they said they would work me back into the technical work.

Fast forward to now. I'm a Software Testing Lead. I've been bumbling through this job for about a year and I think I'm finally starting to get my feet under me. Rather than trying to figure out what development is up to and come up with some sort of testing schedule which will be messed up two weeks later, I'm going to flip that on its head. We are embedding our testers into the Scrum teams (that's more "true Agile" anyways) and then the Scrum teams can handle the scheduling and tasking.  I'm now focused on the aspects that actually take a Senior resource -- test processes and test tools (Arquillian, Rational Functional Tester, Selenium, etc.). I'm going to be helping the teams move towards automation rather than assign it to my resources and hope they'll figure it out. I want to keep them moving forward and making progress in their projects while I spend time on some R&D. I also need to create a set of PowerPoint presentations on testing processes, etc. so that as testing resources become available, they can come up to speed quickly.

Wait, what?

Fair warning -- I'm not really sure what possessed me to post a blog posting today, but it could obviously be years before I post again.




Friday, April 20, 2012

Oracle Forms -- DML Returning Values

This is one of my most loved and hated properties in Oracle Forms.

If it is set to Yes, it makes it so that you automatically see not only user updates to a record, but any updates that may have happened on the database (ie, a trigger sets "Updated Date", etc.). Additionally, if this is set to Yes, you should not get the "record is locked by another user" message after you have committed, but attempt to edit the record again without re-querying.

So why in the world is it defaulted to No? Well, it's my understanding that this was done so that you don't break older code that may be running on a pre-Oracle 8 database.

The property works great, except when it doesn't. Occasionally, after a record update, you see a bunch of gobblydygook after it has committed. The extra junk isn't really there, and all you have to do is re-query the block to see that the records are fine, but it doesn't make my end-users happy.

And then today, I learned something that I didn't know before. If you set the "Query Only" to "yes"  property on an item in a block with DML Returning Values set to Yes -- well, the item doesn't return the value -- it appears as if the DML Returning Values property is set. I guess that this is because the dml return is considered part of the update process and the query only items are ignored at that point (I wouldn't have guessed it before, but it's my theory).

So, there you have it. For the one stray person who may stumble upon this post, I hope it helped :).

Thursday, November 10, 2011

Password Tips/Recommendations

You Need a Strategy
A co-worker sent out an e-mail today about how he does his personal password strategy. It shocked me a bit that he was sharing as much information as we was -- especially the fact that he basically uses a fairly simple strategy and he uses one password for all of his accounts, and it got me thinking. This post was originally a reply to his e-mail, but I didn't actually send it, because it seemed like I was just saying "I'm right and you're wrong." However, I have some strong feelings about passwords, so I felt compelled to write it down somewhere, even if it is on my obscure, seldom-updated blog that is only read by myself. For the most part, I think people know better, but just get frustrated by all of the passwords that they have to manage, so they take shortcuts in order to make life less miserable for themselves. As a long-time IT Consultant, here are my recommendations on passwords. They are not original ideas, but the main point is that you need a well-thought out strategy to deal with your passwords.

Use a Tool for Password Management
I would suggest a password tracking utility (KeePass, Password Safe, etc.), which encrypts your file of passwords. Put the encrypted password file on an encrypted USB device so that you will have your passwords where you need them and when you need them (you should probably also load the software on your USB device so you can access the data from somewhere other than your computer, using something like PortableApps). Additionally, passwords stored this way are protected by at least 2 layers of encryption (one layer on the drive, one or more layers in the software). Pick one up at Staples or Office Depot today.

Almost everyone I've talked to about this has a fair amount of frustration built up from trying to remember all of their passwords. I'm sure that we are all aware of the dangers of written passwords, or passwords stored in the clear. However, we all at some point get overwhelmed at the task of remembering all of our passwords, so we resort to shortcuts that are much less secure than they should be. I've seen DBA's (yes, more than one) pull up a shortcut on their desktop that points to a text file of all of the system passwords, as well as their own personal passwords -- stored in the clear. When you really look, we've ALL (myself included) done something at least that insecure.

A strategy of using an encrypted password tracking tool helps alleviate the pain of tracking all of your passwords, but still does it in a secure manner.

Use Multiple Passwords/Password Schemes
I would recommend against using the same password for all of your accounts. It's a can of gas waiting for a lit match. We all have personal bank accounts, forums, social networking sites, etc. that we have passwords for. When I last looked, I have at least 30 passwords that I have to keep track of -- that's 30 systems that contain a password of mine. If you use the same password in all of your accounts, then your security is only as good as the weakest system that you use. I would submit that your personal e-mail address should be the STRONGEST password of all of them, as most systems use e-mail to trigger a password reset. You should also not use that password on ANY other accounts.

In coming up with a password strategy, I would suggest breaking down your accounts into different layers:
  • Accounts you use, but wouldn't care if they were compromised (your delicio.us account, car repair forums, etc) -- low risk accounts that pretty much contain information that is all public anyways.
  • Accounts you care about, but contain semi-public ( less sensitive) information (Facebook, LinkedIn, RememberTheMilk etc.)
  • Accounts that contain sensitive information (LAN/email accounts at work, accounts with your utility company, bank account, etc.)
  • Your personal email account. This should have the most secure password, but people often use a weak one here, and leave it in place for years.
At the very least, each of these layers should have a different password -- or a different password strategy.

As an example, I used to have an account on lifehacker.com, one of the sites owned by Gawker Media. For their site, I used a weak, easy-to-remember password on it because everything in that account was public information with no need of protection -- "posts" to a forum. The only risk in someone getting that password was that they could have posted in my name. Possibly a reputation risk, but not a big risk. Well, Gawker Media was hacked this year. The hackers got my personal e-mail address and they got my Gawker password. Had I been using the same password on my personal email account, they could have gotten access to not only my email, but most likely, to every account I've ever had -- and they could have easily searched my email to see which bank I bank with, etc. If your personal email gets hacked, you're toast, as most online accounts use your email as part of their password reset procedure.

You Should Lie
OK, honesty is really the best policy, but consider this point. Social networking websites are a goldmine of personal information that can be used if you are launching a targeted attack of some sort -- or even as a tool in finding good targets. Interestingly, enough, social sites also frequently highlight information that could be used to hack a lot of people's accounts using "password reset" tools -- especially if you have access to their personal email account. For example, what are the security questions that you get asked when you have to reset a forgotten password?
  • What is your mother's maiden name?
  • What is your favorite color?
  • Where were you born?
  • Who was your best friend in High School?
  • Where did you go to High School/College, etc?
  • What year were you born?
  • etc.
Spend much time on someone's Facebook page, and I'll bet you can answer at least half of those questions.If you're going to use Facebook (or anything else like that), you should either lie on Facebook, or you should lie in the answers to your forgotten password reset questions. In other words, you may want to set up your password resets by always saying your favorite color is Black or that your Mother's maiden name is "Bubba." There are other instances where it may be advantageous to "lie" on account information. For example, I do have several accounts where my name has nothing to do with the purpose of the actual account or its functionality, in those cases, I am frequently "Bubba O'Leary" or "Jack Daniels" (actually, I'm lying again -- those aren't the names I"ve used, but you get the idea). If the account doesn't have a functional use for the information they are harvesting from you, lie. You don't go to Hell for lies that are on the Internet, right (again, kidding, but you get the idea)? ALWAYS ask yourself:
  • "Do the people that I'm giving this information to really have a NEED to know it?" 
  • "What is that need, and does the need also benefit me?"

In a Nutshell
I'm not trying to go all "Conspiracy Theory" on anyone or cause any panic. However, whether we realize it or not, each of us has enemies of some sort -- ex-spouses, a ticked off former co-worker, a building contractor that you made mad one day, the Cable Guy, a neighbor who doesn't like how you look, that kid that you "pantsed" in Junior High who just found you on Facebook, someone who you cut off in traffic and they wrote down your license number. I'm not sure if you can still do it, but with a simple phone call to the DMV, I once got a name and phone number, based on the license plate number of a car I wanted to buy -- imagine how surprised this person was when I called about the car (they didn't sell it to me, by the way...). Just by living, you have ticked off some people in life. In addition to these people, there are plenty of strangers out there, fishing (and phishing) for targets. These are your enemies when it comes to security.

If one of those enemies suddenly decides to cross the line and go all Hacker, they can make a mess of your life if you have one password everywhere and they get ahold of it. Given enough time and a specific target, a Hacker can get a long ways. The task here is much like locking your car doors or putting cable locks on a laptop -- it's nothing more than a deterrent --  it won't totally prevent a criminal from breaking in, but the harder you make it and the more time consuming it becomes, the higher the risk, and the more likely the criminal will be to move on to some other target. Your job is to make your passwords hard to crack, but accessible to yourself when you need them. Use a Tool to simplify password management, Use multiple layers of passwords/strategies, Lie -- use false information when the information is not needed by the system you are accessing. It's easier than you think.

I know that just in writing this, I've remembered several "chinks in the armor" of my own security strategy -- things that I've known I need to fix but have procrastinated. I will be making some changes, and I invite you to re-examine your security and make changes where they need to be made. 

Thursday, August 4, 2011

Keep Business Rules Legible in Your Code

I've just realized that this is one of my driving "code philosophies" though I've never really put it in words. It drives me to write code that separates the DML from the business related code. I understand that in some instances, this can lead to code that is slower than it could be.

Additionally, I strive to code one rule at a time, where possible. This allows you to test and debug a single rule, isolated from the rest of the mess.

However, I have seen that it leads to code that is reusable and more reliable than when you write code that contains everything in one SELECT statement. When you jumble multiple business rules together into one big SELECT statement, you have a mess to troubleshoot when one of the rules changes or when you discover that you have a bug.

Of course, when you are all done and it goes into a system with actual records, some processes perform so slowly that you have to go back and rewrite with performance as your primary goal.

Wednesday, October 7, 2009

SQL Developer 2.1 Early Adopter -- Still More Impressions

Holy Memory Leak, Batman. The good news is that although my memory usage on SQLDeveloper has crept up to 775MB this morning before getting slow enough to have to kill it, it did manage to save the file and somewhat interact at that point. It used to be that once it had crept up to about 600MB that it would just go blank and be useless. So, now it seems to tolerate the memory problems better, but still has a problem with memory consumption gradually creeping up to intolerable levels as time goes on.

So, what was I doing that cost all this memory?
I had 5 text files open (not huge files, mind you -- all less than 1000 lines), no database connections open, and I was editing one of the files (Search and Replace, Ctrl-G to go to a line, edit, save, copy paste -- just normal editing). That's it.

Looks like I will have to kill from the Task Manager, as it didn't shut itself down all the way.

SQL Developer has always done this to me. I'm a Developer, so I open the tool in the morning and keep it open. Originally, I had to kill around 2 in the afternoon. With version 1.5.5, I had to kill around 11 in the morning and 2 in the afternoon. With the new version, it looks like I still have to kill, but it manages to use even more memory before I have to kill it.

I've been trying to get my company to switch from TOAD to SQLDeveloper, but nobody else can stand all the bugs. TOAD is a hog, too, and I haven't used it seriously for a couple of years, but the TOAD guys aren't having to kill twice a day. One of the guys on the team really wants to use SQLDeveloper, but he's on Vista and SQLDev is absolutely unbearable on Vista.

Makes me wonder if I'm an idiot for continuing to be a SQLDeveloper junkie. I love the tool, but it's never been smooth, seamless, or reliable. Kinda like driving a DeLorean or something. Well, maybe more like a Yugo. No, it's way cooler and more useful than a Yugo, but certainly not as sleek or fast as a DeLorean. Hmmm.....how about an old Dodge 4x4 truck. Love it to death, it's powerful, cheap and useful, does way cool stuff, but it might die any minute. Maybe I like it because I have a Gambler streak in me and just want to see if I can beat the odds.




Tuesday, October 6, 2009

SQL Developer 2.1 Early Adopter -- More Impressions

I like the new SQL Formatter changes. I really like the live previewer so that you can test a setting and see if it does what you think it's going to do. Very nice. My one complaint that I've always had with the SQL Formatter is that it seems to be less aware of PL/SQL. It handles SQL beautifully. Actually, this is a complaint I've had about Oracle products in general for years. SQL Developer has, in a lot of ways, been the answer to that void. However, the formatter still seems somewhat ignorant of PL/SQL. Interestingly, the formatter settings didn't migrate from the previous version very well until I went in and edited the settings, saved them as SQL and then restarted. The tabbing is weird. I have mine set at 4. Half of the tabbing works correctly at 4, but a bunch of other tabbing switches over to the default tab size of 2. Hope that gets fixed. If I use the "tabulator" (never have figured out what that means), then the indentation mostly disappears entirely -- one line works, then the rest move 4 spaces to the left of where they should be. There are a zillion options in the formatter. Tough to find documents, though. I really wish that the formatter would format DECODE statements correctly. Namely, that there be one value/translation pair per line.

Ctrl-Enter -- no longer runs a Select statement. Has to be F9 now. Also, a statement no longer runs with & as a prompted parameter, but if you run it as a script, it will. Using a ':' as the bind variable seems to work fine. Seriously, though, after all these years of making me learn to use Ctrl-Enter, we now switch to F9?

Case switching works a lot better with Ctrl-Quote now. It used to require clicking the mouse option first. And, there's a button now.

There's a button for an unshared worksheet now -- locking it into the current connection. That might be useful.

More later...











SQLDeveloper 2.1 Early Adopter -- second impression

130 MB memory -- seems smaller. We'll see if it creeps up to 600MB and then hangs like it always has in the past.

It feels a lot faster. Maybe I'm just too excited.

One of the things I have to check is the Excel import/export. I also need to try out the Data Modeler viewer. However, I should probably do some work...

Ya know, it's kinda sad to see what kind of things get me excited. And, should I be on an Early Adopter version? Probably not for production work, but I just can't really help myself. :)

SQLDeveloper 2.1 Early Adopter -- First Impression

It knew where to pick up my previous settings!! I'm already in love.

SQLDeveloper -- I'm so outdated

Early Adopter version 2.1 has been out since the 24th of September and I'm just loading it now. I'll whine about it later......

Wednesday, September 16, 2009

JDeveloper

I got a comment from someone from the Oracle team that works on the JDev Modeler on my past post. I was just going to post another comment, but hey, since I actually got some attention on my lame little blog, it probably deserves a full post.

Dai responded and was wondering what was giving me problems with generating from JDev. First of all, I have to say that I'm totally flattered that he read the post and responded -- especially since I was just whining into the Black Hole of the Internet.

First, let me say that I'm totally flattered that you read my whining -- "I'm not worthy..." The JDev Modeler ROCKS.

Here's the trouble that I end up having with the generating (in version 11.1.1.0.0).
I have to choose between 'CREATE, REPLACE or ALTER.' Thus, if I've created a table and made a change to a different table, I have to generate them separately. I'd prefer that it check the connection and generate a delta. Actually, this has been my only frustration. And, if I were working on one table at a time, it wouldn't be a big deal. Yesterday, I was attempting to do just that -- create foreign keys to two existing tables, alter some other existing tables and create several new ones. Basically, I pulled in a few tables into a database diagram, made some changes and enhancements and tried to implement them. What I ended up doing was dropping the two tables that I meant to create foreign keys to and then failing to create the full set of objects. Happily, this was in Dev.

Which brings me to one of my FAVORITE features in JDev Modeler. I love that it generates the sql script. However, I would prefer to get the script always -- even when it fails to run. That way, I can look at the script and fix the script. The reason that this is my favorite feature is that I love the point and click way of rolling out changes -- but only in Development. For Production, it should be from a script.

In fact, this is one of my favorite features in SQLDeveloper as well. They have been very good to (almost) always providing a way to see a script of any change that you are making through the UI. This is a fantastic feature. As I've mentioned, i feel strongly that the script is the only way to roll the code into test and production.

At this point, I should probably confess that I've spent a few years developing with Designer. So, I was spoiled by being able to point the generator at a database connection, have it generate a delta script WITHOUT applying it, then I could go apply and test the script. Nice feature.

But again, as a former Designer user, I LOVE the JDev er. Don't tell the SQLDeveloper er team, but I like the JDev version better. Yes, it does less. However, I love that it will create a sequence and trigger for a Primary Key column with the click of a button. That's just ONE example of how the JDev Modeler is more usable. Another confession -- I stopped using SQLDeveloper er once I found out that they were going to charge for it (and since I knew that JDev already had one that rocks for free). I've been a Contractor several times and I find that it pays to be able to use as many free tools as possible, especially in an environment where a company is paying MEGABUCKS for their Enterprise Oracle license and doesn't want to hear about another Oracle license fee.

Dai, I want you to know that despite my complaints, I LOVE JDev er. I love SQLDeveloper as well (have I mentioned that it hangs a couple of times a day and I have to kill it?).

Of course, now I'm comparing my own whining with my previous post about User Expectations. Developers are probably the hardest crowd to please as far as User Expectations go. Not only do I want the custom street rod, but I want it for free, too. :)

Thanks for reading -- "I'm not worthy..." :)



Tuesday, September 15, 2009

SQLDeveloper -- Continued Whining

OK, so SQLDeveloper is a free tool from Oracle. I really like it, but am still waiting to see some wrinkles ironed out. For example, it hangs at least twice a day and has to be killed. The PL/SQL formatting still has a LOT to be desired (in fact, the tool seems to be just treat PL/SQL as if it were straight SQL). It still has problems with the File Navigator, importing and exporting Excel spreadsheets, etc. The great thing was that until a year ago, SQLDeveloper was making fairly steady progress. So, if you saw a bug, there was some hope that it would get fixed -- at least partially -- in the next release.

SQLDeveloper is built from JDeveloper -- also free. JDeveloper is fine for Java, but not so hot for PL/SQL (hence, SQLDeveloper, which does better with SQL but still struggles with PL/SQL).

JDeveloper has a data modeler. It's actually quite nice, but has a few quirks -- like the fact that generating is a pain in the butt.

SQLDeveloper Data Modeler is not free, is not built from JDeveloper's data modeler, and is not part of SQLDeveloper. In fact, it appears to be totally unrelated. In testing the pre-release version, it looked like it was some dead Oracle product that got revived and assigned.

And the really crappy thing? Well, it appears that the SQLDeveloper team has been so busy building the SQLDeveloper Data Modeler (instead of just integrating the one that's already in JDeveloper), that each new version of SQLDeveloper has almost nothing in it.

And why are they doing this? Apparently so they can charge for SQLDeveloper Data Modeler. Did I mention that JDeveloper has a free Data Modeler?

??????????

Oracle, you confuse me.


Tuesday, September 1, 2009

Computer Code and User Expectations

I sling code for a living. However, what I've realized is that users expect
  1. The Code should anticipate their needs and "just do the right thing."
  2. It should be as custom, fast and beautiful as a hand-built street rod.
  3. It should be as cheap, reliable and efficient as a Honda Civic.
  4. Every project should be delivered on time, no matter how many times the custom requirements change.
If you can't meet those expectation, then you're an idiot. However, the only people that can explain why all of that is so impossible are the very ones that are saying it is impossible. Thus, nobody believes them. It's kinda like the people who don't believe that NASA put a man on the moon because the only verification available is through NASA.

Here's the weird thing. Writing computer programs is still very much in its infancy. When you look at cars, even thirty years ago, they weren't expected to go more than 100,000 miles without major issues. Now, 200,000 without major issues is the expectation.

Cars can be mass-produced mostly because pretty much all cars are solving the same problem. How to get people and stuff from one location to another. There are variations as to how fast , how efficiently, or how stylishly the people and stuff will get moved around, but all those automobiles are really just solving the same problem. However, computer programs are being written to solve any problem that anyone can think of. Kinda tough to mass-produce that. Thus, as long as we are solving new problems, the technology to automatically solve them will be somewhat flaky, unreliable and buggy. Once we have been solving the same problem for over 100 years (like we do with cars), then it should be pretty easy to reliably solve that problem. Kind of a boring problem, but easy to solve.

Keep using your brain, it's only going to get more valuable.

--Og






Monday, November 24, 2008

Beyond GeekerDome

Ok, so I saw last week that Firefox 3.1 Beta 1 was out, so I had to download it and run it.

So far, the only plugin that I run that's compatible is ScribeFire.

However, I had to have it. I'm loving it (why, I really don't know), and I'm running it. I'm sure that once my plugins all get compatible, my performance and reliability will go into the tank, but for now, it's all good.

I'm not sure what I did to it, but I currently have broken my SQLDeveloper installation and I"m running JDev in its place. Big, Fat, and sassy. But for some reason, I've got to have it.

iTunes isn't cool enough. Never will be. Has to be foobar2000. Of course, this means that I end up dorking around with m4p files and converting them to mp3, even though I actually own all of the files. This has somehow led to having about 4 copies of every music file that I have, all in different formats.

Which leads us to an awesome file system reporting and cleanup tool -- WinDirStat. This thing totally rocks.

Found out today that I can script the conversion of Word Documents into pdf format by using OpenOffice and some Visual Basic macros. That's going to lead to some file cleanup projects, soon.....

Picasa has let to some awesome photo file processing....and saving extra backups. And of course the Gimp is AWESOME!!! Hmmm....wish I had more RAM about now....


Looks like I've got my system pretty well pegged, time to start digging in to editing all those home videos that have been piling up for years.

Time for a few new hard drives, and some extra drives for backup....

I wonder why I can't seem to get my car washed?

Monday, September 22, 2008

Where is my drive?

Ok, so I got mbldr going, rebooted, and everything worked great.

I went into Disk Management, from Computer Management on XP, formatted the Linux Partition to NTFS (a shame, but I was happy it worked), gave it a drive letter and migrated a bunch of files over there. Everything was working great.

Until I rebooted and the drive went away. Ok, Don't Panic, but WHERE IS MY DRIVE?

I went into Disk Management again, went to give the partition a drive letter -- and couldn't.

Don't Panic. Don't Panic.......

After some research and a couple of really uneasy days wondering if my backups REALLY had all of my files.....

I realized that when I ran mbldr, I had checked (or it had defaulted -- not really sure) a checkbox that said "Hide all other Primary Partitions." Well, that should be easy enough to fix, right?

Wrong.

.....Disk Management won't "Unhide" a Partition. Seriously, Windows is pathetic.

Anyways, after some research, I got ahold of EASEUS (I tried the free version), and "unhid" the Partition.

Amazingly enough, it mapped to the drive I wanted again, and we're back in business.

Sweet. Problem solved......for today.



Powered by ScribeFire.

Friday, September 19, 2008

Grub Scrub -- Replacing a GRUB Boot Loader

I had installed Linux (Ubuntu, Christian Edition) as a dual boot on my laptop at work. I wasn't really "supposed to" but hey, I'm a Developer, right?

However, I've been running short on hard drive space lately. I'd say that it's because of my huge folder full of MP3's, but I'm not supposed to have that on my work machine, either (at least I do legally own them all).

When I initially wiped the partition that Linux was on, I lost the GRUB boot loader that had been installed. I had to re-install Linux to be able to boot Windows. For quite a while, I left it that way because I just didn't care enough to fix it. I researched, and it looked like the only way to fix this was to use the Windows Repair/Rescue disc to fix the boot loader. Having had to do a Windows rescue before, I was not looking forward to the process. Also, I was going to have to actually find the disc.....whew, way too much work.

And then a couple of days ago, it hit me "Duh. Load a different Boot Loader," So, I went in search of one and found one. Master Boot Loader (mbldr) was just the ticket. It let me back up my old boot settings to a file, then create a new boot loader. It let me specify the order that the partitions would boot, so that I can now actually boot straight to Windows. It even let me name the OS that was loading. I couldn't resist and renamed "Windows XP" to "This Machine will Self-Destruct in 5 Seconds." Heehee.

Now I can format the old Linux partition as just another NTFS drive (pathetic, I know) and boot only to Windows XP. It's an absolute shame to take Linux off, but this is my work machine, and Linux isn't really supposed to be on it. Besides, I needed space for all of the personal files that aren't supposed to be on my machine. :)


Powered by ScribeFire.

Friday, August 29, 2008

SQLDeveloper 1.5.1

It's Rockin' Awesome.

I went to the ODTUG presentations that Sue Harper did on SQLDeveloper and was very impressed with some of the features that I didn't know about and also the stuff that is on its way.

When she showed how to import data from Excel (ok, it is broken in the current patch, but it rocks) and then showed the Normalize feature, I was blown away.

Combine that with the upcoming (unofficial) Data ing tool (which I've been previewing/using in the JDeveloper 11g technical preview), and I'm ready to throw away Designer. No offense, but currently, we use Designer for very little. I've built separate scripts to take care of building audit columns. I need to build a script that will build a Journal table and then I'll be done with Designer forever, since we were really only using it for ing and the auditing/journaling API's that id built.

It also inspired me. Between APEX and SQLDeveloper, there is NO reason to create data and maintain business-critical in Excel. Now, Excel becomes just another output method in my opinion. And Word -- seriously, I'm blown away that anyone would store data in Word. Word is a great Word Processor, not a data storage system.

I love that Code Templates and configurable Tab sizes are available in the newer versions of SQLDeveloper. Those were among my two biggest complaints about a year ago. Petty, I know, but Code Templates are such a huge time-saver. I mean, there are certain things you do as a developer thousands of times in your career. If you hand-type them every time, then you are 1) Dumb, and 2) Going to forget something and build a bug.


Wednesday, June 11, 2008

Saw a meteor on Sunday

http://www.ksl.com/?nid=148&sid=3496031

It was way cool.


Wednesday, May 21, 2008

Firefox 3, Release Candidate 1

So far, I like it. Before I installed it, I uninstalled all of my other Firefox installations. Both Firefox 2 and Firefox 3, beta 5 were unstable, but I think part of it is my fault for having them both installed.

I am, however, having trouble with certificates on one of our development we sites. With version 2, it would let me 'allow' the site, but with 3, it blocks me entirely.


Monday, May 12, 2008

tikiwiki on Oracle -- part 13.5

This is a bunch of garbage. They say you can install TikiWiki on Oracle, but I don't see how their install scripts have ever run. They use reserved words extensively as column names, and a bunch of syntax that isn't even supported.

I've been searching for other wikis that will install on Oracle (without re-writing the dumb thing) and so far, not much luck.

Here's the deal. Why is oracle hosting their wiki on wetpaint.com? Kinda makes me think that there is not a very good fit of 'Oracle' products to do the job.

tikiwiki on Oracle -- part 13

Just got back from vacation and started playing with this again. I've been having PHP trouble. When I uninstalled EasyPHP, it didn't clean up the registry correctly and so PHP scripts weren't running right. It also left registry entries for the old version of Apache, even though it had been uninstalled.

I also had problems with the database setup scripts. I had to strip them of the ' " ' character, as it was loading all object names with ' " ' at the front and back.

So, I dropped the user, cleaned out the EasyPHP stuff that I can find, re-installed the database objects, and have uninstalled everything else.

Here we go....