<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Will's Blog (Posts about phil)</title><link>https://bluesock.org/~willkg/blog/</link><description></description><atom:link href="https://bluesock.org/~willkg/blog/tag/phil.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:willkg@bluesock.org"&gt;Will Kahn-Greene&lt;/a&gt; CC BY-SA 3.0</copyright><lastBuildDate>Tue, 28 Oct 2025 18:03:12 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>phil 1.0 released!</title><link>https://bluesock.org/~willkg/blog/dev/phil_1.0.html</link><dc:creator>Will Kahn-Greene</dc:creator><description>&lt;p&gt;&lt;a class="reference external" href="http://mediagoblin.org"&gt;Mediagoblin&lt;/a&gt; has monthly project meetings.  One
of the things I wanted to automate was meeting reminders that gets sent
x days in advance, contain the link to the Meetings page in the wiki, and
specify the date and time of the next meeting.  I figure if we automate
it, it's one less thing we have to think about---it just happens.&lt;/p&gt;
&lt;p&gt;To do this, I decided to write &lt;a class="reference external" href="http://github.com/willkg/phil"&gt;phil&lt;/a&gt;.
For the most part, it's sort of a throw-away project, but it was so small
that I decided to go through a complete project development cycle with it
and make sure it had all the bits a mature Python project should have:
proper packaging, license, configuration, tests, project infrastructure, ...&lt;/p&gt;
&lt;p&gt;I think it took about 10 hours over the course of 2 weeks.  I was learning
the icalendar library and python-dateutil and also figuring out exactly
what I wanted it to do as I went along.  For a small project like this,
that's fine.  For a larger project, I'd prefer to spend more time researching
and designing ahead of time.&lt;/p&gt;
&lt;p&gt;It was nice to "take a vacation" and put all the other projects I normally
work on on hold to throw something together from scratch.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Github page: &lt;a class="reference external" href="https://github.com/willkg/phil"&gt;https://github.com/willkg/phil&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PyPI page: &lt;a class="reference external" href="http://pypi.python.org/pypi/phil"&gt;http://pypi.python.org/pypi/phil&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>dev</category><category>mediagoblin</category><category>phil</category><category>python</category><guid>https://bluesock.org/~willkg/blog/dev/phil_1.0.html</guid><pubDate>Sat, 03 Dec 2011 22:29:38 GMT</pubDate></item></channel></rss>