WordCamp
Thursday, July 22. 2010
Last weekend I was at WorkCampUK in Manchester - it's taken me this long to writ the blog post because I needed time to download my photos, however I've now done that and I didn't get anything at all worth publishing, d'oh!
I am a wordpress user and even wrote a plugin once, but I'm an outsider in terms of community so I was looking forward to finding out more about the people involved with wordpress. I expected to meet some friendly folk and I was not disappointed at all - there was a wonderful range of people there, right from people wanting to start a blog to people making a living from wordpress development, and everyone in between. I attended talks on testing the internals of wordpress through to some case studies of sites built using it (thanks @simonwheatley) as well as sessions on plugins, business, and web technologies.
My biggest thankyou of the weekend goes to the Genius @pgibbs who took the time to reply to my tweet-appeal for someone to review my wordpress plugin and spent a good chunk of his afternoon wading through my newbie code - I got loads of great pointers, thanks Paul!
The event ended on a slightly contraversial note with some input from the Automattic people who had come over to attend the event - they're putting a lot of work into improving the support for the communities running the WordCamps, which should have been good news, but one of the things that will change is that there's a move away from having WordCamp naming to WordCamp to make space for more events. Suddenly the crowd I thought were so friendly turned a bit hostile, which I found odd. I hope they know that their frankly awesome event will be frankly awesome wherever it is and whatever it is called, I shall be looking out for the details for next year and hoping to see some of the crowd at events between now and then!
edit: I forgot to say I made a particular new friend, @apeei - you can see us here
I am a wordpress user and even wrote a plugin once, but I'm an outsider in terms of community so I was looking forward to finding out more about the people involved with wordpress. I expected to meet some friendly folk and I was not disappointed at all - there was a wonderful range of people there, right from people wanting to start a blog to people making a living from wordpress development, and everyone in between. I attended talks on testing the internals of wordpress through to some case studies of sites built using it (thanks @simonwheatley) as well as sessions on plugins, business, and web technologies.
My biggest thankyou of the weekend goes to the Genius @pgibbs who took the time to reply to my tweet-appeal for someone to review my wordpress plugin and spent a good chunk of his afternoon wading through my newbie code - I got loads of great pointers, thanks Paul!
The event ended on a slightly contraversial note with some input from the Automattic people who had come over to attend the event - they're putting a lot of work into improving the support for the communities running the WordCamps, which should have been good news, but one of the things that will change is that there's a move away from having WordCamp
edit: I forgot to say I made a particular new friend, @apeei - you can see us here
Posted by LornaJane
in tech
at
07:54
| Comments (2)
| Trackbacks (0)
Defined tags for this entry: tech, wordcampuk
Working with Branches in Git
Monday, June 28. 2010
Recently I've been doing more git than I ever intended to, working with the Joind.in codebase, contributing and managing contributions to that. I quickly realised that I needed to make changes on branches, and since I'm new to git, it took a while to figure some of this out. I'm pretty confident now* so I thought I'd share how I work with branches in git.
This is the easy bit:
$ git branch
* api
master
$
The entry with the star next to it is the current branch, so here you can see that I have branches "master" and "api" and I'm currently working on the "api" branch. If you only have one branch it will usually be called "master".
My experience is with Subversion until now, and branching is really different in git (because it actually has branches rather than just copies, this is definitely a feature, but it is a different approach from how I had used them before). So you can switch your working copy around to look at different branches, which threw me a bit to begin with. To change branches, just checkout the one you want:
$ git checkout master
Switched to branch 'master'
$
If you actually wanted a new branch simply name it and ask checkout to create it if it doesn't exist, by using the -b switch:
$ git checkout -b demo
Switched to a new branch 'demo'
$
So now my branch command shows me this:
$ git branch
api
* demo
master
$
This is very much an optional step. Many of my branches are private branches - meaning that I branch on the development server, finish the feature at hand, and then merge the changes into my master branch without pushing the branch to anywhere else. To share changes with others though, I sometimes like to push my changes up to github - which is my "origin" remote on my repo. So to push the demo branch we just made, I would simply do:
$git push origin demo
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:lornajane/joind.in.git
* [new branch] demo -> demo
$
If you use "git push" on its own, it will push all branches which exist on both the local repo and the origin - but will not push any private branches unless you specify that it should.
The http://help.github.com site, Github's own documentation, is actually brilliant and has really helped me to get up to speed with working with my own code and contributions from others.
* The only problem I've had with code on github recently is that I merged totally the wrong changeset into the main project root. Which really isn't the fault of the source control system :)
Available Branches and The Current Branch
This is the easy bit:
$ git branch
* api
master
$
The entry with the star next to it is the current branch, so here you can see that I have branches "master" and "api" and I'm currently working on the "api" branch. If you only have one branch it will usually be called "master".
Creating and Changing Branches
My experience is with Subversion until now, and branching is really different in git (because it actually has branches rather than just copies, this is definitely a feature, but it is a different approach from how I had used them before). So you can switch your working copy around to look at different branches, which threw me a bit to begin with. To change branches, just checkout the one you want:
$ git checkout master
Switched to branch 'master'
$
If you actually wanted a new branch simply name it and ask checkout to create it if it doesn't exist, by using the -b switch:
$ git checkout -b demo
Switched to a new branch 'demo'
$
So now my branch command shows me this:
$ git branch
api
* demo
master
$
Pushing Branches
This is very much an optional step. Many of my branches are private branches - meaning that I branch on the development server, finish the feature at hand, and then merge the changes into my master branch without pushing the branch to anywhere else. To share changes with others though, I sometimes like to push my changes up to github - which is my "origin" remote on my repo. So to push the demo branch we just made, I would simply do:
$git push origin demo
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:lornajane/joind.in.git
* [new branch] demo -> demo
$
If you use "git push" on its own, it will push all branches which exist on both the local repo and the origin - but will not push any private branches unless you specify that it should.
Resources
The http://help.github.com site, Github's own documentation, is actually brilliant and has really helped me to get up to speed with working with my own code and contributions from others.
* The only problem I've had with code on github recently is that I merged totally the wrong changeset into the main project root. Which really isn't the fault of the source control system :)
Text Commands for Skype
Friday, June 18. 2010
I use Skype on linux and the client is quite limited in terms of buttons etc, which doesn't bother me at all since I don't use a mouse unless I must (answering skype calls forms a lot of the "must"!). In group chats however, its annoying to have the alerts popping up all the time and I don't have a menu option to stop them. To disable them I discovered I can just use:
The / lets skype know its a command - much like IRC! There's a full list I found on Skype's support site, very handy :)
/alertsoff
The / lets skype know its a command - much like IRC! There's a full list I found on Skype's support site, very handy :)
Poor Man's Caching
Thursday, June 10. 2010
Describing something as a "poor man's" version of the thing is to say its a bit of a cheap or short-cutting version. I thought I'd share some VERY poor man's caching that I came up with the other day.
To set the scene - I'm hosting the Dutch PHP Conference this week and there's a LOT of information to keep track of. Between tweets using the hashtag, people tweeting either my username or any of the conference twitter accounts, the schedule itself which will change as we're having a no-prior-scheduling uncon, and the event and talk-related comments coming in via joind.in itself, its quite a bit of stuff to track. Add into the mix the fact that my iphone's data package will be too expensive to use in NL and although I will have a phone with a data package it wont' be mine and there's no guarantee exactly what it will be. Oh and conference wireless, which last year wasn't bad at DPC but you have to assume there's a bottleneck.
So I figured that since I have a fast production server with lots of spare resource, it can do the hard work on processing the feeds, and just serve me a basic page with everything on and some internal hyperlinks to get around. So I wrote this monster, which runs a bunch of twitter searches and pulls in schedule and comments from joind.in, and that was good.
Except, it does take quite a long time to run (well, a few seconds, but that's too long in my book) so I thought about caching each result set in memcache, and writing a cron job to repopulate those regularly, so every time I hit the script, the cache would be warm. Then I realised I was overcomplicating the matter, and simply wrote a cron job to run my php script and pipe the output to a static HTML file every minute! Whenever I hit the page, I'll get the latest version. It doesn't scale but it doesn't need to, its only for me to use for a few days! Here's the cron job:
* * * * * php -f /path/to/generate.php > /path/to/index.html
Job done! (the actual page I made is/ here if anyone is inquisitive)
To set the scene - I'm hosting the Dutch PHP Conference this week and there's a LOT of information to keep track of. Between tweets using the hashtag, people tweeting either my username or any of the conference twitter accounts, the schedule itself which will change as we're having a no-prior-scheduling uncon, and the event and talk-related comments coming in via joind.in itself, its quite a bit of stuff to track. Add into the mix the fact that my iphone's data package will be too expensive to use in NL and although I will have a phone with a data package it wont' be mine and there's no guarantee exactly what it will be. Oh and conference wireless, which last year wasn't bad at DPC but you have to assume there's a bottleneck.
So I figured that since I have a fast production server with lots of spare resource, it can do the hard work on processing the feeds, and just serve me a basic page with everything on and some internal hyperlinks to get around. So I wrote this monster, which runs a bunch of twitter searches and pulls in schedule and comments from joind.in, and that was good.
Except, it does take quite a long time to run (well, a few seconds, but that's too long in my book) so I thought about caching each result set in memcache, and writing a cron job to repopulate those regularly, so every time I hit the script, the cache would be warm. Then I realised I was overcomplicating the matter, and simply wrote a cron job to run my php script and pipe the output to a static HTML file every minute! Whenever I hit the page, I'll get the latest version. It doesn't scale but it doesn't need to, its only for me to use for a few days! Here's the cron job:
* * * * * php -f /path/to/generate.php > /path/to/index.html
Job done! (the actual page I made is/ here if anyone is inquisitive)
Posted by LornaJane
in tech
at
09:46
| Comment (1)
| Trackbacks (0)
Defined tags for this entry: conference, tech
A "new" Netbook for Conferences
Wednesday, May 12. 2010
A couple of years ago, I attended ZendCon for the first time. At that time, the only laptop I had was a work machine weighing 5kg, and I was staying in a different hotel from the main conference - so I hastily bought pretty much the first non-ee netbook on the market (which was released about a week before my trip) and took that with me to the event. There were lots of limitations of it but I didn't have a whole lot of choice ... since then I've improved it significantly!
I've now had the machine more than 18 months and I've been using it for events and keeping it by the bed pretty much ever since. However this year I'm speaking at TEK-X in Chicago and found myself wondering if I should get a new little machine to take with me. A few months back I upgraded the RAM in the machine (it had 512 MB originally!), and I came to the conclusion that actually, I didn't need to splash out for a new netbook since with a bit more memory, its pretty usable.
Instead of replacing the machine, I bought the extended battery for the aspireone, taking me from about 2 hours to about 6 (I think, haven't tried this battery life in anger yet). Its chunky, but not offensive:

It is quite a bit heavier than the old one - my original post about getting the aspireone weighed it with its original battery at 971g and with the extended battery, its 1274g, which is still only half the weight of my current work laptop.

Reading back to that original post about the netbook it was pretty obvious that I was hating that operating system. A couple of years ago, the support for aspireone in Ubuntu Netbook Remix became usable, and I installed that. Its been fabulous and I had no intention to do anything more than upgrade ... until someone at OggCamp showed me they had the Kubuntu Netbook edition on their netbook.

It is shiny and blue, and since I use KDE on my laptop I couldn't resist and I upgraded it with a week to go before I take it as my only machine as a speaker at a conference!
I haven't spent a lot of money on the upgrades, the battery was about 50 GBP and the RAM came out of something else. I did have a large capacity SD card in the expansion slot since I only have 8GB hard drive. Then there was a problem with the machine suspending with the expansion slot in use and at around the same time I got a camera that takes SD ... so I put my big card into there instead :) I don't keep data on the netbook so its not an issue for me. I'll be flying to Chicago for Tek in a few days, and presenting off my netbook as usual. For a budget machine with a little bit of love and attention added in, "Merry" (short for Merope) the netbook has been quite a fabulous investment!
More than 512 MB RAM
I've now had the machine more than 18 months and I've been using it for events and keeping it by the bed pretty much ever since. However this year I'm speaking at TEK-X in Chicago and found myself wondering if I should get a new little machine to take with me. A few months back I upgraded the RAM in the machine (it had 512 MB originally!), and I came to the conclusion that actually, I didn't need to splash out for a new netbook since with a bit more memory, its pretty usable.
Bigger Battery Life
Instead of replacing the machine, I bought the extended battery for the aspireone, taking me from about 2 hours to about 6 (I think, haven't tried this battery life in anger yet). Its chunky, but not offensive:

It is quite a bit heavier than the old one - my original post about getting the aspireone weighed it with its original battery at 971g and with the extended battery, its 1274g, which is still only half the weight of my current work laptop.

Kubuntu Netbook Edition
Reading back to that original post about the netbook it was pretty obvious that I was hating that operating system. A couple of years ago, the support for aspireone in Ubuntu Netbook Remix became usable, and I installed that. Its been fabulous and I had no intention to do anything more than upgrade ... until someone at OggCamp showed me they had the Kubuntu Netbook edition on their netbook.

It is shiny and blue, and since I use KDE on my laptop I couldn't resist and I upgraded it with a week to go before I take it as my only machine as a speaker at a conference!
In Summary
I haven't spent a lot of money on the upgrades, the battery was about 50 GBP and the RAM came out of something else. I did have a large capacity SD card in the expansion slot since I only have 8GB hard drive. Then there was a problem with the machine suspending with the expansion slot in use and at around the same time I got a camera that takes SD ... so I put my big card into there instead :) I don't keep data on the netbook so its not an issue for me. I'll be flying to Chicago for Tek in a few days, and presenting off my netbook as usual. For a budget machine with a little bit of love and attention added in, "Merry" (short for Merope) the netbook has been quite a fabulous investment!
Podcast: How and Why to Become a Speaker
Monday, May 10. 2010
This is a podcast version of my rant-in-the-bar advice to anyone thinking about speaking, or wondering how to begin. Personally I think many more people could be sharing their expertise at events than actually do so, and I would really like anyone who wants to get involved to have a starting point. So if that's you, and you have a spare ten minutes to listen to my thoughts on the subject, then the mp3 is here.
Let me know what you think, and if you have any other advice you'd give to someone who isn't yet speaking.
Let me know what you think, and if you have any other advice you'd give to someone who isn't yet speaking.
« previous page
(Page 2 of 17, totaling 100 entries)
» next page



Comments