Tag: tech

28 Dec

Final Version of the Enigma in Amaranth HDL

1   Optimized Enigma Implementation

The first part of this series described the background of the Enigma Cipher Machine with the following datapath:

plugboard

Complete encryption/decryption path

In this post, I'll wrap up this series with the final, optimized version, building on the work from Part 2.

You can find …


22 Dec

Version 1 of the Enigma in Amaranth HDL

1   Enigma Implementation

The first part of this series described the background of the Enigma Cipher Machine with the following datapath:

plugboard

Complete encryption/decryption path

In this post, I'll take a quick dive into how I implemented a simple version of it using Amaranth HDL. While there is a …


19 Dec

An Enigma I Cipher Machine on Skywater 130nm Via TinyTapeout

gds

My final GDS for the Enigma machine (source available on github)

I stumbled across TinyTapeout offering very low cost chip shuttles last month, and decided I had to get on their next shuttle in March 2025. For the early-bird pricing of US $150, you can design and tapeout a (small …


30 Mar

BrickNil - Control LEGO Bluetooth Sensors and Motors with Python

BrickNil [*] provides an easy way to connect to and program LEGO® Bluetooth hubs (including the PoweredUp Passenger Train 60197 and Cargo Train 60198 sets, and the Lego Duplo Steam Train 10874 and Cargo Train 10875 ) using Python on OS X and Linux. This work was inspired by this EuroBricks thread …


07 Nov

PhotoKeeper: Usage guide

This script will take a source directory (say the contents of a flash card from a camera), scan all the image/video file EXIFs, and sort them into date-based folders in a user-specified directory. It will optionally only copy files that have not already been copied (deduplication per folder). Photo …


10 Jan

AirFrame: Usage guide

Download images from an authenticated Flickr account (or local filesystem) and push them wirelessly to a Toshiba FlashAir Wifi SD card mounted in a digital photo frame.

Features

  • Authenticates to Flickr to get …

09 Jan

AirFrame: Hacking together a WiFi photo frame with a Toshiba FlashAir SD card and Flickr

I'm going to describe AirFrame, a Python script I wrote that's available on GitHub under ASL2 open-source, that can automatically pull photos matching a given set of tags from an authorized Flickr account, and wirelessly push them to a WiFi enabled SD card sitting inside an inexpensive digital photo frame …


14 Nov

Starting a simple Flask app with Heroku

Flask and Heroku

Inspired by this article on Python Weekly, I thought I'd look into deploying a simple hello world application to Heroku, built on the Flask micro framework.

Here's my workflow:

  • Create a new directory and Python virtualenv (make sure virtualenvwrapper is installed!):

    cd ~/dev
    mkdir proj
    cd proj
    mkvirtualenv proj
    
  • At …


04 Nov

Creating new notes and attaching files using Evernote's Python API

Documents to Evernote

I managed to piece together how to attach a new PDF file to an Evernote note using their Python API, so I thought it might be useful to have a post that has all of this information together in one place.  I've put together a complete example that will:

  1. Authenticate …

29 Sep

Quick web app with Go, Ember.js, and MongoDB

skip_better Screenshot

As part of my recent foray into the Go language, I stumbled across this excellent example by Nerdyworm part 1, part 2, part 3 that shows how to build a small web application using the ember.js javascript framework and Go providing the backend server. I took this example, fixed …


16 Aug

Reading and writing Microsoft Word docx files with Python

skip_better python

I've been wanting to script simple text scanning and substitution in Microsoft Word documents for a while now, and after a little digging, it turns out, it's fairly straight-forward to read and edit .docx (OpenXML) or the ECMA-376 original standard, and now under ISO as ISO/IEC 29500. Although I …


03 Jul

Bluetooth headset with dedicated mute button

I typically spend several hours a day on conference calls, and I really miss my old blackberry that used to have a dedicated mute button. The iPhone touch button on the phone screen is just not quick enough to quickly jump in and out of a meeting in a noisy …


20 Apr

Python auto sort of OCR'ed PDFs

I'd previously written about how I was using a Fujitsu ScanSnap 1500 to reduce paper clutter and move to a paperless workflow at home.  So far, this system has been working great for me, with every scanned document getting OCR'ed and uploaded to my default Evernote notebook as a searchable …

© Virantha Ekanayake. Built using Pelican. Modified svbhack theme, based on theme by Carey Metcalfe