Showing entries 1121 to 1130 of 1149
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: General (reset)
Pump up the brain

Living in Berlin, the city of cities, has alot of advantages. One of the main advantages is that a lot of smart nice people realize the beauty of Berlin and therefore also live here. Some are even so smart as to live within a mile from my home. This applies to Stefan Hinz for example, who is the co-author of the anxiously awaited "MySQL 5.0 Certification Study Guide".

So instead of having to wait endlessly until Amazon finally stocks this book, I just had to put on my sandals and take a little stroll over to Stefan to have a nice chat and to pick up a copy of the book!

As I have mentioned I have decided to spend a year on self education. Getting MySQL certified is one of my top priorities for this year. Also I have had MySQL 5 installed on windows and linux for quite sometime now, but I never really got up and played with all the new features. This book looks to be the perfect excuse to finally do so!

I am also hoping …

[Read more]
smart customers

I’ve just finished a tour through silicon valley (got to be up at 4:30 AM to catch a flight - yuck) for some meetings at the MySQL offices and had the opportunity to visit several customers (including our own internal webmaster!) to get some feedback on replication and backup features. I visited a good range of sites, from startups to very large established ISVs. The thing that impressed me most of all was just how smart the MySQL customers are.

When I’ve evangelised open source in the past I’ve often heard snide comments made by folks trying to understand open source, like “yeah, but does anyone actually look at the source?”. Yes, people actually look at the source. See, there are a whole lot of people in the IT/computer industry that actually care about being efficient (in terms of both human and computer resources), making things work right, and making sure that people don’t lose data. People look at the source code for MySQL …

[Read more]
MDB2, a package screaming to be marked stable

MDB2 development has been a lengthy process indeed. As a matter of fact development began back in the summer of 2003. Now two years later the fact of the matter is that MDB2 has been useful for production purposes for the past 1,5 years and all that really stopped it from going stable is the final decision to mark the API as stable.

That is not to say that the past 1,5 years were wasted on API changes alone. Alot of things where tweaked, performance improved and useability drastically improved. Most PEAR modules that can talk to a database support MDB2 natively etc. However life as an MDB2 user was full of suprises (not as much for those that actually read the changelog) on every update and I think its really about time this ends.

So I am finally dropping the idea of PDO API compatibility once and for all. …

[Read more]
OSDC CFP

The OSDC CFP site is the most annoying CFP in the entire world. So bloody complicated to go through - really makes you examine if you really wanted to do a talk in the first place.

A new Machine

In order to better document MySQL on Mac, I have recently acquired a Mac Mini. This brings my collection of desktop machines to three:

The black machine is a Windows box, the white machine runs Linux, and now a Mac Mini.

The new addition closer up:

This is the first Mac I have had regular use of, so I am sure I have some learning to do. For now I just need to get MySQL and the GUI tools installed, then find where they hide the command-line.

Follow up on hotspots

Admitedly I am not yet MySQL certified. So my last post was more based on knowledge of DBMS in general. A few people have noted that the issues described in my previous post might not apply to the InnoDB table handler. So I will need to research this a bit. Actually I am planning to become MySQL certified and so its quite handy that the new certification guide is to be released on august 19th.

Aside from that I wanted to mention a few other tid bits that Arjen reminded my about. Number one there is the UUID() function in mysql that seems like another great way to generate unique non sequential identifiers.

[Read more]
Hotspots and how to avoid them

The other day a discussion in #mysql on freenode developed concering possible issues arising from using auto increment on primary key fields due to the danger of hotspots. Since I am currently preparing a new talk first to be held at php|works on SQL performance tuning I thought that the topic would make for a perfect warming up post on the general topic.

Defining hotspots

I guess before diving into an actual discussion of the topic we first need to define what a hotspot in RDBMS lingo is. "SQL Performance Tuning" defines it as follows:
"A page in either the index or data file that every job wants to access at the same time".

Now this sentence tells us that hotspots are concerned with concurrency issues. So this indicates to us that the entire topic is probably not much of an issue when we have few users accessing the database at the same time. As a matter of …

[Read more]
19 Deadly Sins of Software Security

This book arrived at my office yesterday, and I am quite impressed. I’ve bought a number of software security titles in the past, and usually find them quite difficult reading. While I’ve only skimmed the book so far, it is laid out in a way that is incredibly useful for a busy developer, and is quite respectful of how precious your time is.

For example, in the introduction, it says “Everyone should read Sins 6, 12, and 13 … if you are creating an application to query database engines, such as Oracle, MySQL, DB2, or SQL Server, you should read Sin 4…”

It gets even better when you discover how each “Security Sin” is discussed. Each chapter is broken up into small sections:

  • Overview
  • The Sin Explained
  • Sinful Programming Languages (languages affected)
  • Sample Code …
[Read more]
Why ?returns -1 on error? is bad

(a general note on what’s good practice)

In C, 0 is false and !0 is true.

In the dim past there was an elsewhere where 0 was true and !0 was false. Why? Because there can be more than one error state and this is usually more interesting than how many ways success could have been acheived.

Well, that sucks too - there’s information on success that could be useful (e.g. we succeeded, but only n bytes worth instead of the m you asked for).

So, the way of <0 on failure and else success came about for packing the maximum amount of information into the int that we commonly return from functions (and usually fits nicely in a register and it all leads to hugs, puppies and a warm feeling inside).

So what do most people do on error? Return -1.

Hrrmm… this casually (if not totally) defeats the point. In any function that does any real work, there’s going to be more than one place where failure …

[Read more]
optimizations and assumptions

It seems that one of the frustrating things about optimization is how wrong your assumptions about the platform/environment running your code can eventually become.

At one point, programmers / compilers optimized carefully to account for 12,500 RPM rotating drum memory. Algorithms have been optimized for sequential access mass storage (tape), as well as for random access mass storage (disk). ACM Queue published an interview with Jim Gray(PDF) a couple of years ago which contains a wonderful quote illustrating how the current generation of programmers need to adjust their assumptions about data access:

So programmers have to start
thinking of the disk as a sequential device rather than a random access device.

Dr. Gray has published …

[Read more]
Showing entries 1121 to 1130 of 1149
« 10 Newer Entries | 10 Older Entries »