Paris: 4 days, one backpack
Someone at work asked how I was heading to Paris for four days with only a rucksack, a rucksack that seemed to be packed with camera equipment. I asserted that, yes, I really can fit that much stuff into my North Face Borealis rucksack.
Here is everything that went into that rucksack for four days in Paris:
Across the top:
And that Amazon Basics packing bag in the bottom left contains all my spare clothes for the remaining three days, plus the essential toiletries and medkit.
I think next time I'd lose the speaker, and probably take an extra top or two. We did over 55km of walking around Paris in those four days! The weather was a bit grey and wet but we had a great time. Check out some of my photos over on my photoblog!
The project I'm currently working on involves a large number of different technologies. Whilst the main application I'm developing is in Java, we have to (manually) interact with Oracle databases a fair amount. Most of the Oracle tasks are scripted via Bash, and *shudders* Windows batch files.
One of our project KPIs is performance. In order to measure performance, we need to capture runtimes for various tasks. In Java this is trivial - we use Apache Log4j so can see exact timestamps against log entry, and the applications we run output performance metrics into a database for future analysis.
Gathering this data is harder when running SQL scripts - by default you don't get a log file containing runtimes. Oracle does, however, provide the ability to SELECT the current datetime. And if you can SELECT it, you can log it. As a simple solution to this problem, you can use current_timestamp:
This returns the following:
You could then use this to contribute to your log output in order to track runtimes, or to INSERT records to a database that holds runtime statistics, for example.
Whilst it's not nearly as nice an experience to work with SQL in this way compared to working with Java, for us this does the job. Done is better than perfect.
My Weekend EDC
I recently posted what I carry at the weekend to everydaycarry.com and they were kind enough to feature it on their front page.
Here's the lowdown on the best bits:
Orient Blue Ray
It feels like everything I own these days needs charging. Beautifully, this doesn't. The standard advice when looking at getting a first automatic watch is to go for the Orient Mako or one of several Seiko models. I much prefer the look of the Ray, particularly in this blue that looks pearlescent under natural light.
It feels solid but not too heavy, it's easy to read and, since it's a diver, can be used as a timer. As an automatic it never needs charging, and I enjoy having to manually change the date when we get past a month with fewer than 31 days - no smart watch can give you the satisfaction of interacting with something so physical or so intricately engineered.
I have a larger, thicker wallet that I carry during the week since it needs to hold office building passes, business cards and the all-important coffee shop loyalty cards. On weekends I can ditch that and only need to carry a few cards and cash. This wallet is slim enough to fit in a front jeans pocket, but can still hold more than half a dozen cards. It feels nice to the touch, and I like the worn look that it's developing.
There are such a large number of swiss army knives available, and they make a great EDC choice, particularly in the UK where only non-locking two-handed folders are legal to carry in public. I spent a long time looking for the perfect SAK (Swiss Army Knife) for this EDC, and settled on the Compact since it is so thin (only two rows of tools) yet still manages to contain a knife, full-size scissors, bottle and can openers, and even a pen! I also have a SwissChamp, but that almost never leaves the house now that I have the Compact.
I wanted a torch (flashlight for those of you in the U.S.) that wouldn't need a separate charger, but that could still put out 1000 lumens and had both strobe and firefly modes. It was a toss-up between this and the Olight S30R II, but the ThruNite won due to the inbuilt USB port. It's super bright, the battery seems to last forever and the firefly mode works great when you don't want to lose your dark-adjusted vision. On full power it's about as bright as my car's headlights.
Wireless headphones are now a thing, and I don't think I'll ever go back to having wired headphones when I'm out of the house. The sound quality isn't as good as some cheaper wired headphones I have, with a narrow soundstage and a lacking top end. However, it's liberating to not have any untangling of cables, ever. For me, the sound quality is plenty good enough when I'm commuting. Plus, they are a small UK company so it feels good to support them.
How to SELECT a comma-separated list of column names for all tables in an Oracle schema
Recently I needed to perform a merge of two Oracle database schema. Both schema held the same tables, with the same columns, but due to the different ways that these schema had been created, there was no guarantee that the columns of a table in one schema were in the same order as the same columns in the same table in the other schema.
You'd maybe hope that when performing an INSERT INTO SELECT * FROM that Oracle would cleverly perform some wizardry to map column names explicitly by name. Sadly, this isn't the case, and it would be pretty catastrophic for the Amount column to end up in the VatAmount column of the merged schema.
So, in order to do this I needed to quickly generate INSERT statements that mapped the columns explicitly. Thankfully, the LISTAGG function in Oracle since 11gR2 allows us to do this in combination with the USER_TAB_COLS table that holds this data, with very few lines of code. Here's how to use SQL with an Oracle database schema to get a list of columns per table.
I've needed to do this quite a few times, but couldn't easily find a clear example online. Here's how to unmerge cells and fill values in Excel.
For the simple case where the range only contains one distinct value, it's trivial to copy the value to all cells. However, where there are many distinct values in the range, there are a couple more steps involved. This still only takes a few seconds to do.
If you want to keep just values and remove the formula, simply highlight the range again, copy, paste, and paste values only. E.g. Ctrl + C, Ctrl + V, Ctrl, V
A couple of examples
There are a lot of people posting their EDC on the internet nowadays. A lot of this content is posted through everydaycarry.com or the EDC subreddit, others have their own blogs. Here are a couple of posts I think are worth reading.
Matt is one of the founding developers of WordPress, and also founded Automattic, a platform that powers a lot of impactful web products including Wordpress itself. His impressive career history is worth a read. He’s into photography and is a professional developer, so I share a lot of his requirements in an EDC.
Matt’s 2016 EDC post is here.
The Urban Prepper
The Urban Prepper is a Seattle-based EDCer who focuses on emergency-situation urban preparedness. He puts an impressive amount effort into carrying a lot of gear in as little space as possible.
His YouTube channel is here.
In the previous post I said that my EDC motto was to carry the minimum set of efficient tools to prepare for any realistic situation. I’ll explain a bit more about what that means.
The minimum set: don’t carry it if it doesn’t serve a purpose. Don’t carry more than two of anything that does serve a purpose, and only carry more than one if one of them might break. This is known as “two is one, one is none” (which was ostensibly practiced by Abraham Lincoln, and some claim that the phrase originated from the U.S. Navy SEALs).
Efficient tools: if one tool can replace two, carry the one rather than the two. However, if that one tool can’t do both jobs effectively, it’s not a suitable replacement for the two. Whilst you can open boxes and cut paper both with a knife, knives can rip paper and damage your cutting surface. Knives aren’t as efficient as scissors at the job. An efficient tool in this case would be one that contains both a knife and scissors without adding much weight or bulk.
Any realistic situation: I will carry items that I don’t use every day, but only where they would efficiently serve a purpose in a realistic situation. Most of the time I’ll carry some basic first aid equipment, but only include anti-allergy medication in summer, as it won’t realistically be needed in winter. I’ll carry a mini-DisplayPort to VGA adapter to connect my laptop to a projector, because realistically I might need to give a presentation at work and they won’t be set up with DP or HDMI. Living in the UK, realistically I don’t need to carry sunglasses very often.
When thinking about what to pack for a trip, work or photography, this motto helps me to be prepared, and to minimise the risk of something going wrong that can't easily be sorted. If you’re prepared for every realistic situation, when something goes wrong it can be righted in a few minutes, rather than ruining the whole trip.
Hello, World (of EDC)!
Hello! Welcome to my EDC blog. Until a couple of years ago I hadn’t heard of the EDC community, and wouldn’t even have known what the abbreviation meant. However, it turns out that I’ve been refining my EDC for most of my life. For my sixth birthday I asked for a collection of flashlights, and from about ten years old I’ve carried multi-tools, swiss-army knives and other EDC essentials. For a while I thought this was common: surely everyone carries a knife and plasters when they go out? Apparently not.
Thanks to all the many occasions where friends and family would turn to me as the person who was “always prepared” to help them with problems, I adopted the reputation as my own and would always try to carry the minimum set of efficient tools to prepare for any realistic situation.
Fast forward to around 2014, and I’ve been following that mantra for the better part of ten years. It was at that point I discovered the online EDC community in places like /r/edc and everdaycarry.com. We now live in a time where the market for EDC is rapidly innovating (e.g. changes in flashlight technology since the advent of cost-effective LEDs), and knowledge can spread worldwide almost instantly.
I’ll be using this blog to showcase my own EDCs for different situations, and link to other interesting sites too. Thanks for reading!
Tech, quotes and EDC.