# Recent Publications

. Hyperbolic Deep Reinforcement Learning. Preprint, 2022.

. Diffusion Policies as an Expressive Policy Class for Offline Reinforcement Learning. Preprint, 2022.

. Should I send this notification? Optimizing push notifications decision making by modeling the future. Preprint, 2022.

. Challenges and approaches to privacy preserving post-click conversion prediction. Preprint, 2022.

. Learning to Rank For Push Notifications Using Pairwise Expected Regret. Preprint, 2022.

. RecSys 2021 Challenge Workshop: Fairness-aware engagement prediction at scale on Twitter’s Home Timeline. RecSys Proceedings, 2021.

. The 2021 RecSys Challenge Dataset: Fairness is not optional. RecSys Challenge 2021 Proceedings, 2021.

. An Analysis Of Entire Space Multi-Task Models For Post-Click Conversion Prediction. RecSys 21 Late Breaking Results, 2021.

. Physically Embedded Planning Problems: New Challenges for Reinforcement Learning. Preprint, 2020.

. The Option Keyboard: Combining Skills in Reinforcement Learning. NeurIPS, 2019.

# Posts

### Removing Type 3 Fonts in a Hurry with Adobe Acrobat DC

One of the things they don’t show in the AI movies is the part where the protagonist is fixing their camera ready1 just before the deadline and discovers (unexpected plot twist) that their pdf contains “Type 3” bitmap fonts which are apparently forbidden. Frantically, they google for a solution. This was me recently and I relay my findings below. The most likely cause of this error, when using pdflatex, is that one or more of your figures contains type 3 fonts.

### github pages secure with cloudflare

[ Update October 2018: I no longer use this setup. I migrated to gitlab (mostly because gitlab can easily build my website with hugo. Gitlab provides straightforward instructions on securing your site with Cloudflare. This would be my recommended setup now. ] Do you see a little green icon in your browser bar? This website is now served using TLS (a secure connection also known as SSL) thanks to Cloudflare’s new free Universal SSL1.

### btrees are the new black

Self-balancing trees are an important class of data structures. In most textbooks, red/black binary trees are introduced first, and then btrees come later, usually mentioned as a data structure used in file systems. Both data structures have asymptotically identical performance ($O(\log n)$ time for insertion, lookup and deletion). Here, I will show why, despite your textbook’s ordering, btrees may often be a better choice. Btrees (or variants) are often used in file systems because they make better use of devices which read and write blocks of data (such as hard drives or flash).

### atoms slash symbols in python

I’ve been learning Erlang and one thing I like is the idea of atoms (aka symbols in Ruby I think) 1. Atoms in Erlang are written by just using lowercase. They are pointers to a global string table. This means comparison operations are very fast (you are just comparing two pointers) but for debugging and pattern matching the atom has a meaning (the string). Atoms are particularly useful in pattern-matching languages like Erlang, but they’re a useful idea even without pattern matching.