L’equip de jQuery ha presentat la nova i versió de jQuery 1.2.3 que corregeix algun bug de la versió anterior i que implementa compatibilitats amb Adobe AIR a banda de ser la base del futur jQuery UI 1.5.
Etiqueta: devel
Sun Microsystems ha comprat MySQL
Corrien rumors, però ja és un fet: Sun Microsystems ha comprat MySQL.
Es parla d’un valor de 800 milions de dòlars en cash i 200 més en options, però com afectarà tot plegat a la llicència de MySQL?
Tècniques CSS de sempre
En Jordi em passa un post de noupe força interessant que recull tècniques CSS de tota la vida. De moment només han publicat la primera part de l’article i inclou:
- CSS Sprites
- CSS Rounded Corners
- Image Replacements techniques
- Sliding Doors
- Image Text Wrap techniques
- Equal Height techniques
- Turning a list into a navigation bar
- Marking headlines with CSS
- CSS Shadows techniques
- CSS Transparency
- Various link techniques
Esperarem les properes parts a veure què hi ha de nou 😉
JQuery 1.2.2
Llegeixo a Ajaxian que s’ha fet pública la nova versió de JQuery 1.2.2 que, a banda de corregir 120 bugs, millora sensiblement el su rendiment.
L’haurem de testejar 😉
Versionant CSS i JS
Interessant article a Particletree sobre com etiquetar amb el número de versió els arxius JS i CSS (entre d’altres) per tal d’optimitzar la cache sense penalitzar el procés d’actualització dels arxius afectats.
Flot: Generant gràfiques amb JQuery
EyeTracking: 23 ítems a tenir en compte
Scientific Web Design: 23 Actionable Lessons from Eye-Tracking Studies
Eye-tracking studies are hot in the web design world, but it can be hard to figure out how to translate the results of these studies into real design implementations. These are a few tips from eye-tracking studies that you can use to improve the design of your webpage.
Esborrant CVS recursivament
Quan sincronitzes un projecte amb un servidor de control de versions (CVS), aquest genera un directori anomenat CVS a cada nivell de l’aplicació.
Sempre que vull esborrar recursivament aquests directoris he de pensar com fer-ho, ho anoto per al futur 😉
rm -rf `find . -type d -name CVS`
10 tips per fer pàgines accessibles
El W3C dona 10 tips per fer pàgines accessibles:
- Images & animations: Use the
alt attribute to describe the function of each visual.
- Image maps. Use the client-side map and text for hotspots.
- Multimedia. Provide captioning and transcripts of audio, and descriptions of video.
- Hypertext links. Use text that makes sense when read out of context. For example, avoid “click here.”
- Page organization. Use headings, lists, and consistent structure. Use CSS for layout and style where possible.
- Graphs & charts. Summarize or use the longdesc attribute.
- Scripts, applets, & plug-ins. Provide alternative content in case active features are inaccessible or unsupported.
- Frames. Use the noframes element and meaningful titles.
- Tables. Make line-by-line reading sensible. Summarize.
- Check your work.
Validate. Use tools, checklist, and guidelines at http://www.w3.org/TR/WCAG
Una pàgina que no satisfà un d’aquests tips no segueix totes les recomanacions del W3C pel que fa a l’accessibilitat web.
Com enfonsar un WordPress 2.3
Avui m’he entretingut a fer proves amb WordPress 2.3, el gestor de blogs amb el que funciona aquest seti, i després de força trastejar puc confirmar que WordPress no suporta blocs grans.
Què vol dir grans?
mysql> select count(ID) from wp_posts;
+-----------+
| count(ID) |
+-----------+
| 132872 |
+-----------+
mysql> select count(cat_ID) from wp_categories;
+---------------+
| count(cat_ID) |
+---------------+
| 2071 |
+---------------+
mysql> select count(rel_id) from wp_post2cat;
+---------------+
| count(rel_id) |
+---------------+
| 132872 |
+---------------+
Estem parlant d’un blog amb un xic més de 130.000 entrades distribuïdes en poc més de 2.000 categories, el resultat es desastrós.
El element testejat és un WordPress 2.3 amb tots els plugins desactivats i el tema per defecte, en un entorn restringit on tant sols hi havia peticions a aquest WordPress que atacava un Apache que tant sols servia aquesta web i un MySQL que tant sols contenia aquesta BD. El MySQL l’he anat reconfigurant sense èxit.
Una petició a la home o a qualsevol categoria generava una slow-query de més de 140 sg. que deixava fregit el MySQL.
El motiu, les querys són massa complexes i preveuen massa casuístiques que no tenen perquè donar-se, com per exemple un Group By que ignorava qualsevol índex i que controlava que els posts mostrats en un moment X no estiguessin relacionats en diverses categories (en el meu cas, un post = una categoria).
He toquetejat una línia del codi de WordPress per adaptar-lo a les meves necessitats i el rendiment és òptim, la línia en qüestió es troba a wp-includes/query.php i el toqueteix ha consistit en passar d’això:
$request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join
WHERE 1=1 $where $groupby ORDER BY $orderby $limits";
a això:
$request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join
WHERE 1=1 $where $limits";
Òbviament, es tracta d’un cas particular i que en cap cas es pot globalitzar.
Prometo explicar-vos el resultat, però de moment he reduït fullscans del MySQL i filesorts innecessaris, de manera que les slow-querys (1 sg.) han desaparegut dels logs.