- Time to re-evaluate my relationship to databases
- Using Claude Code with GitHub Copilot: A Guide
- OpenTelemetry and Java agents at Javazone 2025
- My talk on KTor and HTMX at KotlinConf 2025
- A Continuous Delivery reading list
- HTMX + SSE: Easy updates of HTML state with no JavaScript
- Loading environment variables in code: the simple way
- Replacing legacy systems: Proxy to learn and control
- Full stack development with KTor and HTMX ❤️
- Logback superpowers for better observability
- Reduced complexity with HTMX on the front end?
- Better syntax highlighting in Intellij IDEA
- JUnit and ParameterResolver — Caching database connections in your tests
- It’s been a while…
- Write awesome CLIs!
- SSL to the people
- Microservices reading list – part II
- Powerpoint presenters mode in VirtualBox
- A kind of Microservices reading list
- My favourite Android apps: 2014 update
- Speeding up development cycles with Docker
- Creating system docs in source control
- Juju in the cloud with charms
- Setting up CloudFoundry v1 on AWS
- Bash #4 – Quote function parameters
- Bash #3 – Default values
- Bash #2
- Bash #1
- Spotify tips and websites
- Recommended Android Applications
- JavaZone talk: The Elevator Pitch
- XP2010
- Hibernate performance and optimization
- The cost and benefits of cleaning up code
- Smidig 2009 and my talk
- My Javazone talks
- JavaZone 2009 over
- Essential Android Applications
- Java migrations tools
- Synchronized calendar and contacts
- Disconnected architecture
- Agile deployment talk retro
- SOA Myths
- Repository pattern and the domain
- The new guy and his database
- Agile Contracts overview
- DDD and generic repositories
- Setting up testdata with test data builders
- Ruby with Maven and a bit of Cucumber love
- Redesign is not going to save you
- Migrations for Java
- Agile databases
- Learning to program
- Moving on
- Norwegian government open sources travel expense project
- Quicker JUnit Spring context tests in Maven
- Jetty might become an Eclipse project
- Smidig2008 videos online
- DNS SOA
- Clover saving time in development
- Scala and JRuby compared for scripting
- Two futures of software testing
- Slides on agile support and operations
- Toyotaism
- Kanban explained
- Report on zero-defect code
- JavaZone 2008 videos online
- The best regular expresion plugin for Eclipse
- JavaZone 2008 is over
- Learning Scrum
- Agility in operations
- Database as a service
- Abstractions always leak
- Shorter turnaround with JavaRebel
- Swimlane testing at Eclipse
- Incremental migration
- Agile a thousand years ago
- Synced again
- Agile smells
- Fit/Fitnesse Fixture Gallery
- Where are you in the agile marathon?
- High performing agile teams
- Documenting and testing the browser
- The Hotel Cafe Tour 2008
- SOA and it’s promises
- Finding the good scrum
- Up north: the community is booming
- Spring Security 2.0 released
- BDD ideas summarized
- Photoshop online
- Spring config without XML
- Spring Batch concepts
- Multiple teams and source
- GUTs and BUTs
- Database migrations
- Fixed price bids in agile
- Automate it all
- Our responsibility as good developers
- DWR on the move
- Tier based architectures and scaling
- The Scrum Papers
- Scrum practices checklist
- Performance testing tools
- 9 boxes for writing user stories
- Pair programming and stress
- DDD and Repositories
- I write shitty code
- 10 ways to screw up despite scrum
- There IS no silver bullet
- Deploying your app in several environments
- More typing
- Experiences for distributed teams
- Constant change
- Extraordinarily typesafe
- Defining architects
- Lightweight in a heavyweight organisation
- Releasing a minimal set of features
- Spring testing
- RUP to fix Scrum?
- Spring Webflow Zen
- Rails on Glassfish 3
- PDF tips
- Generating PDFs
- Some good OO design
- Sigma 18-200mm DC OS arrived
- Load testing Spring Webflow
- Seam 2.0 beta out
- What OS to use for Continious Integration?
- Scrum from the trenches
- Oracle SQL Developer
- Agile outsourcing
- Service coupling
- Test RegEx online
- Continious Integration Servers
- Maven guide online
- Domain Based Web Testing
- Near infinite scalability
- QCon summary
- QCon 2
- QCon on it’s way
- Profiling your J2EE application
- Integration, development and stubs
- Planning poker
- Ultimate Mindstorm
- Code reuse is a myth
- The backups you never make
- Cleanup directory
- Big screens
- Malcolm Events
- Spring and clustering
- Symlinks for Windows
- Character conversion in J2EE webapps
- XBean configurations
- Snake Oiled Architecture
- Repeating the past
- Service Evolution
- Interesting viewpoints on EAI
- POJO validation
- JavaZone 2006 content online
- Synergy-Share mouse/keyboard
- Health checks for the source
- Symbian sweetness
- TestNG and Junit 4 compared
- A messy network..
- Videos from the Øya festival
- OpenSource WS Implementations
- You can’t outsource passion
- Opinions and alternatives to Google Web Tool Kit (WTK)
- Joda time details
- Managing workers
- The future of mobile Java
- MIDP 1.0/2.0 SSH client!
- Java on Debian
- Good Java API site
- Curvy corners for your divs
- New theme
- The Saudi Arabia of the north
- Fitnesse experience
- Computers don’t do big picture
- Spring Architecture
- Stand up meeting patterns
- Lazy loading described
- Adobe Lightroom beta for Windows
- Acegi Security System for Spring and more
- Build server in a box
- Google Web Toolkit tutorial
- Photo essays
- When to use conversations
- Semantics and SOA
- SOA and agility
- Oracle XE on Linux
- Coverlipse – Visualize JUnit-test coverage
- The final steps of installing D-Link DWL-G520+ on Fedora Core 5
- Krugle – the search engine for developers
- 20GB Hosting
- Sync GCal with your phone
- Baaaad security
- Does SOA really bring agility?
- Google Web Toolkit
- Reporting
- Toplink Essentials JPA released
- Glassfish final
- Java EE 5 has passed
- WebServices is not RPC
- BPEL Events
- J2EE scalability and high availability
- Blogs and careers
- JSR-170 explained
- NetBeans platform development
- Character encoding nightmares
- Naming the beast
- ESB Shootout
- SOA Advice
- Back in business
- Subversion plugin for Eclipse
- Booch on SOA
- DWR 1.1 released
- Another one on SOA antipatterns
- Restricting access to methods to avoid DTOs
- Neat graphing JS library
- Short Maven site tutorial
- Minimise getters
- SOA Service design principles
- Excellent 2PC details
- Yahoo UI design patterns and library
- Junit 4.0 released
- Paging in ORM apps
- Some good advice on Spring beandefinitions
- Load tested opensource
- Using the EJB3 API outside the container with TopLink
- Handy tool
- Expensive hobby
- TopLink 10.1.3.0.0 finally ships
- Server Side Symposium comes to Europe
- Old games online
- Fowler on fluent interfaces
- WordPress 2.0, not code friendly
- OS Galore
- Geronimo 1.0 released… Really ;)
- Glassfish persistence interview
- Servlet 2.5 changes
- Selenium article
- Got resources?
- JBI and SCA
- Apache Geronimo 1.0 released
- Spring Mock classes intro
- Raible liked the experience
- Getting rid of the anemic domain model
- Maven 2.0 intro
- Firefox 1.5 is released
- Java consolidation
- Struts and WebWork merges
- Understanding cache
- Hibernate Caching
- TC4/TC5 – Character Encoding
- SOA Antipatterns
- Spring transaction details
- Webstats
- Resize partitions with Linux
- Valdiate XHTML as you go
- Trails .8 released
- Maven 2.0 released
- Firefox is acting up
- Blog for sale
- SOA Debate at Oslo JUG
- Back on Bloglines
- Hibernate arrives on .NET
- RSS junkie
- Hibernate vs. TopLink
- CSS Tricks
- Video on Domain Driven Design
- DAO layer design
- BPEL Cookbook
- JavaZone over
- Cascade on buy
- Excellent Photoshop tips for photographers
- DAO Layer
- Maven setup
- Camera filters
- DSLs explained
- Interesting form for a conference
- Domain Logic in the database?
- Testing your DAO layer
- Struts towards Rails
- Spring JDBC and MVC slides
- Rod Johnson on Java persistence
- Cafepress alternative
- How to sync Outlook and Sunbird?
- The EJB history debate
- Rails, meet Trails
- Taming JSF
- JavaScript in IE and Mozilla
- Karma, karma!
- Painless AJAX, it’s DWR
- Amazing taglib for displaying data in tables
- Neward on EJB history and future
- J2EE hosting
- Fowler on SOA
- AJAX spell checker
- Message Driven POJOs
- FreeBSD 5.3 to FreeBSD 5.4 binary upgrade
- JavaScript Leak Detection
- Geronimo Resources
- Eclipse GUI plugin – Jigloo GUI Builder (SWT and Swing)
- Hibernate Tutorial – The Road to Hibernate
- FreeBSD links collection
- A wake-up call for webservice lovers (and the rest of us)
- Web app memory leaks
- .NET catching up
- Google Keywords
- SOA explained (sort of)
- Fast testing of EJBs
- Acceptance tests from user defined rules
- Apache Organisation
- Have your java-app connect through proxy-server
- FreeBSD thread started!
- Hands on Tomcat and OpenLDAP setup
- Geronimo Design part 2
- CSS Framework
- Spille on the dark side
- Spring seminar with Matt Raible
- T-Shirts
- AjaxTags in Struts
- Microsoft patents OR-Mapping
- Geronimo Design
- IBM embraces corporate blogging
- Spring Love
- All your data belongs to Google
- Java with Spring as effective as 4GL
- J2EE transactions
- SOA savings
- Does SOA exist?
- Integration Servers
- DWR and Ajax experience
- SiteMesh article
- AJAX your beans
- Eclipse ORM plugin
- Spring IDE updated
- Spring Web Flow PR2 out
- Doc your Spring context
- Comment spammers driving me insane
- Spring Web Flow Visual Editor
- Hibernate vs. Rails
- Eclipse 3.0.2 released
- Test Coverage inside Eclipse
- Smooth draggable items through JavaScript
- Spring success stories
- WebServices interop
- Java and PHP communities
- Visualize Wiki editing
- The language isn’t everything
- Getting rid of getters and setters
- Aspect consolidation
- Rands and the Free Electron
- JSP Tag files
- Dependency Injection concerns
- Display available keybindings in Eclipse
- JavaBeans validation through annotations
- Firefox still alive
- New Apache top level projects
- MVC framework for Portlets
- Richard Grimes on .NET weaknesses
- Spring slides
- Rod Johnson on the state of Java
- More Ajax libraries
- Charactersets and internationalisation in J2EE
- Church of POJO
- Ajax again
- Oracle releases EJB 3.0 implementation
- Eclipse Plugin Tutorial
- IDEA rant
- Web clients and the Ajax approach
- Hibernate 3 hits the street
- Music Rights Insanity
- More Hibernate performance tip articles
- Hibernate Performance articles
- Manager stereotypes
- Comment spam byebye
- Test coverage with Hansel and Gretel
- Firefox hits 25 million downloads
- Smooth PVR software for Windows
- Running on WordPress 1.5
- WordPress 1.5 released
- Spring and EJB article
- Annotations from DeveloperWorks
- Web Tools for Eclipse
- Control
- Surrogate test objects
- IntelliJ free for open source projects
- Certified
- Spring without IoC
- Neward on SOA hype
- Spring Seminar with Rod Johnson
- Oracle on the open road
- Liferay and POJOs
- Hibernate Tools
- Java for your TiVO intro
- Trackbacks spam finally hit me
- Pattern repository
- Struts 2.0 dropped
- Javapolis videos online
- Generics gotchas
- Lucene Intro
- Investing in Design
- Redesign of The ServerSide
- Hibernate Query details #2
- Exim and sender verification
- Weird VM bug to take note of
- Exim4 commands
- DNS insanity with Java
- Hibernate as an JTA participant
- Object Validation through annotations
- Eclipse architecture
- Free 10GB storage
- Hibernate Schema Management
- Flex and J2EE intergration
- Struts and ASP.NET compared
- Lucene all over the place
- Stupid move
- Java Performance Tuning Tips site
- CSS Templates
- Interview with Ted Neward
- SOA Hype
- Character encoding in JSP pages
- Survey claims Eclipse and JBOSS as market leaders
- Hibernate Query details
- Happy new years
- Design for concurrency
- More J2EE best practices
- Outraged Spille
- JavaPolis slides
- The best FireFox tip ever (faster pageloads)
- Struts best practices article
- Hibernate 3 in beta
- Spring TopLink support details
- Eclipse platform and customisation
- Formatting object data in Eclipse debugger
- FireFox NY Times ad
- Google suggests dissected
- Comment spam on WordPress
- Hands on Geronimo tutorial
- Summer preparations
- Agile book for download
- Debugging essentials
- Log4J and the Mapped Diagnostic Context
- Happy blogger without spam
- Spring TopLink support
- Graham Hamilton on the future of Java
- Thunderbird 1.0 is released
- Creativity in the workplace
- FireFox tip
- Thunderbird 1.0 RC is out
- Project management Crystal Clear style
- Good Java books
- Extensive Firefox review
- Hiring developers
- IBM DeveloperWorks with more concurrency
- Java Properties editor
- Good AOP Usage
- Free and opensource portlets
- Portal Community on java.net
- Language Oriented Programming
- Sourcecode Search Engine
- CMS Jungle
- Mobile Viruses here we go
- JDJ advertising overload
- JVM options list
- Geronimos market effect
- TopLink Interview
- Collective code ownership
- J2ME Opensource library
- Mastering J2EE App Dev
- The OpenSource Java debate
- VersionTree Eclipse
- Geronimo vs. JBOSS
- Extending Struts article
- .NET ORMs
- FireFox 1.0 is here!
- FireFox 1.0 today… soon…
- The road ahead for Struts
- Spille on Inversion of Control Containers
- Road to Agile webinars
- Fowler at OOPSLA2004
- The parts of the J2ME platform
- Eclipse Tips
- Nokia Series 60 for the masses
- Fowler follows up the DTO debate
- Spring Web Flow extension
- Another OpenSource CMS
- Spring Dependency injection basics
- Domain Driven Design
- Fowler on tackling requirements creep
- Aspects explained
- Simple code
- Reusable components across webframeworks
- DeveloperWorks article on java.util.concurrent.lock
- Advanced obfuscating explained
- RUP and XP explanation
- Continuing the debugger thread
- Some people don’t use debuggers
- Concrete EJB 3.0 examples from SUN
- The OO vs. ER fight
- Languages for the JVM
- Replacement complexity
- Extensive generics FAQ
- Maven propagation of properties
- Create Word documents with free library
- Web statistics
- JIRA 3.0 hits the street
- Raible is comparing web frameworks
- Heap dump analyzer from sun
- Google desktop search released
- TDD Book chapters
- Excellent promotion of agile methodology
- Spring MVC tutorials
- Simplifying EJB development with EJB 3.0
- Java cache library
- Open source Knowledge Management and Document Repository solutions
- Upgrade gone wrong
- Save the Kittens, don’t use Struts!
- Missed Keith Donalds talk
- Code generation saves time and money
- SUN and Kodak settles
- Keeep QA away from your unit tests
- Voice your views on what to include in Java codename Mustang
- Gmail Notifier
- Making the hard decisions
- Flex alternative
- MacroMedia gives away Flex to noncommercial users
- Home entertainment server extreme
- Neward on OODBs
- Log4J and Nested Diagnostic Context
- Open Source ERP, CRM, SRM and IM system
- Neward and Johnson on EJB and Spring
- The Ultimate Matrix Collection
- Login/logout issues with JSP and Servlets
- Freeware PDF Writer
- Java lost to insane software patent
- J2SE 5.0 in a nutshell
- Stuff to learn in J2SE 5.0
- An interview with the Tigers’ trainer
- All time high
- EJB 3.0 FAQ
- Books
- Craig McClanahan is blogging
- J2SE 5.0 hits the street
- Win XP Icons
- Java makes love not war
- The Real Cost when MicroSoft says free
- Spamassassin 3 out
- JVM Options list
- Eclipse Visual Editor 1.0 released
- The connection between refactoring and patterns
- XP Sunshine story
- www.portforward.com
- JavaZone 2004
- Carrear advice
- Opensource CMS
- Accepting differences in the workspace
- Tiger features in light of the Java philosophy
- Spam me baby
- Java vs. .NET mindset
- Organizational patterns for agile development
- JavaZone coming up
- FirstTuseday Oslo 5 years
- Sunshine TDD story
- Apache Geronimo M2 released
- Eclipse vs X guides
- Ted Neward interview
- Advanced code folding in Eclipse
- OpenSource CMS to check out
- Books to buy
- Tailing logs in Eclipse
- Eclipse Testing
- Struts 1.2.2 released
- Mozilla site remake
- J2EE testing
- Struts and Synchronizer Token
- Siemens Mobile Phones
- Mobile Phones site
- Hibernate 3 ready for testing
- Java IDE comparison
- Metrics plugin for Eclipse
- Nokia Developer Suite 2.2 with Eclipse support
- In container J2EE testing
- JAAS authentication
- Struts and multipage form validation
- WTK 2.2 beta
- EJB Unit testing tool
- Struts and multipage forms
- Java design patterns
- Handbook of Software Architecture
- FindBugs and DeveloperWorks
- Moron or Asshole developers
- Rickard on inversion of control
- Portal software
- Clothing stores on the net
- Outlook replacement
- Hibernate for .NET
- Product pricing
- Javadocs site
- Geronimo book
- Tableless Microsoft site
- XP SP2 availability
- EJB 3.0 in a nutshell
- The Joel test
- eXo Platform features
- Expose EJBs as webservices
- Event listener for Servlet context
- Check for excessive Threads and deadlocks in JDK 5
- Python on .NET
- C++ in .NET
- Panorama stitching software
- Eclipse plugins
- Wouldn’t it be sweet…?
- Security framework for Java
- It’s getting closer…
- Longhorn features and intro
- Post number 100
- Spring AOP intro
- Tutorial on Spring, Hibernate and Server faces
- 6230 has landed
- Taking risk and starting companies
- Hiring for small software companies
- Joel on the MS API development
- PHP 5 and the road
- Visual studio C# refactoring
- Thread safe servlets
- Struts 1.2.1 beta
- DOOM3 goes gold
- Nice Firefox and Thunderbird theme
- Geronimo intergration
- Nice quickie on Hibernate
- JFluid profiler
- Eclipse 3.0 released
- Making B&W pictures from digital color photos
- K700 as a remote for any software
- K700 available in dev shop
- Eating the EJB elephant
- Master Thesis Completed
- Web Caching
- Spring Rich Client
- Struts upgraded to Apache root project
- AppFuse Spring integration
- Eclipse 3.0 RC2
- DAO Tutorial
- Generate favicon
- Cool concert
- Cool music site
- Project documentation
- JSF and JSP
- Java and .NET intereoperability
- Life with the net
- Java garbage collection tuning
- Creating JSP 2.0 tagfiles
- Choosing your education
- J2EE developer focus
- Step back in Eclipse debugger
- Dating for nerds
- Media sentimentality
- Classloading
- .NET for Java developers
- IBM J2EE vs. Microsoft .NET White Paper
- VisualStudio 2005 C# IDE Enhancements Walkthrough
- Free XMLSPY Home Edition License
- Your XP project needs the right staffing
- A world of outsourcing
- Excellent Transformers music video
- The Logic of Torture
- Simpler RMI
- CSS Creator
- Design for your customers
- Iraq not a threat to US security
- Computer in my car
- Coders are not designers
- FindBugs
- Handling uncaught exceptions in JDK 1.5
- Excellent Weather Software
- J# and Java interoperability
- Eclipse 3.0 RC1
- Good article about Pixar
- Facing your own mistakes
- Exim config for high loads
- Apache Rewrite for changing my blog system
- C# FAQ by the MS Team
- Eclipse conditional breakpoints
- The day after tomorrow
- Another one on hiring
- Interviewing Java developers
- Using XP in a Big Process Company
- Apache Geronimo moved from incubator
- SonyEricsson S700 Whitepaper
- Interesting .NET tools
- Business Integration Engine
- J2EE without EJB
- Free Java books
- Iraq WMD Proofs
- Car safety
- Google Rankings
- Web Developer Extension
- Spring and Hibernate
- The top 10 (more or less) J2EE best practices
- Great Design Fab Five
- Best C# Bloggers
- Politics of Work
- Java tips
- Exim Configuration Zen
- Work Proxy Prison
- Eclipse M9 released
- Blogging in software companies
- WordPress 1.2 released
- But wait… Again…
- But wait
- Lets give WordPress a spin