My thesis made the Daily Python-URL today. I suspect that help raise the number of downloads of my thesis to reach 694 total which is about 674 more than I was expecting =) . Have gotten more congratulatory emails on finishing the document which has been really nice. Even had a faculty candidate for Cal Poly contact me which was cool.
It has begun to really sink in that I am an actual programmer. With all of the positive reaction I have gotten from my thesis it has made me feel like I have finally gotten somewhere. When people who I highly respect and almost feel like I am insulting by calling my "peer" on python-dev thank me for my work, I felt like I had come into my own in a way. I had always wanted to do something significant for Python on my own. It always felt like I had done a bunch for Python, but always in a small way. Approving patches, fixing bugs, being co-author of a PEP, participating in python-dev talks, authoring the python-dev Summaries; these have all seemed be small. My thesis feels like I have finally done something big for Python.
And with the Google internship I feel like I now have the beginnings to show that I am a good programmer in general, not just in terms of Python and its internals.
And speaking of coding, I have a renewed interest in writing a tool to help manage one's Curriculum Vitae. What I am envisioning a tool that allows one to have a GUI application for inputting and managing one's work history. There would be different tabs for inputting different information (work history, publications, talks, references, etc.). Each piece of information would be tagged for what type of document it should be used in; so one could have a résumé tag for stuff that should only be in a résumé and then have everything else be for your CV by default.
Once everything is inputted (and saved in XML) then you can output the results. The tags allow for filtering out information that is not relevant to what you want for the document you are creating. The base support would need to be for XHTML and UTF-8 text, but TeX would be great since that would allow for easy PS/PDF output. Trick with that would be coming up with a good templating system for the output. Would have to be really simple both because it would be nice if almost anyone could tweak the templates and because I would never want to put a lot of effort into coming up with a templating system. =) Perhaps a pre-existing templating system could be used.
There are multiple perks to this application. One is that I get my CV stuff written and stored and a reusable format; beats the HTML file I use now. Second I get to learn how to do XML stuff in general and XML in Python specifically (do you think I would use another language? =). Third, I would finally learn how to do a GUI since I would most likely do this in Tkinter or wxPython (probably the former for simplicity and portability).
The real trick, beyond making sure I actually get around to it, will be to make sure the XML DTD or Schema is expressive enough to cover the needs of almost anyone without being too complex. That shouldn't be too hard since I know what my needs are and I know people who actually have résumés and CVs =) . I think I will really have to fight going overboard on the design and making sure every bell and whistle is not supported, at least initially.
The other one will be coming up with a consistent way to design the XML document itself. I have always thought that tag attributes in XML documents are underutilized. But I would need to make sure that I don't go overboard in that regard and have everything stored in a single XML tag with a ton of attributes.
So when the hell would I get around to making this application? Well, here are my thoughts on this summer and how I want to use my time. Obviously UBC stuff needs to be get taken care of. I have a laundry list of things that need to get sorted out and either dealt with or planned for so that I don't end up in a foreign country without some basic support structure (phone, banking, etc.) or clue on how to get some things done (driver's license, SIN, etc.).
I also want to get back into shape. Being that sore from just playing a little volleyball is not acceptable. I am hoping Google's gym is nice because I will then use it three times a week before or after work (depending on locker room facilities). Maybe I can even fit in some basketball so as to not suck at the sport I am stereotypically destined to play.
Python has been neglected for too long (although I did check in something a little over two weeks ago and my thesis involved it =). I would love to dedicate at least an hour of coding to Python on nights that I do not work out. Of course I know that an hour of hacking on Python really turns into hours and forgetting to have dinner, but I can at least say an hour so as to make sure I actually start something. I would love to have the AST branch semantically finished before I start school.
Lastly, I am going to teach Jeff Python. Luckily that is easy and is not overly time-consuming. Plus I will get a small app out of it that will give me CV fodder.
Those are the main goals =) . I have a couple of secondary goals. One is to get more languages "officially" learned by doing more version of my ``cvs update`` app. Another is to just write more apps that I have been wanting to do, such as the CV tool. A third is learning Objective-C and Cocoa so that I can do OS X development. And #4, get Askewed Thoughts redesigned and up with new content.
Where the hell am I going to fit in WoW? =)
1 comment:
congratulations brett! it looks neat! i don't know which DL# i am but hey, it's all good. naturally i don't understand it but you're doing more than me in terms of getting it out to the world. methinks i need my push. back to work...
gabe
Post a Comment