Wir sind die Technology Scouts. Wir finden neue Lösungen für alte und neue Herausforderungen.
Charles H. Moore in einem Interview zu einem neuen Buch von O'Reilly:
Ein guter Programmierer schreibt schnell guten Code. Guter Code ist korrekt, kompakt und lesbar. "Schnell" bedeutet Stunden oder Tage.
Ein schlechter Programmierer wird über das Problem sprechen wollen, Zeit mit Planung statt mit Schreiben verschwenden und auf dem Schreiben und Debuggen von Code seine Karriere aufbauen.
Würde ich vielleicht nicht ganz so unterschreiben wollen, aber es ist ein Denkanstoß ...
Publisher Pragmatic Programmers has launched sort of an agile published magazine called PragPub distributed for free in pdf, epub and mobi format. Consequentially the first issue is called first iteration. Editor of the magazine is Michael Swaine, former editor-in-chief at Dr. Dobb’s Journal.
The magazine features high quality articles expressly for the magazine. Attached to each article is list of directly linked useful links. The main articles are:
Nearly unnoticed from most people, there's now a profiler built into every mysql database beginning with release 5.0.37. It profiles the steps of the SQL engine and can help to solve performance issues. Usage is very simple:
set profiling=1;
CREATE TABLE testo1 (
id int(11) NOT NULL auto_increment,
name1 varchar(20) NOT NULL,
PRIMARY KEY (id));
create view v1 as select * from testo1
select * from testo1;
select * from v1;
mysql> show profiles;
+----------+------------+----------------------+
| Query_ID | Duration | Query |
+----------+------------+----------------------+
| 1 | 0.00964100 | select * from testo1 |
| 2 | 0.00099800 | select * from v1 |
+----------+------------+----------------------+
2 rows in set (0,00 sec)
mysql> show profile for query 1;
+--------------------+------------+
| Status | Duration |
+--------------------+------------+
| (initialization) | 0.00003200 |
| Opening tables | 0.00001000 |
| System lock | 0.00001300 |
| Table lock | 0.00000800 |
| init | 0.00001400 |
| optimizing | 0.00000400 |
| statistics | 0.00001300 |
| preparing | 0.00000800 |
| executing | 0.00000400 |
| Sending data | 0.00069000 |
| end | 0.00000700 |
| query end | 0.00876200 |
| freeing items | 0.00006500 |
| closing tables | 0.00000700 |
| logging slow query | 0.00000400 |
+--------------------+------------+
15 rows in set (0,00 sec)
mysql> show profile for query 2;
+----------------------+------------+
| Status | Duration |
+----------------------+------------+
| (initialization) | 0.00004500 |
| Opening tables | 0.00016400 |
| System lock | 0.00000800 |
| Table lock | 0.00001100 |
| init | 0.00000800 |
| checking permissions | 0.00002000 |
| optimizing | 0.00000700 |
| statistics | 0.00001400 |
| preparing | 0.00001200 |
| executing | 0.00000500 |
| Sending data | 0.00009000 |
| end | 0.00000600 |
| query end | 0.00058000 |
| freeing items | 0.00001700 |
| closing tables | 0.00000600 |
| logging slow query | 0.00000500 |
+----------------------+------------+
16 rows in set (0,00 sec)
select * from testo1;
mysql> show profiles;
+----------+------------+----------------------+
| Query_ID | Duration | Query |
+----------+------------+----------------------+
| 1 | 0.00964100 | select * from testo1 |
| 2 | 0.00099800 | select * from v1 |
| 3 | 0.00071200 | select * from testo1 |
+----------+------------+----------------------+
3 rows in set (0,00 sec)
Did you ever have a table containing evenly numbered entries and had to delete an entry in the middle? How to renumber the remaining entries? Here's a trick for MySQL using a user variable to recount the index:
set @num=0;
update TABLE set IDX=@num:=@num+1 where FILTERCOL='only these' order by IDX;
The amount of data on any given topic is rising nearly exponentially. Online media and social sites give an incomparable statistical and empirical insight into the inner workings of groups of human beings.
So there's a need to visualize large amounts of data, complex relationships and correlations and to do that often and nearly en passant.
There's a really interesting article in Smashing Magazine, a graphics designer online publication showing new methods, forms and algorithms to show mndmaps, news, data, connections and web sites. Plus it contains a large appendix with links and references to further delve into the thematics. I was really impressed.
All those beautiful data visualization techniques made me think about the importance of usability issues in visualization: complex data sets or relations are no longer the domain of some highly specialized experts but will enter the real life of a larger group of possibly technically adept but not specialized people. Every decent personal computer has the cpu power and graphical ability to create sophisticated graphs and let its user interact with it in real time.
There only needs to be a set of tools enabling easy creation and usage of such graphs and more important, there need to be new ways to show the more complex findings in such data in an eye pleasing way. The more beautiful and self explaining visualizations are, the more useful they are for viewers/users.
I'm very interested, what the future will show concerning tools and visual representations of data. Please let me know what you think and if you know of any other new ways to display data.