1. MySQL is not scalable: there is no table partitioning. As your data grows and so does your use of the database, you'll find your options for scalability are very limited to what you can "hack" around on your own. Other RDBMS solutions like Oracle, MSSQL, and yes, even Postgres have anywhere from decent to excellent scalability.
2. Advertized "enterprise" features are hacked into the stagnant and very monolithic MySQL codebase and frequently do not deliver as advertized. Here are examples: Sub-selects are not well optimized, if at all; indexes cannot be used more than once in the same query to help with optimization; using a combination of triggers and stored procedures within transactions in a medium to high usage environment results in crashes that even MySQL cannot explain; row-level locking only exists if you only have primary key, and no other indexed columns that you need to update, and you are updating using that primary key; does not truly support MVCC — even with InnoDB your selects may block updates and the other way around; replication forces further limitations in concurrency; the list can go on and on. None of these are a problem to any noticeable extent with any of the other "enterprise" RDBMSes.
3. More on replication: even though MySQL has somewhat elegant solution for replication, besides limiting concurrency (as already mentioned) and introducing serialization, this solution poses additional tricky fundamental problems. For example, it is nearly impossible to implement a true multi-master replicated environment.
4. No HA solution: Oracle and MSSQL (recently and more limited) offer true HA solutions that can increase your database availability in case of failure, and within the HA environment guarantee the transactions and data the applications were led to believe was successfully manipulated. This cannot be achieved with heartbeat and replication using MySQL, or even Postgres for that matter.
5. Critical bugs dealing with data consistency: This is not a statistical analysis, but MySQL has had and still has a lot of critical bugs dealing with critical part of the RDBMS - data. e.g., you cannot rely on RDBMS for storing your data if, when queried under certain circumstances, it returns NULLs when it should return the correct data. It is not fully comprehensible how a product released as stable (such as version 5.0) can still have so many critical data-related bugs.
6. Horrible codebase: If you are at least a decent programmer, please have a look at MySQL code: monolithic, one main file with succession of countless if blocks for parsing, optimizing and running queries; features such as triggers, stored procedures, and replication visibly hacked in to the existing "bad" design. There's very little abstraction that can leave data files in inconsistent and unreadable state in the event of the server crash (mostly MyISAM). And then, just for kicks, please have a look at Postgres source code: well-organized, separated into well-designed components you'll get acquainted with certain satisfaction to components that do parsing, planning, optimization, execution, and other functions. Code is well-commented and, as a programmer, it will give you a certain comfort when dealing with the software. This is a very important point and demonstrates why Postgres, for example, having a solid foundation, can implement advanced features (such as transaction savepoints, etc.) with very little critical issues, and why MySQL has half of the features that only "work" in certain circumstances and are subject to critical bugs after the stable software release. If you don't see a night and day difference between the two, smack me.
7. No RBAC.
Saturday, May 26, 2007
Tuesday, April 03, 2007
I became owner of Yamaha MO6
After long thoughts what to buy for the same price: Roland Juno-G or Yamaha MO6, I've decided to stick with Motif series of Yamaha. That was right choice! Way better voices (can't find decent bass in Roland machine), over better possibilities, way better keyboard, way better and sophisticated sequencer — overall nice choice over Roland Juno-G.
As for Juno-G still good choice if you want lightweight keyboard. Yamaha MO6 still 10+ kg (not 25 anymore though), still bigger, thicker... Also, to burn mp3 or WAV of your composition, you need a PC to record one via analog output. Ah, and it is not a sampler, can not record audio track as Rolang Juno-G can. But wait, do we all have computers, right? :-)
Here is a result of my messing around. Some people even finds it useful... :-)
As for Juno-G still good choice if you want lightweight keyboard. Yamaha MO6 still 10+ kg (not 25 anymore though), still bigger, thicker... Also, to burn mp3 or WAV of your composition, you need a PC to record one via analog output. Ah, and it is not a sampler, can not record audio track as Rolang Juno-G can. But wait, do we all have computers, right? :-)
Here is a result of my messing around. Some people even finds it useful... :-)
Sunday, March 18, 2007
XVid Crashed My Laptop. Almost.
Today I found a system message on my Apple laptop: "Your startup disk is full!". Scary! Who ate 45G space of my main disk just per one night?!!
Guilty was a huge error log[s], which was generated in /Library/Logs/Console/... because I've downloaded a XVid plugin for QuickTime: http://n.ethz.ch/student/naegelic/index.php for playing with, but this beast didn't throw any complains, just silently generated huge amount of rubbish data.
Also one interesting moment: after I had removed the logs (rm command) and sync'ed disk, space still didn't changed at all. Everything fine become only after complete machine reboot. Weird.
Guilty was a huge error log[s], which was generated in /Library/Logs/Console/... because I've downloaded a XVid plugin for QuickTime: http://n.ethz.ch/student/naegelic/index.php for playing with, but this beast didn't throw any complains, just silently generated huge amount of rubbish data.
Also one interesting moment: after I had removed the logs (rm command) and sync'ed disk, space still didn't changed at all. Everything fine become only after complete machine reboot. Weird.
Sunday, March 04, 2007
Remote Printing from MacOSX
I've bought a laser printer to satisfy my small home needs. Since I don't print so often, no color photos (that's why photo lab is for!), no other color output — laser B&W printer looks for me the best choice. Model: "Brother HL-2040".
Now, I have two Macs laptops at home, one Linux box and one printer. Why not print over Wireless then? :-)
That's quick "howto" how I setup stuff.
On Linux box:
1. Setup printer on Linux box.
2. Setup Samba on Linux box and share printer.
3. Setup Samba users and add their passwords.
On each Mac just add remote printer. To do this, use "Printer Setup Utility". Click in Finter on "Applications", then "Utilities" and finally on "Printer Setup Utility". Click icon "Add" (printer). By default you will see only "Adobe PDF 7.0" driver. Now, click "More Printers..." button and wait while OSX stops searching for drivers. Choose "Windows Printing" from the topmost drop-down list and choose "Network Neighborhood" from the second one. Now you should see a list of available workgroups. Great, now click on workgroup, which shares your printer and click "Choose" button. You should see the list of available servers. Select yours and clicl "Choose" button. Now finally you see your desired printer. Select correct (or similar) driver from the drop down list and finally click "Add".
In my case CUPS does not contain HL-2040 driver, so I use HL-2060 instead. It does its job, however instead of 2400 dpi I've got just 600 dpi resolution... Well, nothing is perfect, but on paper for text output it is more than enough. Photos looks acceptable too.
Next move I will try to replace my current noisy heavy Linux box with another: KuroBox. But this is future...
Now, I have two Macs laptops at home, one Linux box and one printer. Why not print over Wireless then? :-)
That's quick "howto" how I setup stuff.
On Linux box:
1. Setup printer on Linux box.
2. Setup Samba on Linux box and share printer.
3. Setup Samba users and add their passwords.
On each Mac just add remote printer. To do this, use "Printer Setup Utility". Click in Finter on "Applications", then "Utilities" and finally on "Printer Setup Utility". Click icon "Add" (printer). By default you will see only "Adobe PDF 7.0" driver. Now, click "More Printers..." button and wait while OSX stops searching for drivers. Choose "Windows Printing" from the topmost drop-down list and choose "Network Neighborhood" from the second one. Now you should see a list of available workgroups. Great, now click on workgroup, which shares your printer and click "Choose" button. You should see the list of available servers. Select yours and clicl "Choose" button. Now finally you see your desired printer. Select correct (or similar) driver from the drop down list and finally click "Add".
In my case CUPS does not contain HL-2040 driver, so I use HL-2060 instead. It does its job, however instead of 2400 dpi I've got just 600 dpi resolution... Well, nothing is perfect, but on paper for text output it is more than enough. Photos looks acceptable too.
Next move I will try to replace my current noisy heavy Linux box with another: KuroBox. But this is future...
Saturday, February 03, 2007
Python Reports At Production
At our company I've just put into production OpenRML. For now we're generating official agreements with end-users. The document output is not as much as complex, but looks official more than enough. Documents looks as same as Microsoft Word can print. In the very near future complex internal reports are going to be done, instead of outputting *editable* Microsoft Excel spreadsheets.
I've slightly changed the code for to be implemented as Aozora Application Server plugin: configuration file is placed to
Works with legacy ReportLab 1.21 and new ReportLab 2.0. PIL 1.6 needs to be installed for image process (check out the webpage of RL).
I have no much time documenting RML myself, therefore grab official Report Lab RML documentation.
For Japanese language I use Microsoft "MS Mincho", taken from Windows OS, and Osaka, taken from MacOS X, fonts. I still have troubles loading huge Unicode Arial font. Using multiple fonts works fine.
I've slightly changed the code for to be implemented as Aozora Application Server plugin: configuration file is placed to
$AAS_ROOT/etc and fonts are placed into $AAS_ROOT/var/fonts/ directory. Everything else just same.Works with legacy ReportLab 1.21 and new ReportLab 2.0. PIL 1.6 needs to be installed for image process (check out the webpage of RL).
I have no much time documenting RML myself, therefore grab official Report Lab RML documentation.
For Japanese language I use Microsoft "MS Mincho", taken from Windows OS, and Osaka, taken from MacOS X, fonts. I still have troubles loading huge Unicode Arial font. Using multiple fonts works fine.
Friday, January 05, 2007
LaCie HD and Apple Store at Shibuya (Tokyo)
Recently I bought an external hard drive. 250Gb, FireWire 400, design by F.A.Porshe. This is 7200 rpm with 400 Mbits/s interface transfer rate. It's also looks pretty nice to me on my desk and FireWire makes it fast enough. Shortly, this one. The price in some store at Shibuya was 19,900¥.
But hey, here is Shibuya and here we have an Apple Store! So, I took the device and just wanted to visit store of my favorite hardware vendor. On a second level of the store I found exactly the same hard disk.
Well, not exactly the same: 120Gb and a smaller. For just 25,000¥ ...
But hey, here is Shibuya and here we have an Apple Store! So, I took the device and just wanted to visit store of my favorite hardware vendor. On a second level of the store I found exactly the same hard disk.
Well, not exactly the same: 120Gb and a smaller. For just 25,000¥ ...
Monday, October 30, 2006
Gadgets are... NOT stylish!
We are living in 21th century.Woa! We all (almost, though) know about gadgets: a small electric stuff in our pockets. Today I found, that they all together are great hit towards destroying common style.
Let's face it: each gadget *is* stylish. E.g. iPod. My dear wife gave me one as a present. It is really stylish glassy thing with 80GB capacity. Looks pretty nice. Once you touch it, you will like it. This is all at the FIRST glance.
But hey, I already have a Palm Tungsten E. This is kinda old model, but yet doing well its job. I can store all my contacts there, notes and read books. Pretty nice device and very nicely synchronized with my Mac. So *another* stylish gadget.
So now, I have to call my wife and say "Thank you, Darling!" for something. To do this, I take yet another, stylish itself, multifunctional smartphone (joystick present) to call her.
Finally, she says I have to go to photolab and print out some photos, but after that here is a list of goods I have to buy on my way to home. So, I take stylish iPod and put its glassy/metalic weight into my pants. Then take stylish Palm, write down that list of goods I need to buy and put its weight into my pants along with iPod. Now, I take stylish smartphone, stylish wallet and... my pants falls down from me because of 1Kg stuff in there, and looks kinda full.
Stylish, eh?
Let's face it: each gadget *is* stylish. E.g. iPod. My dear wife gave me one as a present. It is really stylish glassy thing with 80GB capacity. Looks pretty nice. Once you touch it, you will like it. This is all at the FIRST glance.
But hey, I already have a Palm Tungsten E. This is kinda old model, but yet doing well its job. I can store all my contacts there, notes and read books. Pretty nice device and very nicely synchronized with my Mac. So *another* stylish gadget.
So now, I have to call my wife and say "Thank you, Darling!" for something. To do this, I take yet another, stylish itself, multifunctional smartphone (joystick present) to call her.
Finally, she says I have to go to photolab and print out some photos, but after that here is a list of goods I have to buy on my way to home. So, I take stylish iPod and put its glassy/metalic weight into my pants. Then take stylish Palm, write down that list of goods I need to buy and put its weight into my pants along with iPod. Now, I take stylish smartphone, stylish wallet and... my pants falls down from me because of 1Kg stuff in there, and looks kinda full.
Stylish, eh?
Subscribe to:
Posts (Atom)