Oct 18, 2007

Using Subversion Branches and Externals

If you have been following my twitter feeds lately you already know that I've been trying to figure out some subversion stuff for a current project I have to come up with some process around using subversion. Well, I'm a real newbie at this and Google was only slightly helpful. Well, I think I learned what I set out to learn and I thought I would post my findings here.

References:
http://blog.kowalczyk.info/archives/2006/06/06/short-tutorial-on-svn-propset-for-svnexternals-property/
http://svnbook.red-bean.com/en/1.1/ch07s04.html
http://svnbook.red-bean.com/en/1.1/ch04.html

Creating a Branch:
syntax: svn copy source target
example to copy from trunk to current directory:
svn copy svn://localhost/trunk/DW/RIM/RIM/Stored/MY_STORED_PROC.sql .

Merging changes:
syntax: svn merge svn://original_path_to_file -r[Original Version]:[Version to Merge] /new_file_path
example:
svn merge svn://localhost/branches/DW/RIM_1.4/MY_STORED_PROC.sql -r1:2 ./MY_STORED_PROC.sql

Creating Externals:
Notes:
Externals can only be created on directories, not individual files.
Externals provide an alias to a directory within subversion
Creating externals involves setting a property on a subversion directory.
To create a directory that has subdirectories that are externals:
1. Create a file with the alias definitions. The contents of the files should be like this:
alias_directory_name path_in_subversion
for example
$ cat alias_def.txt
stored_proc svn://localhost/trunk/DW/RIM/RIM/Stored

You can create multiple subdirectories with multiple entries. For example
$cat alias_def.txt
stored_proc svn://localhost/trunk/DW/RIM/RIM/Stored
tables svn://localhost/trunk/DW/RIM/RIM/Tables

Once the definition file has been created, it can be applied using the svn propset command to a working subversion directory using the following commands:
svn propset svn:externals . -F alias_def.txt
svn update

These commands will create the directories "stored_proc" and "tables" with the appropriate contents as defined in alias_dev.txt in the current working subversion directory.

Oct 13, 2007

Matt's Pensieve: PC vs. Mac Pet Peeves

Matt Freestone is one of my best friends and favorite associates. We've worked together long enough now and agree on so many things that people we work with even get us mixed up now and then.

So I was happy to read something that finally gives people something substantive to tell us apart. Mike will be the one with the shiny MacBook Pro. Matt will be the one with the shiny PC.

Between Matt's post and my previous post on why I use a Mac, it's easy to see that to each is own, and that even goes for OS religions.

Oct 12, 2007

10 Reasons Why I Use a Mac

So I've been using a Mac in some way or another for just about a year and a half now. I had long been a user of Windows and even DOS. About 4 years ago I started to experiment with Linux and liked it, but was deterred by how difficult it was to do what should be simple, like watch a DVD. I had long been a Mac hater. Like most Mac haters, it was the culture more than anything that turned me off. The other big reason I hated it was because I thought it didn't have any power for anyone that wanted to get "real" work done.

Now that I have switched to a Mac, I am amazed at how much I love it. It's not perfect, mind you, but it is by far the best experience I've ever had on a personal computer. As much as I love it, I am astounded when I see people buy a computer without taking into consideration a Mac. So I thought I would list 10 reasons why I use a Mac to see if I can illustrate why it should be considered. This is not meant to be a marketing post for Apple. It's just a way for me to explain why I will stick with Apple over Windows.


1. *nix
The number 1 reason I love my Mac so much is because of the BSD Unix that it runs on. This not only provides me with the memory management, file system, and folder structure that is characteristic of such a system, but it gives me the ability to harness the power of a true terminal / shell. Although this may not be a big deal for most users, it's a huge deal to me. I love my bash prompt. iTerm is almost always running and I love it because I can simply and quickly accomplish many things that make everyday use of my computer more pleasing and more effective.

The other fantastic benefit of using a traditional Unix folder structure is that I no longer have to deal with the Windows Registry. If I backup my home folder and my computer completely dies, I can restore my home folder and I'm back up and running, preferences, settings, and all, in no time. You would never dream of doing this in Windows.

2. Nagging
I can't stand Operating Systems that want to tell you everything they are doing... constantly. Windows will not leave you alone no matter what you want to do. I often sit in meetings with people trying to demo something on Windows. It literally takes them as much as 10 times longer to do something than it should because they have to confirm that they really want to do something. Windows also constantly wants to brag about how it does something for you. The little popup in the bottom right corner wants to inform you every time Windows accomplishes anything. I'm sorry, but this is annoying.

For the most part, OS X only notifies you if something goes wrong. I don't get a popup for everything and anything it does. It's clean and it leaves you alone so you can do your work.

3. Organization
When I switched from Windows to a Mac I wanted to copy photos, music, and documents to my Mac. Then it hit me, I had no idea, despite my best efforts to organize, where all that stuff was! Sure, I had "My Music", "My Documents", and "My Pictures" folders but almost every app I used on Windows put their stuff anywhere they liked on my hard drive. It was a nightmare trying to figure out where everything was. In fact, I just gave up and started over bringing this stuff to my Mac from it's original source.

iLife (iTunes & iPhoto in particular) has changed everything. All my music is now well organized. My documents are all in one place. My photos are all neatly organized and easily accessible. That is how it should be. My "Home" folder has everything that I want in it. I can quickly and simply find everything that belongs to me on my computer.

4. Stability
My first Mac was a Mac Mini G4. My wife still uses this computer and it is the main computer that the family uses to browse the web, manage finances, and maintain music, photos, and home movies. This little box has NEVER locked up or forced us to reboot. The only time it is rebooted is when we shut it off when we go on vacations and when we install updates that require a reboot (about once a month). That's it!

I would never dream of having this stability on Windows. When using Windows, I had the habit of making sure I completely shut it down when I was finished using it. Then when it was time to use it again, I had to wait for it to boot. Routinely as the day went on, I would have to reboot to regain speed that I was losing as the day progressed. Again, this is just not going to allow you to be effective in your work.

5. Automation
Part of using a computer is repetition. We do the same things all the time. Sometime those things are monotonous and just take too much time. Enter Automator, Applescript, and the shell. I love to find ways to work smarter. These tools on the Mac help me do that by automating repetitious activities. For example, one of the tools I use leaves little "buffer" files all over the hard drive. (Note, this is an Oracle product...) So, at 8:00 every morning, an Automator task automatically launches, finds all of these pesky buffer files on my hard drive, and deletes them for me. I have also used Automator to setup development environments, swap my command and alt keys for me when using a Microsoft Keyboard, mount network folders, backup Podcasts, and manipulate large amounts of images all at once.

6. Simplicity & Usability
OS X and accompanying applications excel at letting you do things that should be easy without any hassle while not completely taking away full control. For example, when I plug in my digital camera, iPhoto detects it and lets me download my pictures into my library by pushing 1 button. It even alerts me if I, for some reason, had already downloaded that picture before so that I don't get duplicates. This seems like such a simple thing, but I can't tell you how many times I've had to try to sort out duplicates and try to find lost photos on a Windows machine.

This is just an example. Simplicity is one of the hallmarks of OS X. It's in Apple Mail, iPhoto, iTunes, etc. It's what made the iPod what it is. I not only appreciate it, but it's the first thing I notice that is missing when I use Windows.

7. Control
OS X puts all the controls for my machine in one place, "System Preferences". When I first started using OS X, I was constantly looking for the "Control Panel" equivalent. I couldn't believe that everything I needed was in the "System Preferences". Well, after a while I realized that System Preferences is a very simple interface where I could easy find network settings, display settings, keyboard settings, etc. It was all there, neatly organized for me and, most importantly, easily accessible. Here's the test. Without using the Windows command prompt, how many clicks away are you from knowing your IP Address. I can tell you, it's a lot more than the 3 clicks I use to find it in OS X.

When problems do arise, and they do, I appreciate that I can always bring up my terminal and quickly get to the guts of my system to fix problems. This requires a little bit more know-how, but since I have the knowledge, I appreciate it. This isn't so with Windows. When you have a problem, there just aren't available (in the OS ) the tools that you have in OS X.

8. Security
I can keep this one really short. No viruses, no trojans, no zombies, no spyware, no worries. I've never had to even think about security since moving to a Mac. And I don't have to run a resource heavy virus scanning tool. It's a whole new world on OS X; it's a breath of fresh air! Sure, there are still security risks. But OS X takes care of the majority of them for me, so much so that I don't even worry about it.

9. Quality
Again, I can keep this one short. Using OS X is like moving into a new house. Everything is clean and crisp. It looks nice and feels nice. Everything works the way it should. You don't feel like you have to constantly fix things that are broken. It just works and works great.

10. Applications
Most OS X applications I use are fantastic. They are well built, simple, powerful, and fun to use. My favorites include Quicksilver, Journler, iTerm, TextMate, Adium, Skim, Voodoo Pad, and of course the iLife suite. Not to mention the oft overlooked applications that just come with OS X: Mail, iCal, and Address Book. I love the consistent user experience, integration, and quality that I get with these applications.

I should also note that it is marvelous to not have to deal with Windows Installer. Most apps install simply by dragging an icon to my Applications folder. This stumped me when I first switched to a Mac because I was used to applications needing to install components all over the hard drive and registry. Not anymore! Click and drag... wonderful and liberating.

Summary
I've really hyped up what I love about my Mac in this post. OS X and being a part of the Apple culture does have its flaws. In addition, there are things on Windows that I miss (window resizing and decent Family History software to name just 2). But for the most part I will use my Mac over a Windows PC any day.

I hope this post was helpful to some of you who may not have considered a Mac, or are contemplating buying a new PC in the future. I have not listed all of the things I love about my Mac, but I offer these these things to ponder and consider. Good luck making your decision!

Oct 8, 2007

BI, where's your focus?

I'm seeing a lot of really interesting ways of displaying / visualizing data these days from the big Business Intelligence (BI) companies and from some smaller, even web-based, companies. There is a small effort to utilize Web 2.0 technologies, although I think for the most part the people building BI apps don't understand Web 2.0. (I've ranted on this before.)

Data Visualization is absolutely essential in BI tools. But in then end, I'm just looking at charts and data. Anything beyond that is either organization of data and eye candy or delivery (getting it on the web / dashboard / email / etc). But is this where the real focus should be?

I don't believe that enough attention is being given to meta-data. Meta-data, or data about the data, should be generated and gathered into a repository and then opened up to the world. Imagine a meta-data repository that could be searched and made available using all these neat visualization tools. The key is that the meta-data also knows how the data should be organized and delivered to the BI / Data Visualization tools.

Here's how I see it working. I pull up my Dashboard on my Mac which has a simple widget with a search bar. I type "Gross Sales" and then I'm presented with search results from my meta-data repository of all the data elements in my enterprise that match the criteria. In the list I see "Gross Sales - The total gross sales of products". I click on that and another small list appears below with check boxes. Items include "by Region", "by Product", etc. I choose the categories that I want and click Run. I am then prompted for a date range or a list of common / custom filters. When I click "Generate", the data comes up in a chart and I'm given a limited number of controls to customize the display. When I click Save, my chart is saved and automatically updated from that point on. My BI tool then becomes my own dashboard already built into OS X.

What's going on in the background? Utilizing web services, I'm making several calls to my meta-data repository. Once enough information has been collected from the end-user on what they want to generate a database (or cross-database) query then the meta-data repository generates the query and runs it on the database. The third party application then, also using web services, requests the data which is returned in a standard XML format for manipulation.

The real trick here is that you need an amazingly intelligent meta-data repository / server. That is why I think this is where the focus should be. We have enough tools to make our data look pretty, what we really need are systems that know and understand our data so that we can make informed decisions without all the domain knowledge that is currently housed in the heads of data stewards in the enterprise.

There are a lot of really bright innovative people out there that can solve this problem. In my experience, groups of individuals are capable of solving any problem with the proper focus. Right now the BI world is focused on the easy stuff. Now let's buckle down and get on with the next frontier of Business Intelligence - Data Intelligence.

Oct 6, 2007

Parallels Shared-Networking on the Fritz

I love Parallels and I use if often. For networking, I have chosen Shared Networking for ease of use and so that I only have to have a VPN client on my Mac. Last night I was in need of printing from Word 2007 to my shared printer. But for some reason, my Parallels machine couldn't connect to the network. I looked at the IP settings and sure enough, it wasn't getting an IP address from Parallel's NAT service.

Well, I fought with releasing and renewing the IP address to no avail. Then, because I was frantic, I switched the networking to Bridged. The Parallels machine got it's IP from my router and I was back in business. But I don't want that machine to use Bridged networking permanently.

So I fought with it again this morning. With some help from Google, I discovered that the NAT service is located at /Library/StartupItems/Parallels/pvsnatd. Issuing a simple stop and start from the command line was all it took. Within seconds, my Parallels machine was able to get an IP address from the NAT Service and I was back in business. Strange that the NAT service was either hung or just stopped working.

Commands issued:
sudo /Library/StartupItems/Parallels/pvsnatd stop
sudo /Library/StartupItems/Parallels/pvsnatd start


Hope this helps anyone else out there that runs across the same issue.

Oct 4, 2007

Hey world, I'm on Twitter!

Yep, that's right. I'm on Twitter. I've been on it for about a week now. So far I've really enjoyed getting tweets from those that I follow. I've also been adding my own. Then it hit me... NO ONE IS READING MY TWEETS! Why am I doing this? So I invite the world to follow me. I promise to be somewhat entertaining, informative, and always open to discussion. If you are a fellow twitter person, I'd be glad to follow you too! Let's see if this twitter thing can actually bring value.

Oct 3, 2007

Web 2.0 Components Are Tomorrow's BI Front End

Business Intelligence (BI), generally speaking, is behind the game. This Blog post talks about something that I've been thinking about for about 2 years now. BI vendors have been extremely slow at adopting Web 2.0 techniques and technologies into their primary applications. I've seen Business Objects begin to dabble in the realm but the potential there is enormous and virtually untapped.

Will it take the "Google of BI" software to revolutionize the industry? I don't see any of the major BI players, including Oracle, Business Objects, Cognos, and MicroStrategy, being able to really harness the power of Web 2.0. Why? Momentum. These company's have too much invested in their monolithic, exceptionally complex, forklift-implemented applications and architectures. Their only hope is to buy a smaller, innovative company and start swapping out components in their architectures. By the time they pull this off, it will be too late.

So where are the BI equivalents to Flickr, YouTube, Google, Facebook, etc.? Hmm... I don't see any. Where are they? Anyone else see the void/opportunity that I see?

Oracle Pushes Enterprise 2.0

No other company is in a better position pull off Enterprise 2.0 than Oracle. There are others that are close, but Oracle has a huge edge up on the competition. The main component (other than cash) that gives them this edge is Fusion. Think of Fusion as a central information hub that contains and maintains business rules. All information in the enterprise eventually ends up going through this hub for processing and distribution. By abstracting business rules into an Enterprise Service Bus (ESB) and by providing consistency from Database to CRM to ERP, Oracle can, with the proper vision, make Enterprise 2.0 a reality.

Oracle continues to bring in big revenues and don't be surprised if that trend continues. No other provider can offer the complete dream that Oracle can. If you think Oracle is going to drift away being overcome by open source competition, you are in for a big surprise over the next 5 years.

Oct 2, 2007

Ease of Use. Apple Wins!

I was just noticing that you can download your contacts in LinkedIn into your address book. I was happy to see that they had instructions for Windows and Mac. But notice (by clicking the URL below) how many steps it takes to get the export imported into the various address books.

View Screencast

Is it any wonder that more and more people are switching to a Mac?

Oct 1, 2007

Paul Potts

The story of Paul Potts blows me away. I was introduced to his story last Friday when one of my professors presented it as sort of a "feel-good" moment. More important than his voice, Paul shows that there is talent out there to be discovered, and when it is, it motivates and inspires us all.