Categories: "Full Stack Dev & Design"
There's more than the code...
Oh well... I think it's been too long since I last read some great wisdom like the one on Joel on Software.
I read this really insightful peace today about all the important things beyond just the actual software code.
Here's a funny quote:
Human emotions can be really, really superficial. In particular people ridiculously overvalue aesthetics and beauty when evaluating products. It's one of the reasons iPods, and, for that matter, Keanu Reeves, are so successful.
...but the whole article is definitely a must read!
Of course, this so much applies to b2evolution as well... :-/
MySQL Data Integrity Enforcement Caveats
Okay, I desperately lack time to write full articles posts lately, so I'm going to make this quick! :P
Background: Suppose you have a table named Songs
and a table named Genres
. Genres
only contains Genre IDs and Genre Names. Songs
contains all sorts of data, but at some point there is one field (let's call it Song_Genre_ID
) that points to the Genre ID. Get the picture? I'm sorry, I don't have the time for an actual picture of this. That "pointer" is called a Foreign Key. The Genre_ID
, being the Primary key.
Data Integrity Enforcement means that MySQL is going to prevent you from putting any crappy value into the Foreign Key (FK) that would not exist in the refered Primary Key (PK). It will also prevent you from deleting a Genre if there are songs pointing to it. The bottom line is: if you're serious about your DB, you can't do without!
Now how would you enforce the integrity? Basically with something like this (but you may want to check the MySQL manual for details, right? :P):
ALTER TABLE Songs
ADD CONSTRAINT FK_any_name
FOREIGN KEY (Song_Genre_ID)
REFERENCES Genres (Genre_ID)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
Now, here's my point: from my experience I have found that a hell lot of things can go wrong when you try to add that constraint, and it can be a nightmare to find out what's going wrong! As a matter of fact, you'll find out MySQL's error messages aren't very helpful >:XX...
So here's a checklist to follow in order to find out what's been going wrong:
Okay I hope I didn't forget anything. Of course, if you find another reason for the constraint creation to fail, I'd love to hear about it! ;)
Good luck! :>>
Flash Lite getting real
And now, the Flash Virtual Machine is going mobile... for real! :)
NOKIA SIGNS LICENSING AGREEMENT WITH MACROMEDIA
Series 60 becomes a reference mobile platform for Macromedia Flash technology
Nokia (NYSE:NOK) and Macromedia (Nasdaq: MACR) today announced a licensing agreement that will integrate Macromedia Flash technology into Series 60 Platform. Series 60 becomes a reference platform for Macromedia’s mobile Flash technology, and Macromedia will implement new versions of its mobile Flash technology on Series 60. Nokia has also agreed to support Flash in its other software platforms.
MySQL features by version breakdown
I could not find anything like this on the net, so I thought I'd make my own chart and share it... ;)
MySQL version | 3.23.58 +InnoDB |
4.0.22 | 4.1.7 | 5.0 |
---|---|---|---|---|
Release date | 11-sept-03 | 27-oct-04 | 23-oct-04 | not stable yet |
Row level locking | yes | yes | yes | yes |
Transactions | yes | yes | yes | yes |
Foreign keys | yes | yes | yes | yes |
UNION | no | yes | yes | yes |
Subqueries (derived tables) | no | no | yes | yes |
Multiple table DELETEs | no | yes | yes | yes |
Unicode UTF-8 support | yes | yes | yes | yes |
Column level charset support | no | no | yes | yes |
Timezone handling | no | no | yes | yes |
Full text indexing (MyISAM only) | no UTF-8 | no UTF-8 | yes | yes |
Stored procedures | no | no | no | yes |
Rudimentary triggers | no | no | no | yes |
Updatatable views | no | no | no | yes |
Server side cursors | no | no | no | yes |
Master/slave one way replication | yes | yes | yes | yes |
Replication over SSL | no | no | yes | yes |
Clustering (not available on Windows) | no | no | yes | yes |
Note: I have not included MySQL 3.23 without InnoDB because that version can do vitually nothing interesting. It's a pure joke. Unfortunately, it is the kind of joke hosting providers like to try on you when they claim they offer you a "DBMS"... yeah right... call it an electronic rollodex, no more :>>
I'm a little bit too lazy for styling this right now, sorry.
If you notice an error, please be so nice and report it. Thanks ;)
Exporting MySQL databases
PhpMyAdmin does a pretty decent job at exporting MySql database with their structure and/or their data to a plain SQL file. One thing bugged me though: it encloses every table/column/whatever name in backquotes like in `addr_city` varchar(50)
. Who needs this? Are there really people who put spaces, commas, quotes and special chars in their database object names?? |-|
Today, I finally fixed this. You need to open config.inc.php and change this line:
$cfg['Export']['sql_backquotes'] = FALSE;
Life is good! :D