Kirk Lennon

Portfolio

Active projects

My most recent project is no-frills expense tracker using PHP and MySQL. It is designed to be installed to the iPhone home screen. Open it like an app, add a price and description, submit, and you're done. It shows the total for the current month plus an itemized list of the current month’s expenses. Totals are shown for prior months. I think simple tasks deserve simple solutions; all of the code is in a single file.

A more advanced project is my Patent Puller, which is a Django web application for compiling patent information. User enters a patent number and Patent Puller uses the USPTO assignment API to determine the current assignee. It uses a separate API to pull the title, abstract, and inventors. You can view the code on GitHub.

Temporarily offline projects

I’m in the process of transitioning servers and these projects are currently offline, though the code is available.

For help studying foreign languages, I made a flash card web application. The back end runs as an Express server that saves the English and foreign terms in a MySQL database and provides them as a JSON endpoint. This same data source then powers traditional two-sided flashcards and a quiz where you read the English and type the corresponding foreign word. The front end uses JavaScript to generate and animate the cards and validate the quiz answers. The code is available on GitHub.

I created a photo blog using a custom CMS created with Django (code available on GitHub). It uses the Django ImageKit and Pillow libraries to automatically generate the thumbnail images and supports optional descriptions. Posts are created using the Django Admin interface.

I made a family meal-planning web app. It allows you to store and edit recipes, and then insert them into slots for a given week such as “Friday Dinner.” The main code is written in PHP and it uses a MySQL database. The ability to add multiple ingredients to each recipe is written in plain JavaScript. View Meals on GitHub.

Several years ago I dreamed up the original Apple Clickbait Generator, a satirical idea that ended up being widely linked to. I manually curated a small number of sentences that I had culled, adapted, or simply channeled from bad tech articles, and it then used JavaScript to semi-randomly assemble them into a new clickbait article. I have finally created a new Python-based version that automates the process and provides for much greater variety. A helper script uses the Azure Cognitive Services Bing News search API to find new articles that include “Apple” and keywords common to clickbait articles such as “shiny.” It stores the new article URLs in a SQLite database. A second helper script pulls new URLs from the database, requests the article itself, and uses Beautiful Soup to extract paragraphs. Paragraphs are checked for relevance and, if they pass, are inserted into a paragraphs table. Finally a Django app queries the database for ten random paragraphs. One view returns it as a pre-generated HTML file, along with some basic statistics about the database, while another view returns a JSON list. This can be iterated through with some vanilla JavaScript as provided for on this a reference implementation page. View Clickbait on GitHub.

Discontinued projects (RIP free Twitter API)

I used Python to build an automatic breaking news page. It used the Twython library to search for tweets where journalists are asking for permission to share a video, and then embedded the parent tweets with the videos on a page. The code is on GitHub.

Many news sites tweet their articles many times, making their accounts too busy to follow. AbridgerBot followed interesting accounts for me and retweeted their links one time only so I could follow the bot instead. To identify duplicates, it followed links through all redirects and storeed the ultimate article URL in a SQLite database. View AbridgerBot on GitHub.

Recent training

I have recently completed two specializations on Coursera: Python for Everybody and Web Applications for Everybody. The Python courses covered topics such as data structures, accessing web data, using databases, and visualizations. The web applications courses covered PHP, SQL, building CRUD applications, and the use of JavaScript, jQuery, and JSON.

Contact

Send me an email, or check out my Mastodon.