Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский Português 中文
Previous 30 Newer Entries Showing entries 61 to 90 of 253 Next 30 Older Entries

Displaying posts with tag: Development (reset)

Oracle legal move evokes many questions
+9 Vote Up -3Vote Down

There are many questions that arise out of Oracle’s copyright and patent infringement complaint against Google regarding its use of Java in Android. There are several things that make the suit significant to the entire industry: it centers not just on software copyright, but also software patents (an increasingly and hotly debated issue), the quickly-expanding smartphone market and open source software. The first question is: what is Oracle doing?

Many are speculating that this is simply an effort to further and more effectively monetize Java, a storied program language that has move more toward openness and survived several supposed death sentences as newer languages arrived. Still, with all of the open source parts — GlassFish application server, MySQL database, OpenOffice.org suite — is Java the most significant to Oracle? It may be, but regardless of what

  [Read more...]
Table refactoring & application version upgrades, Part II
+0 Vote Up -1Vote Down

Continuing Table refactoring & application version upgrades, Part I, we now discuss code & database upgrades which require DROP operations. As before, we break apart the upgrade process into sequential steps, each involving either the application or the database, but not both.

As I’ll show, DROP operations are significantly simpler than creation operations. Interestingly, it’s the same as in life.


A column turns to be redundant, unused. Before it is dropped from the database, we must ensure no one is using it anymore. The steps are:

  • App: V1 -> V2. Remove all references to column; make sure no queries use said column.
  • DB:
  •   [Read more...]
    Table refactoring & application version upgrades, Part I
    +2 Vote Up -0Vote Down

    A developer’s major concern is: How do I do application & database upgrades with minimal downtime? How do I synchronize between a DB’s version upgrade and an application’s version upgrade?

    I will break down the discussion into types of database refactoring operations, and I will limit to single table refactoring. The discussion will try to understand the need for refactoring and will dictate the steps towards a successful upgrade.

    Reader prerequisites

    I will assume MySQL to be the underlying database. To take a major component out of the equation: we may need to deal with very large tables, for which an ALTER command may take long hours. I will assume familiarity with Master-Master (Active-Passive) replication, with possible use of MMM for MySQL.

      [Read more...]
    Nginx-Fu: X-Accel-Redirect From Remote Servers
    +0 Vote Up -0Vote Down

    We use nginx and its features a lot in Scribd. Many times in the last year we needed some pretty interesting, but not supported feature – we wanted nginx X-Accel-Redirect functionality to work with remote URLs. Out of the box nginx supports this functionality for local URIs only. In this short post I want to explain how did we make nginx serve remote content via X-Accel-Redirect.

    First of all, here is why you may need this feature. Let’s imagine you have a file storage on Amazon S3 where you store tons of content. And you have an application where you have some content downloading functionality that you want to be available for logged-in/paying/premium users and/or you want to keep track of downloads your

      [Read more...]
    Judgment day for open source at Oracle
    +3 Vote Up -0Vote Down

    There are signals of continued problems and dysfunction — namely lack of support, organization and communication — in the OpenSolaris community. This follows on a deterioration of the OS leadership and support since Oracle bought Sun Microsystems, including the elimination of OpenSolaris CDs, one of the things that made the open source version of Solaris more like Linux.

    We had speculated on the fate of Sun open source software under Oracle and while we acknowledged Oracle’s participation in, contribution and commitment to and opportunity from open source software, we

      [Read more...]
    Improving MySQL Productivity – From Design to Implementation
    +2 Vote Up -1Vote Down

    My closing presentation at the dedicated MySQL track at ODTUG Kaleidoscope 2010 discussed various techniques and best practices for improving the ROI of developer resources using MySQL. Included in the sections on Design, Security, Development, Testing, Implementation, Instrumentation and Support were also a number of horror stories of not what to do, combined with practical examples of improving productivity.

    Increasing MySQL Productivity View more presentations from Ronald Bradford.
    SQL: good comments conventions
    +1 Vote Up -0Vote Down

    I happened upon a customer who left me in awe and admiration. The reason: excellent comments for their SQL code.

    I list four major places where SQL comments are helpful. I’ll use the sakila database. It is originally scarcely commented; I’ll present it now enhanced with comments, to illustrate.

    Table definitions

    The CREATE TABLE statement allows for a comment, intended to describe the nature of the table:

    CREATE TABLE `film_text` (
     `film_id` smallint(6) NOT NULL,
     `title` varchar(255) NOT NULL,
     `description` text,
     PRIMARY KEY (`film_id`),
     FULLTEXT KEY `idx_title_description` (`title`,`description`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Reflection of `film`, used for FULLTEXT search.'

    It’s too

      [Read more...]
    Ever tried calling a win32ole (COM) object from Ruby’s DRb?
    +1 Vote Up -2Vote Down

    Before we get started here, let me state that I am using Ruby 1.9.1 (I refuse to look back!), and that I have not tested this solution on Ruby 1.8.6, but it should work there as well, though I may have some 1.9-isms in my code. Should be easy enough to spot.

    I am working on writing an application in Ruby that can talk to an Windows application that has an ActiveX COM Automation object exposed. Ruby is basically the wrapper so that I can access the application from the Linux side of the world. So, I am using Ruby’s DRb to bridge those worlds because, after all, I am the Linux Bloke!

    Well, as you may have guessed, I ran into problems with this approach. I simply could not call the COM objects from a call initiated with DRb, though I could call them directly just fine. After scratching my head a bit, I figured it out.

    The win32ole module that runs on the Windows side of the world

      [Read more...]
    Advanced Squid Caching in Scribd: Cache Invalidation Techniques
    +0 Vote Up -0Vote Down

    Having a reverse-proxy web cache as one of the major infrastructure elements brings many benefits for large web applications: it reduces your application servers load, reduces average response times on your site, etc. But there is one problem every developer experiences when works with such a cache – cached content invalidation.

    It is a complex problem that usually consists of two smaller ones: individual cache elements invalidation (you need to keep an eye on your data changes and invalidate cached pages when related data changes) and full cache purges (sometimes your site layout or page templates change and you need to purge all the cached pages to make sure users will get new visual elements of layout changes). In this post I’d like to look at

      [Read more...]
    The Linux Bloke chuckles that Linux runs some Windows software (including Windows itself!) better than Windows does!!!
    +0 Vote Up -0Vote Down

    Our Universe is full of ironies. But some ironies are just too hard to take.

    As you may have guessed (!!!), I am an avid Linux developer and user. Though once upon a time I did develop under Windows. Yes, believe it. And on one particular case, I got to be on a first-name basis with some of the Microsoft Software Engineers to resolve issues we were having with their OLE crap — what the Holy Gods of Microsoft decided to redub as “Active-X”.

    But I digress. For the past 10 years, I have been solid Linux and have defenestrated Windows for the most part. But as you know, you can never really completely eliminate Windows.  Despite your best efforts, it will always be (for now, at least) the 500 pound gorilla in any room you care to be in. The installed software base there is just staggering, and most have no Linux options.

    But then that’s why projects like Wine and the

      [Read more...]
    building MySQL 5.5 with cmake
    +6 Vote Up -0Vote Down
    Yesterday I was testing a branch of MySQL 5.5 to help a colleague, and I was set aback at discovering that, with the default build options, the server did not include the Archive engine.
    In other times, I would have to dig into the build scripts or to examine the output of ./configure --help, but that is no longer necessary. MySQL 5.5 is built using cmake, the cross platform make.
    Why does this change make me feel better? Because cmake configuration is more user friendly than the old autoconf/automake/libtools horror syntax. Not only that, but there is a GUI!
    I am a command line guy, as you probably know, but when the purpose of a GUI

      [Read more...]
    Database schema under version control
    +0 Vote Up -0Vote Down

    How many organization use version control for development? Probably almost every single one.

    How many store the database schema under version control? Alas, not as many.

    Coupling one’s application with table schema is essential. Organization who actively support multiple versions of the product understand that well. Smaller organizations not always have this realization.

    How is it done?


    Ideally one would have:

    • The schema, generated by hand
    • Essential data (INSERT INTO statements for those lookup tables without which you cannot have an application)
    • Sample data: sufficient real-life data on which to act. This would include customers data, logs, etc.

    If you can work this way, then creating a staging environment consists of re-creating the entire schema from out schema

      [Read more...]
    DbCharmer – Rails Can Scale!
    +0 Vote Up -1Vote Down

    Back in November 2009 I was working on a project to port Scribd.com code base to Rails 2.2 and noticed that some old plugins we were using in 2.1 were abandoned by their authors. Some of them were just removed from the code base, but one needed a replacement – that was an old plugin called acts_as_readonlyable that helped us to distribute our queries among a cluster of MySQL slaves. There were some alternatives but we didn’t like them for one or another reasons so we’ve decided to go with creating our own ActiveRecord plugin, that would help us scale our databases out. That’s the story behind the first release of DbCharmer.

    Today, six months after the first release of

      [Read more...]
    How to get your product bundled with Linux distributions
    Employee +2 Vote Up -0Vote Down

    I recently received a question from Robin Schumacher at Calpont, the makers of the InfiniDB analytics database engine for MySQL: "How would you recommend we try and get bundled in with the various Linux distros?"

    Since this question has come up several times before, I thought it might make sense to blog about my take on this.

    First of all, please note that there is a difference between "being part of the core distribution" and "being available from a distributor's package repository". The latter one is relatively easy, the former can be hard, as you need to convince the distributor that your application is worth devoting engineering resources to maintain and support your application as part of their product. It's also a space

      [Read more...]
    A comet over PHProjekt 6
    +0 Vote Up -1Vote Down
    So far PHProjekt 6 (P6, see http://phprojekt.com) is already enhanced with nice AJAX workflows and snappy user-experience. Nevertheless, we discussed a way to provide synchronous communication and direct information within the application.

    Everybody knows GoogleMail with its easy to use frontend. Maybe you use it for your daily work. In GoogleMail, there is no need to refresh the page to receive a new mail, Google informs you automatically whenever a new mail is available. But how is this possible? The answer to this question is really simple: The server triggers a signal informing that a new mail is available. This technology is called Comet and describes a way how the server communicates with the client [see http://en.wikipedia.org/wiki/Comet_(programming) ].


      [Read more...]
    A comet over PHProjekt 6
    +0 Vote Up -0Vote Down
    So far PHProjekt 6 (P6, see http://phprojekt.com) is already enhanced with nice AJAX workflows and snappy user-experience. Nevertheless, we discussed a way to provide synchronous communication and direct information within the application.

    Everybody knows GoogleMail with its easy to use frontend. Maybe you use it for your daily work. In GoogleMail, there is no need to refresh the page to receive a new mail, Google informs you automatically whenever a new mail is available. But how is this possible? The answer to this question is really simple: The server triggers a signal informing that a new mail is available. This technology is called Comet and describes a way how the server communicates with the client [see http://en.wikipedia.org/wiki/Comet_(programming) ].

      [Read more...]
    Building MySQL Server with CMake on Linux/Unix
    Employee +4 Vote Up -0Vote Down

    CMake is a cross-platform, open-source build system, maintained by Kitware, Inc.

    From the CMake.org home page:

    CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.

    It has been used for building the MySQL Server on Windows since MySQL 5.0 – the initial CMake build support was added in August 2006.


      [Read more...]
    More MySQL releases
    Employee +5 Vote Up -0Vote Down

    Shortly after I posted my last summary of MySQL releases, our son Mats was born and I went on a 2.5-week vacation. Our developers did not rest in the meanwhile and I'd like to give you a quick update of what's new since then:

    MySQL Connector/Net 6.3.0

    • Visual Studio 2010 RC support
    • Nested transaction scope support

    MySQL Workbench 5.2.16 Beta 6

    • Fixed 67 bugs
    • Saving your profile/connection passwords in OSX keychain, gnome-keyring or in an encrypted password-vault-file.
    • New rapid development features for generating complete SQL
      [Read more...]
    Finishing touches
    +0 Vote Up -0Vote Down

    The book is in its final stages. Right now I am putting the finishing touches to the illustrations and going through the editors’ most recent comments and suggestions. Takes a lot more time than expected, though…

    Here's An Exclusive 10% Off NuSphere PHPEd Discount Coupon Code (Also Includes NuCoder And PHPDoc)
    +0 Vote Up -0Vote Down


    I don't know about you, but I can't imagine doing my PHP development without an IDE with a debugger anymore.

    It autocompletes for me, it lets me step through each line of code, jumping around the project, execute and change the code flow on the fly, and does many other things that make me feel cozy, comfortable, and efficient at PHP development (as opposed to, say, CPP which makes me feel cold and lonely).

    There are many PHP IDEs out there and I've tried most of them (including the free PHPEclipse and PDT for Eclipse) but kept coming back to NuSphere's PHPEd every time. The other ones

      [Read more...]
    CAOS Theory Podcast 2010.01.22
    +0 Vote Up -0Vote Down

    Topics for this podcast:

    *Open source in consumer devices
    *VMware-Zimbra deal highlights open source, cloud
    *A capitalist’s guide to open source licensing
    *Latest on Oracle-Sun-MySQL, M&A implications

    iTunes or direct download (24:48, 5.7 MB)

    51 Weeks since my book writing adventure began
    +0 Vote Up -0Vote Down

    In one week, on December 24th, it will be exactly one year since I was first contacted by Packt Publishing. After reading several posts from this blog they asked me if I’d be interested in writing a MySQL administration cookbook with hands-on recipes for those among us who have to make sure the MySQL servers are kept running and in good shape.

    Funny thing, I almost deleted their email, because initially I thought GMail’s spam filter had not caught some sort of bulk or phishing email, because I had never heard of Packt Publishing before and at first only saw an unfamiliar sounding sender’s name. As I was one of very few people in the office on that day I decided to read it anyways. Turned out to be not so spammy after all…

    What followed were several weeks of sending mails back and forth, convincing a colleague to

      [Read more...]
    Back from SAPO Codebits in Lisbon - a summary
    Employee +1 Vote Up -0Vote Down

    Last week, my colleagues Giuseppe, Kai and myself attended the SAPO Codebits event in Lisbon, Portugal. Codebits is an annual, invite-only hacking event, which went on for three days. The venue they chose this year was the "Cordoaria", a former rope factory located in the Belém district, close to the 25 de Abril Bridge (which is an impressive sight!). I have been told that the Cordoaria is the longest building in Portugal and I have no doubts about that! The building is so long that the crew used bicycles to get from one end to the other. I've taken a number of

      [Read more...]
    Codebits 2009, coders conference and competition in Lisbon
    +3 Vote Up -0Vote Down

    Codebits is approaching. Form December 3rd to 5th, this gathering of 600 developers for a conference, which is also and foremost a competition, will occupy the mind of the best coders in Europe.
    I will be a speaker, with two sessions:

    Also Lenz will be there, and quite busy. He will also have two sessions:

      [Read more...]
    Discovr: a flickr experiment gone wrong
    +0 Vote Up -0Vote Down

    I need help with this. I had a dream… Well, not so much as a dream, maybe a “It’d be cool to…”

    I thought it’d be nice to discover new photos on flickr using your favorite photos and the people who also favorited those photos, and the favorite photos of those who also favorited my pictures. Still with me?

    It’s actually a quite simple code (about 500 lines, check it on github: discovr), but it’s terribly slow. Some possible reasons:

      [Read more...]
    Aspects and benefits of distributed version control systems (DVCS)
    Employee +2 Vote Up -0Vote Down

    This blog post is a by-product of my preparation work for an upcoming talk titled "Why you should be using a distributed version control system (DVCS) for your project" at SAPO Codebits in Lisbon (December 3-5, 2009). Publishing these thoughts prior to the conference serves two purposes: getting some peer review on my findings and acting as a teaser for the actual talk. So please let me know — did I cover the relevant aspects or did I miss anything? What's your take on DVCS vs. the centralized approach? Why do you prefer one over the other? I'm looking forward to your comments!

    Even though there are several distributed alternatives available for some years now (with

      [Read more...]
    DB Charmer – ActiveRecord Connection Magic Plugin
    +1 Vote Up -1Vote Down

    Today I’m proud to announce the first public release of our ActiveRecord database connection magic plugin: DbCharmer.

    DB Charmer – ActiveRecord Connection Magic Plugin

    DbCharmer is a simple yet powerful plugin for ActiveRecord that does a few things:

  • Allows you to easily manage AR models’ connections (switch_connection_to method)
  • Allows you to switch AR models’ default connections to a separate servers/databases
  • Allows you to easily choose where your query should go (on_* methods family)
  • Allows you to automatically send read queries to your slaves while masters would handle all the updates.
  • Adds multiple databases migrations to ActiveRecord


    There are two options when

  •   [Read more...]
    Some friendly advice for bootstrapping your OSS project
    Employee +4 Vote Up -0Vote Down

    So you're a small startup company, ready to go live with your product, which you intend to distribute under an Open Source License. Congratulations, you made a wise decision! Your developers have been hacking away frantically, getting the code in good shape for the initial launch. Now it's time to look into what else needs to be built and setup, so you're ready to welcome the first members of your new community and to ensure they are coming back!

    Keep the following saying in mind, which especially holds true in the Open Source world: "You never get a second chance to make a first impression!". While the most important thing is of course to have a compelling and useful product, this blog post is an attempt to highlight some other aspects about community building and providing

      [Read more...]
    IntelliJ IDEA Open Sourced
    Employee +0 Vote Up -0Vote Down

    With IntelliJ now being available under an Open Source license, developers have another option to choose from when it comes to Java-based IDEs/Frameworks (Eclipse and NetBeans being the other two prominent ones). Choice is always good, and being an Open Source enthusiast, I of course welcome JetBrain's move!

    However, as I'm not really a heavy GUI-based IDE user myself, I can't really comment on which one is the best. These kind of discussions tend to turn into a Holy War anyway... In the end it's likely that each of them gets the job done and you have to come to your own conclusions, based on your personal preference and requirements.

    I personally would be interested in

      [Read more...]
    And the best open source license is …
    +0 Vote Up -0Vote Down

    UPDATE: The final vote is in and a winner has been declared, with Matt Asay and his arguments for the GPL taking the prize. You can see the debate or follow links to the other judges’ votes and thoughts here.

    This is my assessment as a judge of the recent open source license debate held by the FOSS Learning Centre. We’ll have to begin with some qualifications and definitions, starting with the fact that there is no ‘best’ open source software license. Still, a star-studded open source software panel provided a lively, informative debate on the merits of some top open source licenses. For that, I congratulate and thank the panelists, Mike Milinkovich from the Eclipse Foundation arguing for the Eclipse Public License, Matt Asay of Alfresco arguing in favor of the

      [Read more...]
    Previous 30 Newer Entries Showing entries 61 to 90 of 253 Next 30 Older Entries

    Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

    Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.