Daniel Roy Greenfeld

Daniel Roy Greenfeld

About | Articles | Books | Jobs | News | Tags

All Articles (649)

Everything written by Daniel Roy Greenfeld for the past 19 years

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 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


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.

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!

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


Picking a Django powered CMS

Python Wars

Code I'll reuse

What I love about Python

Eating your own dogfood


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 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 2008 travel update

Working from Panera today

Mistakes not to make again


Pycon 2008!

Working with ATTopics

Memorial Mass for my Uncle

Saying farewell to my father's brother

I want an Asus eee pc


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


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


I'm in England!

First minutes of the day

Case sensitive search in Zope 2.9.7


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