Nicolas Bouliane's blog posts
Posts by Nicolas Bouliane
- Posts
- 212 from 21 Jun 2010 to 16 Sep 2026
- Posting
- monthly (8 in the last year)
- Kind
- personal blog
- Feed
- https://nicolasbouliane.com/blog/feed.rss
2026 6
2025 8
2024 10
- What's new for Berliners in 2025
- A reading list for Japan
- Bringing the Bürgeramt appointment finder back online
- Cool URLs don't change
- Support networks
- Vodafone Germany throttles upload speed
- Cycling across Malaysia
- Crossing Singaport/Malaysia border on a bicycle
- Fixing TimeoutErrors with Playwright on MacOS
- What's new for Berliners in 2024
2023 10
2022 14
- Automated cache clearing on All About Berlin
- How I built currency conversion tooltips
- How to tighten the steering head bearing on a V-Strom
- How to apply for an Indian Tourist Visa in Kathmandu
- A map for every journey
- Machine talk
- Digital gardening
- A matter of maintenance
- Making quieter technology
- Please ask again
- Renault Kangoo KC torque settings
- How to clear the nginx static cache
- How to write clearly
- How to replace the camera lens on a Pixel 5
2021 13
- Halving All About Berlin's load time
- 10:10 is the best time to look for a Bürgeramt appointment
- Road review: DJ703I, Romania
- How to extract subtitles with ffmpeg
- How to change the spark plugs on a Renault Kangoo 1
- How to replace the air filter on a Renault Kangoo I
- Where to find Renault service manuals
- Fix a Kangoo door that won't open from the inside.
- Renault Kangoo dimensions (first gen)
- How to enable root login on Ubuntu
- The Mietendeckel is gone. Here's what it means.
- ssh-copy-id does not work with rsync.net or Hetzner
- Every issue I've had with my Airpods, and how to fix them
2020 15
- Trading time for money
- Weird things you'll find when reading EXIF data
- How to fix an accidental Nextcloud docker image update
- How to replace the rear brake pads on a V-Strom 650
- How to install heated grips on a 2017 V-Strom 650
- Running multiple docker-compose projects on the same ports
- How to fix a quiet phone speaker on a Samsung S9
- N26 transaction confirmation bug
- How to fix a beeping/buzzing hard drive
- No script is too simple
- V-Strom won't start? Try this.
- Markdown Notes is going offline
- Why Docker for Mac is making your website slow
- Python 3 urllib examples
- Why I disabled comments on my websites
2019 11
- How to open a file in Preview or Finder from the Terminal
- Using a MasterCard in Central Asia
- Driving in Azerbaijan
- Driving in Armenia
- Driving in Georgia (the country)
- How to fix "The Plugin Store is not available" in Craft
- My motorcycle packing list for very long trips
- How to fix HP scanning errors in MacOS
- Why Chrome 72 broke your Chromecast app
- How to clear Terminal output on Mac
- Google Drive trash won't empty? Here's the fix
2018 4
2017 4
2016 16
- Fixing the "protocol error: bad pack header" error in git
- Automatically tagging people for code review in Gerrit
- Playing with data: linking soldiers and war graves
- Cracking open the Canadian Great War Project database
- Parsing 575k military records with Python
- Parsing 65 000 war grave records with Python
- Berlin now and then
- Fixing Jasmine "encountered a declaration exception"
- LocalStorage gotchas in Internet Explorer and Safari
- The Liberation of Paris
- How to create static class constants in ES6
- How to speed up apt-get on Digital Ocean
- How to make sure your og:image is used by Facebook
- How to fix "Cannot read property 'failedExpectations' of undefined"
- Deleting directories while preserving symlinks
- Moving from Canada to Germany
2015 21
- The Berlin airlift
- The way home
- How to throttle scroll events in AngularJS
- Finding your own phone number in Android Lollipop
- Disable "pull to refresh" in Chrome for Android
- What the travel guides omit
- How to replace accented characters in a Javascript string
- Multiple git stashes
- input.select() does not work on iOS
- Fixing "/usr/bin/env: node: No such file or directory"
- Using CSS3 transforms and calc() in Internet Explorer
- Lessons from a month in Berlin
- How to fix slow file read/write in Node.js
- Berlin at last!
- Second stop: Rome
- Le guide du programmeur: Unicode et UTF-8
- How to write partial derivatives in LaTeX
- From Montreal to Berlin: what you need to know
- Pagination with Django's generic ListView
- Return a user's own objects with Django's class-based views
- Django DeleteView with AJAX
2014 37
- What is "ReferenceError: Cant find variable: __gCrWeb"?
- Fixing Tunnelblick disconnecting in OS X 10.10 Yosemite
- Telling if a field is required in Django templates
- Diagnosing a bad ping
- Specifying a port when connecting with SSH
- Fix garbled file names in SMB shares
- Following redirects with the Django test client
- Ping once and return true/false
- Print preview significantly different from Inspector in Chrome?
- What is Cross-Site Request Forgery (CSRF)?
- .find() vs. .children(): which one should you use?
- Fix line break issues with FileZilla
- Is my router affected by the Heartbleed Bug?
- Disabling font zooming in Chrome on Android
- PHP preg_match failing for no reason? Blame UTF-16.
- What is SQL injection?
- What is XSS injection?
- The connection string to use with PHP, dblib and SQL Server
- The cynical developer's dictionary of project management
- Javascript, jQuery and parent windows
- Fixing 'Can't use function return value in write context' in PHP
- Knowing the difference between mtime, ctime and atime
- Get the number of lines of code for a project
- Remove the Chrome notification icon from the Windows task bar
- SQL Server: How to add a month to the current date
- Solving AirPort Extreme FTP issues
- How to see how many lines of codes were changed in a day with git
- How to force Apache to serve UTF-8 by default in .htaccess
- How to force IE8 to render without compatibility mode
- Getting the hash of the first commit in git
- How to create big test files in OS X and Linux
- How to download an image in Python
- How to push all branches in git
- Create a global .gitignore in git
- Push a git to multiple repositories at once
- Quick tip: the yellow USB port on ThinkPads
- Use Sublime Text's Package Control behind a proxy
2013 40
- How to install Festival text-to-speech on Ubuntu
- Common pocketsphinx mistakes and how to fix them
- Install easy_install on Ubuntu and Linux Mint
- Can't output OS X audio to AirPlay? Here's the fix.
- Having issues with your first Django deployment on Heroku?
- Twitter apps and localhost
- Registering a .CA domain - what the CIRA wants
- Add some color to the OSX Terminal
- How to create aliases to git commands
- Quick tips: text selection
- OS X Terminal: Open the current folder in Finder
- How to fix long page load times on Heroku
- How to get a reference to a CodeMirror instance
- Tastypie: only allow a user to use its own resources
- How to use the HTML5 full screen API (with examples)
- How to disable the Chrome notification icon in OS X
- Where to find php.ini in Ubuntu
- How to change crontab's location
- How to remove the dropdown arrow in Internet Explorer
- Linux tip: repeat a command as sudo
- How to search through your git commit messages
- Change the logon keyboard layout in Windows 7
- How to launch the Windows Phone Emulator without Visual Studio
- OS X: Make a sound when commands finish running
- How to clone model instances in Django
- Django: How to remove fields from a Form
- How to show grep results results in context
- How to connect to another database in psql
- How to edit commits and erase mistakes from git history
- Django unit tests: How to populate request.raw_post_data
- Mobile web design: how to disable zooming on your mobile sites
- How to prevent Safari from resizing text in iOS
- How to use different CSS styles depending on screen orientation
- How to fade images on load with jQuery
- How to convert dates to UTC in vanilla JavaScript
- How to isolate the date from a Date object in Javascript
- Adding days to a Javascript Date object
- How to properly validate email addresses in Java
- How to validate email addresses in PHP
- How to fix the "#1046: No database selected" error in phpMyAdmin