A clarification of evil

Earlier I wrote in The Sun Download Manager is evil a subsequent generalization, and I wanted to make a clarification. I stand my by title, but not that the entire company is evil. Perhaps are 1am and being tired, and rather peeved I could not download the free software with any ease I needed to as they say “sleep on it”.

Let me further detail why the Sun download manager is simply to never to be used without due consideration. You first have no choice, if you use the Sun Download Manager to download software (I’ll have to review if you even have an option not to use it), you must accept the SSL trust requirement, to not accept is to not use the download manager, so straight away you have no option (this is the path to being evil). When you accept the trust of the download manager, you are signing over your entire computer to the software to which you don’t know what it’s really going to do. This is in essence how a Trojan horse works. This is how software from other sources can deceive people, even destroy all information on your computer. Combined with the fact that the download manager does a really stupid thing and places files in the ‘root’ directory of your machine is also something you should never allow and never do.

I really want to bring this to the attention of people, because I have plenty of friends and family which don’t understand computers as much, and what’s possible, and if say the trusted a Java Applet from Sun, they might just do this next time with a program who’s intent is to destroy, damage or transmit information on your computer.

This leads to the real justification of virtualization and always doing any web surfing or use in a dedicated virtual environment, however until this becomes simpler for the end user it’s not easy to configure and explain to a less experienced user.

When technology just works

Today I needed to visit a medical specialist for collection of something. I had to pay $250 as my insurance did not cover. I sent a check as requested however today they had not record of receipt. Not wanting to write a second check and then find they cash both, I logged onto my online banking right there with my iPhone (miracle I could remember my login and password as all important logins like this are different and normally I need my notes) and I’m able to confirm deposit and even view a scanned copy of the check. Confirming the date they are still unable to find. I’m able to use an office computer and print out this confirmation to show them proof of payment.

The technology of the iPhone and the thoroughness of my bank online check verification solved the hassle, simplified the confirmation and greatly reduced the stress of the situation. At T-2 days the technology worked and I was most grateful.

A day with Paul McCullagh – Architect of PBXT and BlobStreaming

Continuing on from my lightning visits with Jan Kneschke and Michael Zinner, today I got to spend a day with Paul McCullagh at his home in Hamburg Germany.


Paul is the architect of the PBXT Pluggable Storage Engine for MySQL 5.1, and also the Blob Streaming Storage Engine. His work was acknowledged with the MySQL Community contributor for the year in 2007. The successful PrimeBase product for the publishing Industry in Europe and North America also now uses PBXT for underlying data storage which is great to see a company use it’s own products.

Like each friend and expert this week, Paul develops using Mac, but at least uses the US English version & keyboard layout, not the German layout. As Paul states, “the German version is not productive for coding”.

Paul uses NetNewsWire Lite as his RSS feeder, as I observe some PlanetMySQL links. I’m more old school, I just go to the site every few days. I really should move from the dark ages, one advantage is the RSS feeder shows you what you have read.

However, there is a particular reason why I visited Paul, other then to spend some time with a good friend. I’m doing more investigation regarding making coding changes to MySQL, and I’m very out of the development cycle. I’ve forgotten more then I remember with C++ and in particular the tools and techniques used to develop, debug and deploy. Of course I know what I need to do, I just need to know what now is the most efficient means of doing today.

Paul uses Xcode to view and edit his MySQL code. The development environment provided by Apple is good for Java and C++. As an Eclipse person from my Java days, I was using CDT for my C++ environment. XCode is used for project management (i.e. looking at files in project) and for file editing. A standard terminal is used to do make. Xcode can do a quick compile for syntax checking and you get a list of errors and hot links to lines of code.

The next key part is debugging, and you can very easily define executables and enable you to run in an integrated debugger. A good option testing is to run mysql test with is –manual-gdb. This gives you the command you can run. What Paul does it copy the parameters, and add to an executable defined within XCode, the arguments from the –manual-gdb output.

The MySQL source tree was added as a project but only partial source directories such as (storage,sql,include) are required. You do need to make sure it does compile (but necessary for a build via Xcode.)

Additional debugging help is In xcode you can do jump to variable definition. So you can add breakpoints, and then run the defined executable that was build via command line make, and copy mysqld binary to initially deployed directory.

Regarding testing, we got to talk again about the issues with the MySQL Test Suite including the issues I encountered while working with Nitro. Hard coded storage engine syntax such as such as engine type=Innodb make testing more complicated then necessary. MySQL test requires some modifications for pluggable storage engines. You need to add a row to the plugins table via mysql_system_tables_data.sql to enable –default-storage-engine=pbxt as a command line argument. Paul did state that on using the MySQL testing suite, the Perl version is a great improvement in performance.

So now I understand the environment, I get onto my problem, and we are specifically looking at the thread sort_buffer and sql/filesort.cc

So when I ask about a few lines of specific code, Paul shakes his head, and says “This looks crazy”. After we spend some time on it, his comment is upgraded, “this doesn’t look crazy, it is crazy. When you look at the effect of the code, it appears it can be done in 3 lines, and it would make sense what it is doing.” This is worth further discussion in a future post.

One last tip learned. You need to be careful with multiple versions and open projects of the same, not to make changes 1/2 in one version and 1/2 in another version.

Limiting your result set, but getting count of all rows

In reviewing some of my notes I thought it was relevant to ensure this small MySQL gem is documented for my history purposes.

Historically I’ve seen people do a complex SELECT statement twice, first to get a COUNT(*) and then to retrieve the data, perhaps in a paginated format. In MySQL you can combined both SELECT statements into 1 SQL. You still need a second SQL statement, but it is less impactful to your system.

Here is how?

mysql> select sql_calc_found_rows * from mysql.user limit 2;
...
2 rows in set (0.01 sec)

mysql> select found_rows();
+--------------+
| found_rows() |
+--------------+
|            5 |
+--------------+
1 row in set (0.00 sec)

The Sun Download Manager is evil

Well, following my rather unimpressed first attempt to download Open Solaris I registered a second account and this time it worked, go figure, there must be a “annoy MySQL ex employees feature there”.

The Sun Download manager kicks off with an Open .jnlp with Java Web Start (Screen 1), ok, whatever. You then get a SSL warning and well whatever as well (seems weird) (Screen 2), then the Download Manager kicks of downloads in this case 2.3GB (Screen 3).

So next day, I’m looking for the iso, can’t find in my ~/Downloads, and infact a search across my entire home directory does not find the .iso What the. You are telling me after all this I still don’t have the iso file.

Long story short, it’s been saved in the ‘root’ home directory i.e. ‘/’. Holy crap how can you do that, and any idiot knows you don’t put files there. The Options page, which you can get to after downloads (Screen 4) allows you to change the download directory, but the damage is already done. Scratching ones head to work out how without password access this was possible, you have to read the fine print as highlighted on screen 3. “Click Trust to use this application and allow it unrestricted access to your computer”. Well that’s just evil. Sun is now an evil company in my books.

Post note. So I move my files from ‘/’ obviously, and I don’t need ‘root’ permissions, just my normal user. This is really, really messed up.

macmarvin:~ rbradfor$ cd /
macmarvin:/ rbradfor$ ls -l
total 7616021
...
dr-xr-xr-x   2 root      wheel           1 Mar 13 10:27 net
drwxr-xr-x   6 rbradfor  staff         204 Nov 29 22:10 opt
drwxr-xr-x@  6 root      wheel         204 Oct 26 02:04 private
drwxr-xr-x@ 66 root      wheel        2244 Mar  5 19:38 sbin
-rw-r--r--   1 rbradfor  admin         341 Mar 26 02:55 sol-nv-b79b-md5sum-dvd-x86.txt
-rw-r--r--   1 rbradfor  admin  3878092800 Mar 26 13:12 sol-nv-b79b-x86-dvd.iso
-rw-r--r--   1 rbradfor  admin      205408 Mar 26 19:40 sol-nv-b79b-x86-dvd.iso.sdm




Learning SEO the painful way

Indeed I have a goal of launching a consolidated site of my online presence at ronaldbradford.com at some time soon, and even now I have found I’ve made some SEO 101 mistakes, just in my testing site, and my temporary placeholder.

As a database expert I see plenty of database 101 mistakes with most clients, so part of why my site is going nowhere is I don’t want to make SEO 101 mistakes, especially as I’m not launching a new site, but a migration of existing content to one site.

I see nobody at O’Reilly has made improvements to the redirection mess of the MySQL Conference website as described by Farhan Mashraqi in Someone please change mysqlconf.com redirection, and so rather then linking to www.mysqlconf.com which I have done, I’ve linked to the direct page, which I’m sure will probably change after the conference making this a broken link.

I am concerned that a larger organization can’t get this right. Is SEO/SEM not important to them? It will also be of interest to see what happens here with Sun acquiring MySQL. Sun did a rather detailed job of MySQL content on www.sun.com. Time will tell I guess.

Open Source Database Alternative – Ingres

On several occasions this year I’ve been prompted to mention in conversation Ingres as an alternative Open Source Database. Jonathan Levin in A list of Open-Source Alternatives to Business Applications was the latest example where Ingres was not mentioned and perhaps it should have been.

Want features like online backup, online alter, multi-master replication, parallel queries and partitioning. These are all long existing features in a more mature product then MySQL presently. Is this a sleeping giant that nobody remembers about? Ingres has been around a long time, in fact my experience extends back to 1988 (that’s 20 years).

From a product perspective they have created a number of pre-packaged product stacks, for example The Ingres Icebreaker BI Appliance Powered by JasperSoft, something MySQL has failed to capitalize on. Another stack appliance for example is with Alfresco.

However since the CA announcement to open source Ingres back in 2004 I’ve not seen a great deal of press, at least not in the Open Source or MySQL circles. Time permitting myself it’s time again to look at Ingres. It’s worth another look and hopefully I can provide some translation for MySQL DBA’s and Developers. Also part of Ingres is ABF Application By Forms, an entire development environment. My use was back in the terminal days so I can only assume they have fully embraced the Web now.

Things that piss me off

So I decided to download Open Solaris tonight. Not only do you have to go through the pain of registering to download the free product, ok that’s understandable, you are forced to enter an Organization and a Phone Number, the first is impractical people, not everybody works or want’s to even tell you where they work, but phone number is completely unacceptable.

So, registered go to click on download and I get a most stupid error saying to enter a User Name and Password yet a few lines below it states I’m logged in, and there are no input boxes. So I entertain this annoyance, log out and log in again to get the same result (why did I expect a different result).

So Sun, if you don’t want me to download the software, just say so next time.

I should add it’s 1am, the end of my day so perhaps it’s time out.

Just what are MySQL 9.x features?

Top marks to Jay Pipes for getting the Forge 2.0 finally out after quite some time, as well as in the midst of the MySQL Conference he is organizing.

I am worried however about some of the content, as shown in the screenshot below, the opening page lists Worklog tasks/features for versions 6.x or 7.x , that’s ok, but features in 9.x. Where is the practicality of thinking more then 2 releases ahead, and just having a future bucket. Indeed, we have 5.1 and 6.0 already frozen and not releases, so 6.x is already 3 releases out.

Tonight we were told at the NY PHP Meeting MySQL 5.1 is not due to late Q2, so that’s at least June 2008.
The MySQL 5.1 Release Notes reveals a history that I don’t find very flattering.

  • MySQL 5.1.3 (29 November 2005)
  • MySQL 5.1.9 (12 April 2006) *First reported beta via docs
  • MySQL 5.1.22 (24 September 2007: Release Candidate)

I hope that Sun will take on board this very slow release cycle of producing GA products, the last version MySQL 5.0.15 (19 October 2005: Production) 2 years and 6 months ago.

I’m even more interested then previously in the ultimate release and success of MySQL 5.1 as this is a pre-requisite of my new employer’s key product the PBXT Storage Engine for MySQL.

NY PHP – Sun & MySQL: A New Hope

Tonight’s New York PHP community meeting was a talk by Philip Antoniades the MySQL Systems Engineering Manager.

With an interesting topic opener “A New Hope” I could not resist to hear Philip’s official MySQL presentation.

Some small points I took away from the presentation.

  • Sun is committed to Postgres with Josh Berkus and a team of 20 people.
  • Solaris.next is the next version of Sun, I thought that was a cool internal name, be it obvious
  • A marketing slide of the highest traffic websites listed Meebo, yousendit, alexaholic, techcrunch, feedburneer, istockphoto and vimeo as reported by Pingdom. Not sure were they get their data, but Google, Yahoo, FaceBook, Wikipedia, MySpace, Fotolog are sites I think of as high traffic. Indeed 3 of these listed sites I’ve never heard of.
  • MySQL 5.1 is expected GA in late Q2 (no year was mentioned).
  • Falcon in 6.0 was listed as the “Next Generation” transaction Storage Engine, an interesting term I’d not heard of before.
  • Sun provides Hosted Database Services (i.e. the cloud) via network.com.
  • MySQL has had an influx of Sun Engineers (60-80).
  • MySQL is being benchmarked more on Sun H/W.

This talk did remind me it’s time to download Open Solaris. With the interesting comment that out of some 1,200 Sun Engineers over 1,000 were Macbook users gives me great confidence it will work just fine on my Macbook.

Out of other discussions there was talk of ZFS, so this will be interesting in what backup opportunities for MySQL without a true Online Backup solution may exist.
Also there was discussion with Sun’s GUI Tool NetBeans, and this casts light on how this will sit with the MySQL GUI team and MySQL Workbench.

Interesting times, this new hope.

What I love about the MySQL Community

The people, plain and simple.

I encourage you, if you are not part of the local MySQL community, then why not? Find a local MySQL Meetup group, attend the MySQL Conference, get online to IRC @ freenode#mysql, subscribe to some lists or read the forums. I didn’t meet these people being an observer, but part of the community.

As I wrote recently with some vacation time and the need to pick the brain of some experts I organized a quick trip to Germany to specifically visit Jan Kneschke and Paul McCullagh to improve my MySQL skills in certain areas on my own time (something I’d find harder to want to do at Sun when they owned all IP & copyright even during my personal time, so what incentive is there?)

As with the best laid plans of mice and men, the mention a few weeks earlier of skiing (my number one passion) and the chance to do this with Michael Zinner in Austria was too much a golden opportunity to miss, so this was added to my trip.

But it didn’t stop there. These were my plans yet news of my visit brought out others to want to see me during my visit. With Jan, additional events organized included my chance to see Kai Voigt, and then Jens Bollmann and Ulf Wendel. With Paul, lunch was organized with Lenz Grimmer. This is one beauty of a distributed company such as MySQL, people in lots of different places and something I am most glad that will not be lost just simply because I’m no longer an employee.

In the past year I’ve spent quality time with other MySQL Community people and also not just from MySQL. This past twelve months has included time with Sheeri Kritzer Cabral in Boston many times (including her wedding), Jay Pipes in Columbus (including also going there for Thanksgiving), Chad Miller in Orlando (even just to visit one day to see a shuttle launch), Gary Whizin in Santa Cruz, Baron Schwartz in Charlottesville and of course Farhan Mashraqi in New York. It’s great to get to know people better personally, to meet spouses and partners and to just consider life in general. People and their own goals and dreams are far more significant then just our own careers.

During my time at MySQL I’ve also made friends with several clients and have spent time with them in varying locations in the US including New York, Jacksonsville, Chicago and San Francisco.

In the past week following a request for any Linked In recommendations of my work, I’ve exceeded my goals of 25, and I’m now at 31 of 166 contacts, many from members of the MySQL community and clients.

I’m sure 2008 will be no different. Any offers for me to visit are always most welcome and to live by my motto “Life is Short. Live Life. Life is an Adventure”.

My Motivation for MySQL Camp III proposal

I wanted to follow up my earlier post My Ideas for MySQL Camp III with some of motivations. Luckily, good friend and colleague Jeremy literally took all of 15 mins to respond to my post with “So, I see your vision for the event itself. What’s your vision for the results of the event?” (Unfortunately with 150+ draft posts, it’s taken some time to complete my reply).

The present differentiation of MySQL Community and MySQL Enterprise in my eyes is a joke. Now before I start or re-start more then already one flame war let me first talk about MySQL Enterprise. MySQL Enterprise is a great and necessary product offering by MySQL Inc. It serves essential services to essential customers with features such as commercial 24×7 support, MySQL Enterprise Monitor which is an excellent start when clients have nothing (and boy I’ve seen more then my share of these), monthly updates and certified binaries.

My gripe is not with MySQL Enterprise, but with little to nothing that MySQL has done with MySQL Community. Take these simple facts.

MySQL Community and MySQL Enterprise were split at 5.0.27 in October 2006.
Only one contribution was added to the Community side, SHOW PROFILE in 5.0.37. What was to be a start of hopefully more creative contributions, suddenly stopped and has not changed since. My only thought could be, heaven forbid you now change the scope of functionality in 5.0 between Community and Enterprise, but wasn’t that the point?

Ok, new features change the scope of the base feature set. New features may make the product more unstable. Community people get this. The present release cycle process with the differentiation is a joke. You can’t add any features to 5.0, you can’t add any to 5.1 for like the past year. I’d go so far as to say, ZERO community contributions submitted even now would make 6.0. We don’t want to draw from sales and marketing features of Falcon and Online Backup.

MySQL Community is an essential product, it’s the only choice when MySQL Enterprise is not an option.

So to answer Jeremy’s question. What’s your vision for the results of the event?

  1. To personally gain a better in-depth process of understanding the MySQL code, debugging, enhancing and contributing to MySQL
  2. To see others gain the same skills, knowledge and appreciation.
  3. To see better documentation of the process (A goal of the MySQL Community team)
  4. To see the length and breath of creative input increase
  5. To ignite some urgency and pressure to actually see MySQL Community differentiate to the benefit of the community.
  6. To simply have fun, hack code and enjoy it with others

Since drafting this response some time ago, Sun has acquired MySQL, MySQL 5.1 still remains in RC, and we now have a beta of Falcon in an alpha of 6.0 (which I don’t get). With the MySQL Conference happening in a few weeks, I’ll be keen to know what’s going to happen with the MySQL Community differentiation and whether any information will indeed be forthcoming.

I plan to revisit this topic in the next 3 to 6 months to see if anything has actually changed as a result of Sun. We will just have to wait patiently.

Companies speaking at UC2008

The Conference Speakers of the 2008 MySQL Conference provides some common and interesting names of companies not common in MySQL circles such as eBay, Microsoft Corporation, HP, Symantec. I see speakers outside of MySQL from countries including USA, Canada, Brazil, Germany, Japan and Australia.

I did some data analysis of the speakers list. There are 150 speakers, there are 45 from MySQL. Other companies with multiple speakers include Sun Microsystems, Kickfire, Linbit, Cafepress, Open Query, Proven Scaling, Standford Linear Accelerate Center, UC Berkeley, Siz Apart, The Hive, Zmanda, MySQL Performance Blog, Infobright, Digg, Grazr and of course PrimeBase Technologies.

Only two MySQL speakers have listed “MySQL/Sun” the rest are “MySQL”. I wonder what the policy is here? You have “Oracle / Innobase” and “Innobase / Oracle Corp.” some identity crisis there, the guys from “MySQL Performance Blog” prefer this name over the company name “Percona”, obviously for brand exposure. You have “Grazr Corporation” and “Grazr Inc”. It’s only trivia but interesting.

A day with Michael Zinner – Architect of MySQL Workbench

Following A day with Jan Kneschke – Architect of MySQL Proxy, today I’m with Michael Zinner in Vienna, Austria. Michael is Team Lead of the MySQL GUI tools team at MySQL.

I met Michael two years ago the 2006 MySQL Users Conference. We had communicated prior to that and I’d even used his very successful DB Designer a number of years prior to this. The present project of the GUI team is the MySQL Workbench which is a beta release.

Again, I find a key MySQL developer using a Mac, this time as the primary OS of choice. Unfortunately however the current version of MySQL Workbench is Windows only (Linux/Mac to be released next), so Parallels and Windows Visualization are used. He uses Microsoft Visual Studio for development and it was interesting to know the level of modularization necessary to support the windows version including a .Net C# front end and C++/.Net wrapper to the underlying C++ code base. The additional layers not necessary for Linux/Mac.

I observed a number of most appropriate Mac productivity tools for the beginner in me including PathFinder rather then Finder,
iStat menu, Adobe Lightroom and grab for screen prints ( which I knew about but have not tried). Top regular websites included www.tuaw.com The unofficial Apple Weblog, www.appleinsider.com, www.macrumors.com and www.engadget.com.

I did however have a difficult time checking my email, because the keyboard was in German, and as I touch type I wasn’t looking when typing. ‘:’ ‘/’ were not as expected, and ‘z’ was where ‘y’ was, making it difficult to spell MySQL.

Discussions of the MySQL acquisition again included possible concerns, even more so as Micheal leads a team of developers across various countries and agreements.

On a lighter side, I love my tech toys, most recently a new max spec’d Macbook, the latest released Canon 40D camera just recently after becoming available, and an Apple iPhone on Day 1. Michael has a new tech toy, A Red One, and this bets any new toy hands down by a long way.

I’m looking forward to hearing more during his 2008 MySQL Conference presentations and results of the great work with MySQL Workbench.

Upcoming 2008 MySQL Conference

It’s just three weeks now before the 2008 MySQL Conference. Good to see my mug shot on the front page (see screen shot below).

I will still be presenting my session Top 20 DB Design Tips Every Architect Needs to Know, however as a departing MySQL Employee I’ve had to give up the chance to present the “MySQL for Oracle DBA’s Bootcamp” tutorial, content that I developed for MySQL specifically and have already presented three one day seminars in New York, San Francisco and Washington DC.
Update March 26 2008. I should clarify that I notified MySQL as part of my exit items that I would not be able to present the Tutorial. I would very much like to, and being the author of the content I am well qualified, however as this was developed for MySQL and will be again used by MySQL in the future I felt it was inappropriate that a non MySQL employee and a recent departed employee was presenting this content. I did not want for any attendees to be confused or see a potential conflict of interest and I wanted to ensure I kept my distance from the strict Sun Intellectual Policy procedures.

Kickfire formally C2 App a Diamond sponsor will be something I’m very interested in seeing, MySQL being written specifically in hardware. A few talks I’ll be interested in seeing include Securing MySQL for a Security Audit by Brian Miezejewski, Disaster is Inevitable—Are You Prepared? by Farhan Mashraqi, Developing Information Schema plugins by Mark Leith, Astronomy, Petabytes and MySQL and System Techniques to Remove I/O Bottlenecks in Large Query Intensive Applications.

What impact will Sun Microsystems a Platinum sponsor and acquirer of MySQL have at the conference? CEO Johnathan Schwartz will be following former CEO Marten Mickos’ open keynote with Open Source: The Heart of the Network Economy. There are a number of Sun related talks and Sun employees speaking. I’m sure attendance numbers of Sun employees will be up also.

PrimeBase Technologies will be out in force at the Exhibitors hall, so be sure to stop by and say hello, and get a free t-shirt from them.

Choosing a future MySQL career path

In the past few months I’ve not had to look for a job, they look for me. If your a well qualified MySQL DBA there are many opportunities, I’ve had so many of these offers in the past 12 months I’ve lost count. However a DBA job would not offer the job satisfaction I’m seeking in my career goals now in 2008.

I’ve been able to consider 4 genuine positions in just the past few weeks, and indeed my new employer Primebase Technologies was someone I’d never considered working for, and indeed they had never considered me until a chance lunch meeting less then one month ago.

I did seriously consider working with Paul Vallee and the team at Pythian. Pythian looks for the best people from their respective levels of technology expertise, whether a college graduate or a 2 decade RDBMS veteran. This company has a great work ethic and a strong commitment to a 40 hour work week. With offices in multiple countries and a growing business, and a prominent client list as seen with the Pythian Web site even reviewing this company before talking to anybody provides a lot of good information.

I’ve followed Pythian closely since good friend MySQL She-BA Sheeri Kritzer Cabral was considering job opportunities last year. I was very impressed during this process. During recent vacation I took the time to visit Pythian, to speak personally with a number of people, from the CEO to potential fellow colleagues, to see the work environment, to have lunch and after work drinks. I invested more time in interviewing this potential company then they did in vis-versa, a principle I’d recommend to anybody for any future positions anywhere.

Today I read in How to become CEO, “Hire the best people. attract, motivate, train and reward the best people“. A good principle and one I know is at the heart of this company. Pythian is a company and a partnership I’ll be ensuring in the future remains strong. With a team of 60+ DBA’s across MySQL, Oracle and SQL Server they provide a dedicated service that MySQL (prior to acquisition) simply could not provide for market demand.

Comments on this site reflect the personal opinion of the author and may not reflect the opinion of any present or past employers.

Goals, desires and pursuit of the ideal working environment

I’ve had a lot of feedback from my resignation at MySQL. A lot positive, a lot of shock, even some avid discussion on why, and trying for me to reconsider my decision. Roland my evil twin (it’s a funny story), really challenging me which I very much appreciated, ensuring I had considered the multiple paths before me. I am a man of my own convictions, so reversing my decision was simply not an option on principle.

So what do I want in an ideal working environment. What was lacking, that I could not see and that I’m seeking. Here are two key points.

  • “Continual improvement, 1% a day, review in 3 months.” This includes a commitment from the entire team, and a system to contribute, discuss, plan and see results. Something I’m a most firm believer of and will be ensuring is in place in my next position where I will have the responsibility.
  • “Your employees are your most valuable customers”. This goes without saying. If you don’t treat your employees as well as your best customers they leave, often people however lower there expectations and time lesses people’s goals and desires.

One book I’m reading now on the opening introduction also sums my goals and desires well.

“Having ambition to better yourself, to be a contributor, to make a difference, to grow professionally, to be more successful.”How to Become CEO – Jeffrey Fox

This sums we up well right now in 2008.

It’s often fun to review what you said previously.

Pride – August 11, 2006.
Your Ideal Job Requirements? – August 27, 2006.
If you can’t beat them, join them! – October 7, 2006.

My passion for Open Source

I am a very strong proponent of Open Source (excluding my Macbook). Joining MySQL Inc was a wonderful achievement, being part of the team behind the most popular open source database. Leaving MySQL was not an easy decision due to the people, but the Sun transition and requirements did help. However it is no surprise I am joining another open source company – Primebase Technologies in Hamburg, Germany. My association with the MySQL Community will only be strengthened with my full work and support behind the PBXT and Blob Streaming pluggable storage engines for MySQL.

It is actually poetic that I am joing Primebase for I have the auspicious recognition while an active part of the MySQL community of introducing Paul McCullagh to MySQL some 2 years ago. Only weeks later, PBXT was MySQL news in the opening CEO keynote my Marten Mickos at the 2006 MySQL Users Conference.

I expect this opportunity will increase my contributions, in particular in the lacking areas of instrumentation and memory management. As well I will now be focusing my efforts on MySQL 5.1 and ensuring this is of the highest quality for the MySQL Community. While my open source code contributions have been small to date, my first some years ago adding in JMeter support for MySQL Stored procedures and Transactions, the feeling of seeding instead of leaching is a wonderful thing. I look forward to a greater opportunity with the team at Primebase Technologies.

Pursuing new ventures with MySQL

The acquisition of MySQL by Sun Microsystems has caused a certain amount of news in 2008 from the Initial announcement at the MySQL ACM, to the completion in just 6 weeks. It has been a very quick transition and while there is the potential for further opportunities with Sun as an employee within the MySQL product line and possibly other areas, I have elected to pursue my professional goals elsewhere.

My leaving MySQL Inc has been met with comments from “Woot!”, “Congratulations”, “Good Luck”, ‘That’s terrible”, “Are you sure”, “I’m shocked, but I don’t blame you” and attempts from multiple people to reconsider and reverse my decision. I was pleased to know that it took no time from my first contacting colleagues and friends within MySQL before the community knew via the grape vine, even before my attempts to contact people.

The most interesting comment was “That’s terrible news”, to which my response was, “Well, not for me”. My best compliment has been “You are a such a great team player and MySQL aficionado.”. I actually had to look aficionado up, which means “an ardent devotee; fan, enthusiast.” I am very proud that my commitment to the MySQL Product, and MySQL Community and while at MySQL Inc/Sun has been noted, if only a small footnote in the success of the company.

There are a number of reasons why I’m moving on, which I’ll not be detailing here. In summary however, first, I have already set my career goals for Ronald Bradford 2008 and this includes the type of work I’m wanting to pursue, the money, and an increase in writing, presenting and speaking on topics in MySQL and other technologies and interests. In particular, I’m working (slowly til now) on consolidating my online presence into an online identity at www.ronaldbradford.com. The second and deciding factor was as a result of the acquisition and transition period. The issues of, the offer and requirements to transfer to Sun played an important part in my decision, being disappointed and unhappy across various things in this process.

At this time I can say that I’ll be leaving the US by the end of March as part of my US visa requirement. I will however not be leaving the MySQL Community, in fact one of my goals is to be able to contribute to the MySQL Community more, as I did prior to joining MySQL Inc in 2006 and I’m finalizing details with a prominent European Open Source company, and I expect to have some news here soon when details can become confirmed. For my friends and colleagues attending the MySQL Conference in just 4 weeks time, I’ll be there, so this will a perfect chance to catch me while I’m in the US.

I am sorry to leave MySQL. I have made many close friends here, and indeed it’s the people that helps make a company and among my peers I have great respect. There is a unique spirit working with an open source company and as I had ties to MySQL prior to joining the company, I’m confident these will continue and grow as my involvement with MySQL continues, just differently and more in line with what I want to do.

Those of you that know me personally, any recommendations via my Linked In Profile at this time is most appreciated.

A day with Jan Kneschke – Architect of MySQL Proxy


Recently I got to spend a day with Jan Kneschke at his home in Kiel, Germany. This was an excellent opportunity to interact directly with a fellow MySQL employee and resident expert in several fields. Doing this on my own vacation time enabled me to control what I wanted to achieve.

Jan uses Linux, Windows and Mac OS/X all actively and with Synergy enables a single keyboard and mouse to work seamlessly across his three screens. I knew you could do this, just last year I tried to find out the software that could do it without obvious success.

Of interest was our discussion in English, while he was also communicating on IRC in German during the day. Being multi-lingual is something we don’t often consider and talking in one breath in English, then having to type in German is a little more complex then as I’m writing it here.

One of the discussions was the impact of the Sun acquisition, but I can’t say anything here as it’s all confidential. I don’t want the MySQL legal police after me. It’s business as usual here are MySQL. However we both discussed several concerns we have, a common topic among many MySQL Employees here at MySQL.

I spent some time browsing Jan’s library. Books browsed included “MySQL Database Design and Tuning” (Amazon link). (Why as a MySQL employee I haven’t see this, or been given a copy to review/read/access I don’t know. I had heard of it). “SQL Performance Tuning” (Amazon Link) by Peter Gulutzan and Trudy Pelzer who are now both MySQL employees, and “SQL for Smarties – Advanced SQL Programming” (Amazon Link) by Joe Celko.

Within the MySQL Database Design and Tuning book I came across SQL_MAX_JOIN_SIZE, a handy per connection session variable to limit the size of poorly joined SQL statements. Problem is it’s not part of any resource control restrictions so if you can’t control connections to the database by reporting end users, then what’s the real point. A nice idea that’s only partially implemented for real use.


Part of my time here, is to get answers. Some of my specific questions were around Lua (The scripting language used with MySQL Proxy). One particular question was the ability to process a SQL request and response programmatically at startup (to manage some global data), but the way to achieve this is to piggy-back off the first actual SQL request for the connection.

Another question was in regards to the testing of newer Lua scripts. The solution is to see the test cases which manage the Proxy via Mock up functions.

On Saturday, there was another change of aspect. Jan over the weekend was needing to do some security updates with lighttpd. “You need to still respond to requests from the community or they have the impression the product is dead. It’s a burden, you can’t really step out.” I completely understand as for almost 10 years now I’ve provided support and service to a number of not-for-profit organizations. My usage requirements are now very low, I don’t make any more software or website changes, just the occasional web server issue. (My present primary server uptime is up 560 days, and this was only to do an OS level upgrade from the past x100 days.)

The lighttpd project has up to 6 other committers that add work from time to time. For any successful Open Source project you need to ensure this occurs, otherwise it’s something you can never leave. Interestingly, Lighttpd is still a popular web server as per the Netcraft Survey Results.

Jan wakes up to the sound of the coffee machine in the morning, literally. It’s rather a loud and predicable process.

Not all work, we attended the Nubit 2008 event by NetUSE AG in the evening for networking, dinner and drinks. In his spare time on Saturday I caught him playing Hellgate.

Part of interacting with other professionals is you come across tools and sites they use to benefit their productivity or functionality, and this type of viral exposure helps greatly in your experiences and knowledge transfer.

And just in closing, two bizarre technology occurrences here (just before the full moon). The first, my computer become intelligent. I must have found a magic key combination in vim because it was doing interactive spelling correction while typing. It was even doing correcting of variables names. It was a little unnerving and even Jan was surprised (so it’s probably not just a German thing). The second, my Timex watch of at least 15 years (with many band and battery replacements) reset it’s self for the first time ever. I looked and it had 12:05am, Mon 1.1 – Weird.

Jan will also be speaking at the upcoming 2008 MySQL Conference, you can read his profile.

Stay tuned for Parts 2 and 3 with Michael Zinner – Architect of MySQL Workbench and Paul McCullaugh – Architect of the PBXT Storage Engine .

Today's interesting MySQL Error Message

You have to love error messages some times. Today in MySQL is was “ERROR 1289 (HY000): The ‘UNKNOWN’ feature is disabled;”

What was even more interesting is the error message and indeed the error number changed across different versions. I took the time to also review the error in the current versions of 5.0, 5.1 and 6.0.

5.0.37/5.0.51a – ERROR 1289 (HY000): The ‘InnoDB’ feature is disabled; you need MySQL built with ‘InnoDB’ to have it working
5.1.19/5.1.23/6.0.4 – ERROR 1286 (42000): Unknown table engine ‘InnoDB’
6.0.0 – ERROR 1289 (HY000): The ‘UNKNOWN’ feature is disabled; you need MySQL built with ‘UNKNOWN’ to have it working

You can read more at Bug #29373