Simple Tools for Interacting with the Nostr Protocol

If you haven’t had a chance to ready my previous post about nostr, it is probably worth checking out as it give a detailed, step by step explanation. With knowledge gained from the previous post I decided to put together a couple of rough python scripts, this is to handle a few of our previously manual steps. Head on over to my Github and check out my nostr_stuff repository:

Simple CLI for Categorizing and Sentiment of Text

Now that I’ve spent some time with, specifically their NPL Course (natural language processing) I wanted to combine a couple of the learnings into a simple python script. What I ended up with was a script that could both categorize using a zero-shot-classification model, as well as get sentiment using a sentiment-analysis model. You can interact with this script in one of two ways, first by sending a string as input during execution:

Early Exploration of Large Language Models on Python

With the current hype on artificial intelligence and platforms like OpenAI’s ChatGPT, I decided it’s about time I explore. I’m not going to lie, I’m not exactly excited about a company named OpenAI being a closed source, for profit platform; however, this has been one of the reason I decided to explore offline, open, and self hosted solutions (in the hopes of creating my own models). If you recall I’ve experimented with python and machine learning in the past, look no further than my 2016 Test your machine learning blog post.

Deciphering Nostr and it's private keys

I’ve heard of for about a year, but not until recently have I experimenting with it. This post consists of my rough notes as I progressed to sending a nostr message. If you are interested in a bare minimum way to post events to nostr, read on. Generate a new private key $ openssl ecparam -name secp256k1 -genkey -out ec-priv.pem The output here as the file extension notes is PEM:

Lord of the Rings Card Game Tracker

Lately, I’ve been playing a bit of The Lord of the Rings: The Card Game by Fantasy Flight . The game is seriously fun and quite strategic. Like most strategy games, there is a lot of token and phase tracking, something I thought could be easier with a simple web application! Introducing LotR TCG Tracker !

Using Magic the Gathering Art for D&D Ideas

Recently I’ve spent a bit time reading some of Dragon+ Magazine articles, one particularly grabbed my attention. Using Magic Cards as D&D Items presents a very interesting way to craft items, using Magic the Gathering cards, one can gain inspiration for their next +1 Dagger, or even an Elven Stronghold. I think the reason I so quickly latched on to this idea was because Magic the Gathering and Dungeons & Dragons are two of my favorite games, plus I really dig the Ixala art work, I mean who hasn’t fantasized about riding a dinosaur to work.

Python Pandas and D&D Monsters

As you may be aware the Dungeon Brawl application I’ve been working on defines monsters in YaML format (check out the data/monsters directory) . I thought it would be interesting to load this data in to Pandas and do a bit of data analysis. Loading Data While in the Dungeon Brawl repository I started up an ipython shell, then import a couple libraries: In [1]: import yaml In [2]: import glob In [3]: import pandas Next I need to find each of my monster’s YaML documents, these files reside in the data directory.

Dungeon Brawl

In order to re-familiarize myself with MongoDB I decided to write a little web application utilizing it as a backend datastore. Dungeon Brawl is a Python Flask app that runs inside Docker with the help of docker-compose. Using this application a Dungeon Master can easily track all things combat for their Dungeons and Dragons group. Grab the source code from Github , or check out a demo .

Magic the Gathering Card Recognition

This weekend I took a bit of time to read up on OpenCV (Open Source Computer Vision Library) , I wanted to capture images of Magic the Gathering cards, then identify them using a Python library called ImageHash . Below is a demonstration of what I was able to accomplish in about 2 days of research and hacking: I’ll try and break down the steps and image manipulation functions I used to achieve this.