HNHacker News
TopNewBestAskShowJobs

klandergren

312 karma · joined July 5, 2016

Hi! I write software and solve problems. I am a full stack software engineer who loves both apps and ops. If you've viewed or booked a hotel on TripAdvisor, you've used my code.

consulting and contract work inquiries: kip@kip.land

https://kip.land

submissionscomments
klandergren··on Google Chrome Fixes Longstanding macOS Immersive Full Screen Mode Bug
To enable:

* enter full screen

* uncheck: View > Always Show Toolbar in Full Screen

All keyboard shortcuts (new tab, new window, focus URL, etc) and browser behavior now work properly!

To everyone who worked to land this: thank you!

klandergren··on Show HN: SQLite Plugin for Jekyll
Nice! Great to see innovation in the Jekyll space.

Quick FYI on Jekyll performance:

I noticed slow generation times on one of my sites and traced it to a plugin that was spawning a git process to get the last commit info for every page. I wrote a drop-in replacement called jekyll-last-commit[0] that uses the ruby libgit2 wrapper for improved performance. Details on its origins are in an old HN comment[1] if you are interested!

[0]: https://github.com/klandergren/jekyll-last-commit

[1]: https://news.ycombinator.com/item?id=34331663

klandergren··on Show HN: Jekyll plugin to access the last Git commit for a file
tl; dr: jekyll-last-modified-at, a popular plugin to get the last modified time of a file for a Jekyll site, was causing slow generation times so I wrote a more performant (~70% time reduction for full site regen) alternative at https://github.com/klandergren/jekyll-last-commit, and you get commit info like author, date, and message.

I have a 1000+ page Jekyll-based site that was seeing slow generation time—on investigation I discovered the plugin jekyll-last-modified-at was spawning a new process _for every page_ to determine the last modified time (via git commit history). Even after using Jekyll's --incremental option—which has its own issues like needing `regenerate: true` in the front matter to regen on data changes—this was still too slow.

So to address I did two things:

1.) opened two PRs to improve performance, both referenced from this issue and available to try out: https://github.com/gjtorikian/jekyll-last-modified-at/issues.... these were done in the style of the existing codebase and basically just improved caching and switched the git invocation to a single bulk call

2.) created a new plugin https://github.com/klandergren/jekyll-last-commit that uses libgit2 (via https://github.com/libgit2/rugged) to interrogate the git repository directly.

Implementation details available in both places! Up to you which approach works best for your setup.

Notes:

* this is only likely relevant to you if a) you want additional commit info beyond date or b) you have a very large Jekyll website (many 100s of pages that each need last modified date); for smaller sites the performance difference will likely be negligible

* performance will vary based on how many files you have and how frequently they change throughout the commit history

* the original PRs were done in 2021 and the plugin was written in December of 2022 when I wanted to play around with publishing a ruby gem

* this was a pretty quick project—if there are issues or errors please report them!

klandergren··on Google is discontinuing Inbox
Inbox changed my relationship with email and it is unbelievably frustrating to hear it is being shuttered. I was a better digital person because of the app: I never forgot to reply, I kept years of ideas and small notes in reminders, and I could quickly triage and clear all incoming mail.

These things in particular made Inbox stand out:

* UI - simple, uncluttered mobile and desktop experience with uncomplicated keyboard shortcuts. It even had the little things like a satisfying sun animation when your inbox was empty! Desktop Gmail has a surfeit of widgets and add-on icons that perplex, distract, and confuse.

* Bundles - especially for trips: all the relevant emails I needed, in one place—unbelievably useful while traveling. All tickets and information aggregated automatically (and if not, easily added manually).

* Reminders / Compose access - fast interface for creating small notes and mailing frequently contacted people. No reminders equivalent in Gmail (Tasks are available on Desktop but not mobile) and the mobile compose on Gmail is a blank email.

* Pinning - sticky a reminder or email for easy access and reference later. I guess gmail's equivalent is marking as important or moving to inbox?

In any event, if any of the Inbox team are reading this: big THANK YOU for creating a revolutionary product that was a joy to use. I already submitted feedback through the app wishing it would continue but if there is anything further I can do please share how!