ckanext-scheming 3.0 and Dataset Form Pages

ckanext-scheming 3.0 form pages

With ckanext-scheming 3.0 CKAN dataset metadata forms may now be split across multiple pages using start_form_page.

Example ckanext-scheming schema:

- start_form_page:
    title: Detailed Info
    description:
      These fields improve search and give users important links

  field_name: tag_string
  label: Tags

Each start_form_page block marks a field at the beginning of a new page of fields. All following fields without a new start_form_page block will appear on the same page. This lets us maintain compatibility with existing schemas and makes it easy to reassign pages over time without affecting how metadata appears in the API.

Continue reading…

Video Encoding at 5 bytes/frame

Bad Apple on 32K EEPROM

This is part two of a two-part series. Read part one here.

In this post we use Python to encode the full Bad Apple video (3m39s) into 32 kilobytes. Our playback hardware has no CPU so our video “compression” is limited to the features of our HD44780-powered LCD display.

We create an illusion of a full bitmap display by carefully juggling 8 CGRAM characters across the 8 x 4 video area and lean on LCD display persistence.

Continue reading…

Bad Apple on 32K EEPROM

Bad Apple on 32K EEPROM

This is part one of a two-part series. Read part two here.

This post covers how we interface a 32K EEPROM, a clock and an address register to a 20 x 4 LCD character display module and use it to play a video. We “decompress” the video by expanding our 8-bit data stream to 9 bits for playback in hardware. There is no CPU or microcontroller involved.

Continue reading…

Repeating Subfields and Multiple Text with ckanext-scheming

ckanext-scheming 2.1 now support Datasets with repeating subfields and repeating text fields. Repeating subfieds support custom snippets and validation just like regular fields.

This work is inspired by the excellent ckanext-composite extension and replaces ckanext-repeating repeating_text fields.

You must be using CKAN 2.8 or later and a custom IPackageController plugin to index datasets with repeating subfields.

Continue reading…