Unless you have your head under a rock, you know that Apple has
finally released their iPhone today.
http://www.apple.com/iphone/
According to the press information this phone is running
OSX.
Does this mean that I will be able to write an application via
Xcode using Objective C for the device?
Cell phones are a pain to program for. Even my Treo, which may
soon sit in the bottom of a trashcan if Apple's phone is any
good, is a pain to program for. Palm was never that friendly for
developers. It certainly is better then what a lot of other
providers have made available, but it is not as easy as writing a
standalone GUI on a Mac, or coming up with a web interface.
But Objective C and Xcode? Widgets?
Now that would be a pretty incredible development platform to use
with cell phones. Porting MySQL to …
What did we learn from 2006? For me, it's the realization that
our job as developers is simply to create "great
software"--software that can address the needs of real users,
whether it's open source or commercial.
The open source model has several strong advantages in creating
better software. It allows us to stay close to our users, listen
to them, and incorporate features as they are really needed. The
flexible development style and collaborative (rather than
adversarial) relationship between users and developers could
create better results at dramatically lower costs. In addition,
our users often can help us to innovate in wholly unexpected
directions.
But commercial software also has its advantages. The biggest
advantage of the commercial software model is being able to
spread the development costs across a large number of users. It
can also support a more focused development approach and, if
properly directed, …
I had a fun case today.
There is set of cache tables which cache certain content in MyISAM tables and queries for these tables such as:
PLAIN TEXT SQL:
- SELECT DATA FROM cache0003 WHERE `key`=2342526263 AND real_key='cp_140797_6460aad5d2e50d3e859e8649007686ac';
The "key" is CRC32 of the real key which is used to keep index size as small as possible so if we have a cache miss we can in most case learn it without going to the disk.
So far so good.
The problem I discovered however is some of these queries would take enormous amount of time while CRC32 conflicts are really rare.
Looking deep into the problem I found out PHP and MySQL are both to blame. PHP is to blame because in 32bit PHP version result of crc32() function was returned as signed integer, in 64bit build of same PHP version it became signed.
The system worked on 32bit platform initially …
[Read more]
One of the features not yet mentioned that is in 5.1 is
Federated's new "CREATE SERVER" command.
The synopsis?
Tired of typing URL's for Federated tables? AKA:
CREATE TABLE A (
`a_id` int(20) NOT NULL,
`some_string` varchar(128) NOT NULL default ''
)
ENGINE="FEDERATED" CONNECTION='mysql://joe@foo.example.com:3306/
schema_a/A';
With 5.1 you have a new option, the "CREATE SERVER"
command.
CREATE SERVER 'master_database' foreign data wrapper 'mysql'
options
(HOST '10.0.2.128',
DATABASE 'schema_a',
USER 'joe',
PASSWORD '',
PORT 3306,
SOCKET '',
OWNER 'root');
For the create table all you then need to do is:
CREATE TABLE A (
`a_id` int(20) NOT NULL,
`some_string` varchar(128) NOT NULL default ''
)
ENGINE="FEDERATED" CONNECTION='master_database'; …
Today is the first time I had to look at MySQL performance. Tiny database as web application back-end was having significant performance issues with spikes of CPU workload. After identifying problematic queries, I found a pile of statements using IN subqueries. Typical example is: SELECT * FROM t1 WHERE c1 IN (SELECT c1 [...]
...is by going to work for an open source company. I get people asking me all the time for career advice (Not sure why they ask me - it's not like I have a "career." I think that's what older folks have... :-). My advice is always the same:
"Work for an open source company."
The reason is simple economics. The market will basically pay you what it thinks you're worth, and your worth goes up exponentially when you have open source expertise. Open source, according to Gartner and nearly every sane person on the planet, continues to be one of the top three trends in technology. Consequently, if you're an enterprise (i.e., IT person) or an ISV, you want open source people.
And thus, if you're a would-be employee, you want to be wanted. You want open source experience.
It's an fact that every person I hire has their salary rate go up …
[Read more]
Being quite tied up in my daily job, I totally missed the that
Oracle has been developing a database application development
tool, SQL Developer. In fact, this tool was
previously known as "project Raptor" and has now matured to
version 1.1. The -to me- interesting news is that:
-
- It's free of charge.
- It runs on Linux, Mac OS/X and Windows
- Besides the Oracle database, it also supports other
databases, including MySQL
Ok - I know all free software adepts will probably have left by
now for three reasons, being that the title of this blog entry
contains "Oracle", the tool is "free as in beer" and of course
because the tool runs on Microsoft Windows. But let's not be
distracted. Let's …
I just want to write few tips how to get MySQL from development
BitKeeper tree, as there are several tricks.
First of all you need a fresh free client - bk-client2.0 http://www.bitkeeper.com/Hosted.Downloading.html
.
Once you get it, you can clone latest tree:
bkf clone bk://mysql.bkbits.net/mysql-5.0 mysql-5.0
New client supports "changes" command, so you can look latest
changes
bkf changes in mysql-5.0 directory.
It may be useful to get sources related to specific release.
MySQL build team marks tree by TAG
with each new release. What I have looking by existing TAGS:
bkf changes | grep TAG
TAG: clone-5.0.32-build
TAG: mysql-5.0.30
TAG: clone-5.0.30-build
TAG: mysql-4.1.22
TAG: clone-4.1.22-build
TAG: mysql-5.0.28
TAG: mysql-5.0.27
TAG: …
For those that attended the MySQL Camp at Google HQ late last year you may
have seen me with my own T-Shirt designs. A number of people
inquired about getting them. I’ve finally got around to make them
available online, so anybody that would like one can order
online.
There are two different shirts. If you want your name on the shirt, you need to make sure you choose the correct one.
- Early Adopters - For those that were the first 48 that signed up, your name as well as position and company are on the shirt.
- The Herd - For everybody that registered on the website, your name is on the shirt.
Ok. I’ve …
[Read more]As has been pointed out, there is a new version (2.0) of the free BitKeeper client, and furthermore the old one (version 1.1) appears not to work anymore. At first I suspected my daughter's hogging of available bandwidth as the culprit when all of my daily pulls of MySQL source trees failed, but that soon proved not to be the case. I am once again pulling source code successfully.