See you at KScope!
After a 7-year hiatus from speaking at any conferences, I’ll be presenting at KScope 26 in Denver.
Fear No SQL
After a 7-year hiatus from speaking at any conferences, I’ll be presenting at KScope 26 in Denver.
When I’m tackling a complex performance problem spanning multiple programs, machines, services, etc. I like to wave a magic wand, invoke mystic elves, or call on friendly gnomes to assist me and simply make part of the problem disappear. That particular step now takes zero time, thereby removing any impact it had on the overall…
I’ve started keeping configuration information for Oracle’s Connection Manager in tables and then generating the cman.ora file needed for each listener. One of the quandaries I ran into was trying to enforce a rule where you could not define invited nodes for registration if you had registration checking disabled. It is technically legal to do…
Reactor Part 1 is a simple recursion with limited paths, so I used CONNECT BY where the device (source) of each row is contained within the output (target) of the prior row. So, in the sample data, the line “bbb: ddd eee” has source “bbb” and targets “ddd eee”. But we can see “bbb” is…
Movie Theater Part 1 was pretty straightforward. I extract the X and Y coordinates from each line and then using a self-join, I compare the areas of each possible rectangle. As with many other, similar, self-joins, I use the b.seq > a.seq filter to eliminate redundant, commutative calculations (i.e. rectangles of A & B corners…
Playground This one felt tricky at first with lots of words and seemingly numerous combinations of how to arrange the boxes, but the solutions turned out to be fairly straightforward. It wasn’t necessary to recognize any particular trick to solving them; but I will acknowledge that using languages that have native set-based syntax likely made…
Laboratories This one was a little misleading, but that’s probably more due to me assuming too much going in than any tricky wording. My first thought was this would be a recursion puzzle because of the tree nature and there hadn’t been one yet; but I ended up not needing recursion to solve it. It…
Trash Compactor Like Day-5, I accepted a slight efficiency hit by reading the data twice for logical convenience. I read the numbers as one CTE and then read the corresponding operators as a second CTE. Since the data is irregularly spaced I used regular expression to collapse multiple spaces into a single space as a…
Cafeteria I accepted a small inefficiency in part 1 by reading through all of the data twice in order to come up with two data sources. One for the ranges of fresh ids, and the other the list of ids to check. Counting the number of fresh ids was simply checking if each id fell…
Printing Department The first map puzzle of the year. Part 1 was a simple count; just loop through each position and see how many neighboring rolls it has, if it’s less than 4, increment a counter. Return the counter when done. I added a new function to the ADVENT package, MAPCHAR. All it does is…