RSSAmplifier

Blog

John Paulett

Recent content on John Paulett

johnpaulett.comRSS feed ↗49 posts

Latest posts

ModernBERT in Radiology Part 3: Fine-tuning a Classifier

In Part 3 of the ModernBERT in Radiology series, we will fine-tune a ModernBERT Classifier to predict the UMLS CUIs given a radiology report. It will combine our fine-tuning from Part 2 to produce a better classifier than the simple scikit-learn Logistic Regression from Part 1 . You can follow along with the associated Colab Notebook for Part 3 🔥! The ModernBERT in Radiology Series Part 1: Simple…

ModernBERT in Radiology Part 2: Fine Tuning a Masked Language Model (MLM)

In Part 2 of the ModernBERT in Radiology series, we will fine-tune ModernBERT against the ROCOv2 dataset for Radiology for the Masked Language Model task so that given an input of ninth [MASK] fracture the model would predict ninth rib fracture . You can follow along with the associated Colab Notebook for Part 2 🔥! The ModernBERT in Radiology Series Part 1: Simple Classifier using Hidden States .…

ModernBERT in Radiology Part 1: Simple Classifier using Hidden States

In Part 1 of the ModernBERT in Radiology series, we will explore ModernBERT and the ROCOv2 dataset for Radiology. We build a multi-label classifier using a simple Logistic Regression model on top of the pre-trained ModernBERT body. You can follow along with the associated Colab Notebook for Part 1 🔥! The ModernBERT in Radiology Series Part 1: Simple Classifier using Hidden States. 👈 This Post…

And we're back

After setting up by bluesky to use a custom @johnpaulett handle (learn how set up your own domain handle ), a friend pointed out my website was dead! Apparently sometime in the past 15 years (🤯) without touching it, my custom Django blog app written in Django v1.3 got disconnected from its Heroku Postgres. Figured I should simplify the setup, since there is no need to have a database and app…

About

I am John Paulett , an engineering leader & architect, specializing in healthcare startups and open-source technology. Chief Architect at Rad AI, creating the future of Radiology reporting by envisioning, building, and leading Rad AI Reporting, Aunt Minnie’s Best New Radiology Software of 2023. Using LLMs to automate much of the manual work done during the radiology reporting process, and…

Presentations

Listed are many of the presentations I have given at various events. Some of these presentations are available online currently, while others may become available in the future. Presentations & Talks GeoDjango & HTML5 Geolocation on September 1, 2011 at Lambda Lounge PosgreSQL: High Availability & Scaling on October 26, 2009 An Introduction to Business Rules with JBoss Drools on October 12, 2009 A…

Projects

python-hl7 - Simple, Pythonic library for interacting with Health Level 7 (HL7) messages. txHl7 - Twisted MLLP Network Server for Python HL7 networking Previously jsonpickle - Create or a serializer of complex Python object graphs into JSON. HORNET - Healthcare log analysis program written as part of my Master’s thesis. radlex.org - Web viewer and interaction tools for RadLex, a radiological…

Django 1.3 & South

Running the latest Django Release Candidate , I noticed that all of my South data migrations were failing. Debugging via pdb led me to a a recent change in which the database was being flushed after south ran, but before the tests ran. I found a changeset that was committed after Django 1.3 beta-1, #14661 that introduced the flush to correct an issue with MySQL. It is a documented as a backwards…

django-durationfield v0.3.3

I just released an implementation of DurationField for Django to PyPi. The latest release uses datetime.timedelta for its internal representation of durations (thanks to Paul Oswald )) and has support for South thanks to Wes Winham . The documentation is now hosted on ReadTheDocs and the package data is available on Django Packages . After a discussion with a few Django core developers, it seems…

jsonpickle 0.3.1 Released

jsonpickle , the powerful library for serializing complex object graphs in Python to JSON, had a major milestone this week with the official release of 0.3.1, available on PyPi with documentation and full release notes at http://jsonpickle.github.com/ . We have migrated from the Google Code site to the new Github site at http://github.com/jsonpickle/jsonpickle . This release represents nearly a…

HTML to reStructuredText in Python using Pandoc

During the conversion of my blog from Wordpress to a custom Django-based system, I wanted to move from HTML markup to reStructuredText (partly to make it easier to publish Sphinx documentation to my blog). While it is dead simple to convert reStructuredText to HTML, going the other way is more difficult. Luckily, Pandoc , the swiss army knife for converting between markup formats, can do a nice…

reStructuredText Widget in Django Admin

While Django has great support for rendering standard markup languages, sometimes it can be difficult editing documents using a markup in the Django Admin. Several others ( 1 , 2 , 3 ) show how easy it is to edit Markdown, Textile, and even HTML, in the Django Admin using a WYSIWYG editor, such as markItUp! or TinyMCE . Unfortunately, reStructuredText is not well support by most WYSIWYG editors.…

Mocking Groovy's HTTPBuilder

I ran into a head-scratcher today when trying to unit test some Groovy code. The code under test interacts with an HTTP web service using Groovy's great HTTPBuilder , which wraps Apache's HttpClient . Obviously, I wanted to mock the interaction with the HTTP server to limit the scope of my tests. Groovy makes it easy to create simple mocks using maps . To mock a class with a map, one must create a…

Master's Thesis & Open-Source Tool

On July 15th, I successfully defended my Master's Thesis in Biomedical Informatics at Vanderbilt University. This defense was the culmination of 2 years of work. The thesis focuses on extracting organizational structure and relationships from the audit logs of clinician information systems . This work has potential applications in the improvement of delivery of care and improving the security of…

Programming Clojure Review

When Stuart Halloway's Programming Clojure came out in May, I picked up a copy and have been reading through it and practicing with the Project Euler problems. First off, it is a great book! Second off, it introduces a seriously interesting programming language. Clojure is a Lisp dialect designed to run on Java Virtual Machine (JVM). This combination is what makes Clojure very powerful: you get…

Install Eclipse Galileo (3.5) on Ubuntu Jaunty (9.04)

Eclipse 3.5, codenamed "Galileo," was released this week! While there is a team actively working on building an Ubuntu deb package , they do not yet have a package yet for Eclipse 3.5. I put together some super simple instructions for installing Eclipse 3.5. I am going to perform a per-user installation into my home-directory. If multiple people use eclipse on the same computer, you may want to…

Vanderbilt Projects in the News

Some of the projects that I have been involved in at Vanderbilt University's Informatics Center have been featured in the news recently: The New York Times had a feature about our use of the ILOG (now IBM) business rules engine to send out pager or SMS messages to physicians when patients have critical lab results. Infection Control Today had an article about our Sepsis detection application which…

tdaemon and virtualenv

I ran across tdaemon , which automatically runs your test suite when you make a change to your source code. It is very helpful when developing. One issue I had was running the tests when tdaemon needs to monitor a huge number of files (as occurs when I have a virtualenv environment in the same directory, which has more than 100MB of code and binaries). I committed a few changes to tdaemon to allow…

Move to johnpaulett.com

I have moved this blog to johnpaulett.com . Links to all old posts should still work.

Automated Testing Presentation

Getting Started with (Distributed) Version Control

I gave a short talk on using a distributed version control system. The slides are available on SlideShare under a Creative Commons license.

Parsing HL7 with Python

I've had a need to parse Health Level 7 (HL7) version 2.x messages from Python, thus I created python-hl7 . The library allows for easy, key-based access of all the elements in an HL7 message. See the release announcement for download information. HL7 is a communication protocol and message format for health care data. It is the de facto standard for transmitting data between clinical information…

Getting RESTful with web.py

Django may be the Python web framework getting all the press recently , but web.py is definitely a nice, simple framework. One of the nice aspects of web.py is that it exposes methods for the basic HTTP methods (GET, POST, PUT, DELETE, etc.) and uses these methods to process each request from the client. This approach makes it amazingly easy to write a RESTful API. web.py import web class Resource…

New jsonpickle release

Just released 0.0.5 for jsonpickle , the Python to JSON object serializer. Check out the announcement .

Eclipse 3.4 (Ganymede) on Ubuntu

::: notice These instructions refer to outdated version of Eclipse and Ubuntu. Please refer to the new instructions on installing Eclipse Galileo (3.5) on Ubuntu Jaunty (9.04) ::: Eclipse Ganymede (the successor to Europa) was released today. Ubuntu seems to be stuck on Eclipse 3.2 since at least Feisty Fawn. There are nice features that we are missing out on (Mylyn, inline renames, etc.). JDK…

pymedia on Ubuntu Hardy Heron

Recently, I needed to use pymedia , for some audio and video encoding. The problem though, is that pymedia was nowhere to be found in the Ubuntu Hardy Heron package repository, and the only .deb installation candidate from the pymedia website was for an older version of pymedia and Python 2.4. Not wanting to run an old version and having Python 2.5 as a requirement, I needed to compile the package…

bminews.com launched

I am launching a social news site, bminews.com . It is a specialty site for practitioners in the fields of Bioinformatics and Medical Informatics. Join in! I am looking for a site with great news on new developments, technologies, and opportunities in the field. Related topics (programming/consulting/career advice/math/scientific writing/conferences) are all encouraged.

jsonpickle

I have been working on an open source project, jsonpickle . The goal of the project is to be able to serialize a Python object into standard JSON notation. Python can "pickle" objects into a special binary format, but sometimes it is nice to get a human-readable format. Especially with projects like CouchDB that have use a JSON-based API. jsonpickle is on its seconds release and can now officially…

Building Python Packages from Source on Windows

I always forget how to build Python packages, such as psyco and simplejson that require C/C++ code to be compiled. The usual error I get from running "python setup.py install" is error: Python was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try…

CPAN on Windows

To use Perl's CPAN on Windows with cygwin , you need to install some additional programs in cygwin. Run cygwin's setup.exe (I like clicking the "View" button to change the listing to Full, so I get an alphabetical list of the packages). Make sure that you install the following packages: perl (just in case you do not have it) gzip tar unzip make lynx wget ncftp gnupg Open the Cygwin bash shell and…

CouchDB on Ubuntu

::: notice These results are now largely outdated by the couchdb package in the Ubuntu universe repository. ::: Installing CouchDB I have eagerly been waiting to try out CouchDB . I find the concept of document storage, instead of strict relational storage, to be very interesting. Plus, Erlang seems to be gaining mindshare. I documented the process that I took to install CouchDB 0.7.2 on Ubuntu…

Just upgraded to Gutsy Gibbon Tribe 2

After reading a post on Planet Ubuntu Users, I grew envious that I didn't have the latest and greatest of Ubuntu--so I decide to take the plunge. First I tried the sudo update-manager -c -d , which error'ed out . So I hacked away at the /usr/lib/python2.5/site-packages/UpdateManager/DistUpgradeFetcher.py file by adding import os . Everything started going fine, except my connection was crawling…

Code Statistics

I like looking at numbers. So when I saw an interesting gif on a friend's webpage saying that a certain piece of software had so many thousands of lines of code and cost so much money, I was naturally intrigued. After clicking on the link, I was directed to ohloh.net . This site analyzes public version control repositories and provides some interesting statistics about the project--including the…

Sync Outlook, Thunderbird, a PDA, and your Smartphone

Since I first owned a PDA, I have been looking for an elegant solution to syncing my data with the PDA and 'nonstandard' applications (Thunderbird / Sunbird / anything in Linux) ... as apparently many people are. Outlook I tried switching over to Outlook as my primary email/calendar program, my unholy marriage to Outlook lasted longer than I care to admit, mostly because syncing with my PDA…

Upgrade to VirtualBox 1.4.0

VirtualBox 1.4.0 was released yesterday, so I thought I would write a very quick guide to installing it in Ubuntu Feisty. My previous post detailed downloading the file directly and several troubleshooting steps. If you run into a problem, check that post out. Add VirtualBox Repository Open up /etc/apt/sources.list (with sudo gedit) and add this line: : deb http://www.virtualbox.org/debian feisty…

Getting Involved with Ubuntu

My history with Linux started off with RedHat 9 then moved through Mandrake, Mandriva, openSUSE, and most recently, Ubuntu . I must admit that Ubuntu is by far the most polished/easy to use/accessible distribution yet. I am excited by the progress of the project and the community. Therefore, since I get such a nice operating system to use everyday for free, I want to give something back to the…

Install Pidgin in Ubuntu

Sure, there are some posts on the Ubuntu Forums with links on how to install a deb package of Pidgin from some untrusted repository. Personally, I'm not too thrilled about using a package that hasn't gone through the community process of being added to Ubuntu. So I have two goals: Install Pidgin Show you how to install something from source Don't be afraid by that last point--a few months ago I…

Open Sourcing RadLex

I finally got a chance today to release part of a project that I have been working on for the past year: RadLex . RadLex is a medical terminology, specifically designed for radiology. I created the servlet and a set of plugins for Protege that aid in the development and distribution of RadLex. We recently decided to open source the plugins , so I have spent the past several days preparing the…

VCSFrenzy

I noticed an interesting project on Planet Ubuntu yesterday-- VCSFrenzy . This tool allows you to get desktop notifications of changes to version control systems (VCS). Sure, some VCS let you have hooks that email you whenever a commit occurs--but this tool provides a lightweight and simple method of keeping track of multiple vcs's. So I have started helping Pete work on this project. So far we…

Vista on Ubuntu Using VirtualBox

::: notice Check out the new guide to installing VirtualBox 1.4.0 from a repository. This is a guide to installing Microsoft Windows Vista on a Ubuntu Edgy machine using VirtualBox . Note that Feisty is not yet fully supported by VirtualBox, but the edgy package is reported to work in feisty. Certain versions of Vista may be illegal to run in a virtual machine, according to the EULA, namely the…

Upgrade to Feisty Fawn from Edgy

Ubuntu 7.04, Feisty Fawn , has just been released, so why not upgrade your machine. To replace all your repositories, at the terminal: sudo sed -e 's/edgy/feisty/g' -i /etc/apt/sources.list You can likely also upgrade Dapper to Feisty beta. I have not tried this, directly. I have upgrade from Dapper to Edgy using this method before. So you could upgrade to Edgy first, or go straight to Feisty (if…

RSS Alarm Clock

I finally managed to get a sound card for an old computer. Now, I can make my Ubuntu Alarm Clock! What better way to wake up each morning, than to have your friendly linux box read the news to you? The techniques that I am using are nothing new ( Hak5 did it and some people at the Ubuntu Forums have talked about it). It is pretty simple, just download and install the rss2html.pl file and the…

ClamAV Email Checking on a Shared Host

This guide is designed for users who have a shared hosting account (no root access), namely on DreamHost . We will make use of ClamAV , procmail , and ClamAssassin . ℹ️ If you add a ~/.procmailrc file to DreamHost, you will likely be unable to use the DreamHost Control Panel's Junk Filtering. Therefore, it is recommended that you check out this excellent SpamAssassin guide and the Dreamhost wiki .…

MediaWiki Markup for WordPress

Just found a nice tool for using MediaWiki's markup inside of Wordpress at Zech's Blog . The WYSIWYG editor is Wordpress is nice, but staying at the keyboard with the wiki markup is nice (without the clutter of XHTML). I have started to become a fan of the MediaWiki markup, because it leaves the text of document less cluttered than XHTML. I have recently been working quite a bit on wiki's ( RadLex…

Songbird 0.2 (Almost)

There’s a new kid in town, Songbird . Imagine if Firefox mated with iTunes, and somehow the gray and brush metal interfaces formed a midnight black child--that would be Songbird. Songbird is an attempt to use the XUL design framework from Mozilla Firefox to create a user experience similar to Apple's iTunes program. While some have said that Songbird is nothing but a direct rip off of…

Firefox 2.0 beta 2

The new version of Mozilla Firefox is out--grab a beta copy now ! There have been doubts if Firefox can keep making inroads against Microsoft's Internet Explorer, given the fact that IE 7 is now out in beta and has many of the features that the internet community has come to expect from a "modern browser" (tabbed browser, feed integration, etc.). However, it appears as if the Mozilla team is going…

Smithsonian Quickly Drops Pluto

The International Astronomical Union has decided that Pluto no longer is considered a planet . This distant body has been reclassified as a "dwarf planet," along with two other bodies, Xena and Ceres. While some may feel cheated, losing one of their beloved planets, the Smithsonian Air & Space Museum was quick to adopt the new standard. Within a week and a half, the museum had begun making changes…

Downfall of DRM?

There has been a lot of buzz this week in the anti-DRM ( Digital Rights Management ) camp. Engadget posted that Microsoft's PlayForSure had been removed by a program called FairUse4WM . While Microsoft almost immediately pushed a patch out that broke version 1.1 of this program, within the week version 1.2 was released, which according to its author should be much harder for Microsoft to break.…

New Site, New Host

Welcome to the new jhcore.com. After having hosted the website for the past 3 years on an old computer in my apartment, it was time for a change to a hosted solution, where I wouldn't have to worry about my internal network being compromised. After quite a bit of research, I have settled upon DreamHost --besides multiple glowing reviews , their prices and features are highly competitive. In…