Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

MySQL: Building User Interfaces

timothy posted more than 10 years ago | from the lego-blocks dept.

Programming 266

Craig Maloney writes "If you are a Windows programmer looking to create or move your stand-alone database applications away from Microsoft-specific tools such as Visual Basic, Visual C++, Access or SQL Server, MySQL: Building User Interfaces is written just for you." Read on for the rest of Craig's review.

What's in the book?

The first chapter guides the reader through the basics of MySQL and how it compares to Access 2000 and SQL Server 97. Next, a code listing demonstrates the basics of connecting to MySQL via C using the MySQL C API. the book gives an all-too-brief whirlwind tour to the basics of MySQL. The next four chapters are a tutorial on how to use GTK+ and GLADE, focusing on how these toolkits are similar and different from their Visual Basic counterparts. GTK+ was chosen in this book because of its cross-platform compatibility with both Windows and Linux / UNIX operating environments. The second part of the book takes what was learned about MySQL and GTK+ with GLADE and uses it to create a stand-alone application (a real-world order-entry application).

What's Good?

Throughout MySQL: Building User Interfaces, Stuckey describes exactly what he is doing and why he is doing it that way. The introduction to GTK+ in the first part of the book describes just about every GTK+ widget available (menus, buttons, sliders, status bars, etc.), and creates a monster busy-box application (not to be confused with the busy-box application by Bruce Perens) demonstrating those widgets by themselves. Later in the book Stuckey uses Glade to put applications together, but not using Glade early on gives the reader a chance to see what is happening under Glade's abstraction. During the building of the order-entry application, Stuckey explains the design decisions behind the widgets. Each window of the application is introduced first with a diagram describing where the widgets will be followed by the code for each widget. The design looks like a Visual Basic application designed by a a programmer, with an eye toward the functional rather than the aesthetics of user interface design, but as an introduction to GTK+ programming it works well.

What's Bad?

If there was ever a book that required a CD-ROM to accompany it, this book gets my nomination. Authors have to walk a fine line between presenting code snippets that don't make sense by themselves, or risk boring readers with page after page of code that might confuse readers who aren't yet ready to view full code listings. MySQL: Building User Interfaces chose to include the full code listing for everything. This is both a blessing and a curse: readers have the code right in front of them and don't have to worry about being in front of a computer while reading the book, but the flow of the book is interrupted every time something is introduced.

The descriptions also suffer, because those code listings are expected to explain in more detail what is going on. In the GTK+ introduction, widgets are introduced with short paragraph introductions. The real-world application, which should be the focus of the book, reads like an assembly line: A screen is introduced, the widgets are placed, and the code is listed. Worse, files which make little sense without a computer (such as files generated by glade) are presented along with the code listings. This makes reading this book a chore. Thankfully, there is an FTP site with the code ready to use, but future versions of this book would be best served to include it on disc.

Perhaps a balance can be struck in a future edition where important code concepts are highlighted without sacrificing seeing the code in a meaningful context.

So, what's in it for me?

Windows programmers who need a hand in getting their applications to Linux or UNIX may find this book helpful (but overwhelming) as they learn. This book stands out as a bridge for Windows programmers to make their transition to Linux and UNIX smoother, but the emphasis and amount of code listings in this book may make Windows programmers choose a different route.


You can purchase MySQL: Building User Interfaces from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×

266 comments

Suprised that the Review didn't mention this (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#8194830)

There is an FTP site with the code ready to use, but, as the author of the review states, it would be better if future versions of this book would be best served to include it on disc.

Re:Suprised that the Review didn't mention this (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#8194885)


This is informative? This is a word-for-word copy of one of the sentences in the review itself!

Re:Suprised that the Review didn't mention this (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8194917)

I took a crap in your cereal.

Re:Suprised that the Review didn't mention this (3, Funny)

Negative Response (650136) | more than 10 years ago | (#8194940)

From the story:
Thankfully, there is an FTP site with the code ready to use, but future versions of this book would be best served to include it on disc.

Did you read the second half of the sentence, but failed to notice the first half?

Try SQLite (4, Informative)

hendridm (302246) | more than 10 years ago | (#8194836)

MS Access has the advantage (on Windows machines anyway) of being a stand-alone database without needing a service to be installed. For a app where you don't want to have to install MySQL server and have it waste resources, you might consider SQLite [sqlite.org] . Unlike MySQL embedded, it's release under the public domain. MySQL Embedded is licensed under the GPL and has the following requirement [mysql.com] :

... any program which includes, by linking with libmysqld, the MySQL source code must be released as free software (under a license compatible with the GPL).

Although, depending on what you want to do with the software, this may not be a problem. I'm all for free and open source software, but a brother's gotta eat too.

Re:Try SQLite (2, Interesting)

Anonymous Coward | more than 10 years ago | (#8194887)

Can someone expand on the difference between a stand-alone db and one that needs a service to be installed? I just don't understand what the differences are between Access and other databases such as mySQL...

Re:Try SQLite (3, Informative)

man_of_mr_e (217855) | more than 10 years ago | (#8194944)

Access is simply an application. When you open the database, it's just like opening a file in a word processor.

MySQL is a service that runs seperately from the application and must be started and stopped seperately. In most cases, the service is started at boot time and runs all the time, wasting resources unless you manually stop it.

Re:Try SQLite (0)

Anonymous Coward | more than 10 years ago | (#8195033)

MySQL is a service that runs seperately from the application and must be started and stopped seperately. In most cases, the service is started at boot time and runs all the time, wasting resources unless you manually stop it.

I'd remove the "wasting resources" part from that description, because it's behaving like any server process does in that regard. Your SMTP server and HTTP server are also "wasting resources" while they're sitting there waiting for inbound connections.

A typical use for a database such as mySQL or postgres is as the back end for some CGIs, such as a message board or shopping cart, and the way to do that is to have them running as server processes. Of course, most message boards and shopping carts are a complete waste of resources, so maybe that's an accurate description after all.

Re:Try SQLite (1)

laird (2705) | more than 10 years ago | (#8195125)

"I'd remove the "wasting resources" part from that description, because it's behaving like any server process does in that regard. Your SMTP server and HTTP server are also "wasting resources" while they're sitting there waiting for inbound connections."

Good point. I'll elaborate in case someone doesn't get the point -- under UNIX (or Linux) there's essentially zero system cost to having a server running if it's not active -- it just gets swapped to disk by the OS' virtual memory system, and doesn't take up any CPU time unless it's called, so all CPU and RAM resources are available to other applications. So unless you _really_ care about a few MB of disk space, or a second or two of boot time, you'd never notice that MySQL is running.

Re:Try SQLite (4, Funny)

Frymaster (171343) | more than 10 years ago | (#8195137)

he service is started at boot time and runs all the time, wasting resources unless you manually stop it.

right. think "daemon".

microsoft just uses the word "service" because sco owns the word "daemon".

Re:Try SQLite (2, Informative)

AndroidCat (229562) | more than 10 years ago | (#8195151)

Hmm. Access is an application which uses the underlying MSJET engine. Anything that can create an ADO object (or OLEDB or DAO...) can use that engine without Access running. The engine also handles reference counts so that if more than one program is using it, it won't load multiple copies and it won't unload until the last one closes it.

Re:Try SQLite (3, Insightful)

cscx (541332) | more than 10 years ago | (#8195015)

An Access database (usually a .mdb file) is just a binary file. Your application uses the Access DB driver to read/write to this file.

MySQL on the other hand (which may consist of multiple binary files) has to run a daemon (i.e., server) to be accessed. Your application uses the MySQL driver to talk to the MySQL daemon, either through TCP/IP or a local socket.

This is why MySQL will *never* be a replacement for Access, despite what I often see on slashdot. You can fit a small Access database on a floppy. Conversely, you may need a full fledged DBA to run MySQL.

Re:Try SQLite (2, Insightful)

laird (2705) | more than 10 years ago | (#8195162)

"This is why MySQL will *never* be a replacement for Access, despite what I often see on slashdot."

That's true -- it would be more accurate to describe DBM as a replacment for Access, and MySQL or PostgreSQL as a replacement for SQL Server.

Re:Try SQLite (1)

cscx (541332) | more than 10 years ago | (#8195215)

Hmm, does DBM allow you to run SQL queries against it?

Often I've seen Linux users suggest using PHP + MySQL as a drop-in replacment to Access. That is really way off base.

Does DBM have a GTK/Qt interface, or is it only through a Perl CGI?

Access' main advantage is that the interface can run as a standalone app.

Both are replacements for MS SQL Server (4, Insightful)

ttfkam (37064) | more than 10 years ago | (#8195336)

...if you don't use transactions, stored procedures, triggers, views, sequences (read: real ones), or if you actually want your database to be typesafe and have your insert/update to throw an error (or at least a warning!) on invalid data. Otherwise MySQL is most certainly not a viable replacement, although the codebase which used to be called SAPDB is. Firebird also qualifies for a replacement.

Also, if you need advanced XML querying tools for your database, none of the open source RDBMSs can currently act as a reasonable drop-in replacement for MS SQL Server.

If you don't need any of those features (and especially haven't actually used any of them in existing code), then MySQL could be added to the list of open source RDBMSs that fit the requirements for your project.

Re:Try SQLite (1)

P-Nuts (592605) | more than 10 years ago | (#8195237)

An Access database (usually a .mdb file) is just a binary file. ... You can fit a small Access database on a floppy. ...

Are you aware that the data in a MySQL database can be ripped out to a file with the mysqldump command? Okay, perhaps passing it through bzip2 or similar will improve the odds of fitting it on a floppy.

And an Access database in an MDB file is hardly standalone, you still need a machine running Access to get much use out of it.

Re:Try SQLite (3, Insightful)

cscx (541332) | more than 10 years ago | (#8195251)

Are you aware that the data in a MySQL database can be ripped out to a file with the mysqldump command? Okay, perhaps passing it through bzip2 or similar will improve the odds of fitting it on a floppy.

Well obviously, I too can do a text export of Access and gzip it as well! But that doesn't, uh, help the situation.

And an Access database in an MDB file is hardly standalone, you still need a machine running Access to get much use out of it.

Wrong. You don't need Access to create/update/use an Access database. The functionality it built into Windows (actually part of a bigger module called Jet).

Re:Try SQLite (1)

AndroidCat (229562) | more than 10 years ago | (#8195314)

Do they actually include Jet as part of Windows now? It used to be that you needed an app that installed the engine. (Like Office, duh! :)

Well, that would make my installation much easier if I just use it as the default db... (he said as he slides further into Microsoft's trap...)

Re:Try SQLite (1)

cscx (541332) | more than 10 years ago | (#8195269)

And an Access database in an MDB file is hardly standalone, you still need a machine running Access to get much use out of it.

Actually let me expound on this a bit further... you can write a VBScript in your favorite text editor to do SQL operations on an Access database... just use an ADO object...

Re:Try SQLite (2, Interesting)

w00t_sargasso (744186) | more than 10 years ago | (#8195440)

So... You are telling me that Microsoft Access, or at least that part of it _necessary_ to read mdb's will fit on the floppy as well?

I like MySQL because it _is_ a server -- You can create any application in (almost) any language on any platform (think php) to interface with a MySQL database. Try telling me that you can do that with access.

And you _can_ also fit a SQL db on a floppy.

To sum:
-You cant fit M$ Access on a floppy, but you can a db.
-You cant fit MySQL on a floppy, but you can a db

-MySQL is free (and all applications do remain PROPRIETARY provided they dont modify the MySQL source in any way -- Read the licence properly dudes.
-M$ Access is NOT Free in ANY interpretation of the law (to test, try telling Microsoft that it's free...)

Re:Try SQLite (2, Informative)

torok (632410) | more than 10 years ago | (#8195566)

MySQL will *never* be a replacement for Access

I am in complete agreement.

I write small DB apps for small businesses. My clients all have MS Access installed. I would love to be able to use all open-source tools to develop these apps, but so far nobody can show me something that's as simple for my computer-illiterate clients to install as "Here, copy this .mdb file to your hard drive and double-click on it". Installing one more piece of software wouldn't be hard either, but if I have to say "Here, install OpenOffice first, then install MySQL, make sure it's running, then run this script to put the right data in MySQL, then make sure you have the right MySQL drivers installed, THEN double-click...." You get the idea.

Most people have a hard enough time with "Copy the .mdb file to c:\dbprogram". Requiring them to install a service with appropriate drivers on their old PentiumII running Access2k is a nightmare and suicidal for a small software company.

Re:Try SQLite (1)

spasm (79260) | more than 10 years ago | (#8195588)

"You can fit a small Access database on a floppy. Conversely, you may need a full fledged DBA to run MySQL."

On the other hand, my current fieldwork database (at the point we were switching from access to mysql) was a 50mb Access file, but a 200kb mysql dumpfile.

I could refresh remote copies of the mysql version over a 56k dialup (or by floppy) no problem, but duplicating the access db (don't even talk to me about 'sync' - I lost count of how many rollbacks to backup I had to do after using sync. one of the reasons we migrated) was impossible without boradband or cd burning.

Re:Try SQLite (4, Informative)

Mod Me God Too (687245) | more than 10 years ago | (#8195022)

I do a little DB development. The basic difference is a DB system like MySQL, Oracle or SyBase is that the 'DB' is the back-end (indeed it is a server-type process) which is interrogated by SQL statements (the front end may be built in C++, VBA, whatever), whereas something like Access is an all-in-one solution with the back-end and the front-end in the same app mish-mashed together (it may purport to be SQL-like, but only from within the app, not as a server) - I think MS still provide Foxpro as Access simple can't hack really big work. So an SQL-type database is the classic client-server, Access and Paradox don't seperate front and back ends (they say they can be split, but that is a bit of a bodge job).

Wikipedia has a more thorough discussion here (for SQL) [wikipedia.org] and here (databases in general but quite a read) [wikipedia.org]

Re:Try SQLite (0)

Anonymous Coward | more than 10 years ago | (#8195154)

Ah, Wikipedia, ever trusty. Surprised you refer to Paradox though, havn't seen that in years!

Re:Try SQLite (3, Informative)

cscx (541332) | more than 10 years ago | (#8195175)

Actually, I think you may have been mislead if I read you correctly. Another person in the thread was correct when they said that Access is a front-end to the actual Access database. You can run SQL queries against an Access database... the functionality is built into the driver.

Re:Try SQLite (1)

Mod Me God Too (687245) | more than 10 years ago | (#8195241)

Yes, you are quite correct, infact I've been using ADO ad-hoc in Excel VBA for a couple of months (it was not a pleasant experience, but VBA never is).

[slaps wrist]careless![/ceases slapping wrist]

Re:Try SQLite (2, Interesting)

gandy909 (222251) | more than 10 years ago | (#8195024)

I suppose the app could easily be written to start the server when it starts and shut the server down when it ends, thus not wasting resources all the time...couldn't you? Not that mysqld is a resource hog anyway...

Re:Try SQLite (2, Insightful)

hendridm (302246) | more than 10 years ago | (#8195058)

> I suppose the app could easily be written to start the server when it starts and shut the server down when it ends

True, but besides being sort of hokey, the requirement of having MySQL installed might not be ideal if your target audience isn't savvy enough to install it, or perhaps don't want extra, normally unnecessary, stuff on their computer. I guess it all depends on your needs and target audience.

Re:Try SQLite (1)

ninejaguar (517729) | more than 10 years ago | (#8195050)

I'm not familiar with MySQL. Is it possible to start and stop the service from your application, as your application loads and unloads? I mean, even if there's a delay in starting MySQL (MS SQL starts and stops very quickly), it should be possible to do it in the background as your application loads without much (if any) delay from the user's perception.

I've been thinking of trying that with FireBird [firebirdsql.org] .

= 9J =

Locking Problem (3, Interesting)

stoolpigeon (454276) | more than 10 years ago | (#8195052)

from the sql lite page it looks like multiple users can select silmultaneously but only write to the database one at a time. Locking for writes is not record level, page level or even table level - it is the whole database.

Too bad- because MySQL really does not replace Access but neither does this- unless it will only run internally to one user.

Re:Locking Problem (1)

hendridm (302246) | more than 10 years ago | (#8195599)

Umm, wasn't the book/review about creating stand-alone applications? I'd dare to say that most of them only have one user connecting to them at once anyway, right? If you have multiple users connecting, it makes sense to use the full-blown MySQL!

Re:Try SQLite (5, Funny)

jcoleman (139158) | more than 10 years ago | (#8195064)

I'm all for free and open source software, but a brother's gotta eat too.

Hope you like Indian food!

Coleman

Re:Try SQLite (1, Informative)

ttfkam (37064) | more than 10 years ago | (#8195584)

It's not like you can just drop an *.mdb file onto a box and use it. Access still needs to be installed. This puts it on about equal footing with MS Access in that even though MS Access is more common, MySQL is a free download if the system you're on doesn't have it. Of course, that assumes your office is running MS Windows. (Not a bad assumption, but good to keep in mind.)

Along those lines, you shouldn't be coding directly to MS Access anyway. Writing your stuff to an ODBC datasource is a much better choice. Luckily, every popular database in existance has an ODBC driver. With ODBC (or ADO) and a client-server database, you can have the database local to you for initial development and then move it off to a dedicated server without changing a single line of code. With a MS Access database, you can have a dedicated fileserver, but locking issues between clients get really hairy after more than a couple of people connect and work at the same time.

SQLite is great if memory constraints are very tight and you probably won't move to a client-server model in the future. How much is a 256MB DIMM these days? 256MB is enough for most relational databases to have a field day with the datasets that MS Access is used to. And memory's only getting cheaper. Make sure that you have a real need to constrain yourself to the in-process model before jumping in.

Also note that if you use an ODBC datasource, you can use the comparatively wonderful Access frontend and have a real data store in the background doing the heavy lifting.

But then, if you really wanted to do it right, you'd use something better than MySQL on that backend like MaxDB, Firebird, or PostgreSQL; Same cost, more features, scale better with concurrent writes, and safer for your data (actually tells you when crap data is trying to find its way in) than MySQL. Remember, if you're talking about replacing MS Access, you're probably not talking about a web environment anymore. Chances are that it's not 99% reads.

saaa (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8194840)

duh?

more sellers (3, Informative)

tedtimmons (97599) | more than 10 years ago | (#8194848)

amazon link [amazon.com]

isbn.nu link [isbn.nu]

half.com link [ebay.com]

No affiliate tags are used above. But here's the amazon link [amazon.com] with my tag, if you feel generous.

My opinion (2, Informative)

W32.Klez.A (656478) | more than 10 years ago | (#8194856)

I have read this book, and used it to my advantage. However, they don't properly explain some parts about what you're doing, and why you're building the interface. I was hard pressed to find the exact reasoning they used for some of the things they did, but other than that, it's a great resource for mysql developers such as myself.

Re:My opinion (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8194916)

Fool of a moderator, you have been trolled.

Who mods this shit up? Check poster's history (0)

Anonymous Coward | more than 10 years ago | (#8195576)

The parent is a content-free comment

Database to be eliminated (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8194871)

PLEASE KILL A DOG - Any dog. Support the Euthenasia for Canus Familiarous Assoc. today to benefit from the FULL BENEFITS of being a FULL TIME ECFA member.

Are you MAD?
Do you HATE DOGS?
Are you a MAD DOG HATER?

If you answered "yes" to any of the above questions, the ECFA is for you! The ECFA is the only animal humane group that supports the MAD KILLING OF DOGS.

Why kill dogs you ask? Because there are just TOO MANY of them. We don't have anything against the species, it's just that they are too overpopulated. Dog lovers from around the world spend LOADS of TIME attempting to save every member of this overcrowded species. To fix this imbalance, the overpopulated animals need to be eliminated. If the dog is not already in a home, or can be adopted in a short period of time... it's time to say goodbye.

Why MAD? Because they are costing us TAX DOLLARS to take care of? Over 100 million dollars is spent in the US each year alone on taking care of wild dogs. The health and safty concerns of this overpopulation are overwhelming. It is time to say goodbye.

We are looking forward to your membership. To join, first get a ECFA "first post" on slashdot.org. Then, give us a holler in our chatroom, #dogs on efnet. Then, simply post a sign outside your humane society for the humane destruction of dogs with euthanasia.

MySQL Feature Set (4, Insightful)

Saeed al-Sahaf (665390) | more than 10 years ago | (#8194882)

Before all the naysayers start in on what a flaky database MySQL is, how it doesn't do this or that, that it just a toy, please visit their web site and see what its current feature set is.

Re:MySQL Feature Set (0, Funny)

Anonymous Coward | more than 10 years ago | (#8194994)

Nah, it still sucks... Use Postgres

Re:MySQL Feature Set (3, Informative)

Anonymous Coward | more than 10 years ago | (#8194996)

another interessting read is here. [sql-info.de]

The PostGres Fanboys/Trolls should read this too. (1, Troll)

anonymous coword (615639) | more than 10 years ago | (#8195118)

Um... there are 2 gotchas there... (2, Funny)

Anonymous Coward | more than 10 years ago | (#8195266)

MySQL is listed with OVER 20 [sql-info.de] .

It's not about being a postgres fanboy/troll.. reality is that MySQL DOES NOT have features comparable to Oracle/PostgreSQL/SQL Server. When are you going to understand this??

As a DBD (db developer) I CAN'T use MySQL - it's feature set is too WEAK. MySQL is starting to get some of these features now and good for them but the argument was always about the feature set.. fuck some of you are dimwits...

And yes I've just fed a troll but fuck it, now im all pissed off and want another coffee..

Re:The PostGres Fanboys/Trolls should read this to (0)

Anonymous Coward | more than 10 years ago | (#8195289)

Yes, and then compare the sheer volume of MySQL gotchas to Postgres gotchas.

Re:The PostGres Fanboys/Trolls should read this to (1)

gmhowell (26755) | more than 10 years ago | (#8195583)

Good point: mysql has 25 listed gotchas, whereas PostGreSQL has 2.

(FWIW, I'm using mysql, but I suck.)

Re:MySQL Feature Set (0)

Anonymous Coward | more than 10 years ago | (#8195126)

Hey, this is /.. Knocking MySQL's features are like complaining that Debian is out of date and ships with an old new kernel. It's all part of being an arrogant geek - what I do is obviously better than what you do!

Re:MySQL Feature Set (1)

w00t_sargasso (744186) | more than 10 years ago | (#8195473)

Damn straight!

MySQL -> More stable than Access More accessible than Access (Think TCP\IP interface) More extensible than access


And it's open source! (Although, if you modify the source, any apps you create that interface with it become open source too...)

Access == Microsoft
:therefore Access != Cheap
:ALSO therefore Access != Stable

Make sure you use MySQL version = 4.0 (4, Informative)

spun (1352) | more than 10 years ago | (#8194888)

Before that, the dang thing doesn't support nested subqueries, or any kind of subqueries on inserts and deletes. Found that out the hard way recently (the docs don't make it very clear) and had to rewrite a bunch of elegant SQL as less elegant Perl loops and wacky joins.

Still, I love MySQL. Postgres is more full featured, but for the smallish web-based applications I write, it's overkill.

Greater than or equal to, I mean (1)

spun (1352) | more than 10 years ago | (#8194922)

The > in the title disappeared.

Re:Make sure you use MySQL version = 4.0 (1)

blackrat (31091) | more than 10 years ago | (#8195091)

Exactly, MySQL is lean and mean and usually competent enough to solve the DB stuff at least in my applications/web sites. But as you say, the pre-4 versions do not support nested sub-queries -- also had to make some kludgy PHP constructs and quite a few not too nice join statements recently just due to this annoying fact. Unfortunately, upgrading to v4 was not option. :-/

Re:Make sure you use MySQL version = 4.0 (2, Insightful)

_fuzz_ (111591) | more than 10 years ago | (#8195153)

Actually, subqueries are only supported in 4.1, which is not considered production level. So there still isn't a production-quality MySQL server that supports subqueries.

MONKEY FUCKER (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8194897)

FUCKING MONKEY FUCKER WHORES!

Poop Poop Doop Crapola Doola
Reason: Don't use so many caps. It's like YELLING.

I'd give it at least an 8 (2, Interesting)

Anonymous Coward | more than 10 years ago | (#8194909)

I've been working through this book for quite some time, and now that I've extracted all i can I have to declare myself delighted with it. The examples are good, deep enough to convey the lessons but shallow enough that not too much is irrelevant. I now have, as the author promised, several applications that will compile easily under both linux and win32. If i can fault the book at all , my only reservation is that is would have been nice to see all the necessary software included on the cd. Downloading all of the required applications and libraries (particularly for windows) led to a treasure hunt accross the web. That aside I would recommend this book to anyone who is not new to programming and databases, a little prior knowledge will be required as this is definately not a complete beginners book.

Interesting Book (5, Insightful)

saberworks (267163) | more than 10 years ago | (#8194910)

I read most of this book (maybe an older version?) last year. I found it very interesting because it basically gave me the idea to let the staff members of my web site update the site through a windowed interface as opposed to a web interface. MySQL doesn't have to be running on the same computer as the program is running on, so this would be simple. That way you could provide a rich client (for staff members, not end-users) to update a web site based on MySQL.

I know, it's not an original idea, but it's interesting because the book was a nice, step by step guide to doing just this. For what it's worth, I enjoyed it.

On the other hand, I ended up spending time with XUL instead.

Re:Interesting Book (2, Insightful)

gbrayut (715117) | more than 10 years ago | (#8195104)

Just wondering why you wanted to get away from the web interface? If done correctly, isn't a web interface much better then a client/app, since it provides a single interface that works on all operating systems and from all locations?

Re:Interesting Book (1)

saberworks (267163) | more than 10 years ago | (#8195268)

There are a few problems. There are tree structures that are hard to reproduce on a web interface (think of a directory tree in Windows Explorer with collapsable nodes) [note: I said hard not impossible]. There are also other widgets (like select boxes that also allow you to type values, and rich text editing widgets) that are only reproducable using javascript/dhtml. Most of the 3rd party widgets out there require certain version of Internet Explorer, and while the visitors to my site are mostly all Windows users, most of the staffers don't use Windows, and if they do, certainly don't use IE.

On top of that, I wanted to do some experimenting (just for fun). We're not really a business or anything like that, so there was no real business decision made for it.

Re:Interesting Book (1)

EastCoastSurfer (310758) | more than 10 years ago | (#8195517)

Web interfaces work great for read-only content. Complex UI for data entry is a PITA on the web though.

If your app has a ton of content that is read-only(ie. a reporting app of some sort) and only a few people doing the updating then it makes sense to have a fat client for data entry and a web interface for everyone else.

Kexi is also worth checking out. (4, Informative)

anonymous coword (615639) | more than 10 years ago | (#8194911)

It is an open source program similar to Microsoft Access [kexi-project.org] . It works with MySQL too. It even runs on Windows.

Re:Kexi is also worth checking out. (1)

DukeyToo (681226) | more than 10 years ago | (#8195288)

And its version 0.1 beta 2, which makes it practically vaporware in my book.

Thats a little harsh of course... I am sure it will be available eventually (the screenshots look very promising) but at this stage it is only an interesting sidenote.

Book was good but: (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#8194927)

It only discusses one way to build a user interface. There are many ways like php, jsp, etc that could accomplish this but they are not even mentioned.

Depends on perspective (2, Insightful)

Moth7 (699815) | more than 10 years ago | (#8195088)

But do we really want the book to only scratch the surface in many languages rather than give it thoroughly indepth with a single language? I often find it frustrating when chapter upon chapter is dedicated to a language I'll never use. If however you want lots of other languages covered, the MySQL Cookbook [amazon.com] by O'Reilly has good scenario based discussions of using MySQL with PHP, JSP (as you wanted) as well as Python and Perl.

Silly comment (2, Insightful)

Rosco P. Coltrane (209368) | more than 10 years ago | (#8194933)

MySQL: Building User Interfaces chose to include the full code listing for everything. This is both a blessing and a curse: readers have the code right in front of them and don't have to worry about being in front of a computer while reading the book

Since when do people read computer books on the throne? I would think anybody who's interested in this book (yes, you two hiding at the back!) would be reading it in front of a computer, trying out the sample code to learn what's going on.

Re:Silly comment (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8195008)

I always read computer books on the pooper.

Re:Silly comment (0)

Anonymous Coward | more than 10 years ago | (#8195116)

It depends upon how you treat the book. For a professional who specializes in migrating from Windows to Linux it may be something that you read at a computer and try everything. I personally read computer books differently. I read them with the thought that they are a reference. If a concept is explained well, I can always look up the details of the implementation later.

This is especially true when the activity is merely a sideline aspect of a larger, more complex job. For example, I do not claim to be a Windows expert, but I am versed well-enough with Windows to be able to do the basics (like user management), some more advanced things that are specific to my job (like write and compile crappy little C++ hacks), and lookup rare but complex topics in books if needed (like configuring a distributed Active Directory hierarchy).

Re:Silly comment (0)

Anonymous Coward | more than 10 years ago | (#8195163)

"Since when do people read computer books on the throne?

Shouldn't the question be: when do people stop reading computer books on the throne?

And the answer is: since the doctor diagnosed them with haemorrhoids.

Re:Silly comment (1)

saberworks (267163) | more than 10 years ago | (#8195243)

On the contrary, I read most of my books through on the throne, in bed, on the ferry, etc., before I ever go to the computer. Especially tutorial type books. I like to read them through first and then try out the stuff later, using the book then as more of a reference.

Re:Silly comment (1)

kfg (145172) | more than 10 years ago | (#8195245)

Since when do people read computer books on the throne?

Since the last time I went to the throne? I also read them in the park, while in waiting rooms of various kinds and in bed.

Sometimes it's ok just to think about the content.

KFG

Re:Silly comment (0)

Anonymous Coward | more than 10 years ago | (#8195292)

Since when do people read computer books on the throne?

I grab something from my bookshelf every time I pay a visit. You think people sit in front of computers _reading_ books? Sure I reference the occasional book but you think anybody with any computing ability actually sits repeating exercises from a text book unless they are struggling with a specific problem? GTK/MySQL & glade reference manuals and sample code would be much faster for 90% of what you need create your first app.

Re:Silly comment (1)

dj_cel (744926) | more than 10 years ago | (#8195310)

I do some of my best manual reading while dominating the throne, its somehow relaxing and contemplative. :)

I read this book (3, Informative)

Anonymous Coward | more than 10 years ago | (#8194995)

Recently I had to write a mysql demo for a tradshow. I had
never worked with mySQL before. I got this book and was
able to complete a full fledged demo in a matter of three
days, working part time. The book is very well organized,
easy to read and understand and best of all the examples
work without modifications. I highly recommend this book
for beginners. I would have done so for all levels but
I'm not an advanced user of mySQL.

If you're thinking of getting started on mySQL this is the
book.

Good book (3, Funny)

TechnologyX (743745) | more than 10 years ago | (#8195012)

I have this book on my desk currently, its definitely a good resource on using MySQL for programs. The only gripe I had with it was that it didn't come with the source code, like was said in the review. I like how it focuses on converting the VB programmer over to GTK conventions.

Maybe someone should send Mike Rowe a copy after he gets out of Redmond-Training.

Yes but... (2, Insightful)

anonymous coword (615639) | more than 10 years ago | (#8195047)

Would you *reallY* like users installing MySql on their machines with the easiest to use options (read:insecure options) by default? GUIs are much worse. Best to stick with raw SQL and text files, that way you *have* to learn to secure the system.

Re:Yes but... (0)

Anonymous Coward | more than 10 years ago | (#8195328)

God, if there was a "-1 Nazi" mod option, I'd used it by now.

Then again, now that I posted to this discussion, so I can't mod it anymore. Um, have you ever thought you can get through the can't-mod-discussion-you-participate-in just logging out to post as AC?

Re:Yes but... (1)

kiddygrinder (605598) | more than 10 years ago | (#8195394)

That's crap, a well designed gui would allow a newbie to secure it more easily, your logic makes no sense. How does making something harder to configure make it easier to configure correctly? I still have no idea how to set a root password on our dev mysql database through code, if I didn't have control center, it'd still be the default

windows developers (-1, Flamebait)

Jah Shaka (562375) | more than 10 years ago | (#8195051)

if you are a windows programmer then you must be retarded... develop on linux :)

Re:windows developers (0)

Anonymous Coward | more than 10 years ago | (#8195119)

Plleeeaassseee... BBeee moooreee ssseennnsssiiiittttiiivveee.....

Iii aaaammm aaaa hhaannnddiicaapppedd mmaaannn.

Re:windows developers (4, Insightful)

BinaryCodedDecimal (646968) | more than 10 years ago | (#8195152)

if you are a windows programmer then you must be retarded

I know many retarded people that would be offended by that statement.

Seriously though, making sweeping statements like that just makes it obvious that you were never good enough for the high school debating team...

Re:windows developers (3, Insightful)

Carl T (749426) | more than 10 years ago | (#8195227)

Don't confuse stupidity with lack of political engagement / ethics / knowledge / possibilities. I know quite a few people who are more or less stuck with Windows for various reasons (the main one being their employers' decision to - willingly or not - support Microsoft), but who would like to learn more and be able to break free. If a book like this can help even a few people gain some of the skills they need to migrate, it's a good thing.

I am a Windows programmer (0)

Anonymous Coward | more than 10 years ago | (#8195427)

and I contemplated about my tardiness all the way to the bank

Java + JDBC + GUI builder? (1)

Kunta Kinte (323399) | more than 10 years ago | (#8195095)

I'm sure the GTK and Glade solution works fine. But wouldn't Java, JDBC, plus a GUI builder ( even a freely downloadable Borland JBuilder Personal or now Eclipse.org has a GUI Builder ) be a lot more crossplatform and mature solution?

There are also quite a few over the over-the-shelf Java JDBC components and tools that you can buy as well in case you're building a commercial application.

To each his own I guess.

Where's the delphi love? (0)

Anonymous Coward | more than 10 years ago | (#8195127)

Right out of the box you can connect to mysql, nothing else required.

A possible alternative - Delphi? (1)

dpeters (114681) | more than 10 years ago | (#8195184)

As a self-employed database developer (for 10 years) I've been using Borland's Delphi [borland.com] to talk to MySQL.

Although Delphi is not open source, I prefer it to the typical MS Access / VB answer for Windows platforms, and Delphi has a very mature IDE (developer interface) which is most important when building lots of applications.

Re:A possible alternative - Delphi? (0)

Anonymous Coward | more than 10 years ago | (#8195326)

You forgot to mention that you have to know Pascal!!!!

Re:A possible alternative - Delphi? (1)

cruachan (113813) | more than 10 years ago | (#8195591)

Borland's implementation of Pascal in Delphi is so close to C that it should only take a competant C coder about a week to be up and running to a good standard.

Actually calling Borland's implementation of Pascal in Delphi Pascal is a bit of a streatch IMHO. The language is now so far removed from classic pascal that apart from the bare bones there's not a lot in common.

Re:A possible alternative - Delphi? (0)

Anonymous Coward | more than 10 years ago | (#8195334)

There are quite a few databases that are tailored to Delphi. One I know of (www.advantagedatabase.com) has free local (or non client-server) access and then if you want a database server configuration, you can purchase one later ($2000ish for 100 users)

Re:A possible alternative - Delphi? (0)

name773 (696972) | more than 10 years ago | (#8195404)

Delphi has a very mature IDE (developer interface)

you mean a text editor? Linux has a lot of mature "IDE's" like vi [freshmeat.net] or emacs [freshmeat.net] or joe [freshmeat.net]

A bit easier than programming GTK directly... (3, Interesting)

tcopeland (32225) | more than 10 years ago | (#8195188)

...might be to use a higher level language wrapper like Ruby/GTK [sourceforge.net] .

Prototyping an app will probably take less time if you don't have the compile/link cycle... worth a try, anyhow.

Access 2k? SQL Server 97? (2, Insightful)

lawpoop (604919) | more than 10 years ago | (#8195224)

Couldn't the author have made a little more recent comparison to database technologies? AFAIK, SQL server is at version 2k, and Access at version 2k3.

Re:Access 2k? SQL Server 97? (2, Insightful)

geoffspear (692508) | more than 10 years ago | (#8195422)

That would be easier if the reviewer wasn't reviewing a book that was published 3 years ago.

Why does OSS love MySQL? (4, Insightful)

t_pet422 (613073) | more than 10 years ago | (#8195260)

I don't get why so many people are stuck on MySQL. It's lacks some very, very basic features: Views, Triggers, Stored procedures, nested selects. Sure, they promise support for all this in future version, but PostgreSQL supports it NOW. If you want a full-featured open source database, don't use MySQL, use Postgres.

Re:Why does OSS love MySQL? (1)

SomeOtherGuy (179082) | more than 10 years ago | (#8195335)

MySQL to Postgres is akin to the whole MP3 to OGG OR VHS to Beta.

Sometimes technically better does not win out over market hold and saturation. One could (I am sure) publish a whole book on how MySQL got entrenched over a more feature laden database.

Re:Why does OSS love MySQL? (4, Insightful)

Tassach (137772) | more than 10 years ago | (#8195476)

I too wonder about the inexplicable popularity of MySQL. It fills the microscopic niche between a lightweight ISAM database and a real full-featured relational database. I've yet to see MySQL used for something that couldn't have be done better with another tool.

Postgres is pretty good, but still (IMHO) not yet up to the level of a commercial RDBMS. If you want a full-featured free-as-in-beer datacenter grade database, use Sybase 11.0.3.3 [sybase.com] . It doesn't come with source, but come on now, how many MySQL zealots have ever even compiled from source, let alone modified something?

Re:Why does OSS love MySQL? (1)

w00t_sargasso (744186) | more than 10 years ago | (#8195498)

Err... I have compiled from source.

Most people I know compile from source...

Ah well, to each their own.

Re:Why does OSS love MySQL? (2, Insightful)

JanneM (7445) | more than 10 years ago | (#8195527)

Acutally, I have yet to need a "full-featured database". From what I've seen of various apps, neither do most other people. By and large, most apps needing a form of database storage usually get by with DBM or equivalent functionality. 'Real', big database applications that need the kind of stuff you mention are few and far between - and in those cases, there are plenty of alternatives anyhow, like you say.

For me, MySQL is not a deficient implementation of the Likes of Oracle, but a full-featured, modern way of accomplishing what DBM did.

One minor correction (2, Informative)

The Bungi (221687) | more than 10 years ago | (#8195264)

There's no such thing as "SQL Server 97". There's SQL Server 6.5, 7.0 and 2000. Perhaps he's referring to 7.0? Well perhaps he should have referred to the newest version instead.

Not that I'd be interested in a comparison between MySQL and SQL Server (midrange C/S replacement for Access/FoxPro - OK. Enterprise RDBMS? No)... but still.

test (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8195265)

test

Move? (3, Insightful)

ClosedSource (238333) | more than 10 years ago | (#8195282)

"If you are a Windows programmer looking to create or move your stand-alone database applications away from Microsoft-specific tools such as Visual Basic, Visual C++, Access or SQL Server, MySQL: Building User Interfaces is written just for you."

Very few Windows applications are written in 'C' these days so converting an existing application to use MySQL would be pretty painful. You should have a better reason to port your code then simply avoiding MS tools.

Perhaps the book is better suited for developers who wish to switch to Linux for future development.

I hate MySQL! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8195358)

Good God, why is there such a MySQL bandwagon? The database SUCKS compared to alternatives like PostgreSQL, Firebird, and just about anything else. Is there no end to the number of brainless, close-minded MySQL fanatical cheerleaders like Jeremy Zawodny? Are you people being paid off by MySQL-AB? Are you too lazy to learn another (better) database?

It's also surprising all you foaming-at-the-mouth anti-SCO, anti-MS, anti-DMCA, etc. types don't appear upset in the slightest over MySQL-AB's latest subversion of the GPL with their new shady licensing scheme.

Access Convert (1)

w00t_sargasso (744186) | more than 10 years ago | (#8195526)

I once used access. Even tried to make a VB front end. Couldnt get the damn thing to work. So I stopped using dbs for a time. Then someone showed me the pure beauty of MySQL and PHP (Thanks Andrew!!!!!!!!!) and since, I have never looked back. I tried Postgre, and didnt like it. Feature overkill...

Meh.
"In technology, there will always be 2 people with 200 opinions"

Hey, I just made a quote!
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...