How to switch from gnome to kde on Ubuntu

Here’s how I did it, anyway:

sudo apt remove gnome-*
sudo apt install kubuntu-desktop

(HT: Askubuntu here and here.)

I’m on Ubuntu 16.04 LTS.


Fixing the new class code template in IntelliJ IDEA

When I created a new class in IntelliJ IDEA, I’d get an automatic javadoc comment “Created by dmeyer on xx/xx/xx.” I wanted it to spell out my name…

To fix this, I went into File | Settings… | File and Code Templates | Includes | File Header and changed ${USER} to daniel meyer.

(I’m on IntelliJ IDEA 2016.1.2 Linux)

@@ROWCOUNT = 1 after empty MIN() query

Ran across a surprising SQL Server thing today: I was updating a query If you run a query that returns no rows and use the MIN() aggregate function, you get an empty resultset as expected, but the @@ROWCOUNT variable is set to 1. If you write the query as a TOP(1) query in a situation where it returns no rows though, you still get an empty resultset but @@ROWCOUNT is set to zero as expected.

Example of this in action (tested on SQL Server 2012):

FROM MyTable
IF @@ROWCOUNT <> 0 PRINT 'Nonzero row count'
ELSE PRINT 'Zero row count'
--Output: Nonzero row count
FROM MyTable
IF @@ROWCOUNT <> 0 PRINT 'Nonzero row count'
ELSE PRINT 'Zero row count'
--Output: Zero row count

How to have some roman numeral page numbers and some arabic page numbers in an existing document in LibreOffice

I needed to format an existing LibreOffice 4.3 document to have some beginning pages with no page numbers, then some pages numbered with roman numerals (i, ii, iii…), then the rest of the pages numbered with arabic numerals (1, 2, 3…). Here’s how you do it.

1. Create a page style that will do roman numeral page numbers in the footer

1.1. Go to Format -> Styles and Formatting (or press F11)…

libreoffice-multiple-footer-styles-1 Continue reading

SQL Server named instance vs. default instance

When you’re installing SQL Server (2008 R2 in my case) and you are prompted whether you want to create a default instance or a named instance, understand that creating a named instance means that you will be required to add that instance name to the server name when you connect via SQL Server Management Studio (SqlServerName\InstanceName). If you want to be able to connect to your instance without having to specify it explicitly, create a default instance. Then you just connect to SqlServerName and it finds the default instance.

Life, death, and broken software

In a post titled Life, Death, and Splitting Secrets, Jeff Moser presents a software solution for splitting up a password N ways so your loved ones can put the secrets together and get access to critical information from you after your death, using a computer program.

While this shared secret approach is interesting for certain uses, it is unwise for Moser’s stated use… Continue reading

Indexing only null column values in Oracle

We have a table that can have tens or hundreds of millions of rows in it, and in this table there is a certain column. This column usually—typically—generally—has non-null hash values in it.

In unusual cases though, that column can be NULL. And the thing is, there are times when the interesting rows, the rows we want to gather together and do something with, are exactly the rows where that column is null.

Table scans to find the rows where the column is NULL are expensive, so naturally we want to index this column. But since non-null values in this column are a hash and we only ever care about the NULL values, we’d like to avoid the time and space overhead of indexing the non-null values. We’d like a partial index of only the rows where the column is NULL… Continue reading