![]() |
||
![]() |
||
|
Start »» This is a website about me. I am just this girl, who works on open source web based education stuff, and drinks too much. I write mundane crap about things I do. If you're interested in things about me in list format, go here. You can also send me email, or subscribe to my rss feed. My new gpg key id is 0xA110DDD2, and my old (not quite yet deprecated) gpg key id is 0xA30EC22B I have stuff elsewhere, you can find a handy aggregate at mjollnir.org This blog is syndicated on: The image you see above you rotates from a pool. Since these are all photos of me, none of them were taken by me. (Except the silhouette of me standing in front of a window with a kitten on my shoulder. That one is clearly me taking a photo of myself in the mirror) Credit goes out to the people who took them. Feel free to reload the page and look at random images until you run out or get sick of it. I give thumbs up to: vex for hosting my sorry ass, lurbs for making mail go, and serendipity for writing such fine blog software and allowing me to hack it to pieces. Show tagged entriesapple isync aro valley beach books catalyst cats christmas coffee debconf debian diesel sweeties dorothy parker dreaming drinking election2005 elgg emacs exploding dog family film flikr girl git google gpg haiku home homesick internet irc jo kittens lazyweb lca2007 lessons liip linux linuxchix london mahara matterhorn meme merging miscellany mischief bad group mojo moodle moodlemoot movies music mysql nanowrimo newzealand nokia 6230i open source oscon phoenix foundation php piano pixies ponies postgres procmail rnzb s9y scm sf07 sleeping sun superhappydevhouse switzerland tattoo tour07 travel vim webstock weekend wellington words xkcd
Quicksearch |
Tuesday, May 11. 2010On loving (and hating) software, and how crippling it is to run in high heels
I have a well established (and well deserved) reputation for hating MySQL and being a Postgres fan. While this is functionally true, I want to examine what is actually behind it.
I tried to find an analogy recently to explain this to my friend Michel, and the best I could come up with was (and actually I think it fits perfectly) the following:
That is how I feel whenever I have to touch MySQL. I remember having seen one of Kathy Sierra's talks about creating passionate users - not sure where, maybe Webstock 2007. 'Passionate users' is something that may seem absurd to many computer users who struggle with daily computer use (I have written about this before), but the reality is that I am a passionate user. There are certain pieces of software that I use every day, and feel passionate about! While writing this blog post, I realised that what I'm really talking about here is tools - things that I use in my daily work as a software developer. I honestly love working with Postgres. I love working with Git. There are actually times where I need to do something, or solve a problem, and I feel like this software helps me do it. After I solve the problem I am grateful to be able to work with such tools. This is where the random "I love postgres!" or "I love git" tweets come from. This is a really important point - it's not that I hate MySQL (although I do), or CVS or SVN (also true) - it's that I actually love Postgres and Git, and when I need, for whatever reason, to work with Mysql or CVS or SVN, I really miss the features that make me love their competitors. Of course, this fails to take into account that different pieces of software have different purposes and features, and this is a good thing, because diversity encourages competition which makes software improve. Interestingly, I don't know if I feel this way about all software - I love Vim, but I don't hate Emacs - I just don't use it. When I have to use Emacs (it happens), I am sometimes frustrated that it's different - but I blame myself for that (not knowing it well enough), rather than blaming the software for being substandard. I'm not sure if Vim is any better or worse than Emacs - Vim just suits me better. In the case of Mysql and Postgres, I actually think that Mysql is substandard, and similarly for Git and CVS or SVN. There seems to be a scale for my reaction to using different software:
Obviously, the two extremes are both forms of passion, although I'm sure that the first is what Kathy Sierra was talking about. But I wonder if the software that falls into the third category only exists when there is a competing piece of software that falls into the first category. If I had never used Postgres, would I hate MySQL so much? Probably not, although I might hate it a little bit. I'm sure people that have always run in high heels and never experienced how much easier it is to run in sneakers don't hate their high heels, because they don't know any different. So the conclusion I must draw, is that I don't actually hate MySQL or CVS or SVN - I hate being forced to use tools that I consider to be substandard than their equivalents, which I actually love. To me this is such a black and white issue I am completely baffled when other people don't see it. Considering the way that most people interact with their computers, if software exists that actually makes people feel love - why on earth would they use anything else? Tuesday, September 15. 2009migrating my homedirectory from one repo to many
Sunday was the first day in a long time where I only had 600 things to do, instead of 1000, so instead of doing them in the morning, I stayed in bed and migrated my homedirectory from one giant monolithic repository of .dotfiles into multiple repositories. Here's how & why.
I've tracked the config files in my homedirectory for a long time in git. Previously I just had one git repository with everything in it, from my .vimrc and .muttrc, through to the contents of ~/bin and ~/texmf. This was annoying for a number of reasons, mostly that it included private stuff with passwords in it (like my .irssi/config and .offlineimaprc), and so, when I often wanted to share snippets with people, I couldn't just point them at my git repository. I also found that I wasn't very good about committing changes atomically, since I never really made the context switch between editing my .muttrc and someting else, and then I would find a week went by and I had 20 changes that should really have been committed separately, but I was too lazy to do so. So about 6 months ago, I signed up to the vcs-home mailing list, and lurked. Finally, on Sunday morning, I once again was experiencing massive packet loss to NZ (it's often above 70%) and, since I run irc in screen on a machine in NZ, irc was a real pain. That was the last straw, and since I have a virtual server here that I've been meaning to migrate to for a long time, I finally decided to do it. In typical yak shaving way, this meant I first had to set up backups on the machine, which involved editing config files in vim. But of course my vimrc wasn't on the machine. And I didn't want to checkout my entire monolithic repository, so I decided it was time to first split up the homedirectory. I talked to my amazing boyfriend, and he suggested a combination of git with "fake bare" repositories (bare in that they're initialised with --bare, so that the repository doesn't contain files, but "fake bare" because core.bare is set to false, and core.worktree is set to ../../), vcsh, and mr. Let's look at each of those in detail. Fake git repositoriesFirst, I have a .fgits directory in my ~, in which to store all the git repositories. fgits because that's what Martin used and I was copying some of his config, even though he can't remember what the f stands for. This creates a new "fake bare" repsotitory for me to commit my zsh related config into. Setting core.worktree means that it actually uses my homedirectory for the worktree, which means that it actually uses the .zshrc file in my homedirectory. This means that I can have multiple .fgits repositories, all pointing to ~/ for their worktree, and commit selective files from ~/ into each of them. vcshHowever, it seems that I can't actually use it until I use vcsh. vcsh is a little script that changes into the "context" of one of the fgits repositories, in a new shell, with some extra GIT_ variables set. It looks like this: And inside there, I can git add, commit & push everything I need, and then exit the sub shell. mrmr is a tool used to manage multiple repositories. With it, I configure a list of repositories to be checked out/ updated, and it manages them all for me. I simply made a new .fgits/mr.git and committed ~/.mrconfig to it Now mr knows about "git fake bare", so in the checkout command, I tell it git_fake_bare_checkout, and give it the path to the worktree. Running mr update in my homedirectory now updates all of the repositories in .fgits and that means that the actual files in my homedirectory are updated. zsh promptFinally, I had to do some magic to get both the vcs_info stuff I already used, and the vcsh information into my zsh prompt. Here's the relevant zsh snippet. Notice $PSEXTRA in there, I slightly modified Martin's vcsh script to set PSEXTRA instead of writing to PS1. Then, back to the virtual server I was setting up here. I scp'd my .mrconfig to ~/ there, and then installed git and mr, and just ran "mr checkout" and had all of the files in my homedirectory perfectly set up. So far there are no shortcomings, other than the obvious fact that I copied Martin's vcsh script from his func directory in his zsh git repository , put it in my ~/bin directory and modified it, without being able to track his changes. But other than that, I now have "all" my dotfiles in seperate repositories and it's working perfectly. "All" is in quotes, because while I've done 8 or so, I still have a lot to do. Finally, .gitignore doesn't work with this setup at all. I couldn't even make status.showUntrackedFiles work. Here's a discussion about this. For now I'm reasonably happy just doing git status -uno to get around it. After some feedback on irc from Nigel, I must explain why this helps me commit properly. First, it's a bit of a context switch, like, "oh, I have to edit my zsh config, I better switch to that context by issuing vcsh zsh", and then I have a prompt to remind me. Secondly, if I forget, I actually have to commit separately because everything is in different repos, where previously the urge to do git commit -a -m "last few weeks config changes" was almost overwhelming. Thursday, June 26. 2008why am I suddenly scared of the internet? aka, cool nerds.
I used to be fine with pretty much everything the internet threw at me. Sure, I would close websites immediately that I wasn't interested in, but I was never really scared of any internet trends. I never got into livejournal and I was scathing about it, but it didn't freak me out.
I had my own website/journal/blog since 1999. I completely embraced twitter. I reluctantly joined facebook (because Jonathan Baudanza somehow got to me when I was drunk enough to pinky promise), I use flickr because it's incredibly convenient (this after years of maintaining my own gallery), I use last.fm... I don't know why anymore, actually. But recently I've been using these things less and less. Yesterday I had a total freakout about quality vs quantity (I could write a whole post about the propensity of people to vomit content in the general direction of the internet and hope that some sticks on a wall somewhere where someone might actually see it and pay attention to them! but I won't...) and turned off IM notifications in twitter (I cannot quite yet bring myself to delete my account), and unsubscribed from a whole bunch of rss feeds (no, not modblog yet). And then today I had another look at github, and had another freakout. Is git suddenly cool? Well yes, it is and it's not sudden. But it's cool because it's an incredibly good tool. It's not cool in that web 2.0 way that twitter and pownce and dopplr and all those sorts of things are, at least I thought... I thought I was living in this dual world. On one side I had those trendy web 2.0 things that I was a bit wary of but signed up with, used to keep in touch with people (not necessarily geeks), and on the other side I had this world where I use git and vim and ion3 and debian unstable and make scathing comments about graphical interfaces and pointy clicky ... and I could not imagine that those two would ever cross together into this sort of hybrid trendy geeky web2.0 nerdy monster. Are nerds cool? Someone said to me recently that nerdy was the new black.. and I thought at the time, I was never cool in highschool. I wasn't a nerd, I was more uncool in that rebellious smoke behind the bike sheds and wear 20 up doc boots kind of way, but I wasn't cool and I had a pretty miserable time. Now I live in a world where I'm pretty far gone in terms of geekiness and I never expected that to be cool. Github seems to me the ultimate expression of this. Take something incredibly geeky (people being passionate about their vcs), add web 2.0, stir, and you end up with cool nerds. It's no surprise to me that github seems to be so rails-focused (written in, as well as hosted project proportion). Rails people have to be the epitome of cool nerds, with their special lingo and their whiskey drinking. Sunday, March 23. 2008mahara, yay! php, rage! git, yay!
Yeah yeah, I know I said I ragequit elearning, but it'll come as no surprise to most people that I can't stay away from Mahara for too long.
Today, Nigel and I had day one of our two-day Easter Hackfest, and working on mahara again was yay hooray! except for the fact that I spent most of the day in phprage. I haven't touched php for .. I dunno, a month or something, having been writing perl solidly, and while I have found so far only one thing I miss about php, namely that it keeps insertion order of hash keys (yes, I know this breaks the definition of a hash, I don't care, I want it), I spent large amounts of today writing perl inside php and then being caught in a rage when it didn't work. In particular: create_function. rage. give me blocks. no grep. closest is array_filter, which relies on create_function, or non anonymous functions, which is also ick. double rage. While I'm bitching, the amount of times I've typed :wq into the wrong window while hacking on code on my macos laptop is starting to drive me crazy. I cannot code without ion3 anymore. On the upside, I am so unbelievably happy that mahara uses git. I missed git! Git, I love you! ♥ ps: why the shit doesn't ♥ work in camino?! Friday, May 25. 2007switching to pure git
Apparently cogito is unmaintained now, or about to be or something, so after a year or something of using cogito I'm now about to embark on switching to pure git.
I've had a couple people give me basic talks about what's different and what the equivalents are. If anyone else has any resources specific to switching from cogito to git (I don't care much for switching from $otherscm to git at this point), that would be ace. Friday, April 21. 2006more amusing bug reportsWednesday, February 22. 2006productive week
I got to work this morning and gmail was down! Life without gmail! I am lost.
I am currently very busy merging our NZVLE elgg with clean elgg and my head is full of merging. Knowing about echo 'hash_of_patch_to_merge' > .git/merging Makes life easier. I was whinging about how with arch I could just touch the relevant patch log file and it would know that patch had been merged. I guess this git trick isn't so useful with cherry picking, because it means that everything is merged up to that point, but that's ok, because I am actually merging everything, or deliberately not merging it because it's redundant. I went to the theatre last night and saw two plays, one absolutely awful, the other pretty good. Fringe is a mixed bag. This Saturday I am going to Tea, with my mother, which I am looking forward to immensely, and then back to my house for drinks with my wonderful dysfunctional social group. I have been playing a bit with what to call my friends lately, I had a brief love affair with 'posse' but right now I am very happy with 'dysfunctional social group'. It pleases me. This week has been very productive. I have finally gotten The Blue Room's website done and dusted (insert gratuitous google juice plug here), and had lots of beer and/or coffee with people I like, had a great skype conversation with my Megan in Venice. Hearing someone's voice is so much better than just IM. And I merged a million elgg patches on top of that. I find people walking to work in dress clothes with fancy stockings and then sneakers so incredibly ridiculous. Sure, I wear high heels, and they hurt, but I walk to work in them, and home again too. I wouldn't feel like I had earned the right to wear them otherwise. ----- Fall on your face in those bad shoes. Thursday, September 15. 2005git
Today I very briefly started using git at work and from the short period of time before I came home sick, I had a very positive first impression.
First of all, compared to arch, it's blazingly fast. I am so sick of doing tla changes and waiting literally minutes for it to return.Second, I really like the idea of committing patches locally first and then pushing all those patches up when I'm ready. I generally tend to commit in quite short cycles and normally this means I've been opening short-lived feature branches which isn't really too terrible at all, but I like committing locally more. Third, it's always good to expand the repertoire of SCMs one is familiar with.
(Page 1 of 1, totaling 8 entries)
|
|


