On the Internet, nobody knows you live in Dogtown.
I've volunteered to do the publicity for PyOhio. I guess it's going really well. Two months out, we've already got 80 people signed up for the PyOhio announcements mailing list. If we assume that most of them will come to PyOhio, plus some others, and that the numbers will keep growing... maybe I'd better relax before we max out the library's capacity.
Still, bootstrapping a regional community is an interesting challenge. It's easy to go out on the internet and find a bazillion people who use Python - but how many of them are in or near Ohio? The wonderfully free-floating nature of the Internet and the open-source community, where geography is irrelevant, can become frustrating when geography actually is relevant.
Finding local companies is even harder. Most companies' websites try to give the impression that they have no geographical location whatsoever - wouldn't want to put off a potential client just because they're on another continent, after all. They also try to avoid mentioning the languages they use, again trying not to appear limited. (In a sense, that's a very good thing, because end users should shop for brains, not tools - it's just difficult for this application.) Finally, with a technology like Python, many of us users sneak it into our jobs without our higher-ups even knowing it, much less promoting it as a strength of their companies.
Any ideas? Googling for "Python Ohio" gets... well, me. Looking for "Python" plus the domain names of Ohio universities is helping a bit. (Universities, unlike businesses, do publicize their physical locations and the technologies they use.)
Anyway, if you've been thinking of submitting an abstract for PyOhio, quit thinking and write; our deadline is June 1 (this Sunday). And don't forget to blog...
That number again:
(Side note: Blogger's captchas are very near the threshhold of legibility, and getting worse. If I quit posting, I guess you'll know why.)
Friday, May 30, 2008
Wednesday, May 21, 2008
slides from SQL*Plus Alternatives
I've posted my slides from today's GCOUG presentation here.
Thanks for being a great audience! Feel free to contact me to ask questions about SQLPython or request new features.
Thanks for being a great audience! Feel free to contact me to ask questions about SQLPython or request new features.
Thursday, May 15, 2008
cmd2 0.3.0
I'm speaking on SQL*Plus alternatives again on Wednesday at GCOUG, and trying to polish up sqlpython a bit in preparation for that. That required polishing cmd2; I've been increasingly embarrassed that cmd2 used homemade code (flagReader) to interpret --options --like --these, instead of using a perfectly good module from the standard library (optparse).
Optparse is not designed for iterative cmd-type apps where you remain at an application prompt after issuing each command - it keeps issuing
Next I got a little deeper into decorators than I'd ever been, to provide a concise way to specify those options:
That was pretty fun. Took some experimentation and this article, though, to figure out how to write a decorator that would accept an argument.
I didn't throw away the homemade ("flagReader") code, for backward compatibility; I issue a DeprecationWarning instead. I did throw away the guts and reimplement it as a wrapper around optparse. I managed to do that part on a single 20-minute bus ride, thanks to good doctests on flagReader. I feel so grown-up!
Finally, inspired by Brandon Rhodes' article in the March 2008 Python magazine, I tried supporting buildout deployments this time. I'm not sure I'm getting it quite right yet; expect it to actually work in cmd2 0.3.1.
Optparse is not designed for iterative cmd-type apps where you remain at an application prompt after issuing each command - it keeps issuing
sys.exit()s to kick you back to the shell. That was my excuse for not using it earlier, but once I decided to fix it, a little subclassing took care of it.Next I got a little deeper into decorators than I'd ever been, to provide a concise way to specify those options:
@options([make_option('-k', '--ketchup', action="store_true", help="Ketchup on that?"),
[make_option('-r', '--relish', help="relish (sweet or dill)")])
def do_hotdog(self, arg, opts):
if opts.relish:
self.stdout.write('One dog with %s relish\n' % opts.relish)
if opts.ketchup:
self.stdout.write('Hope you're not wearing white!\n')
That was pretty fun. Took some experimentation and this article, though, to figure out how to write a decorator that would accept an argument.
I didn't throw away the homemade ("flagReader") code, for backward compatibility; I issue a DeprecationWarning instead. I did throw away the guts and reimplement it as a wrapper around optparse. I managed to do that part on a single 20-minute bus ride, thanks to good doctests on flagReader. I feel so grown-up!
Finally, inspired by Brandon Rhodes' article in the March 2008 Python magazine, I tried supporting buildout deployments this time. I'm not sure I'm getting it quite right yet; expect it to actually work in cmd2 0.3.1.
Tuesday, May 06, 2008
PyOhio Call for Proposals
PyOhio: Call for Presentations
PyOhio, the first annual Python programming mini-conference for Ohio and surrounding areas will take place Saturday, July 26, in Columbus, Ohio. The conference is free of change and will include scheduled presentations, Lighting Talks and unconference-style Open Spaces.
You can read more about the conference at http://pyohio.org
PyOhio invites all interested people to present scheduled talks. All presentations are expected to last 40 minutes with a 10 minute question-and-answer period. PyOhio will accept abstracts covering any area of Python programming. A classroom area with computers will also be available for possible hands-on sessions.
All presentations proposals should submit abstracts no longer than 500 words in length. Abstracts must include the title, summary of the presentation, the expertise level targeted, and a brief description of the area of Python programming it relates to.
All proposals should be emailed to for review.
The submission deadline will be June 1, 2008. Accepted proposals will be notified by July 1.
PyOhio, the first annual Python programming mini-conference for Ohio and surrounding areas will take place Saturday, July 26, in Columbus, Ohio. The conference is free of change and will include scheduled presentations, Lighting Talks and unconference-style Open Spaces.
You can read more about the conference at http://pyohio.org
PyOhio invites all interested people to present scheduled talks. All presentations are expected to last 40 minutes with a 10 minute question-and-answer period. PyOhio will accept abstracts covering any area of Python programming. A classroom area with computers will also be available for possible hands-on sessions.
All presentations proposals should submit abstracts no longer than 500 words in length. Abstracts must include the title, summary of the presentation, the expertise level targeted, and a brief description of the area of Python programming it relates to.
All proposals should be emailed to
The submission deadline will be June 1, 2008. Accepted proposals will be notified by July 1.
Friday, May 02, 2008
choose the tool last
Yesterday, someone asked me if I could design "an MS Access database" for him.
Growl.
As I reflected on it, I realized that the problem is not really the particular technology specified - the problem is that the technology was specified at all before the need was described.
If I offered to make you anything you wanted for dinner, would you ask for "something made with a Teflon spatula?" If you did, I'd tell you, "No no no no no. Describe what you want to eat, and let me figure out what I'm going to use to cook it."
My potential client didn't literally mean that he wanted MS Access to be used, he meant that he wants a database with a GUI interface. He thinks of "Access database" as a way to describe that, because it's the only thing he's ever seen used to build products vaguely resembling the one he's imagining. It's nothing more than a limitation of vocabulary and experience.
The problem is that, so often, that kind of pidgin is taken literally. Tools are pre-selected far too early - while the business users are imagining their needs, before the geeks themselves are even involved,
As a result, there are a lot of geeks out there trying to beat eggs with Teflon spatulas.
My story ends happily, however. My potential client got it when I explained this, and we're going to meet so I can find out what he wants. Then - and only then - will we start discussing which tools to use.
Growl.
As I reflected on it, I realized that the problem is not really the particular technology specified - the problem is that the technology was specified at all before the need was described.
If I offered to make you anything you wanted for dinner, would you ask for "something made with a Teflon spatula?" If you did, I'd tell you, "No no no no no. Describe what you want to eat, and let me figure out what I'm going to use to cook it."
My potential client didn't literally mean that he wanted MS Access to be used, he meant that he wants a database with a GUI interface. He thinks of "Access database" as a way to describe that, because it's the only thing he's ever seen used to build products vaguely resembling the one he's imagining. It's nothing more than a limitation of vocabulary and experience.
The problem is that, so often, that kind of pidgin is taken literally. Tools are pre-selected far too early - while the business users are imagining their needs, before the geeks themselves are even involved,
As a result, there are a lot of geeks out there trying to beat eggs with Teflon spatulas.
My story ends happily, however. My potential client got it when I explained this, and we're going to meet so I can find out what he wants. Then - and only then - will we start discussing which tools to use.
Thursday, April 24, 2008
Penguicon talk materials
Ooh - sorry, I got distracted! Here, at last, are the materials for my talk last Saturday, "Into the Dayta-b'hase: A First-Level Introductory Adventure".
A tarball is here with the slides (dnd.html), queries run (scripts.sql), and a big SQL script to set up the database (dnd.sql)
A tarball is here with the slides (dnd.html), queries run (scripts.sql), and a big SQL script to set up the database (dnd.sql)
Monday, April 14, 2008
tax rant
ABSTRACT
Citibank spends a lot of time imploring their customers to go to all-electronic statements... but they don't improve their electronic statement availability to make them practical. Ohio Dept. of Taxation spends a lot of time imploring people to file electronically... but they can't be bothered to test their forms, or to provide a feedback button so that end users can notify them of errors they find.This is a bad pattern. If you want people to go electronic, focus on getting it right, not on pro-electronic cheerleading.
* * * * *
Ohio has a "use tax" - a law requiring that you add up all your mail-order and interstate purchases from out of state so you can retroactively pay Ohio sales tax on them with your tax return. I think six or seven of us actually obey this law, and the folks at the bureau of taxation laugh, blow a kazoo, and scrawl "PATSY!" on the return whenever they come across someone who paid it. Oh, well.
Digging up records on all these purchases sucks. Citibank, though I love their customer support*, didn't help. (You can download your last six statements, one at a time... or, after March, you can request a PDF report of the whole last year - please allow two business days for your request to be processed. Excuse me? Some people store information on devices called "computers"? A year of credit card statements is about 50 KB... I think you can afford to keep that on disk. Ask Google if you're hard up, they'll give you a few gigs.)
So anyway... I finally, FINALLY, splice electronic records and sift paper records and total up my internet purchases for the year... open up the Adobe form from tax.ohio.gov... and...
...and the line to enter your quantity of out-of-state purchases is not editable. It is pre-set to zero and locked.
One good thing has come out of tonight: I found wesabe, a really nice site for slurping up records from your various accounts automatically. Next year I won't need to fight Citibank, because my Wesabe account will keep itself updated all year long. Wesabe, I'm happy to say, gets it right. Free services generally do, as opposed to people I pay, who generally get it wrong. It's a strange era we live in.
(* - When my credit card was stolen years ago, Citibank was absolutely wonderful to me. It'll take a lot of blundering to erode the goodwill they earned from me then.)
Tuesday, April 08, 2008
PyOhio
It's official! We have a place, we have a date... now all we need is you!
PyOhio
Regional Python programming miniconference
July 26th, 2008 Columbus Metropolitan Library
96 S. Grant Ave.
Columbus, OH 43215 USA Friday, April 04, 2008
Alas, Mendelson's
Mendelson's is planning to shrink their store and relocate. This is very sad news. I can only hope they don't shrink too much or move too far. Fortunately, they have no timetable for this move yet, and if we're lucky a giant asteroid will hit the earth and wipe us all out first.
If you don't know Mendelson's, the best way I can describe it is "a Jawa sandcrawler parked in downtown Dayton". It's a giant industrial salvage shop, the most amazing pile of thingies and whatsits you can imagine. I consider it the most entertaining location in our fair city. If you can walk through Mendelson's without saying, "MY robot will have THIS!", then you are already dead.
If you don't know Mendelson's, the best way I can describe it is "a Jawa sandcrawler parked in downtown Dayton". It's a giant industrial salvage shop, the most amazing pile of thingies and whatsits you can imagine. I consider it the most entertaining location in our fair city. If you can walk through Mendelson's without saying, "MY robot will have THIS!", then you are already dead.
Tuesday, April 01, 2008
Beautiful Visual Python examples
The best thing that can happen, when you try to teach something, is to have somebody learn it and do something that amazes you. That's exactly what happened after my demo of Visual Python at CodeMash... Doug Mair started to play with vPython and came up with two really beautiful examples: a (working!) Rubik's Cube and a set of magnetized disks.
Thank you, Doug!
Thank you, Doug!
Monday, March 24, 2008
PyOhio
PyOhio
a regional Python miniconference
Ohio had a good representation at PyCon, and we agreed that the time has come.
http://pyohio.org
announcement-only list: http://mail.python.org/mailman/listinfo/pyohio
planning list: http://mail.python.org/mailman/listinfo/pyohio-organizers
Almost everything is up in the air right now... all we know for certain is that we're aiming for one day, presumably a Saturday, in the Columbus, OH area. Join us, and help the plan take shape!
Friday, March 21, 2008
Teach Me Twisted
I got home from PyCon last night, having stayed for sprints for the first time (I'll blog about that later). It was amazing.
One of the amazing things was Steve Holden's Teach Me Twisted session. I came out of simple curiosity; I witnessed the invention of a whole new form of teaching, I think.
Steve had the front of the room and a laptop with a projector, just as if he were teaching a conventional class - only he wasn't teaching, he was learning. All he had, to begin with, were some ideas of what Twisted could do, not how to do them. "So, how would I use Twisted to check if my website is up?", he began. The Twisted experts sprinkled throughout the audience talked him through it. Steve asked questions to move the session along, and channeled the discussion to keep it focused on his needs as a learner. In particular, when the Twisted experts started waxing eloquent on subtleties or engaging each other in esoteric discussions, Steve cut them off and redirected them back into the task at hand - the task of directing a beginner.
It was wonderfully effective! When you think about it, the standard classroom arrangement gives all the power to the teacher, which is precisely where it doesn't belong, because the teacher is distanced from the learners' needs. By the time you're an expert, you've forgotten what it was like to be ignorant. Bad teachers even forget how to pity the ignorant, using the podium to demonstrate their mastery of the subject to an imaginary audience of fellow masters. Good teachers try to be responsive to the learners' needs, but the arrangement conspires against them. They're like a blindfolded chauffeur, trying to find the road by the verbal instructions of their passengers, who may be too shy to even speak up. It's very hard for a learner to muster the courage to tell a teacher, "I still don't understand what you're saying, and your tangents aren't helping."
By taking the role of the ultimate, empowered learner, Steve turned all that on its head, and made for a session that really was all about the learners' needs to learn. Yet even the experts said afterward that they, too, had learned from it. Perhaps that's because it harnessed the multi-directional, easygoing, collaborative spirit of a good Open Space session, while remaining technical and specific, not wandering into vague chitchat. Bravo, Steve!
Pycon-organizers is buzzing about it, with perhaps overambitious dreams of immediately start a whole series of "Teach Me..." sessions. I'm thinking about trying it out at a local Dynamic Languages SIG meeting. Teach Me Ruby, SIG guys?
One of the amazing things was Steve Holden's Teach Me Twisted session. I came out of simple curiosity; I witnessed the invention of a whole new form of teaching, I think.
Steve had the front of the room and a laptop with a projector, just as if he were teaching a conventional class - only he wasn't teaching, he was learning. All he had, to begin with, were some ideas of what Twisted could do, not how to do them. "So, how would I use Twisted to check if my website is up?", he began. The Twisted experts sprinkled throughout the audience talked him through it. Steve asked questions to move the session along, and channeled the discussion to keep it focused on his needs as a learner. In particular, when the Twisted experts started waxing eloquent on subtleties or engaging each other in esoteric discussions, Steve cut them off and redirected them back into the task at hand - the task of directing a beginner.
It was wonderfully effective! When you think about it, the standard classroom arrangement gives all the power to the teacher, which is precisely where it doesn't belong, because the teacher is distanced from the learners' needs. By the time you're an expert, you've forgotten what it was like to be ignorant. Bad teachers even forget how to pity the ignorant, using the podium to demonstrate their mastery of the subject to an imaginary audience of fellow masters. Good teachers try to be responsive to the learners' needs, but the arrangement conspires against them. They're like a blindfolded chauffeur, trying to find the road by the verbal instructions of their passengers, who may be too shy to even speak up. It's very hard for a learner to muster the courage to tell a teacher, "I still don't understand what you're saying, and your tangents aren't helping."
By taking the role of the ultimate, empowered learner, Steve turned all that on its head, and made for a session that really was all about the learners' needs to learn. Yet even the experts said afterward that they, too, had learned from it. Perhaps that's because it harnessed the multi-directional, easygoing, collaborative spirit of a good Open Space session, while remaining technical and specific, not wandering into vague chitchat. Bravo, Steve!
Pycon-organizers is buzzing about it, with perhaps overambitious dreams of immediately start a whole series of "Teach Me..." sessions. I'm thinking about trying it out at a local Dynamic Languages SIG meeting. Teach Me Ruby, SIG guys?
Wednesday, March 19, 2008
PyCon Cleveland 2010: Python Rocks!
PyCon is coming to Cleveland in 2010!
OK, I understand there are some other places bidding to host PyCon - some podunk towns like San Francisco and Atlanta - and I'm sure the PyCon organizers will hear their bids attentively, because they're generous people. But, c'mon, you don't seriously think anybody but Cleveland could win, do you? After all, Cleveland is Cleveland, and the others are not!
Anyway, if you want to help bring PyCon to Cleveland, it's time to join the ClePy mailing list and start figuring out how to make it happen.
OK, I understand there are some other places bidding to host PyCon - some podunk towns like San Francisco and Atlanta - and I'm sure the PyCon organizers will hear their bids attentively, because they're generous people. But, c'mon, you don't seriously think anybody but Cleveland could win, do you? After all, Cleveland is Cleveland, and the others are not!
Anyway, if you want to help bring PyCon to Cleveland, it's time to join the ClePy mailing list and start figuring out how to make it happen.
Saturday, March 15, 2008
Live from PyCon
Yesterday, I was wondering whether this year's PyCon was really turning out to be as amazing as its attendance suggested.
I'm not wondering today. I saw some excellent conventional talks earlier in the day. Mike Bayer showed yummy new SQLAlchemy with infectuous enthusiasm. Kumar McMillan gave a blessedly clear explanation of Unicode in Python. Brandon Rhodes laid out ideas like Adapter patterns very nicely, and showed magnificent stage presence, too.
During discussion of Boston's PyCon 2010 bid:
And then, as the pre-scheduled talks ended, the Open Space board went white-hot. I learned a lot at well-attended Open Spaces for DevChix, DBSprockets, and usergroup leaders, and could have enjoyed a dozen other sessions if only I could fork myself.
Right now, I'm finishing my day at Steve's "Teach Me Twisted" session, and wow. I didn't even really care about Twisted, I just wanted to see how the learner-driven idea would work out, and it's going great. About a dozen fat brains and fifty hungry brains are here, and Steve is doing a masterful job of herding us along with skill and humor. How he's managing to absorb this all at the same time as he guides it along with well-placed questions, I don't know. I guess that's what years of teaching experience can do.
I'm not wondering today. I saw some excellent conventional talks earlier in the day. Mike Bayer showed yummy new SQLAlchemy with infectuous enthusiasm. Kumar McMillan gave a blessedly clear explanation of Unicode in Python. Brandon Rhodes laid out ideas like Adapter patterns very nicely, and showed magnificent stage presence, too.
During discussion of Boston's PyCon 2010 bid:
Steve Holden: "I'm not surprised food is expensive. You send them perfectly good tea, and they throw it in the harbor."
And then, as the pre-scheduled talks ended, the Open Space board went white-hot. I learned a lot at well-attended Open Spaces for DevChix, DBSprockets, and usergroup leaders, and could have enjoyed a dozen other sessions if only I could fork myself.
Right now, I'm finishing my day at Steve's "Teach Me Twisted" session, and wow. I didn't even really care about Twisted, I just wanted to see how the learner-driven idea would work out, and it's going great. About a dozen fat brains and fifty hungry brains are here, and Steve is doing a masterful job of herding us along with skill and humor. How he's managing to absorb this all at the same time as he guides it along with well-placed questions, I don't know. I guess that's what years of teaching experience can do.
Itamar Shtull-Trauring: "Can't we refactor the code a bit more?"
Alex Martelli: "No."
Monday, March 10, 2008
KDE 4: wait
I'm a habitual early adopter. For instance, I moved my production databases to Oracle 11g weeks ago. So, naturally, I had to try the new Kubuntu with KDE 4.0. Sometimes, however, "alpha" really means "alpha", as in "nope, it's not ready yet, leave it alone unless you really want to suffer for science".
So far, these are the features from earlier Kubuntu / KDE combinations that aren't working for me on the new Hardy / KDE4 alpha-alpha.
So far, these are the features from earlier Kubuntu / KDE combinations that aren't working for me on the new Hardy / KDE4 alpha-alpha.
- response to volume / mute buttons on hardware
- Automatic mounting of USB drives (the device doesn't show up under /media until after you've navigated into it with Dolphin)
- Alt-Tab switching between windows (AAAAAARGH!)
Sunday, March 09, 2008
learner-driven Open Space
Over one thousand registrations are in the system for PyCon 2008. Over 2**10, actually. Amazing!
After exulting a bit over that kind of growth, I moved on to worrying about whether PyCon can keep the magic that makes it so great as it grows. A look through the still-forming Open Space schedule quickly reassured me. For instance, Steve Holden has scheduled an Open Space session called "Teach Me Twisted" - not because he knows Twisted, but because he wants to learn it. So he's challenged the Twisted community to come and teach it, and it looks like they're responding.
Learner-driven content - I love it!
After exulting a bit over that kind of growth, I moved on to worrying about whether PyCon can keep the magic that makes it so great as it grows. A look through the still-forming Open Space schedule quickly reassured me. For instance, Steve Holden has scheduled an Open Space session called "Teach Me Twisted" - not because he knows Twisted, but because he wants to learn it. So he's challenged the Twisted community to come and teach it, and it looks like they're responding.
Learner-driven content - I love it!
Thursday, February 28, 2008
Introducing Mixed
As far as I know, the Cheese Shop didn't have any way to handle fractions and mixed numbers... until now. Introducing mixed.
You'll feel like you're in second grade all over again!
I hosted the code on Assembla, which has free mercurial repository hosting, so anybody who wants to polish it up is welcome to!
And all this because I was importing into a table last night and noticed some mixed numbers. A normal human being would have just converted them to floats in her head and gone to bed...
>>> print Mixed('-1 1/2') + 2
1/2
>>> print Mixed('3/4') + Mixed('1/2')
1 1/4
>>> print Mixed('-1-1/4') * 2
-2 1/2
You'll feel like you're in second grade all over again!
easy_install mixed to get it.I hosted the code on Assembla, which has free mercurial repository hosting, so anybody who wants to polish it up is welcome to!
hg clone http://hg.assembla.com/mixed_python mixed_python gets you a copy of the repository.And all this because I was importing into a table last night and noticed some mixed numbers. A normal human being would have just converted them to floats in her head and gone to bed...
Sunday, February 24, 2008
Speaking at PenguiCon
I really enjoyed last year's PenguiCon - science fiction geekery and FOSS geekery make a surprisingly nice combination, with the SF people adding a nice lightheartedness to the atmosphere.
I'm giving a talk again this year, but this time, it will have nothing to do with Python - really! I'm going to try some of that hybrid vigor for my own talk, hoping that a fun theme will leaven a potentially dry topic.
I'm giving a talk again this year, but this time, it will have nothing to do with Python - really! I'm going to try some of that hybrid vigor for my own talk, hoping that a fun theme will leaven a potentially dry topic.
Into the Dayta-b'hase: A First-level Introductory AdventureApril 19th, 2:00Relational database technology underpins modern business, finance, engineering, and a lot of other boring stuff. You know you ought to learn something about databases, but how can you stay awake long enough? Come see database software used for something that actually matters: D&D characters. We'll set up a postgreSQL database, demonstrate all the fundamentals of relational databases, and advance Gruk the Unbathed to 4th level.
Friday, February 22, 2008
how to spoil an OSS conference
I'm expecting to be in Washington D.C. on April 22-23, so imagine my delight when I learned of a "Military Open Source Software Conference" at that very time... in that very place! I work on a military contract! What could be better?
Now imagine my shock when I went to register. $1.945. For two days. Two days!
This, folks, is the problem with conferences run by for-profit training companies instead of volunteer organizations. No, wait, it's just one of the problems.
Apparently, the topic is limited to decisions regarding open-source at a managerial level, rather than the actual use of the software and participation in its communities. That shows a serious lack of understanding. Breaking the separations between decisionmakers, code-writers, and users is part of what gives open source its power.
And suppose you, as an attendee, wish to suggest a topic, present a talk, or facilitate a discussion? Well, you can't. There's no provision for participation by the attendee community. Again, they very seriously do not get it, only seeing one-way relationships from paid content creators to passive content receivers. It seems that, just as "you can write COBOL in any language", you can buy proprietary software under any license.
It all makes me extra-grateful to the volunteers who run conferences like PyCon. (Register by March 7!)
Now imagine my shock when I went to register. $1.945. For two days. Two days!
This, folks, is the problem with conferences run by for-profit training companies instead of volunteer organizations. No, wait, it's just one of the problems.
26 Senior Experts from: OSD, BTA, DHS, DON/CIO, AFAE, SPAWAR, FCS-BCT PO, HPCPO NGA, NASA/JPL, PEO-STI, USACE, Hill AFB, BAE, Boeing, Northrop Grumman, Lockheed Martin, Unisys, IBM, CSC, Rockwell Collins, Sun, Booz Allen Hamilton, Autodesk, SEI, and MercuryWhat's wrong with this list? Not one representative of any open-source project! With a speakers' list like that, I don't know if it's even worth pilfering a hotel catering uniform and a pitcher of ice water to go eavesdrop on the talks.
Apparently, the topic is limited to decisions regarding open-source at a managerial level, rather than the actual use of the software and participation in its communities. That shows a serious lack of understanding. Breaking the separations between decisionmakers, code-writers, and users is part of what gives open source its power.
And suppose you, as an attendee, wish to suggest a topic, present a talk, or facilitate a discussion? Well, you can't. There's no provision for participation by the attendee community. Again, they very seriously do not get it, only seeing one-way relationships from paid content creators to passive content receivers. It seems that, just as "you can write COBOL in any language", you can buy proprietary software under any license.
It all makes me extra-grateful to the volunteers who run conferences like PyCon. (Register by March 7!)
Thursday, February 21, 2008
VC cloning into an existing directory
Mercurial won't let me clone into an existing directory.
This is a problem when trying to put (only) a subset of files under version control. For example, an Oracle installation includes an enormous directory structure. A few of its files really, really ought to be under version control (init.ora, tnsnames.ora, etc.); most shouldn't. I need an hg repository in the root of the Oracle software installation. Then, when I set up Oracle on a new machine, I need to clone that repository into the new machine's Oracle root... even though the new machine's Oracle root already exists and is chock-full of files.
I'm surprised that there's no
Or, in Windows,
Thanks to the Linuxchix irc channel for helping me figure out the syntax.
This is a problem when trying to put (only) a subset of files under version control. For example, an Oracle installation includes an enormous directory structure. A few of its files really, really ought to be under version control (init.ora, tnsnames.ora, etc.); most shouldn't. I need an hg repository in the root of the Oracle software installation. Then, when I set up Oracle on a new machine, I need to clone that repository into the new machine's Oracle root... even though the new machine's Oracle root already exists and is chock-full of files.
$ hg clone src target
abort: destination 'target' already existsI'm surprised that there's no
--overwrite flag for hg clone, or anything like it, saying "go ahead and clone into that directory even though it already exists." Perhaps it's simply because VC programmers are software developers, used to working with a clean slate rather than configuring an existing directory structure? Anyway, I made up a script workaround.hg clone $1 $1_clone_temp
cp -r $1_clone_temp/* $2/
rm -r $1_clone_tempOr, in Windows,
hg clone %1 %1_clone_temp
xcopy /e /s /h /g /y %1_clone_temp %2
rmdir /s /q %1_clone_tempThanks to the Linuxchix irc channel for helping me figure out the syntax.
Subscribe to:
Posts (Atom)