Daniel Roy Greenfeld

Daniel Roy Greenfeld

About | Articles | Books | Jobs | News | Tags

All Articles (648)

Everything written by Daniel Roy Greenfeld for the past 19 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 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 and fellow players of the art.

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


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


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.
2013-8-17

Made Up Statistics


2013-7-26

Travel Tips for Geeks: Preventing Theft


2013-7-18

My experiences with Django and Python 3


2013-7-11

EuroPython Intro to Django Workshop


2013-7-01

Core Concepts of Django ModelForms

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

Tools we used to write Two Scoops of Django


2013-5-03

Filepicker.io and South


2013-4-23

Off to Europe!


2013-4-20

Two Scoops of Django is in print!


2013-4-17

Generating NCX files with Python


2013-4-15

Annotated History of My Most Used Shell Commands


2013-4-10

Fixing Python's String class


2013-4-01

Core Concepts of Django Forms

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

Overloading Django Form Fields

How to overload Django form fields in an extensible way.
2013-3-27

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


2013-03-8

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!


Deadline for DjangoCon Financial Aid requests is tomorrow!


Attaching custom exceptions to functions and classes


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!


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


2008-03-24t10:49:00.003-07:00

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?


Complexity added to Plone 3


Playing with Django


Happy Thanksgiving!


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