Daniel Roy Greenfeld

Daniel Roy Greenfeld

About | Articles | Books | Jobs | Tags | Search

All Articles (699)

Everything written by Daniel Roy Greenfeld for the past 19.59 years.

Using pyinstrument to profile FastHTML apps

Quick instructions for a drop-in FastHTML middleware for identifying performance bottlenecks in FastHTML apps

Pi Day

A really quick exploration of Pi in Python plus a call to action!

Places I have lived

In alphabetical order, a list of the cities in which I have dwelled in for over a month.

TIL: Undecorating a functools.wraps decorated function

Another reason to use functools.wraps!

Building a playing card deck

Today is Valentine's Day. That makes it the perfect day to write a blog post about showing how to not just build a deck of cards, but show off cards from the heart suite.

TIL: Typer commands defaulting to help

A more elegant way to display default help.

TIL: Every Jupyter notebook cell runs in an async loop

Obvious now that I think about it!

Installing LÖVE on Mac

How I install LÖVE, a 2d gamework written in C++ that uses Lua as its scripting language. Nothing against GODOT or Unity, but I want a tool where I don't need a specialized IDE to build games for my little girl.

Fastcore L

An exploration of Fastcore's enhanced list-like structure

TIL: Using inspect and timeit together

Two libraries in Python's standard library that are useful for keeping load testing code all in one module.

Exploring fastcore bunch classes

For the past six months or so I've been using fastcore. It provides two handy bunch-class style that I've leveraged into projects.

Recap of 2024 and Resolutions for 2025

Another year in orbit around a star.

TIL: yield from

A variant of the yield statement that can result in more concise code.

TIL: types.SimpleNamespace is a Bunch class

Did you know that Python's types library has a bunch class implementation? How did I not see this before?!

My 2024 Fitness Journey

Recovery from injury then moving upwards and onwards.

TIL: run vs source

Different ways to run bash commands that explains part of my frustration with bash over the years.

TIL: Using hx-swap-oob with FastHTML

How to have the injected content know where to go instead of assigning it from the form.

TIL: Arity

In logic, mathematics, and computer science, arity is the number of arguments or operands taken by a function, operation or relation.

Notes on takedowns

Tricks and tips for takedowns and defenses as provided by Mohammed Yusuf.

Top Terminal Tools

A few incredible tools for making the terminal more useful and fun.

TIL: How to reset Jupyter notebook passwords

For those times when you get locked out of a Jupyter notebook

GitHub Admonitions

How to elevate a message in GitHub markdown.

Starting Brazilian Jiu-Jitsu

A guide to getting started in Brazilian Jiu-Jitsu for ages 5 to 100.

TIL: Python's defaultdict takes a factory function

Create a dictionary-like object that takes a factory function so you have lots of control over what the default value can be.

TIL: Python Dictonary Merge Operator

Did you know there's a merge operator for Python dictionaries? I didn't until today!

TIL: Last Token in Shell

How to get the last element in a shell command. Guest starring Atuin!

TIL: Fractional Indexing

How to keep order of records without having to update all the records

TIL: LiteCLI, Improved SQLite CLI

LiteCLI is a command line interface for SQLite with auto-completion and syntax highlighting.

TIL: Making pytest use Ipython's PDB

Once I've isolated a test failure to a very small set of failures I use this instead of running pytest directly. What it does on exception is start the IPython pdb interface.

TIL: SequentialTaskSet for Locust

How to get Locust to not bash your server like a robot.

TIL: Autoreload for Jupyter notebooks

How to skip having to restart your notebook on code changes.

Using locust for load testing

Quickstart guide for doing web application load testing with the Python powered locust library.

TIL: Using Python to removing prefixes and suffixes

How did I miss these functions getting added to Python?

Using Mermaid JS in Jupyter notebook

Useful for adding Mermaid charts of various types to Jupyter notebooks.

File Location Fixup

Writing a Jupyter notebook to clean up my blog's article locations

FastHTML form error handling

A pattern I have been exploring for handling form errors in FastHTML.

Mermaid charts!

My site now has mermaid charts! Many thanks to Imtiaz Khan!

Python CSV Cheatsheet

Here's a quick reference guide for Python's csv module. I use it periodicially, but not enough that I memorize the API.

TIL: Using FastHTML in Jupyter notebooks plus websockets

A simple websockets example hosted in a Jupyter notebook!

Practical Deep Learning for Coders: Lesson 1

I'm going through the fast.ai course by Jeremy Howard. This is the course notes for lesson 1.

Practical Deep Learning for Coders: Lesson 0

I'm going through the fast.ai course by Jeremy Howard. This is the course notes for lesson 0.

tmux cheatsheet

My list of tmux commands with minimal flavor text.

TIL: Parsing messy datetimes strings

How to convert inconsistent datetime strings into datetime objects.

London Tech Zero Hackathon on July 1 and 2!

On the 1st and 2nd of July is the first-ever London Tech Zero Hackathon, supported by Kraken Tech.

TIL: Passing exceptions as arguments in Python

Mypy needs an extra identifier to not choke on an exception passed as an argument.

TIL: Renaming git branches

Sometimes branches evolve into things that don't match their names.

Rapidly creating smoke tests for Django views

A management command for quickly generating tests based off Django's URL routing mechanism.

TIL: Auto setup remote branch for git

For getting rid of the "fatal: The current branch new-awesome-feature has no upstream branch" error.

TIL: Switching to full screen mode in VSCode

For those times when you want to avoid using the mouse to improve your desktop layout.

TIL: Running UV outside a virtualenv

Breaking the rules to satisfy continuous integration.

Keynote at PyCon Lithuania 2024

My keynote and the first return to the homeland of Lithuania in over 100 years.

TIL: Writing decorators for classes

To my surprise writing decorators for classes is easier than for functions.

Recap of 2023 and Resolutions for 2024

Another year in orbit around a star.

TIL: Change older git commit

How to change an older git commit rather than the most recent one.

TIL: Forcing pip to use virtualenv

Necessary because installing things into your base python causes false positives, true negatives, and other head bangers.

Three Years at Kraken Tech

A summary of the past year as I finish my third year working for Kraken Tech, an Octopus Energy Group subsidiary.

Minimal CSS libraries

Minimal CSS frameworks do not use classes, rather modifying the look of HTML components. That means that any CSS classes added are easier to discover and read.

Splitting Git Commits

How to split a git commit into multiple commits.

TIL: Autoloading on Filechange using Watchdog

Using Watchdog to monitor changes to a directory so we can alter what we serve out as HTTP.

TIL: Fixing YAML

Here's how to prettify YAML across your projects.

TIL: Skipping git pre-commit

For saving WIP commits to a remote repo. You really don't want to know what I was doing before.

TIL: Capture stdout & stderr with pytest

How to capture printed text using pytest, something I wish I knew sooner.

We moved to London, UK!

We're going to be in London, UK for a while, here's some of the details.

TIL: Rich.console.status for slow processes

From the command-line a trick to inform users know the system hasn't died and they should wait until it is done.

TIL: Finding and ignoring files with Glob

How to find and ignore files and directories when using glob

TIL: Poetry PyPI Project URLS

Adding sidebar links to PyPI projects powered by Poetry

TIL: pytest with breakpoints

Injecting breakpoints into a failing pytest run

PyPI Project URLs Cheatsheet

The PyPI project URLs spec is defined only in code. Here's my cheatsheet explaining how to configure them. I'll update this as I learn more (suggestions welcome!). Examples in several formats.

Review of Paultons Park

A quick review of Paultons Park Amusement World near Southhamption from the vantage point of a parent of a four year old child.

BJJ Training Tips

I started Brazilian Jiu-Jitsu up again in early November 2022. Against most other white belts I usually can't be submitted and have landed a few submissions of my own. I'm not big or strong so I use these rules given by my coaches.

Converting from bleach to nh3

Bleach is deprecated, here's how to come close to replicating bleach.clean() with no arguments with nh3.

My 2023 Fitness Journey

At the start of the year I had started to get back into shape. This article documents what I'm doing and how well it has gone.

AWS Requests Auth

AWS signature version 4 signing process for the python requests module.

Cookiecutter Options Pattern

A technique I've used for years yet often forget. Placing it here for easy reference.

Programming languages I've learned

Starting as an adolescent I've been learning programming languages. Here's a list of the ones I've learned.

Converting Markdown Headers to Checklist

For those times when you write out a long markdown document that you want to convert to a checklist.

Configuring Sphinx Auto-Doc with projects having Django dependencies

How to make it so projects with Django as a dependency benefit from Sphinx's auto-documentation features.

Resolutions for 2023

My resolutions for 2023

Practice Python Web Projects

Python web projects taken from my personal history to practice on to improve your skills.

Two Years at Octopus Energy Group

Various thoughts about working for a for-profit business with a mission of saving the planet.

Getting s3 pre-signed URLS using the Node.js AWS SDK v3

An easy-to-find copy/pastable reference for creating pre-signed URLs for getting of files using the Node.js AWS SDK v3.

Farewell to Aaron & Company

Aaron & Company was a plumbing supplies firm started by my great-grandfather over 100 years ago and incorporated in 1932. And now it is being sold.

Live Discussion with Sebastián Ramírez (Tiangolo)

I have a friendly live discussion with Sebastián Ramírez, creator of FastAPI, Typer, SQL Model, and more.

Pip Installing Dependencies Into Conda Envs

People think Conda is challenging to use or doesn't work with pip, when in truth it is easy and just works everywhere.

Blogger to Markdown Script

Converting hundreds of posts from blogger to markdown

Sendowl Consolidation Script

Unifying our sendowl accounts into one

More Married

In honor of Valentine's Day, this script calculates how long you've been married (or other types of relationships) in relation to how long you've known each other

My Boss Took My Mouse Away

A useful lesson taught to me at the outset of my career in an unnecessarily abusive way

Speaking at Python Web Conf

My first public conference talk in three years

Autodocumenting Makefiles

Make Your Makefiles Make Your Day!

Exploring the Bunch Class

Bunch classes are very powerful, and with great power comes great responsibility

Blogging and Technical Writing

Answers to questions I was asked recently about technical blog writing.

The Thirty Minute Rule

What to do when you get stuck on a coding issue for more than 30 minutes.

Crusty European Bread

A recipe to make tasty bread with a crust.

JavaScript Loops Are Fun!

This tutorial is a cookbook of my favorite JavaScript looping techniques.

Growing Potatoes in Southern California

What I've learned about growing and eating potatoes in a hot climate.

What's the Ultimate Reason for Working at Octopus Energy?

Wherin I conclude my discussion about why I work at Octopus Energy.

What's the Best Thing about Working for Octopus Energy?

An in-depth discussion about my employment at Octopus Energy.

Blog Revamp 2021


Switching between VS Code terminals using hotkeys

By default VSCode doesn't include this keybinding. Here's how you add it.

Frontend Dev Resources

A list of useful references for leveling up frontend development skills.

Git Cheatsheet

My list of simple and complex git commands and operations.

Recap of 2020 and Resolutions for 2021


Improving Audio Recording with Streamlabs

The resources I used to dramatically improve my audio.

August 2020 Courses

All the live, online, interactive courses I'm teaching in the month of August 2020.

I'm Teaching A Live Online Django Crash Course


Django Slug + ID URL Design

How to combine slugs and IDs to make a a human readable unique URL design.

Eulogy for My Father: Ted Greenfeld

On June 11, 2019, my father, Theodore David Greenfeld, passed away at the age of 84. I spoke at his funeral three days later. It was some of the hardest words I've ever had to vocalize. I want to share what I said as well as some photos. Today would have been his 85th birthday.

Two Scoops of Django 3.x Released

The book about best practices for the Django Web Framework, Two Scoops of Django, has been revised, updated, and expanded for versions 3.0, 3.1, and 3.2.

Adding Metadata to PDFs

How to use Python to combine PDFs and then add metadata to them.

Our New Django Book Has Launched!

We wrote a beginner-friendly tutorial book for Django!

Feed Generator

Writing a Python script to generate my blog feed

Recap of 2019 and Resolutions for 2020

This is my recap of 2019, plus my resolutions for 2020.

Thoughts on Kotlin

My notes and impressions about this Android-friendly JVM language.

Meeting Python Devs in Cancun

Python programming builds bridges across the world!

My Markdown Code Snippet Tester

Ensuring that code in my articles actually works.

Moving to Vuepress

Why and how I'm moving my blog to vuepress.

Ten Years Ago Today

Musings ten years after I decided to take my life in a new direction.

Stop Using Executable Code Outside of Version Control

Fighting the local_settings.py antipattern

Authenticating via JWT using Django, Axios, and Vue

Getting DRF, JWT, Axios, and Vue to play nice

Writing A New Blog Engine

Where I describe why and how I wrote a new blog engine

Implemementing Manual Schema with Django REST Framework

Implementing a manual schema in Django REST Framework

When to Use MongoDB with Django

Short answer is you don't use MongoDB with Django. Read on for the specifics.

Hola, PyCon Colombia!

We're going to PyCon Colombia!

2018 New Years Resolutions

My New Year's resolutions for 2018.

Two Scoops of Django Birthday Giveaway

My 2017 birthday giveaway contest.

Two Scoops of Django 1.11 Is Printed!


Using Python and Google Docs to Build Books

Using Python to combine multiple Google docs into one cohesive whole that can be published as a book.

Python F-Strings Are Fun!


Two Scoops of Django 1.11 is Out!


The writing is finished on Siege I: The Reluctant Hero!


Siege: The First Chapter, Revised


8000 Words!


No Person Is an Island


Power went out, but the writing went on!


Midnight Posting on Wednesday Night


Siege has 8 chapters!


Siege has five chapters!


Siege: The First Chapter


Code, Code, Code

I'm often asked by new programmers how they can forge a path into using their skills professionally. Or how they can get better at writing software. In this article I share the secret master-level method to improvement.

Pretty Formatting JSON in the Django Admin


How To Create Installable, Reusable Django Packages


Intensive Django Training with the US Air Force


Titlecasing Markdown Headers with Python


My Birthday Gift to You

When I gave out my first fiction book for free.

Why Doesn't Python Have Switch/Case?


Django Girls Ensenada 2015


Markup Language Faceoff: Lists


Two Scoops of Django 1.8 is Out!


My Latest Non-Fiction Book is Out


How to Read Kindle Books Without a Kindle Device


The Day I Clicked the Button


Punchline


Into the Brambles is Published!

Wherin I discuss my first fiction book.

Phasing Out Django Packages APIv1 & APIv2


Setting up LaTeX on Mac OS X


Python Decorator Cheatsheet

I can never remember the syntax for writing decorators. I always have to look it up. Worse, I always have to remember where to look to find references. Hence the reason for this article. I'll never lose this reference: It's on my laptop and the internet.

Building Conda Packages for Multiple Operating Systems


Going off the grid


I did an Au Batido in 2014, now what?


setup.py tricks


Rainy Sunday in Buenos Aires


Homemade Pumpkin Puree

How I make the base for pies and other yummy concoctions.

Adding Django form instance attributes

Sometimes in the `clean()`, `clean_FOO` or `save()` methods of a Django form, you need to have additional form instance attributes available. A sample case for this is having `user_id` available. This is a simple example of how to do it in Class-Based Views.

Announcing BarCamp Django SF!


Hola, Argentina!


Want to work for Eventbrite?


Want to work for Eventbrite? (part 2)


Building, Maintaining and Scaling Projects


cached-property: Don't copy/paste code


Jinja2 Quick Load Function


Python Partials are Fun!


Beginner's Guide to PyCon 2015


Surgery in Two Days


First Post


Two Scoops of Goblins


Memories of Malcolm


Docstrings and Various Python Objects


Fiction vs Non-Fiction


Announcing Two Scoops of Django 1.6!


awesome-slugify: Human-readable URL slugs from any string (part 2)


awesome-slugify: Human-readable URL slugs from any string


pytest: no-boilerplate testing (part 3)


pytest: no-boilerplate testing (part 2)


pytest: no-boilerplate testing


I Married Audrey Roy

The story of one of the best days of my life.

New Year's Resolutions for 2014


Cookiecutter: Project Templates Made Easy

Cookiecutter makes creating and maintaining project templates easy and intuitive.

Made Up Statistics


Travel Tips for Geeks: Preventing Theft


My experiences with Django and Python 3


EuroPython Intro to Django Workshop


Core Concepts of Django ModelForms

The concepts behind Django's model forms can be boiled down to six items.

Tools we used to write Two Scoops of Django


Filepicker.io and South


Off to Europe!


Two Scoops of Django is in print!


Generating NCX files with Python


Annotated History of My Most Used Shell Commands


Fixing Python's String class


Core Concepts of Django Forms

The concepts behind Django's non-model forms can be listed in just three items.

Overloading Django Form Fields

How to overload Django form fields in an extensible way.

New Year's Meme 2013


Exceptions as Decorator Arguments


Python Indie Bundle Cyber Monday Sale


Python Yields are Fun!


Dynov 2013 Part I


Travel Tips for Geeks: Traveling Cheaply


The Easy Form Views Pattern Controversy


PyCon Tutorial: Wiring Up Django Packages


Beginner's Guide to PyCon 2013 Part III


We are not using PayPal


Two Scoops of Django 1.5 Beta Released


Beginner's Guide to PyCon 2013 Part II


Beginner's Guide to PyCon 2013 Part I


Two Scoops of Django FAQ


Our Django Book Has Launched


New Year's Resolutions for 2013


2012 resolution summary


New Year's Python Meme 2012


Result of our LA Migration Hackathon submission


Developer Time


Stay with the Django CBV defaults!


Thoughts on ranting


Case Study: URL Design for petcheatsheets.com


Django GetOrCreateView

Probably the first article outside the official docs on how to use the Django CBV form_valid method. Written in 2012 and still accurate in 2023!

Los Angeles Open Source Sprint on Nov 4th!


We need more PyCon US 2013 submissions!


Thoughts on my stack


Installing Pycairo on Mountain Lion


Python dictionary as a class


PyCon 2013 Talks/Tutorials I want to see


A Public Service Message to the Python Community


Python dictionary vs JavaScript object: Dynamic Keys


Django Requirements 2012-08-15


Curiosity has landed!


Attaching custom exceptions to functions and classes


Deadline for DjangoCon Financial Aid requests is tomorrow!


Django Update View Without Slug in the URL


July 15th, 2012 LA Open Source Recap


Simple HTTP Basic Auth Wall


PyCon Philippines 2012 Day 2

A wonderful end to a wonderful event.

PyCon Philippines 2012 Day 1

The first day of the first PyCon Philippines!

Announcing PyCon Philippines!


Django Class Based View: email form with CAPTCHA


Simple Django email form using CBV


May 12th, 2012 LA Open Source Recap


10 reasons to go to DjangoCon Europe


CSS Hacking to make my code samples legible


Choosing an API framework for Django


Django Requirements for a project


Los Angeles Open Source Sprint on May 12th!


Join us at DjangoCon Europe!


Choosing a new python based blog engine


Calendar About Nothing


Launching our API at PyCon 2012


The sorry state of Python OAuth providers


You should Heroku


I use this


PyCon Australia 2011 Review


My PyCon 2012 Schedule


Selected for PyCon StartUp Row


Parsing MongoDB URI


My blog is moved


django-uni-form end of life


Two years ago today


Two years ago today


Silicon Beach Hackercast

An attempt made long ago to create a podcast

Working on the Aú sem Mão


Capoeira at PyCon!


Looking to move off blogger again


Tried out Jekyll


Python Web Summit Questions needed!


Why I like Capoeira


How to justify attending PyCon sprints


Join the PyCon Early Birds program!


Tips for speaking


My SOPA boycott


Resolutions for 2012


2011 Resolution Summary


New Year’s Python Meme


Evaluating which package to use


Announcing Consumer Notebook!


My BaseModel


Made Up Statistics


The Story of Live-Noting


Redux: Python Things I Don't Like


Loving the bunch class


PyCodeConf 2011 Report


Conference Talks I want to see


Profiles: Breaking Normalization

How my Django profile models looked over 10 years ago.

History of my most used shell commands


Quick conferences report: Presentations


Responses to Github is my resume


Github is my resume


The Ultimate Django Tutorial Workshop


Amtrak Review


Python and Django class/hackathon!


Normalization noitazilamroN


I'm going to Pycon Australia!


Hollywood Hackathon Report


Do not upload dev releases at PyPI


Announcing django-uni-form 0.8.0 beta!


Hollywood Hackathon on June 18th!


Python HTTP Requests for Humans


I love this girl!

Announcing to the world my affection for the love of my life.

A couple great Pycon 2011 Talks


We won first place at Startup Camp LA!


I teach Python and Django


How NOT to interview Pythonistas


Are you looking for Python and Django Work?


Python Packages sprint on Sunday 4/10/2011


PyCon 2011 Sprint Report


Announcing Garbaginator!


PyCon 2011 Tutorial Report


I'll get you next time, Wesley Chun!


The Great PyCon Ribbon Game!


My tips for speaking


My Django tutorial at PyCon


My Pinax Solutions class at Pycon 2011


How to sell Python panel at Pycon


What I want for Django Facebook connect


Los Angeles Open Source Hackathon


Why you should go to Pycon


January Mongo LA conference


Pinax Tutorial at Pycon 2011


I don't work in a vacuum


Resolutions for 2011


Recap of 2010


2010 Resolution Summary


Reactions to "Stupid Template Languages"


Stupid Template Languages


Release classifiers in distutils/pypi


A request for new pypi classifiers


DjangoCon 2010 report I


New features for Django Packages


Django Dash Lessons Learned


Announcing Django Packages!


More reasons to go to DjangoCon!


Getting excited about DjangoCon US!


Rainbows on the prairie


Getting piston forms to play nicely with JSON


I want to talk to Jython and Iron Python developers


Apologies to the Python community


I hate Mac & Cheese


My little unit test trick


Using modernizr to help with canvas


Code highlighting on blogger


Steve Holden giving a talk on Python education


Moving away from DC


Leaving NASA


Pycon 2010 report III: Sprints


Conferences are a double edged sword


Apologies to Katie


Pycon 2010 report II


Pycon 2010 report I


I've got ribbons!


Eating my own Dog Food


How I write my presentations


What I don't like about Pycon


My pre-history with Plone


Learn something new every year


Reserve your low pycon price today!


Register for Pycon 2010 already!


DjangoCon 2009 videos are up!


Resolutions for 2010


There was a day...


New Year's Python meme


2009 resolution summary


Recap of 2009


Reconnecting


Picking a Django powered CMS


Python Wars


Code I'll reuse


What I love about Python


Eating your own dogfood


Foxpro


Crashing is fun


Pycon talks and tutorials


November Django Lunch Meetup was fun!


Posting every day this month


Sys Admins: What your Developers want you to know


Have you signed up for the Django Master Class?


Djangonaut Lunch in Crystal City


Something I learned at DjangoCon


Looking for work?


Pycon talk thoughts


Slides from DjangoCon 2009


Pycon talk proposal reminder


Show me your open source Django CMS


Best DjangoCon 2009 Day Ever!


See you at DjangoCon!


All set to go to Portland, Oregon!


I want to give a class or talk at Pycon 2010


NOVA-DUG August 19th summary


NOVA-DUG meeting notice for August 19th


NOVA-DUG scheduling


Clothing triage


Turning away from CAPTCHA


Report on the belt test


Taking the test tomorrow!


NOVA-DUG meeting notice for July 8th


Belt test update


Belt test this Friday!


Still sick


Quitting Caffeine Fail


Training Schedule


What happened to NOVA-DUG?


Thanks for San Francisco Link


Thanks for San Francisco!


What I managed to get done in San Francisco


My San Francisco Day Plans


I don't like Integrated Development Environments


ColdFusion and deprecated code


Eight things I don't like about python


Help me make a new Avatar!


Quitting Caffeine


DC Sprints location is changed!


DC sprints location is official!


NOVA-DUG April 29th summary


NOVA-DUG meetup for Wed, April 29th


Sweet spots of Plone


Finger method of judging graphic design


What I learned at Pycon 2009


NOVA-DUG April 15th summary


Show me your open source Django blog application


NOVA-DUG meeting on Wednesday, April 15th, at 7:30 pm


The end of my Feedfeeder story


What I would change in Plone: Generic Setup


Northern Virginia Django Users Group lives!


Django Dash worst concept contest


Jinja2 in zope


What I would change in Plone: Templates


Forming a Northern Virginia Django User Group


Changing over to .NET


Day 3 Pycon-09 talks I'm attending


Best Pycon 2009 Day Ever!


Day 2 Pycon-09 talks I'm attending


Day 1 Pycon-09 talks I'm attending


Pycon Tutorials attended by me


Heading off to Pycon 2009!


Looking for work?


Naming conventions thoughts for Pinax and Django


Spacebook ITCD demo a success!


Should django-uni-form handle boilerplate HTML?


Tell me your Plone blogging tool preferences


Strangeness on Planet Plone


Starting a new Plone project in February


US Pycon 2009 registration is open!


Awesome Mac command-line trick of the day


Second Annual President's Day Sprint


My current training schedule


How to do well at the job


Simplegraph Screen Capture


django-uni-form lives!


Python formatting test


Memories of New Year's by the decade


How to globally ignore .pyc files


Made leaving comments on this blog easier.


Useful python code for blogspot users like me


Resolutions for 2009


2008 Resolutions Summary


Recap of 2008


I wish we were having a holiday party at the gym


Looking under the hood of Pinax


2009 Saturday class schedule is formally confirmed!


Training notes


My saturday class plans for 2009


Deployment skills need work


Danny's recipe for pumpkin pie


Current plan for FeedFeeder v2


Second place in my second tournament


Steel jewelry is in!


Subscribers Zope 3 style


Why I'm not competing in sparring right now


Cat Vacuuming Society


What I want to see in the next four years


The first effort I made in a TKD competition


Weekend competition information for me


Training failures


Quick update


Morning brainstorm about FeedFeeder v2


The temptation is very strong...


FeedFeeder 2 plan


Normalization, Non-Normalization, Denormalization


Compiling Python on Mac OS X 10.5 can be a pain


End of the conference


Can't seem to use zope debug mode anymore.


Help me with zc.testbrowser


Day 2 of the 2008 Plone Conference


Day 1 of the 2008 Plone Conference


Start of the Conference


Plone Conference 2008 starts tomorrow!


362 days ago I was off to Italy


Why did we use Plone for nasascience.nasa.gov?


Our payment obligation?


Vacation this fall, winter, or spring? Or not...


Farewell to Michael Hammer


Antipatterns I see here and there


Plone OS projects take two: Radius package and FeedFeeder package


Best career technology choice I ever made besides learning python...


Some ideas for open source Plone Products


List of programming languages I know


Don't bet on closed source third party software!


I've not quite done LAMP, or have I?


Nixed Technorati link off this blog


Prayers to Jessica and family


Thoughts on Python interfaces


Moving major appliances


Fitness update


Pluggable Authentication System for Plone


Taught my son yesterday


NYC century bike ride


I missed a class taught by Lennert Regebro?


Trials and Tribulations of avoiding vi


Another reason to dislike P.F. Changs


Funkload to be revisited!


Barack Obama versus John McCain


Coming up on my week off!


wxPython is fun!


Ready for boot camp!


Working on the fatigue issue


Me Grok generate Add and Edit forms!


Exhausted for no reason


July should be fun


Me Grok Smash!


Beware Documentation By Topic


Quick Firefox 3 review


Ruby Security Problems


My students take the big test


Umlizer lives!


Should I write a book?


Cycling in this heat


New water heater


MVC public service videos


Condolences to the Hammers


Must use ubigraph


How not to build a view


Inheritence is fun!


Visit the Greater Lipsum Project at your own peril


Genius will be rewarded


Phoenix


Phoenix is down safely!


To Shell is to love Python


Italia and Escher


Apologies to Chris


I love graphing


Flooding sucks


NYC cycling ride part 1


The problem with comparing Pylons to Django


Best NYC trip ever!


I want to get busy!


More stupid stuff about my health


Feedparser does not work with Google App Engine


Day after the hospital


What I want in a feed aggregator


My trip to the hospital


Suggest to me a feed aggregator!


An Engineer's Guide to Cats


Pesach and tradition


Import Soul


Comments made easier!


Sick but Ubuntu


Status of NASA Science


Oops... forgot RSS feed


Zed Shaw, YAML, Python Community


Overview of NASA Science


So what did I do on the website?


History of my most used shell commands


321 LiftOff!!!


Our NASA Plone project launches


Next time I'll read the label


This looks interesting...


Issues with zope.formlib


I got a job at McDonalds!


Reality Graph


Ramping up the excercise


Need better charting for Python


meeting plone friends at pycon


10th Wedding Anniversary


Django at Pycon


Pycon Wrapup


First side consulting project hits the world!


I contribute to Python


A fanboy at Pycon 2008


Flickr woe


Finally, good food!


The food of Pycon 2008


Zed Shaw and me


First day of Pycon 2008 - The Tutorials!


Numpy Tutorial overview


My first day in Chicago


Another hour of waiting for my flight


On my way to Chicago and Pycon 2008!


2 days until Pycon and Chicago


Replacing a legacy CMS with Plone


Open source makes the world better


Pycon/Chicago ho!


Django fun


Gary Gygax passed away


Pycon


Pycon 2008 travel update


Working from Panera today


Mistakes not to make again


Pycon


Pycon 2008!


Working with ATTopics


Memorial Mass for my Uncle

Saying farewell to my father's brother

I want an Asus eee pc


Sprint!


Insomnia again


I grok viewlets in Plone 3


Work things


Zope 3 Third Edition is in my hand!


My Zope 3 book is almost here!


The weekend


Plone 3 drives me to drink!


Ditching Funkload


Me being snarky

There was a time when I was snobby about what I did, this post does not reflect my current attitude

Plone Confessional


Plone 3 fun


Funkload + Matplotlib = charts!


Funkload Charting woes


Sorting by dates in Plone tables


Supplementary views in Plone


Litigating reality


SVN Versionator is dead


Hrm...


Gym things


More on SVN Versionator


SVN versionator!


New Grok site!


Baby news


Reason #4293 why I'm happy to be out of ColdFusion


Python is the programming language of 2007!


The hard truth about Python


Playing with Trac, SVN, Apache, and LDAP


My human rights are violated!


import antigravity


Capturing shell output in Python


How fast can I convert a Zope 3 app to Grok?

In where I think about converting from one overcomplicated framework to an abstraction of the framework that was still too complicated for easy use.

Complexity added to Plone 3


Playing with Django

About the 3rd time I went through the Django tutorial, at the time I was so jealous of its simplicity compared to Zope.

Happy Thanksgiving!

Giving thanks on Thanksgiving 2007, what a riveting year.

RIA arguments


Need to get into the habit of using Python sets


Adding a new user at the root of Plone/Zope 2 programmatically


What do you do when zope.Public refuses to be Public?


How do I deploy development code with buildout?


Zope 3 Security


New blog format


Plone lets you import/export workflows!


Pylons vs Django


ZPUG-DC Report 2007/11/07


Head meets desk


I grok Zope 3!


More Italy pictures coming!


What is a real language?

Thoughts back in the day when

Danny the Tourist


Monday and Tuesday


My plan for tomorrow


Maybe my last post


Sunday Funday

Another lovely day in Italia! Well, it would have been lovely but the temperature was rather low.

Saturday Bleahs


Handy code snippet


Friday in Italia!


The morning after a friday...


Thursday in Italia


I'm so busy


KSS or Plone4Artists sprint choice


A note of thanks


Technorati Fun


Mercoledi dentra Italia


Top 5 Design Tips for Skinning Plone


Martedi dentro Italia


Required methods to make a class iterable


Second Day in Italy


Italia picture set


Italia!


I'm in England!


First minutes of the day


Case sensitive search in Zope 2.9.7


Interesting...


Can I be a bit snarky here?


Supersizing YouTube


Python Tips ahoy!


Lambdas no more


TurboGears merges with Pylons


Psuedo Code to Real Code


Playing with Catalog brains


A thought on methods in Plone


Plone Introspection


Image of the Day 'extension' of FeedFeeder experience


Interfaces in Zope 3 and Five


Beautiful Soup is Beautiful


The Dark Side begins its seduction...


JSON and Python


Goodbye Uncle Alex

The passing of my father's brother

Stories About Family

Writing down stories about my family

← Back to home