I’m on an old Ubuntu version, and just needed something to dump a Redis value as JSON.
sudo -s
git clone https://github.com/nicolasff/phpredis
cd phpredis
aptitude install php5-dev -y
phpize
./configure && make && make test && make install
echo "extension=redis.so" > /etc/php5/conf.d/20-redis.ini
service apache2 restart
And then
<?php
#
# Serves the JSON clob from Redis
#
header('Content-Type: application/json');
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$data = $redis->get('movie_database');
echo $data;
?>
Tag: apache
mod_browserid
aptitude install libcurl4-gnutls-dev ruby cmake apache2-prefork-dev ln -s /usr/bin/apxs2 /usr/sbin/apxs cd /opt or /usr/local YMMV git clone git://github.com/lloyd/yajl cd yajl/ aptitude install ruby cmake ./configure && make install cd /opt or /usr/local YMMV git clone https://github.com/mozilla/mod_browserid cd mod_browserid/ make
apache, svn, mysql för prov
Idag skriver ett par elever omprov i kursen Avancerade Webbteknologier 1 i Agile Web Developer-programmet på kyh.se (yrkeshögskola). Deras prov består av två delar: en pappersdel och en “praktisk” del.
Den praktiska delen presenterar ett antal handritade skisser över en webbplats. I det första provet skulle de göra en enkel version av twitter. I detta prov ett enkelt forum. All hjälpmedel är tillåtna och poängen är att det skall vara likt en riktig arbetssituation. Studenten kan då visa vad han eller hon faktiskt kan åstadkomma på en viss tid, visa upp på kod han/hon väljer att checka in och visa prov på färdighet. Pappersdelen visar mest på nivå av kunskap – inte den hantverksmässiga färdighet man som utvecklare faktiskt bygger upp.
Hur funkar det då?
Förra gången uppstod konstiga fel för en del av de som satt på Windows och körde Eclipse med Subclipse. Problemet visade sig vara att de som inte köra “pure Java”-versionen, aka SVNKit, utan istället köra native-bryggan inte alls kunde interagera med svn-repot. Detta hade tidigare inte varit något problem under kursen, men då var alla läsoperationer tillåtna för hela världen (anonymous access) och endast skrivning krävde inloggningsuppgifter.
“Svn-repot” är egentligen flera repon – ett repo per student. De är skyddade så att bara ett konto kan komma åt just det repot, både vad gäller läs och skriv (och alla andra operationer). Repot accessas via HTTP och Apache via mod_authz_svn / mod_dav_svn (man får akta sig så att dav_svn.conf som medföljer vid installation inte används med default-inställningar).
Så, jag satte ihop ett par skript (bash och python) som
- skapar svn-repo med branches, tags och trunk-kataloger (om det inte redan fanns),
- skapar htpasswd-fil,
- skapar apache-config-fil, samt
- skapar MySQL-databas (en per person) och populerar med lite grunddata.
Konfiguration av Apache
Hela webbplatsen kör på en egen virtual host och konfigurationen för detta ligger i en enda fil. För varje student genereras följande:
<Location /live/carw949> AuthType Basic AuthName "Live - carw949" AuthUserFile /srv/prov/live/carw949.htpasswd Require valid-user Order allow,deny Allow from all </Location> <Location /svn/carw949> DAV svn SVNPath /srv/prov/svn/carw949 AuthType Basic AuthName "AD10Gbg carw949" AuthUserFile /srv/prov/live/carw949.htpasswd Require valid-user </Location>
Utöver det kör jag också ett cronjobb som checkar ut deras kod var tredje minut och lägger upp “live”. (Även denna “live”-katalog är skyddad och access ges bara till ett enda konto.)
Konfiguration av Subclipse och Eclipse
Idag fungerar det fint utan problem för alla. Det gäller dock att man i Eclipse (med Subclipse-plugin) väljer att använda SVNKit istället för JavaHL (JNA). Installeras enklast via Help » Install New Software och med arkivet som finns på http://subclipse.tigris.org/update_1.6.x. För att kontrollera vilket SVN-lib (eller backend) som används så är vägen denna:
Window » Preferences
Team » Svn
Svn Interface » Client: SVNKit (Pure Java)
Alla skript ligger under http://wendt.se/software/education/kyh.se/awt1/ och do-it-all.sh gör “allt”. Filen elever.txt innehöll alla elever och var på det format som jag fick rått från SCAS (administrativt system).
Klassletning
Om man någon gång vill leta efter, eller bland, klasser så verkar http://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ ha allt man kan tänkas vilja ha. :)