PostgreSQL DISTINCT ON

Getting the highest (or lowest) value from a database column is a bit tricky if you cannot use GROUP BY, because it requires you to aggregate across all columns that you want in the result. Say you have a table with employees, having the columns name, salary, and department, and you want to know the highest-paid employee per department. Then GROUP BY is not an option because you would need to also aggregate by name to have the name in the output, which doesn’t make sense.

I used to tackle this kind of query with unwieldy subqueries, but I just came across PostgreSQL’s DISTINCT ON clause, which makes them a lot more compact and readable. Using that, you can simply do

SELECT DISTINCT ON (department)
       name, salary, department
FROM   salaries_table
ORDER BY department, salary DESC;

So we’ll only get one entry per department, and ORDER BY salary DESC makes sure it is the one with the highest salary. The only bummer is that it is a PostgreSQL-specific function, so it won’t work on other DBMSs.

New toys, no time to play

I came across some really neat new tools this week. Since I don’t have any time  to test them out right now (or in the foreseeable future…), I’ll at least post them here so I don’t forget to check them out later:

  • Chris Whong has made a Docker container running Carto. This should make running your own Carto instance a hell of a lot easier.
  • Riccardo Scalco came up with Textures.js, a  JavaScript library for SVG patterns that builds on D3.
  • And my favorite comes from Geoff Boeing, who wrote OSMnx, a python module for extracting street networks from OpenStreetMap and then do all kinds of smart stuff with them.

COSIT goes Open Access

The first call for papers for COSIT 2017 was circulated last week. The conference will be held in L’Aquila, Italy, from September 4-8 2017. I was happy to see that the COSIT steering committee has decided to move the outlet for the full paper proceedings from Lecture Notes in Computer Science to Schloss Dagstuhl’s Leibniz International Proceedings in Informatics, which is Open Access under CC-BY.

The submission deadlines are:

  • March 1, 2017, for full papers
  • May 15, 2017, for posters

Open Reblock →

I just learned about Open Reblock from my students. Very cool project:

screen-shot-2016-09-15-at-11-18-52

Reblocking is the process of physically transforming an informal settlement to provide an access path to all its structures. This project analyzes the spatial structure of informal city blocks, and uses an algorithm to suggest reblocking solutions that provide access to all structures within the block in a minimally disruptive way.

 

Hierarchical Prism Trees for Scalable Time Geographic Analysis

We have a full paper accepted for GIScience 2016:

Carson J. Q. Farmer and Carsten Keßler (2016) Hierarchical Prism Trees for Scalable Time Geographic Analysis. Full paper accepted for GIScience 2016, September 27–30, 2016, Montreal, Canada.

Abstract: As location-aware applications and location-based services continue to increase in popularity, data sources describing a range of dynamic processes occurring in near real-time over multiple spatial and temporal scales are becoming the norm. At the same time, existing frame- works useful for understanding these dynamic spatio-temporal data, such as time geography, are unable to scale to the high volume, velocity, and variety of these emerging data sources. In this paper, we introduce a com- putational framework that turns time geography into a scalable analysis tool that can handle large and rapidly changing datasets. The Hierar- chical Prism Tree (HPT) is a dynamic data structure for fast queries on spatio-temporal objects based on time geographic principles and theories, which takes advantage of recent advances in moving object databases and computer graphics. We demonstrate the utility of our proposed HPT us- ing two common time geography tasks (finding similar trajectories and mapping potential space-time interactions), taking advantage of open data on space-time vehicle emissions from the EnviroCar platform.

Why Uber Is A Scam

I knew that Uber drivers do not make a terrible lot of money, but this breakdown shows how bad the situation really is for them. If you factor in all costs, drivers are getting ripped off to the point where they are actually losing money when they drive for Uber. So much for the ethics of the self-proclaimed sharing economy.

I just hope the old school taxi cab companies will eventually get their act together and make it as easy to order a cab as Uber does.

Linked Science 2016— Supporting Collaboration and Learning in e-Research Infrastructures (LISC2016)

Our proposal for the next (6th!) Linked Science workshop at ISWC has been accepted. Our theme this year is “Supporting collaboration and learning in e-research infrastructures” to help diminish the knowledge gap between technologists and those less tech-savvy. Here’s the gist of it, head over to linkedscience.org for the full announcement:

When: October 17 or 18, 2016
Where: Kobe, Japan
Collocated with the 15th International Semantic Web Conference (ISWC2016).

Submission deadline for full and short papers will be July 7th 2016, 23:59 Hawaii time.