Freitag Apr. 13, 2012

Links 20120413 - Magento

Weil mich das Thema grad beschäftigt... Vielleicht ist für den ein oder anderen auch was Interessantes dabei: 

Magento Download (u.a. auch Beispieldatenbank) 
http://www.magentocommerce.com/download

http://www.magentocommerce.com/wiki/

http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/magento_installation_guide

http://www.magentocommerce.com/knowledge-base/entry/magento-installation-cheat-sheet

http://www.magentocommerce.com/knowledge-base/entry/installing-the-sample-data-for-magento

Magento Benchmarks (sind noch 2-3 Tipps dabei)
http://www.wikigento.com/test-bench/magento-zend-server-the-benchmarks/

Magento Speed Test (testet u.a. die Speed des Shops im Produktivbetrieb als Service) 
http://www.magespeedtest.com/

http://www.magentocommerce.com/knowledge-base/entry/how-do-i-know-if-my-server-is-compatible-with-magento

http://magebase.com/magento-tutorials/improving-the-file-cache-backend/

101 ways to speed up your Magento e-commerce website (Muss man gelesen haben - auch wenn es aktuell nur 54 sind ;-) !)
http://www.gxjansen.com/101-ways-to-speed-up-your-magento-e-commerce-website/

Magento and other ramblings 
http://brentwpeterson.blogspot.de/
Installing Magento Via SSH
Themen in diesem Blog u.a.:
The Basic Magento Web Server Install Guide (CentOS?)
Magento MySQL my.cnf perfect setup
Magento Database Reduction 
Magento events: Cheat Sheets 
Truncate Customer Log tables in Magento

http://tweetorials.tumblr.com/ 
Themen in diesen Tweetorials u.a.:
Magento / Zend_DB SQL Profiling 
Magento Block Caching 
EE Full Page Cache Hole-Punching 
Magento Multi-Website Setup 
Magento Collection Caching

https://github.com/cmuench/Magento-Vagrant-Puppet

Links 20120412 - Modplayer iPhone, Revision 2012

Modizer - Hehe, cool... Ein ModPlayer für's iPhone. Spielt C64, Amstrad CPC, Atari ST, Amiga, PC, GB, GBA, NES, SNES, SMS, Genesis/Megadrive, PcEngine, PSX, Saturn, Dreamcast, ... Das Teil spielt sogar den Titel von Blood Money (Psygnosis) richtig ab. :-) Das schaffen die wenigsten ModPlayer.
Funky Fresh - BLURAY BD-J Demo - TRSi zeigt mal wieder ein schönes Demo... Läuft auf Bluray und ist in Java geschrieben. Geht doch ;-) Super Soundtrack noch dazu. Mehr hier: Youtube, Pouet
Revision 2012 - Amiga Demo Competition bei Youtube (27 Min.). Amiga Forever!
Gaia Machina by Approximate @ Revision 2012 - Wahnsinn, dieses 64k Demo. Und ein genialer Sound dazu. (Pouet)
Moleman 2 - Demoscene - The Art of the Algorithms (2012) - Dieser 90 Min. Film auf Youtube gibt für Interessierte einen schönen Einblick in die Demoszene von den Anfängen bis heute.

Donnerstag Apr. 12, 2012

MySQL 5.6 Replikationsneuerungen

Auf der MySQL-Developerseite MySQL 5.6 Replication - Enabling the Next Generation of Web & Cloud Services gibt es ein paar gute Infos, was MySQL seitens Replikation so bringen wird. U.a. Global Transaction IDs und Utilities für selbstheilende Replication Clusters. Zeit wird's... Dazu kommen dann ein paar neuen Utilities:

mysqlrplcheck utility: verifies configuration parameters to ensure fast and reliable deployment of replication.
mysqlreplicate utility: manages the provisioning of a new slave.
mysqlrplshow utility: auto-discovery of the replication topology.
mysqlrplfailover and mysqlrpladmin: manages failover and switchover from a master to a slave, and provides status monitoring of the replication topology.

Mittwoch Apr. 11, 2012

MySQL DB Sharding

Wer seine Daten auf mehrere Rechner und MySQL Instanzen verteilen/partitionieren (sharding) muss, der findet inzwischen eine ganze Reihe Optionen:

Scalebase
ScaleArc
dbShards
ParElastic

Und dann gäbe es noch so etwas wie shard-query und spider Storage Engine. Weiterhin gäbe es dann noch den MySQL Cluster als kommerzielles Produkt, Clustrix und SchoonerSQL mit dbShards Erweiterung.

Mittwoch Apr. 04, 2012

MySQL Multimaster Replikation - Percona XtraDB Cluster

Wem die MySQL Replikation schon immer etwas gegen den Strich gegangen ist, der hat vielleicht mit Galera von Codership mehr Glück. Das ist eine Open Source Multimaster Replikation für MySQL, d.h. es gibt nicht nur einen Master und x Slaves, wo man nur in den Master schreiben kann, sondern man kann in alle verfügbaren Nodes schreiben. Das sollte man aber vermutlich nicht auf die Spitze treiben und die Zuständigkeiten etwas trennen, damit nicht alle Nodes auf den gleichen Daten/Tabellen "rumhacken" ;-) 

Percona ist mit XtraDB schon lange auf dem Markt und hat einen guten Ruf. Nun kommt die Replikation auf Basis von Galera dazu. Beide Produkte sind als Open Source erhältlich und das gilt auch für Percona XtraDB Cluster. Support kann man über Percona einkaufen, was das Produkt für Firmen interessant macht. Damit sollte es jetzt also möglich sein, das alle Nodes zur gleichen Zeit den gleichen Stand der Daten haben und nicht kilometerweit hinterherlaufen.

Donnerstag März 29, 2012

Links 20120328 - KVM

Ubuntu 12.04 KVM/Xen Virtualization: Intel vs. AMD - Phoronix vergleicht auf Basis von neuen Ubuntu 12.04 Long Term Support KVM, XEN und VirtualBox mit div. Benchmarks und mit Prozessoren von Intel und AMD.

Mittwoch März 21, 2012

Links 20120321 - Kernel 3.3, tt-rss, GrabInbox

Kernel 3.3 released - Eine schöne Übersicht aller Neuerungen gibt bei kernelnewbies.org. Neu u.a. Open vSwitch speziell für die Virtualisierung.
Tiny Tiny RSS - oder kurz tt-rss: Ein sehr schöner RSS-Newsreader, den man auf seinem Webserver installieren kann. Oberfläche läuft mit Ajax, dadurch fühlt sich das Ganze fast wie ein Desktop-Programm an. Mit etwas Aufwand kann man auch Twitter-Feeds einbinden und ich vermute mal, das eventl. sogar Facebook klappen könnte, wenn man diese Anleitung zu Grunde legt. Außerdem kann man sich per Sphinx auch eine Volltextsuche einbauen. Läuft mit MySQL oder PostgreSQL.
GrabInbox - Wer mehrere Facebook, Twitter oder Linkend Accounts hat, kann sich mal GrabInbox genauer anschauen, um die Accounts zu verwalten.

Mittwoch März 14, 2012

Links 20120314 - Percona XtraDB und XtraDB Cluster

Percona Server mit XtraDB Engine - Percona erweitert MySQL um einige interessante Funktionen wie z.B. detailiertere Performancewerte und um eine erweiterte InnoDB Engine namens XtraDB, die vor allem auf Rechnern mit vielen Kernen und flotten Platten wie SSDs oder Flash punktet.
Percona XtraDB Cluster - Vermutlich im Ende März 2012 wird die finale Version von XtraDB Cluster erscheinen - eine Multimaster MySQL soz. Im Grunde basiert die Multimaster Replikation auf Galera einer OpenSource Multimaster Lösung für MySQL. Durch die synchrone Replikation wird verhindert, das Master und Slave auseinander laufen. Ich bin eigentlich kein Fan von Multimaster, aber selbst wenn man das nur dafür einsetzen kann, das man einen aktuellen Slave hat, wenn der Master mal ausfällt, wäre das auch schon ganz praktisch und würde u.U. so manches HA-Setup vereinfachen. Und im Gegensatz zu SchoonerSQL ist das hier OpenSource. Support kann man über Percona einkaufen. Noch zwei Links zu dem Thema:
Percona XtraDB Cluster Feature 1: High Availability
Percona XtraDB Cluster Feature 2: Multi-Master replication
Percona XtraBackup - Wer zum großen Teil InnoDB einsetzt (am Besten ausschließlich), der bekommt mit XtraBackup ein sehr gutes Backup-Programm für MySQL (InnoDB). Wer's noch nicht kennt, ist auf jeden Fall einen Blick wert.

Montag März 12, 2012

Links 20120312 - QuickFox Notes, Graylog2

Firefox Extension QuickFox Notes - Damit lassen sich Notizen in Firefox festhalten und z.B. mit Xmarks auch synchronisieren über mehrere Rechner hinweg.
Graylog2 Open source Log management - Wer viele Rechner und Dienste hat, verliert leicht den Überblick über seine Logs und kann oft im Fehlerfall auch keine Zusammenhänge herstellen. Alles was Logs schreibt, kann hier zentral in Graylog2 reinschreiben. Es gibt u.a. auch Libs und Extender für div. Programmiersprachen wie Java, PHP, Python, usw.

Links 20120313 - SchoonerSQL

SchoonerSQL - SchoonerSQL ist soz. ein Ersatz für MySQL+InnoDB. Beides hat Schooner von Oracle direkt lizensiert und um "synchrone" Replikation und automatischen Failover erweitert. D.h. da durch diese Art der Replikation alle Nodes immer die gleichen Daten haben, kann einer der "Slaves" im Fehlerfall des Masters sofort übernehmen. Das Ganze läuft automatisch ab. Dadurch bekommt man natürlich eine hohe Ausfallsicherheit hin. Was von dem Konzept an sich zu halten ist, muss jeder für sich entscheiden. Wem eine MySQL mit Redhat Cluster z.B. nicht zusagt, für den könnte das eine Lösung sein. Hier noch ein paar Links zu dem Thema:

Schooner Resources (White Paper, Case Studies, Entscheidungshilfen, usw.)
Schooner Product Documentation
Schooner Blog

Schooner bietet noch ein Produkt namens Membrain an, das ist soz. ein ausfallsicherer Memcached, z.B. zum Speichern von Sessioninformationen.

Freitag März 09, 2012

Links 20120308 - Pine, IMAP, Portage, XBMC, VDR

Pine using IMAP -  Wie man Pine mit IMAP (und SSL) verwendet.
Limiting Portage Bandwidth (Gentoo Linux) - Wenn die Leitung nicht so dick ist, ist es ganz praktisch, wenn man beim World Update den Download der Pakete etwas einbremsen kann.
XBMC pvr-testing (opdenkamp) XVDR inkl. VDR 1.7.22 unter Ubuntu 10.04/10.10/11.04/11.10 (lucid,maverick,natty,oneric) (amd64)

Dienstag Feb. 21, 2012

Apache 2.4 - Wie geil is das denn ;-)

Apache 2.4 ist released! - Guter Artikel bei heise.de. Das Wichtigste in Kürze:

- Event-MPM: Mit diesem Modul schließt der Apache von der Performance her wohl zu nginx auf.
- Weniger Speicherverbrauch als 2.2
- Die neue If-Direktive erlaubt es, Konfigurationsblöcke abhängig von Eigenschaften einzelner Requests zu aktivieren.
- mod_sed (alles was mit SED funktioniert, sollte auch hiermit tun) und mod_proxy_html (HTML-Parser) können Antworten dynamisch umschreiben.
- mod_proxy_fcgi als einfach Alternative zu mod_fcgi (ähnlich mod_proxy_ajp)
- Eine neue Implementierung ist die Lastverteilungsmethode Heartbeat. Hierbei melden die Knoten einer Backend-Farm dem Webserver in regelmäßigen Abständen über das Heartbeat-Protokoll ihre Existenz und Auslastung.
- mod_remoteip reicht die eigentliche Client-IP durch, wenn der Apache hinter einem Proxy steht
- Im Bereich Authentication, Authorization und Accounting hat sich wieder einiges getan.
- Der Loglevel ist jetzt pro Modul einstellbar und viel feiner einstellbar
- Per mod_log_debug kann man sehr detailiert festlegen, wann man was loggen will

Apache forever! ;-)

Mittwoch Feb. 08, 2012

Links 20120208 - SYN Flood, Firefox Yoono und Tilt 3D, OpenConnect

Tatort Internet S02E01 - Nach uns die SYN-Flut: Ein ganz interessanter Artikel über eine SYN-Flood Attacke.
Mozilla Addon Tilt 3D  - Ziemlich cooles Plugin. Damit kann man sich eine Seite in 3D betrachten und die einzelnen HTML-Elemente inspizieren.
OpenConnect - Wie VPNC ein OpenSource Client für Cisco AnyConnect SSL VPN.
Mozilla Addon Yoono - Twitter Facebook LinkedIn YouTube GTalk AIM von über eine zusätzliche Sidebar immer im Überblick.

Dienstag Feb. 07, 2012

Links 20120207 - HekaFS, GlusterFS, StackOps

HekaFS (ehemals CloudFS) - Ein verteiltes Dateisystem das auf GlusterFS basiert, welches vor einiger Zeit von Redhat übernommen wurde. Auch wenn das Projekt in den nächsten Monaten komplett in GlusterFS aufgehen wird, sind ein paar interessante Artikel zu finden.
The Future of GlusterFS - Mit der Übernahme von Redhat bekommt GlusterFS natürlich noch einen ganz anderen Drive und wird wohl früher oder später auch in OpenStack (Cloud Plattform Software) landen.
StackOps - Eine OpenStack Distribution (aktuell auf Ubuntu 10.04 LTS basierend) welche es relativ einfach macht, seine eigene Cloud aufzusetzen. Aufgrund der vielen Unterstützer, wird OpenStack wohl die (private) Cloud-Plattform schlecht hin werden.


Freitag Feb. 03, 2012

Oracle - Statements ohne Bindungsvariablen

Größere Performanceprobleme bei Oracle können sich ergeben, wenn man nicht konsequent Queries mit Bindungsvariablen einsetzt. Um mal schnell rauszufinden, welche davon so laufen, kann man folgende Statements nutzen:

create table t1 as select sql_text from v$sqlarea;

alter table t1 add sql_text_wo_constants varchar2(1000);


create or replace function

remove_constants( p_query in varchar2 ) return varchar2
as
    l_query long;
    l_char  varchar2(1);
    l_in_quotes boolean default FALSE;
begin
    for i in 1 .. length( p_query )
    loop
        l_char := substr(p_query,i,1);
        if ( l_char = '''' and l_in_quotes )
        then
            l_in_quotes := FALSE;
        elsif ( l_char = '''' and NOT l_in_quotes )
        then
            l_in_quotes := TRUE;
            l_query := l_query || '''#';
        end if;
        if ( NOT l_in_quotes ) then
            l_query := l_query || l_char;
        end if;
    end loop;
    l_query := translate( l_query, '0123456789', '@@@@@@@@@@' );
    for i in 0 .. 8 loop
        l_query := replace( l_query, lpad('@',10-i,'@'), '@' );
        l_query := replace( l_query, lpad(' ',10-i,' '), ' ' );
    end loop;
    return upper(l_query);
end;
/
update t1 set sql_text_wo_constants = remove_constants(sql_text);

select sql_text_wo_constants, count(*)

  from t1
 group by sql_text_wo_constants
having count(*) > 100
 order by 2
/