The One with the Thoughts of Frans

Android Version API Level

It’s in the docs, but I’m always losing it. So here’s a quick overview of some of the ones that are more important to me.

Android version API level
Android 8.1 27
Android 8.0 26
Android 6.0 23
Android 5.0 21
Android 4.1 16
Android 4.0.3, 4.0.4 15
Android 4.0, 4.0.1, 4.0.2 14
Android 2.3 9

https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

CommentsTags:

KOReader Nightly 20180212

As one of the maintainers of KOReader, a versatile a document and image viewer for E Ink devices, I’m proud to announce the latest release.


Special thanks to @dengste this month for adding natural light support on the Kobo Aura One (#3679).

You can control the natural light feature on the Kobo Aura One through the regular frontlight widget and the frontlight gesture controller. The latter allows for controlling warmth by swiping on the right of the screen, and is accessible via ToolsMore pluginsFrontlight gesture controller.

Those who read two-column papers might like the new two-column navigation (@FranMarelli This does not work in conjunction with scroll mode.

Those willing to experiment can try the new Open with… option (#3651).

Finally, a little clarification on last month’s HTML dictionary support. We use MuPDF to render the HTML dictionary results. Unfortunately, MuPDF expects its input to be well-formed XHTML, meaning XML. When the HTML is tag soup instead, KOReader will fall back to a stripped version of the HTML dictionary entry. Should this be the case, you can manually fix up the output by adding a .lua file in the dictionary directory. Further details and a few examples are provided by @poire-z in #3611.

We’d like to thank all contributors for their efforts. Some highlights include:

  • Fix speedup of dictionaries init (@poire-z
  • Swipe down or tap on top left/right to access left/right reader menu tab directly (@nagyation
  • Menu: configure number of items per page, wrap entries (@robert00s
  • OPDS – add confirm when file exist in local destination (@robert00s
  • HTML dictionary link support (@TnS-hun
  • Update History and Last open document when move (cut and paste) file (@poire-z
  • Do not execute background runner if device is suspended (@Hzj-jie
  • [feat] Add NetworkManager:isConnected() (@Frenzie
  • Filemanager – sort by percent of book (@robert00s
  • [UX] Move “Go back to previous location” up one menu level (@Frenzie
  • Wikipedia: show images and allow interrupting queries (@poire-z
  • luasettings: backup previous file and auto-recover (@poire-z
  • epub metadata: support multiple authors (@poire-z
  • HtmlBoxWidget: fix selection when starting from end (@poire-z
  • Bump base: fix gray background instead of white on Kindle (@poire-z
  • Add MovableContainer: allow moving some widgets (@poire-z
  • Add menu item for toggling auto_book_status (@poire-z
  • [UX] Dict: scroll back with tap: go to bottom of prev definition (@poire-z
  • NewsDownloader: better exception handling and basic redirects (@mwoz123
  • [feat] Open with: choose which engine to use for file (@Frenzie
  • Menu: speed up rendering of long texts (@robert00s
  • cre full text search: fix inconsistencies (@poire-z
  • kobolight.plugin: Support for setting natural light (@dengste
  • Show vertical marker at original position when back from link (@poire-z
  • File manager: added ‘Go to letter’ (@robert00s
  • cre cache: allow for disabling compression (@poire-z
  • [feat] Two-column navigation (@FranMarelli
  • [fix] larger max font size for crengine (@Frenzie

Full changelog

CommentsTags:

Conveniently Developing an R Package

Half a decade ago I neglected to jot this down, so I had to figure it out again. Just in case someone landed here searching for the most basic R problem, you start the program using uppercase R, not lowercase r. Anyway, to work with a package in a git repository or some such the easiest method is the devtools package.

install.packages('devtools')
library(devtools)
load_all()

Without any parameters, the load_all() function from devtools loads the current directory without installing. You could effect the same with more keystrokes using load_all('./'), and of course you can pass any path instead of relying on the current working directory. But in combination with git I find it easiest to just stick with that. After you’ve made some changes in the source, just run load_all() again.

CommentsTags:

Eenoog

Eenoog sloop voorzichtig door het huis.

Waar was de vijand?
Waar was de verschrikking?
Waar was het kwaad?

Eenoog werd bekropen
door een naarstig gevoel.

Het kwaad miste ook een oog.

CommentsTags: ,

Snowy Chairs

From back on December 11, 2017.

They do look better this way, don’t they?

Comments

I Broke Another Nutcracker

Unlike the last one, this one didn’t come for free with some nuts.

Probably the result of continued shear forces at work.

Now what to replace it with… although I like it, a known failure every year or two probably isn’t worth the hassle.

Comments

2017 in movies

I started logging the movies I watched in Letterboxd after IMDb broke the final straw. IMDb, the only website I’ve regularly visited for twenty years, had been getting more annoying for years anyway. Letterboxd sent me a clever little overview e-mail in commemoration.

Yep, I like Vin Diesel. Sue me.

I have no idea why it opted for those three specifically when I gave Wonder Woman and Léon the same rating, plus I explicitly marked the Disney movie as a rewatch. Basic Instinct never appealed to me for whatever reason, but last year I found out that it was directed by Paul Verhoeven, one of my favorite directors. He didn’t disappoint.

CommentsTags:

Aggressive Doubling

I bought Mini Metro when in a GOG sale recently. It’s more challenging than it looks. My most effective Mini Metro strategy yet consisted of aggressive line doubling.

The tutorial is lackluster at best. It shows you how to connect two cities and how to add trains to lines, even though these are pretty much the only truly intuitive things about the game. It doesn’t tell you that there are little symbols like squares, circles and triangles in the carriages that indicate where the passengers want to go. It also doesn’t tell you that you have to drag the track over a city to undo it, or that the top right features a clock with the day of the week as well as the ability to increase speed (very important) and to pause.

If the game manages to captivate me for another few hours I might look up what strategies people have come up with. The one shown in the screenshot is the first I tried that got me to 1500 passengers with ease, whereas I was stuck at around a 1000 before then.

The game doesn’t seem to tell you your total playtime, but by counting up the individual levels I can see that I already spent 134 minutes playing it in the past three days. Washinton DC is the 14th level.

It doesn’t have quite the charm of a Railroad Tycoon, but there’s something oddly satisfying about the game. Mini Metro might be worth a try if the idea of a simpler Railroad Tycoon sounds appealing.

CommentsTags:

Disable Firefox Fullscreen Animation

Go to about:config, as ever. Then disable browser.fullscreen.animate.

CommentsTags:

Remove dns-prefetch from WordPress 4.9

Most people seem to have switched to statically generated blogs like Hugo by now, but I’ve been using WordPress for some 13 years and combined with WP-Super-Cache it’s been static for pretty much that entire time. There’s little point to putting in extra time and effort just for some extra nerd cred.

On the downside, every new 4.0+ release seems to add more cruft to the header. My functions.php consists of an ever-growing list of remove_action incantations. Here’s the latest addition, necessitated by WordPress 4.9.

// remove WP 4.9+ dns-prefetch nonsense
remove_action( 'wp_head', 'wp_resource_hints', 2 );

For those interested, here’s my full messy collection, including a few hints I commented out.

add_post_type_support( 'page', 'excerpt' );// See http://wordpress.mfields.org/2010/excerpts-for-pages-in-wordpress-3-0/
remove_action('wp_head', 'rsd_link');// Windows Live Writer? Ew!
remove_action('wp_head', 'wlwmanifest_link');// Windows Live Writer? Ew!
remove_action('wp_head', 'wp_generator');// No need to know my WP version quite that easily

// remove WP 4.2+ emoji nonsense
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

// remove WP 4.9+ dns-prefetch nonsense
remove_action( 'wp_head', 'wp_resource_hints', 2 );

// disable embeds nonsense; not even sure what it does
// Remove the REST API endpoint.
remove_action('rest_api_init', 'wp_oembed_register_route');
// Turn off oEmbed auto discovery.
// Don't filter oEmbed results.
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
// Remove oEmbed discovery links.
remove_action('wp_head', 'wp_oembed_add_discovery_links');
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action('wp_head', 'wp_oembed_add_host_js');

// Jetpack
//remove_action('wp_head', 'shortlink_wp_head'); // Don't need wp.me shortlinks
// No jQuery! (als Jetpack
//if( !is_admin()){
	//wp_deregister_script('jquery');
	//wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"), false, '1.3.2');
	//wp_enqueue_script('jquery');
//}

// remove OneAll Social script from regular page
remove_action ('wp_head', 'oa_social_login_add_javascripts');

Comments

Older Entries »