It's Technological / The Dream Now Available on Streaming!

It's Technological / The Dream


Selected tracks from my debut album, Listen E.P., are now available for your enjoyment on streaming platforms worldwide! It's Technological / The Dream can be found on Spotify, Apple Music, and many others! Give em a listen today!

How to Set an Empty Dictionary/Hash as Default Value for a PostgreSQL HSTORE Column

Do you have an HSTORE column on your PostgreSQL database that you don't want to be `null` but need to have a default value? The syntax for this is a little irregular; so I'm posting it here for my own reference and yours:

my_column HSTORE DEFAULT '' NOT NULL

is the line in your `CREATE TABLE`command that you want.

In Ruby on Rails, using an ActiveRecord migration, you would use:

t.hstore :my_column, default: {}

In Python, using a SQLAlchemy migration, you would use:

sa.Column('my_column', HSTORE(), nullable=False, server_default=sa.text("''")),

Additionally, if you want your SQLAlchemy model object to initialize this column with said empty dictionary (instead of `None`), per this StackOverflow post you need take a couple of extra steps in your model:

from sqlalchemy.dialects.postgresql import HSTORE
from sqlalchemy.ext.mutable import MutableDict

class Item(db.Model):
    my_column = db.Column(MutableDict.as_mutable(HSTORE), nullable=False, default={}, server_default='')

    def __init__(self, **kwargs):
        kwargs.setdefault('my_column', {})
        super(Item, self).__init__(**kwargs)


The More You Know!

Lyjia's Directory of Free, Open Collections of Historically Significant Art

Girl with a Pearl Earring by Johannes Vermeer (Mauritshuis)

Every so often I find myself looking for art for some reason or another -- maybe a blog post, or referencing something I saw in a museum, or maybe just for plain enjoyment -- and oftentimes it can be found in an open image collection! I've kept a small working list of these places in my head over the years, and I realized it might be useful to write them down and figure out what else is out there. As it turns out, there is a lot!

This is a collection of high-resolution, open-access, free-download, free-to-use image libraries, focusing on the visual arts like painting or photography. There are other styles of art (like sculptures, audio, or archaeological artifacts) in some of these links but that is not the focus. Most of these links are free to use in any application -- commercial or non-commercial -- but not all. Please check the license before using anything you find here commercially. The images in these links should be a mixture of public domain and Creative Commons-licensed content.

This list was last updated in July 2024.

Libraries
Space
Museums

The Getty Collection (Los Angeles)

Universities

Single-Artist Collections
Aggregators
Other Lists

Fix Broken Beatport MP3 Downloads in Serato

It kinda be like that...


If you're experiencing a problem with Serato DJ, where MP3s purchased on Beatport cannot seem to save key, BPM, or track analyses and overviews, then perhaps a tool that I have written might help!

Check out MP3TagRebuilder, a simple Python script I wrote to address this issue with my own DJ library!

This tool addresses an issue I've been encountering somewhat frequently over the last few years, where my Beatport music purchases have a weird glitch in Serato where overviews and tag data won't save, even after using the "Analyze" feature. The only solution I have found, even after writing Serato support, is to rebuild the MP3 files' ID3 tags destructively.

However, every program that I know of that does this ends up dropping important tags, such as Album Art, because none of them provide a direct pathway to simply destroying the ID3 tags and then rebuilding them with a new datastructure; most of them only seem to support converting from ID3v2 to ID3v1 and back again. So I wrote my own!

If you are encountering this issue and are feeling bold enough to test my code on your own library (MAKE SURE YOU HAVE A BACKUP AND TEST IT!!!!), head on over to Github and check it out!

You will need a working Python environment and must be comfortable with a command prompt. Instructions for running this tool are included in README.md, and instructions for installing Python can be found here.

Get it from Github here: https://github.com/lyjia/mp3-tag-rebuilder



Annoucing my first album release: Listen EP!

I am pleased to announce the release of my first album, a love-letter to DnB and bass music titled Listen EP!

Cover art by K. Kam


Almost half an hour of trippy, psychedelic beats spanning halftime and techstep Drum-n-Bass, and finishing with a soothingly psychedelic downtempo closer! I've commissioned cover art from the fellow San Diego-based artist K. Kam, and had the album mastered by DnB industry veteran and Metalheadz alum Villem!

While this album is available for FREE STREAMING on Soundcloud and YouTube, I would really prefer if you would support me by purchasing a copy (for streaming or download) at Bandcamp! It's only $5 ... for less than the price of a cup of coffee you'll get unlimited access to stream and download the album and use it in your own DJ sets!

I've poured my heart and soul -- not to mention two years of my life -- into making this the best-sounding album it can possibly be! And today, you get to hear the fruits of that effort!

Releases on Spotify, Apple Music, Shazam, and many other stores is planned for very soon! So watch this space!

Get out there and show your support by picking up a copy of Listen EP today! It's only five bucks!

sui generis.

Lyjia's Blog

See posts by category: