Saturday, April 30, 2011

Some better colors for charts

I've decided to browse through some of the phpMyAdmin code in order to get more familiar with it.
So I started my day by looking through all the include files of server_status.php (finding all kinds of curiosities like /* We must do hard way... but almost no chance to execute this */) and somehow ended up with recoding the chart classes to make them use theme-specific colors, since I found those green colors awfully unfitting from the day I saw them. Also, when I'm going to rebuild the Status page, I don't want to have green graphs there ;)

So this is the result in the themes original and pmahomme (before/after pics):


Since there was such a nice 'layout.inc.php' in each theme folder defining some colors, I thought it'd be best place to put the color definitions.

I will be posting the patch to the mailing list and push the changes to my repos once I figured out how it works :|

Tuesday, April 26, 2011

GSoC 2011: More Statistics for the status page

I am very delighted to hear that my proposal for 'Query statistics & charts for the status page' has been accepted to the Google summer of Code Program.

In the course of the next few months I will turn the phpMyAdmin Status page from a plain collection of server variables into a sophisticated query statistics and analytics tool, as well as server health statistics. But I also really would like to add some completely unplanned improvements since I always get countless ideas what could be done better while I'm coding. However, I will make sure that it's actually useful for everyone by communicating actively about my progress and ideas on the pma mailing list.

Here is a short summary of what I've planned, for now:
  • Restructure the status page. Organize status variables into jQuery Tabs.

  • Add some code that allows for recording of server status data, and use those in return to generate graphs about the general server health. In the process of this I would also like to make sure that the configuration of the database (where the data will be stored in) can be done easily through the phpMyAdmin interface, and not through the config.inc.php. Unfortunately this feature will be limited to users that have the possibility to set up cronjobs.

  • With the help of MySQLs slow_query_log we can extract a bunch of very useful graphs such as:
    • Amount of queries by user
    • Amount of queries vs time chart, to help identify at what times the server is more busy
    • List of particularly slow queries
    • Common queries that use non-indexed fields in the WHERE Statement, which is a well known performance pitfall.

  • To some degree, I'd like to develop a tool that helps with optimizing queries. I would do this by looking at well known optimization techniques and trying to identify programmatically where they could be applied to.

I am very excited in implementing these features, since I regularly use phpMyAdmin myself and always enjoy looking at the statistics. So these changes will benefit me directly when working on future Website projects.

Lastly I would like to thank the phpMyAdmin Mentors for choosing my project and Google for this amazing program!

Tuesday, November 24, 2009

10 Great Libraries/Links for Web2.0 Websites


A few great Javascript Libraries and other Links that I used and which I'd like to share:


Create perfectly smooth animations with this library, you can even use CSS to describe the animation transitions. There's probably no animation idea Animator couldn't handle.
Easy to implement and fairly easy to use.

A packed, single file version of the Lightbox 2, which is great for overlaying pictures on your website. Particularly great for galleries, as it let's you navigate through the images.
Very easy to implement and very easy to use (just add a rel parameter to your linked images)

If you want intuitive file management, then drag&drop in trees is the way to go. The gurus at dhtmlgoodies.com offer you one good implementation of that. Though it took quite some adjustments for me to get it working smoothly, it was a great help to me.

The one thing HTML4/XHTML is missing: Multiple file upload within one dialog. A great tool to make your uploads more user friendly. A bit hard to set up though.

I haven't used this one yet but I'm planning to implement this into my website. One problem with making a website fully AJAX is that the functionality of the history button gets lost. This lib is one way how to bring it back.

IE6 is not the newest browser, but still being used by a lot of people. And one big frustration about making a website IE6 compatible is that it's lacking alpha transparency. This small script automatically fixes all PNG-Images in your source code through a microsoft filter. All you gotta do is to load the script.

A collection for fully customizable Web2.0 loading animations.

A great Firefox plug in that gives you many tips on how to optimize your website speed

1000 Free-to-use awesome-looking 16x16 Pixel icons. I use them everywhere

A collection of free sounds

Sunday, November 22, 2009

Web 2.0 Thoughts

As a web developer you are confronted with a massive wave of emerging technologies like scripting languages (PHP, Python, Ruby on Rails, Zope,..), data storage systems (MySQL, PostgreeSQL, SQLite, XML, Cloud), protocols (JSON, AJAX/HTTP), web services (twitter, youtube, gmail, facebook,..), content management systems (Typo3, Joomla,...) and ever growing software, addons and libraries.

Nowadays being a web developer is a completely different matter like it was 7 years ago when I started my "Internet-career". Back then, it still was an achievement to be able to create your own file upload and file listing in simple HTML and PHP. Over the years, the server side scripting languages have become less and less important and follow a shadowy existence by now, as the client scripting side, namely JavaScript, was put in the spotlight with it's great promise: AJAX.
If you want to have a modern website it is infeasible not to use JavaScript, which increases the efforts by much more than it was 7 years ago.

We all follow the hidden obligation to re-implement 40 years of user interface design into every common browser, without breaking compatibility to older browsers or technologies (like the Browsers Back button).
That not only requires a big set of expertise and will of learning but also endless nights of experimenting and trying out which configuration works for which browser.

Gladly, many many excellent tools and libraries have been written, available for the greater public on which I stumble upon from time to time.
I'm particularly astonished about all the existing JavaScript Libararies like Prototype, jQuery, DoJo, Mootools, etc. serving Multipurpose functionality to the mass. They seem to have a big establishment in Web2.0 Websites by now.
Frankly, I was never a big fan of bulky libraries when you have the chance to put together or program the things you need yourself.