Saturday, January 31, 2009

She's Geeky - Install Drupal on your Mac

In this session we talked about Drupal in general, and a few people, including Margaret Rosas from Santa Cruz Geeks and CrystalMarie, got it installed and running. I have to apologize for being a bit incoherent; I was tired and unprepared. It was worth the session anyway to introduce the idea that you *can* run drupal on your laptop and use your laptop for development and testing! Margaret and others saved the day by having plenty to say about Drupal, Drupal 6 modules like Original Groups, what will be new in Drupal 7, and how interesting the process has been for re-organizing the Drupal web site.

If I had do-overs, here's how I'd run this session:

- First of all, have already rewritten Installing Drupal on a local MAMP setup to improve its instructions.

- Quick description of what Drupal is. Show drupal.org site.
- Quick introductions around the room.
- Pass around a few USB drives with zipped MAMP and Drupal files, with versions 5 and 6, for people to install and copy over to their laptops.
- Pass out a printout of Installing Drupal on a local MAMP setup.
- Ask people to team up in pairs.
- Give an overview of the install process, but without doing it.
- Then everyone is free to do the install.
- People who get it installed should then go around the room and help other people get it done.
- Mention IRC, #drupal-support, drupalchix, and drupal.org documentation as good resources.

We ran into various difficulties. Some people had file permissions problems; it worked to make the entire drupal directory and all its files and directories readable and writeable, though that seems less than ideal. Also, we had some difficulty doing the first login, which I'm still going through with Laura from Indie Craft Gossip.

Thanks to everyone who participated! I didn't take down your names, but if you want to comment and link back to your blog or Twitter or your company, I'd love it. Also, if you're in the Bay Area and want to hang out messing around with Drupal, ping me and let's have a Drupalchix meetup sometime in February.

Digg this

Friday, January 30, 2009

She's Geeky - Show and Tell Your Dev Env session

We had a session to talk about what tools, languages, and platforms we use for software and web development.

She's Geeky

I started off by trying to list all the tools I use for work for development. Then other people stood up one by one to add their tools to the list on the whiteboard. Lots of people had questions. Our group ranged from people who have been developers for decades to people who had been programmers, but left the field and come back again, to people who weren't sure if they were developers at all because they do web stuff.

I felt like something came together at the end when someone said that she was leaving a huge company with the budget to buy development tools and was now going to work for a startup, so she came to She's Geeky to figure out what free and open source tools were out there for her to use. I forgot to mention SCALE and OSCON, but I should have.

There was a core of people using unix/linux and (oddly?) Mac but unix-centric. There were some Windows folks but was unclear

Version control: People were interested in svn clients and in github. No one currently used CVS and almost no one had heard of mercurial.

Here is the giant, unorganized list of tools mentioned.


unix / linux
macos
terminal
quicksilver
xcode
ichat vnc screen
bash
vim
svn
git (github is nifty)
cvs
php
perl
python
drupal
sourceforge
github
durpal
mamp
firebug
command line...
textwrangler
textmate
clearcase
perforce version control
ruby
rails for web framework / merb
apache with passenger - for deploying rails apps locally
mongrel server to run web apps and it's really easy. (use with rails) ruby gem
webbrick rails thing - use to be built in rails server now it's mongrel
what is a ruby gem install?
rspec
selenium - browser based scripting
watir - testing tool - ruby
"Everything I know is ruby, I've tried to forget my Java life"
eclips intellij
bbedit / textmate
textmate has plugins
php, ruby, html/ css/javascript
Firebug. I love firebug. i am dead in the water without it.
firebug lite you can use on non firefox browsers.
We need a whole session on firefox plugins
Yslow, pixelperfect, firebug, web developer toolbar
enthusiastic recs for pixelperfect.
ADBLOCK!!
Melanie explains history of Yslow.
(Firefox accessibility checker, can't remember its name)
subversion client: beanstalk
Versions - mac svn client!
Tortoise - windows svn client beautiful interface that makes sense.
frameworks: jquery uses css format for javascript and it is awesome
Django (python)
Apptana. IDE. mixed feelings. baby aspirin flavor of eclipse. painful horribly slow but love the real time syntax checker
vmware fusion. really cool for multiple dev for mac. it can be a little slow. My mac is 2GHz processor 2GB memory but it's almost not enough any more to run the VM
Amazon ec2
Apache comes with your Mac, just turn it on in the preferences.
phpmyadmin
jslint. douglas crawford's book Javascript: the good parts (unison from room)
he wrote jslint, javascript interpreter.
Wireshark - monitor your network
adobe cs3 design packages, fun! flash dev. get student discount. adobe 4 is out!
instant rails for windows.
hivelogic.com help installing mysql on a mac.
IRC: use irc for the tool/language. Colloquy - good irc client for Mac (no one used it on Windows)
basecamp, campfire. Propane.
Scrummy - open source good for task tracking, agile
pivotal tracker - a useful communication tool. tracking stories. move through dev cycle. it's free.
Drupal firefox plugin!!! must have this! helps with debugging!
Kindle - good for tech manuals
The Public Library. good for tech manuals too.
westciv stylemaster css editor westciv.com
coda panic software Transmit ftp client. integrated web dev env called Coda which is really fascinating.
Apple trainers doing technical mac os books. they use subetha edit.
omnigraffle mindmeister
different open apis that are super useful.
cpan, darwinports, apt-get, easyinstall, etc etc


People:
* Desi Mcadam - ruby, ruby on rails, web based applications, spotus, hashracket , consultant. florida. Devchix!
* Karen Mcadams - Freelancer. Likes to work for non profits.
* Jenny Greenwood - jobs dev drupal software engineer C, C++, assembly. out of developtment for 8 or 9 years. teaching self CMSes and drupal and css and php
* Margaret rosas - quiddities , santa cruz - doing drupal. knight foundation. drupal radio. Radio Engage. local public radio station she built Santa Cruz Geeks site. met heathervescent and started doing santa cruz geek dinners.
* becca (berkeleybecca) peachpit press. what software tools we have energy around. ones we just love. she is lurking here to find out what we love. she is proud of coding her personal web site and taught herself css.
* Laura - - front end middle end web dev for 10 years. not working now, volunteering to do web sites. does bazarre bizarre. javascript, java, html css.
* nabil project manager. security. peeve of security. personal information in web sites! finds out horrible details! company is hiring, little consultancy, sf, biz process mgmt development, hiring microsoft engineer, a software developer. elegrity. elegant + integrity.
* Amie Forest - Quiddities
* Terri Train IT manager. web dev typing in html javascript by hand, dreamweaver, i like it by hand better elegant code. lotus domino. not free. good quick app development tool for doing all sorts of workflow , web forms, apps on the web. switching to a new company, come to this come to new company with fresh ideas, won't have money to buy expensive tools, looking for free ware now.
* melanie archer - front end web developer javascript css freelancer.

I was taking notes very fast and might have left out people or crucial details - please correct me in comments (or email!)

A lot of us also agreed it would be nice to put up a board to match up people who use various of these tools or platforms or languages, so that we can have an IM buddy, where it might be easier to ask questions rather than go on IRC. I do try to nerve myself to ask stuff on IRC ... and thank you to anyone on php-women and drupal-support who helped me out 8-) I found that pretty quickly I was able to be helpful to random other people in drupal-support, which made me feel easier in my mind about asking my own questions.

Thank you everybody! I got a lot of good tips from this session and also a nice sense of not being alone in trying to get a handle on the amorphous beast that is a development environment.

We agreed that we could pick any of these tools or concepts and do an entire sesson on it that is more in depth and hands on. general agreement that we need a Firefox plugins for developers session, asap.

Digg this

She's Geeky - Session on gaming

There are some hard core gamers here, about 10 women, a lot of them gamers for many years. STories of AFT, All Female Tournament, Female Fragfest 99, women playing for years with male online identities to avoid harassment and then coming out. Funny story from Kim F. of the moment she realized a bunch of other teenage gamers she played with were female because they were the ones who got emotional at the death of Princess Di.

Someone said the words "Barbie Mortal Combat"...

I mention the Iris Network and Cerise, an online magazine for game geek women.

A divide in the industry between games for guys which are seen as monetizable in a certain way while "casual games" that 35 year old women play are treated as exploitable b/c they're idiots like you can get a stay at home mom to give out the credit card number... it has attracted the seedy underbelly, the shady side of the industry. Annoying!

It's still hard to find exciting games for young girls that aren't sexist and condescending and stupid.

Games that aren't totally dirty sexist first person shooters (though a lot of us here like them too) Katamari...

Board games, german games, this craze not realy picked up on yet by online industry.

We all want this: A sort of imdb for gaming. It would list all games, across all platforms and genres, mmorpgs, video games, flash games, board games, rpgs. Reviews, rating system, recommendation engine. tHis should cross platforms in the rec engine too and patterns might be detectable that if you like X flash game you might love Y MMORPG.

what makes a game addictive? is it different by gender?

Spore. Everyone hates ont he DRM. some are boycotting. Everyone likes the ideas in Spore!

Small companies can now build games very quickly because the game dev tools are better. Story about Artemis Software and their quake engine/ greek mythology game attempt. the tools weren't there. Now, 3 or 4 people can get a game out in 4 months.

People customizing their wii avatars. body image and gaming discussion.

gamefaqs.com, defectiveyeti, metacritic, cerise, iris network, playrag, alltop gaming blogs, twop, scorehero (used to be good, then not enough moderation)
we want something like allrecipes.com but for games and strategy. Kongregate.

The best communities and information is built when there is strong moderation.

Rec of a game called Braid. (xbox.) it is back in the hands of the people.

Look on youtube for women gamers reviewing games.

Tomorrow: BSG, science fiction sessions!

There is more but i missed it while typing up my notes.

If you were at this session and are reading this (or weren't but have something to say) please drop in more info and links to anything awesome and cool, in comments!!!

Digg this

Wednesday, January 28, 2009

Cleaning up urls with awk

Here's my stupid awk trick of the day: using the field separator option to mess with URLs. I spent something like an hour trying to write regular expressions and then reading other people's solutions to cleaning up urls from log files and other sources.

For example, given a list of about a million urls like this:

http://bloggggggggy.com/path/to/the/post/2009/1/26/blahblahblah.html
http://www.bloggggggggy.com/morejunk.html
https://www.bloggggggggy.com
http://yetanotherblogomigod.blogspot.com/
http://yetanotherblogomigod.blogspot.com/somejunk.php?stuff&morestuff

I want to end up with a list that's just

bloggggggy.com
yetanotherblogomigod.blogspot.com

You can do this in php with some regular expressions:

preg_match("/^(http:\/\/)?([^\/]+)/i", $URLstring, $result);
$domain = $result[2];

(Though I saw a lot of other solutions that were much longer and more involved)
or, here's one method in Perl:

$url =~ s!^https?://(?:www\.)?!!i;
$url =~ s!/.*!!;
$url =~ s/[\?\#\:].*//;

But for some reason I was trying to do it in one line in awk, because that's how my brain is working these days, and I couldn't get the regular expression right.

Suddenly I realized that if I split the lines on "/", the domain name would always be the third field.

So,

awk -F"/" '{print $3}' hugelistofurls.txt > cleanlist.txt

gave me a nicer list of urls.

and

awk -F"/" '{print $1,"//",$3} hugelistofurls.txt | sort | uniq -c | sort -nr > counted-sorted-cleanlist.txt


gave me just about what I wanted.

After I did that and finished squeaking with happiness and wishing I could show someone who would care (which unfortunately I couldn't which is why I'm blogging it now) I realized I wanted the www stuff taken out. So I backed up and did it in two steps,


awk -F"/" '{print $1,"//",$3}' hugelistofurls.txt > cleanlistofurls.txt
awk -F"www." '{print $1 $2}' cleanlistofurls.txt | sort | uniq -c | sort -nr > reallyclean-sorted-listofurls.txt


which gave me something like this:


3 http://blogggggggy.com
2 http://yetanotherblogomigod.blogspot.com


Exactly what I wanted!

While I appreciate a nice regular expression and it can be a fun challenge to figure them out, getting the job done with awk felt a lot simpler, and I'm more likely to remember how to do it in an off-the-cuff way, next time I have a giant list of urls to wrestle with.

How would you approach this same problem, either in awk or using another tool or language? Do you think one way or another is superior, and why?

Digg this

Tuesday, January 27, 2009

She's Geeky conference this weekend in Mountain View

This Friday and Saturday I'm going to the She's Geeky conference at the Computer History Museum in Mountain View. Take a look at the proposed topics and at the list of women coming to the conference! It was a great conference last year - really a blast.

She's Geeky conference

Thursday night there is a big She's Geeky dinner get-together at Ming's in Palo Alto, and I'll be at that too along with my sister Minnie from Thank You For Not Being Perky, who has been a web developer for about as long as it's possible to have been a web developer, and who also blogs for Indie Crafts Gossip and makes the most amazing spats ever.

I have a bunch of possible things I could speak on. I'd like to hear and talk about WordPress, php, Drupal, developing on a Mac, Ubuntu, and of course am always happy to talk about all the other things I generally end up talking about: blogging and general Web 2.0 stuff, social media, women, mom bloggers, feminism, anti-racism, disability rights and access, and science fiction and fantasy.

Mostly I'm hoping to meet other women who like programming. No genius hackers required. I am a little more low-key than that. I would not mind showing off my newfound stupid awk tricks, or how I am pretty good at coaxing information out of the del.icio.us api these days.

Likely I will spend some time teaching people stuff they want to know, sort of at random, or fixing their blog templates, because it makes me happy and I feel very popular when I treat my ability to do tech support as feminist activism...

Last year's She's Geeky conference in Mountain View was fantastic! I met so many people from the Systers mailing list and in general felt super inspired to be at a women-only geek conference!

Here's some other conferencey stuff coming up for me this spring and summer. It's a lot of events!

SuperHappyDevHouse

Not a conference, just a hangout. But really great! SuperHappyDevHouse30 is coming up Jan. 31 in Menlo Park. I always have a good time at these! I almost never know anyone there, and there's usually like 1% women, but people are very friendly and I'm convinced this could be a great place to have regular geek girl meetups. It's usually at an actual house, so I'm curious to see what the feel is like when it's at Sun.


Potlatch!
At the end of February, in Sunnyvale, I'll be at Potlatch, a small, bookish science fiction con that has Books of Honor instead of Guests of Honor. I'll be on a panel about a book by John M. Ford, Growing Up Weightless. The other book of honor is Ursula K. Le Guin's Always Coming Home. The con has only one programming track and is full of Bay Area, Portland, and Seattle sf geeks, intersecting fairly heavily with the WisCon (feminist science fiction) folks. L. Timmel Duchamp will be there, and Vonda N. McIntyre, and Ursula K. Le Guin, and a lot of other fantastic writers and readers.

ETech!
I'm speaking at ETech in early March on "DIY for PWD: Do it Yourself for People with Disabilities".

With a cultural shift to a hardware DIY movement and the spread of open source hardware designs, millions of people could have global access to equipment design, so that people with disabilities, their families, and their allies can build equipment themselves, and have the information they need to maintain and repair their own stuff.


SXSWi!

I'm speaking at SXSWi in a "core conversation" about Open source and disability access!

Sex:Tech

And then at Sex:Tech about sex information and disability online, with Jen Cole from GimpGirl!

WoolfCamp!

Just recently Grace Davis emailed to say she's thinking of holding another WoolfCamp, possibly at her house in Santa Cruz in April! I'll keep you all posted.

woolf camp


WisCon!
The BEST. WisCon is the world's largest feminist science fiction convention! End of May, in Madison, Wisconsin. The book I'm editing is about last year's WisCon!

BlogHer - Geek Lab!

I'm helping to organize BlogHer's Geek Lab, which will happen in July in Chicago alongside the regular conference. We're going to have two presentation areas separated or curtained off, with projectors and seating for about 30 people; one for beginning topics and the other for intermediate/advanced. Slots for talks will be 30 minutes, with 15 minute breaks. The idea is that people can present on a topic and then commit to hang out for an hour afterwards to go in depth, at the area with tables in between the presentation corners. These "office hours" can go on while other people might just be using the space as a place to hang out with their laptops or get together to share information.

Digg this

Tuesday, January 20, 2009

Deconstructing Cheney's De-Inaugural Wheelchair

When I heard that Dick Cheney had pulled a muscle and was going to be attending the inauguration in a wheelchair, I was filled with deadly fascination. How would that play out?

Would the inaugural ceremonies be even remotely accessible? Not bloody likely!

Would he self-propel, or would someone push him? Would the person pushing him be secret service, a family member, military, or a medical worker?

Would Cheney have a steel framed 70-pound hospital clunker of a wheelchair, or would it be halfway decent? My vote was for an x-frame Breezy, still cheap and easy to lay hands on, but under 40 pounds, maybe in red for its political symbolism value. Other wheelies I know were saying "No way, he'll be in a clunker." Even though I think that Cheney should (and WILL) go to jail for being a war criminal, I would have liked him to have a halfway decent wheelchair. Hell, I would personally have decorated it with the stars and stripes.

I imagined, and then later saw, Cheney being shovelled about from place to place behind the scenes, through freight elevators and dank back-hallways, maybe even a steam tunnel or two, carried ignominiously or bumped up backwards over some surprise steps no one thought about, and I felt a bit of schadenfreude there though I'm not proud of it. But I wondered, would anyone in power notice, a little bit more than they did before, what inaccessibility means, how excluding and alienating and humiliating it can be? Would anyone process, or whatever they were doing, with Cheney in his wheelchair, rather than leaving him to be tunnelled and elevatored and ramped while they triumphally process up and down majestic red carpeted staircases?



If you were enjoying their own moment of schadenfreude at the powerful man brought low, did you think about why wheelchair use was being brought low, was disempowering? Because it shouldn't be.

Yes, I kind of giggled at the Dr. Evil jokes, but I also thought about them. Did you? Did you think on why they are a stereotype - how our stories have to give its villains a scar or "deformity" or a wheelchair (and a cat), using disability as a metaphor for being evil? I'm not saying don't make the joke. I'm right in there posting the LOLcats of Blofeld-Cheney. But think next time you use the stereotype of the Evil Cripple.

I also certainly saw friends and strangers wishing permanent disability onto Cheney like it was a horrible fate, one that he deserved. I understand that is mostly just some anger talking. But this too exposes a bit of thinking in our society that people with illnesses or disabilities deserved them as a sort of punishment for wrongs or sins committed. I would like to invite people to think on that idea for a while. And think on this: why you think it might be such an awful fate for Cheney to use a wheelchair? Why is that? Do you think I have an awful fate? Do you pity me, to the extent that you would damn Cheney?

It was amazing to me, while I watched the inauguration, to see people I know from disability activism online, also Twittering and Facebook-chatting their reactions to Cheney's de-inaugural wheelchair. Were you watching? Did you feel that strange agitation and excitement and curiosity?

What I felt was this:

How bitter, but how very expected, that the top levels of our own government, the most powerful men around, can't pull it together to obtain a halfway decent wheelchair and decent access, for one of their own. That exposes the deep, deep ignorance in our country about access for people with disabilities, and how far we have yet to go.

(Have to add: I thought the Daily Show's coverage of Cheney's wheelchair was **hilarious**!! It starts at 2:32 in this video clip. He totally could have pushed it further!)

Digg this

Wednesday, January 14, 2009

Upgrading Drupal 4.7 to 5.14

I have been working on upgrading a site from Drupal 4.7, which is unsupported, to Drupal 5.14. I am somewhat familiar with Drupal as a blogger, user, and administrator, but wasn't sure what it would take to upgrade a large and complicated site that's been around for several years (and several former admins and programmers).

I decided to copy the entire site over to my computer so that I could run and upgrade it on a machine I completely control. I had already installed MAMP. If you develop on a Mac I advise you not to be snobby, MAMP is awesome.

The instructions at drupal.org looked pretty good. And Angela Byron from Lullabot has a good screencast on upgrading from Drupal 4.7 to 5.1x. If you are about do an upgrade, I recommend you watch this -- it helped me get all the steps clear in my mind and it was also kind of reassuring.

One of the first things I did was to list out all the modules used in the old site. Later, I dumped them into a shared document so I could ask other people which modules they know are used or might be useful to bring to the upgraded site. I also started a plain text log file of what I was doing for the upgrade, to record things that worked and didn't, links that were useful, commands, and so on. This sort of "work in progress" file gets messy very fast, so it's good to go back over it before you stop working for the day to sum up what actually did, or does, work!

I started off here, Copying a site to a local MAMP installation on a Mac. I ran into a few problems and when I figured them out, I logged in to drupal.org so I could add to the documentation.

Then I ran into problems, because I wanted to run several instances of Drupal at once, and there were hard-coded bits of urls in several blocks of the 4.7 site. So I had a copy of the complete 4.7 site in a directory called "drupal". Its .htaccess file was set up as in the "Copying a site to a local installation" instructions suggested. But half the links were broken - the ones that were hand-coded into blocks rather than pulling from the database. What I ended up with was another .htaccess file in the root MAMP/htdocs directory:

RewriteEngine on

RewriteRule ^$ /drupal/index.php?q=/ [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /drupal/index.php?q=$1 [L,QSA]




This worked. Now I have several folders with different versions of Drupal and several sites in my MAMP/htdocs folder, and to get them fully operational with all the links working, I change the path in the RewriteRule in .htaccess in htdocs.

Other people, in dealing with this problem, turn to virtual hosts, which is what we use in our production server. I haven't tried setting that up yet, though it seems like once it was working, it would be more elegant.

Onward to the upgrade itself. I tried it a few times, and kept getting various bits wrong, ending up with a blank white screen and no information in the MAMP/conf/apache_error_log and nothing at all in "view source". HEre's some of the things I did wrong the first few times:

- ran upgrade.php from the old site's directory. oops! Drop that database and start over!

- put the old site into maintenance mode, then couldn't get to a login screen for turning maintenance mode off again, despite advice from the Drupal forums on "Site off-line under maintenance mode" to go to

http://localhost:8888/mynewdrupalinstall/?q=user 
. I ended up turning off maintenance mode from the command line,

/Applications/MAMP/Library/bin/mysql -u root -p databasename
>> update drupal.variable set site_offline=1

That worked great.

Turning things on and off from the mysql command line turned out to be very helpful for a bunch of my problems. It was useful for manipulating themes. When I enabled the site's old 4.7 custom theme -- not even selecting it as the default theme, just enabling it -- my entire new install gave me a blank white screen. Oblomovka suggested switching the directories around, which seemed like a great idea! So,

mv oldcustomtheme screwedupoldcustomtheme
cp bluemarine oldcustomtheme

We both thought this was clever and would trick Drupal 5.14 into going right back to the default bluemarine theme. No! It didn't work! The white screen persisted.

This was helpful: Unusable theme - How To reset your theme via the database.

In retrospect, I should not have tried enabling the old custom theme before I turned on some more modules; when I actually bothered to look at the old theme, I could see it used jstools and all sorts of other stuff that I'd deactivated.

I'm off to try that now. So far this has been pretty interesting, though sometimes frustrating! The documentation on drupal.org is extremely helpful.

Digg this

Tuesday, January 06, 2009

Cooperative Discardia!

You can see the floor in my living room and office now! Minnie came over to my house last week and helped clean and organize. Mostly, we went through stacks of papers. About 20 grocery bags of recycling, trash, and donations left the house. She worked all day cleaning my house and whipping me into paying attention! I was not allowed to slack!

Here's my office,

there was no floor here

and the living room has open space now. I know, it's a narrow room, but compared to how it was before we went through the tubs of art supplies, piles of dvds and books, and just plain trash, it's the wide open prairie.

Meanwhile, at Minnie's house, we removed about 50 bags and backpacks from the bottom of her staircase, where the cat likes to pee on them. Then we tackled her studio. You can see her before and after photos over at Thank You for Not Being Perky. I believe a computer, an old carpet, an office chair, a small stack of Java and Javascript books, and 8623413 dust mice were removed from the vicinity!

I wonder if we could do this once a month with each other? I think ideally I'd have a Discardia and cleaning co-op. In that case though, we'd all end up with each other's junk!

Digg this