George's Techblog
Enterprise ArchitectureDigital Transformation Management Training Blogs are conversations nobody wanted to have with you Michelle Wolf I'm George Georgovassilis and this is my technology blog where I write about architecture, programming, security and linux, among other things. Contact me Industries
Linux / UnixSoftware / engineering practiceAI / MLJava / JVMDOS / vintage PC
- Posts
- 292 from 22 Jul 2010 to 26 Oct 2026
- Posting
- weekly (28 in the last year)
- Kind
- personal blog
- Feed
- https://blog.georgovassilis.com/feed/
2026 24
- Improving LLM prefill on the NVIDIA GeForce RTX 4060 mobile
- Beating ChatGPT 5 on a laptop PC
- Headless boot HP z620
- Auditing VRAM: Ensuring Every Gigabyte is Real
- VScode copilot: No lowest priority node found
- Acer Nitro V15 login hangs
- Running even larger LLMs on small hardware
- VLC Flatpak won’t play videos from network shares
- Acer Nitro V15 battery charge level protection and Ubuntu
- Visual browser automation with OmniParser
- My android phone setup 2026 edition
- Running large LLMs on small hardware: Gemma 4 12B on a VRAM-constrained Radeon laptop
- OPAW: Independent Component Analysis
- OPAW: Optimal Bounds for Open Addressing Without Reordering
- RAM-to-RAM/graphics DMA transfer with the IBM PC
- OPAW: An observer-based approach to the sorites paradox and the logic derived from that
- OPAW: Real-Time Target Sound Extraction
- Restricting VS Code terminal commands to an approved commands list
- OPAW: Tracking Capabilities for Safer Agents
- OPAW: Fuzzy Extractors are Practical
- Docker, Ollama, Ubuntu & Radeon GPU
- Open Watcom C/C++ Compiler: 16-bit 8086 Optimisations Report
- Adding an entry to Nautilus’ context menu
- Automated regression testing DOS programs with DOSBox-X
2025 24
- Assigning keyboard shortcuts to VS Code tasks
- 1-Transistor feedback amplifier
- The Strategic Necessity of Enterprise Architecture in SAFe
- Minimising screen brightness in Ubuntu
- Cursor offset misalignment under Ubuntu/Wayland
- cloudflared docker health check
- An even better switching amplifier
- ICA Demo
- Disabling file input field cancels upload
- HOI4 right-click border selection fix
- Ubuntu video thumbnails in file manager
- Trim on LUKS encrypted LVM root volumes
- Screen overlays in Linux
- wpa_supplicant spam
- Gedit snap menu freeze, wrong colours
- Hiding suggested Linkedin posts
- Ubuntu on the Acer Nitro ANV15-41
- A Zabbix active agent2 template for monitoring containers and container logs
- Comparing the efficiency of DC voltage boost circuits
- Canon EOS M10 / M100 / M200 as web cams under Linux
- Ubuntu 24.04 on the HP Victus
- Run an SFTP server in a container
- Simplified double push-pull amplifier
- Wait for VM Startup with SSH: A One-Liner Guide
2024 7
2023 15
- Detecting FTL travel with LIGO
- LLMs and the Extended Mind Thesis
- Azure diaries: InUseSubnetCannotBeDeleted
- The universe is (probably) not a simulation
- Skype/Snap menus are blank
- Eclipse crashing under Ubuntu
- Ubuntu gesture volume control
- Ubuntu 22.04 on the HP Victus
- English Windows keyboard with German umlauts
- Convert HTTP response body to status code with HAproxy
- Disable Firefox media auto play
- Testing a Terraform resource deployment
- Reactivate Linux network interface after standby
- Technical debt ratio
- azapi: unsupported attribute
2022 14
- could not get netmask from lease
- The triangle of the value-creation industry
- Azure: Service API already exists
- Running clamav in Docker under Linux
- My home NAS setup, 2022 edition
- 構建完美、廉價的家庭使用網絡附加存儲 (NAS)
- Can’t log into Azure tenant after resetting Microsoft authenticator
- 我的 Android 工作資料設置
- Driver does not support any RC mode compatible with selected options (supported modes: CQP)
- Acer Nitro 5 power button broken in Ubuntu 20.04
- 帶交叉補償的單推挽放大器
- My Android work profile setup
- VLC performance on the Acer Nitro 5
- Team topologies fix the Spotify model
2021 22
- 3M Happy Text
- RAID + dm-integrity vs bit rot
- Slow rsync on ext4 filesystem
- Team organisation by capabilities
- Ubuntu 20.04 not resolving local network hostnames
- Single push-pull amplifier with cross over compensation
- Samba anonymous shares
- Mysql: the definition of table prevents operation … on table
- Just asking questions
- Ubuntu 20.04 getting wrong IP address
- Extracting field with fluentd
- Double push-pull amplifier with cross over compensation
- Search multiple PDFs in Linux
- Death penalty and justice
- Das Stück Zucker im Blumentopf
- md and dm-integrity performance issue
- USB harddrive not showing on USB 3.0 port
- Transistor Common Base Configuration – a Hidden Champion
- Monitoring input audio with Ubuntu
- Easily convert Github repos into Maven dependencies on the fly
- Skype and VLC cannot use v4l2loopback video device
- Higher frame rate with Microsoft LifeCam and Linux
2020 16
- Plausible Science Fiction is anticlimactic
- Nautilus browsing large windows share is slow
- The improved differential amplifier (based on current mirror)
- Increasing Android mobile network stability
- Constant disk access with ext4 caused by kmmp
- Jugaad takes agile to the extreme
- Voltage comparator with oscillator
- The improbable fallacy
- Function pointers in Java
- Building the perfect, cheap DIY NAS
- Cloud vs. on-premises is about shaping risk
- Force-enabling Firefox’ reader view
- First write operation to large ext4 file system is slow
- Ubuntu on the Acer Nitro 5
- The problem with standardisation
- 2019 reading list
2019 15
- Resetting a PCI device
- Fixing random sound drops with Ubuntu; only sound device is “Dummy Output”
- A crazy server recovery
- AWS diaries: serving HTML from lambda
- Goodhart’s law
- How to improve conversion rates
- Azure diaries: can’t access KeyVault
- Digitalisation vs. Automation: it is about capabilities
- Tests are not just about testing
- Error handling for failed network requests with service workers
- Case study: scalable, extensible identity provider
- The Model-View-Presenter-Controller pattern
- A differential amplifier built with a current mirror
- A better switching amplifier
- A comprehensive security enterprise architecture
2018 17
- docker-proxy port in use
- Technical Debt
- parchive: protecting backups against data corruption
- Book of dark arts: selective disclosure with CSS
- Book of dark arts: storing data in the view
- Ubuntu on the ASUS VivoBook 17
- Thunderbird forgetting passwords
- Software architecture for 5G networks
- About focus
- Cloud-specific software architecture patterns
- HTTP compression and incremental rendering
- Climbing the monolith
- Unlocking a password-protected hard disk
- Off topic: the odds of being hit by space debris
- Secure messaging in the browser
- A switching amplifier
- Phantomjs not showing text
2017 9
- Eclipse freezes on Windows 10 creator’s update
- The Accordionist and the value of specifications
- Getting test coverage reports for integration test
- Code reusability: from classes to containers
- Unjam CSS
- 2016 feed reader shortlist
- Equal height HTML elements in a container with CSS
- January blog updates
- RSA is partially cryptographically homomorphic
2016 13
- Rebuilding single services in docker-compose
- Scalability through client-driven workflows
- Of Babylonian kings or why technical users in user stories are OK
- Java synchronized method concurrent execution
- The art of copy & paste in programming
- Controlling the TP-LINK HS100 Wi-Fi smart plug
- Ubuntu 16.04 LTS on the Acer Aspire E15
- Debugging Spring REST bad request 400 codes
- Ansible local_action privilege de-escalation or: how to wait for a reboot
- Advanced web security topics
- End-to-end testing Java web applications with an embedded Tomcat
- Assembly tests
- Securing a development server
2015 11
- Defensive software architecture
- SSLHandshakeException: unsupported certificate
- Spring MVC REST controller says 406 when emails are part URL path
- Monitoring for the private Docker cloud project
- Building a private cloud with Docker
- Tomcat starts slowly in docker container
- Ubuntu on the Acer Aspire E15 (E5-571G-51TH)
- Heisenbugs with angular.js and Internet Explorer 9 or: missing console.log
- Ubuntu 14.04 on the Lenovo Thinkpad E540
- AngularJS, Internet Explorer 9 and watch error
- Fauxjsp: productive JSP development
2014 23
- Formatting USB flash drives for write speed
- Reactive programming for Java, revisited
- Running varnish as unprivileged user
- Tomcat/Scala: invalid byte tag in constant pool: 110
- When scala unitests won’t run in the Scala IDE with Maven
- Using Blogger with a custom domain: the zonefile dot problem
- Running a website on ip6
- Linux picking the best access point in a WLAN with repeaters
- Programmatically selecting a tab with angularjs and bootstrapui
- Collection of linux scripts online
- Smaller brightness steps with the Asus N56VB and Ubuntu
- Using gitub as a maven repository
- LocalContainerEntityManagerFactoryBean, Hibernate and superflous tables created in wrong database
- java.lang.NoClassDefFoundError: org/apache/openjpa/enhance/PersistenceCapable
- An easier to use Java REST client
- Running windows games with steam on a hybrid graphics card
- VLC / Ubuntu out of sync sound
- Integration testing Spring controllers
- On JPA identifiers and business keys (or why business keys are a bad idea)
- Automatically regulating volume on a USB headset with Ubuntu
- On coarse- vs. fine-grained synchronization
- Ubuntu 12.04 (64bit) on the Asus N56VB
- Tomcat, Spring and memory leaks when undeploying or redeploying an web application
2013 23
- Increasing window resize corner in Ubuntu 12.04
- IFTTT: if-then rules for the web
- Spring @Value and resolving property names with dots
- Note to self: how to post on facebook as a page
- logging container-managed datasource jdbc with log4jdbc
- JPA and postgres transaction isolation
- Ubuntu: physical power button not working
- Reddit as an OAuth provider for a Java backend
- Replacing social sharing buttons with javascript-less alternatives
- Eclipse/SVN keeps asking for keystore password on a mac
- On URL accuracy, versioning and the immutable-redirect pattern
- Speeding up development by splitting a webapp into parts
- HTTP: The importance of declaring non-cachable resources as such
- sshfileuploader: uploading large files over ssh over an unreliable connection
- mdadm woes
- Internet Explorer: Disabling clicks on a page
- Internet Explorer, zooming and resize events
- CRTL+Space not working in Ubuntu applications
- JEE6, EJB and Glassfish diaries
- CRTL + Left click on java methods/members/classes slow in Eclipse
- Hiding the address bar in mobile browsers
- Changing sub-pixel rendering in Ubuntu 12.04
- Solving the 8 Queens puzzle with bit operations
2012 25
- Connecting with Eclipse to a remote SVN repository via SSH on non-standard ports
- Ubuntu 12.10 64bit on the HP ProBook 4720s
- ORA-12519 connection errors and JUnit tests
- The jsp-file directive
- Liferay diaries
- Liferay diaries: Help! My validation errors are not showing!
- Liferay diaries: Help! My form post parameters are empty!
- Liferay diaries: Directing between different portlets on different pages
- Liferay diaries: Multiple spring form controllers in a portlet
- Liferay diaries: Log4j
- Liferay diaries: Serving resources from a portlet with Spring
- A view of youhavedownloaded.com
- Compact mockito: shorter answer notation
- Automatically starting an SSH tunnel in Ubuntu
- Ensuring JUnit test suite contains all tests
- A better eq() when matching method arguments with Mockito
- Reducing power consumption on the HP Probook 4720s and Ubuntu 12.04
- Ubuntu 12.04 LTS on the HP ProBook 4720s
- Missing history update when clicking on links in GWT and HtmlUnit unittests
- Installing a local DNS cache on Ubuntu 11.10
- Eclipse 3.7, SVNKit, Ubuntu 64bit
- Spring @PathVariable mapping incomplete path when dots are included
- Speeding up initial page view of Ajax applications with static HTML
- Reducing HP 4720s power consumption under Ubuntu Linux 11.10
- Shortcut icons on Unity desktop
2011 25
- The "exe" process on slow Ubuntu bootchart
- Adding foreign language dictionaries to Eclipse text editors and mylyn
- NPE when starting Google Dev Mode
- Cache collision and ehcache spring annotations module
- New open source project: Product Catalogue Engine
- HP Probook 4720s on Ubuntu 11.10 64bit Oneiric Ocelot
- Updating the Galaxy Mini to Android 2.3.3 under Linux
- Non-blocking JDBC with the Asynchonous Mysql connector
- Annotations, Java compiler and missing debugging information
- Ant terminating immediately in Eclipse without any errors
- Tomcat, Eclipse, Spring and reloading
- Ubuntu upstart scripts executed twice during boot
- Non-Latin characters, openID and the openid4java library
- The impact of network packet loss on HTTP latency
- Installing Lightning for Thunderbird in Ubuntu 11.04 64bit
- CSS for frontend engineers
- HTTP pipelining, Tomcat 7 and Firefox 4
- Speeding up Ubuntu 11.04 boot time
- HP Probook 4720s on Ubuntu 11.04 64bit
- Squeezing the last bit out of RPC GWT
- On translating Tweets
- Resolving smb server names in Linux
- Ubuntu 10.10 64 Bit on an HP ProBook 4720s
- Enabling the powerbutton in Ubuntu Server 10.04 on an AMD box
- Varnish, session_linger and dropped connections
2010 9
- Scaling sprite image
- Pidgin having trouble with MSN certificate – and how to fix
- ID trouble with multiple Hibernate entities on the same table
- A counterintuitive relation between CPU and memory usage
- Fixing screen brightness on a Samsung R60 and Ubuntu 10.04
- Running a java webapp in a VPS
- GWT RPC calls with Http GET method
- When IE does not load images
- Stateless user sessions with encrypted session IDs