Jag har en applikation som har körts en längre tid på Debian 4.0. Nu så har jag fått nya servrar med Ubuntu 9.10 och helt plötsligt så tog uppstart av applikationen allt från några millisekunder till flera minuter. Skumt… Så det var bara att börja steppa koden för att ta reda på varför det tog sån tid att starta. (Läs mer…)
26 januari, 2010
Problem med java.security.SecureRandom på Ubuntu
Posted by Anders Hedström under J2SE, Java, Systemutveckling, linux1 Comment
20 januari, 2010
Att uppgradera till Spring Sercurity 3 är krångligare än vad du tror
Posted by Henrik Lundgren under Spring FrameworkLeave a Comment
Nu när Spring Security 3 precis har släppts så gav jag mig på att uppgradera mitt projekt till den nya releasen.
Utan att läsa på så uppdaterade jag min pom.xml och belönades med ett trasigt bygge.
Ovanligt nog så har Spring släppt en release som inte är bakåtkompatibel, man har nämligen flyttat på de flesta klasser du använder, t ex Userdetails och GrantedAuthority.
I de flesta fall rör det sig om att bara ändra dina importer men det är ju inte en drop-in uppgradering.
Använder ni dessutom Spring Web Flow bör ni vänta med uppgraderingen eftersom Web Flow 2 har ett beroende på en flyttad Spring Security klass. Googlar man på det så ser man att folk har löst problemet genom att skriva en egen Web Flow patch, så det går att komma vidare om man vill.
Men som sagt, att uppgradera till Spring Sercurity 3 är lite krångligare än vad du kanske tror.
20 november, 2009
Rena kommandoradsapplikationer i Java kanske inte hör till vanligheterna nu mera, men det finns tillämpningar. Jag håller för tillfället på med ett sådant program. Det är en slags (av prestandaskäl) multitrådad övervakningsapplikation. Varje tråd ligger och pollar en databas efter något att arbeta med i ganska täta (några sekunders) intervall. När tråden hittar något att processa, så pratar den bl.a. JDBC med en stordatorapplikation.
Denna typ av beteende skulle vara ganska svårt att få till inom ramen för en appserver. Att starta trådar är ju inte aktuellt. Att använda Quartz eller ha ett cron-jobb som anropar en EJB via wget eller liknande skulle vara möjligt men verkar lite krystat, speciellt då den pollar så pass ofta.
En vanlig Java-applikation fick det bli, således. Vad bör man tänka på när man skriver en sådan applikation? Den är ju nästan som en slags server, som skall köra kontinuerligt. Den får inte gå ner så lättvindigt och den kommer sannolikt köra på en Linuxburk i ett serverrum någonstans utan något egentligt användargränssnitt. Här kommer således några tips för den standalone-inriktade.
(Läs mer…)
9 november, 2009
Problem med Eclipse 3.5 i Ubuntu 9.10
Posted by Anders Hedström under Eclipse, Systemutveckling, linux | Etiketter: eclipse 3.5, ubuntu 9.10 |[2] Comments
Efter det att jag uppgraderat till Ubuntu 9.10 så uppstod det lite problem med min Eclipse 3.5 installation, vissa knappar i olika dialoger slutade att fungera. Efter en snabb googling så visade det sig att det är en bug i Eclipse som är fixad i Eclipse 3.6 M2. För att få Eclipse 3.5 att fungera i Ubuntu 9.10 så kan man starta Eclipse med följande lilla skript:
#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/path/to/your/eclipse/installation/dir/eclipse
6 november, 2009
I ett tidigare inlägg om Distribuerad versionshantering med Git nämnde Robert hur man kan lägga in lite smarta saker i ~/.bashrc om man använder bash-shell. Då kan man på ett tydligt sätt se vilken branch man använder och om det finns filer som inte är add:ade till git-repositoriet.
~/.bashrc
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]$(parse_git_branch)\$ '
Då ser prompten ut nåt sånt här:
johnny@puma-ubuntu:~/dev/projects/cygni/demo-stuff[master*]$
Som ni ser så syns det tydligt att master-branchen används och * indikerar att det finns filer som inte är inlagda i Git-repot.
Git-konfiguration
Utöver detta kan man skapa filen ~/.gitconfig för att underlätta det vardagliga arbetet med Git. Dels kan man skapa olika alias – exemplet nedan visar hur git st kan användas istället för git status. Du kan även ange namn/e-post som gör att dina pushar/commits ser lite snyggare ut. Color-sektionen underlättar oerhört mycket om du använder ett shell och Git tillsammans. Då får du helt enkelt color-coding i prompten vilket gör att Git-outputen blir enklare att läsa!
~/.gitconfig
[user]
email = johnny.puma@acme.se
name = Johnny Puma
[alias]
st = status
ci = commit
br = branch
co = checkout
df = diff
lg = log -p
[color]
ui = auto