So long, 2008

Approximately a year ago, you may have wished me a happy 2008. If you did, thank you! I had a pretty awesome year!

Reading back in my blog, it feels like a long year. In fact, i noticed a stark contrast between the two halves of the year, pivoting on the moment i got my new job. I was amazed by how much of a difference it made in my perception: the first half of the year feels much longer than a year ago, but everything since my new job feels very recent. Yet the two halves are separated by just one weekend! I also noticed how many more blog posts i made in the earlier half of the year compared to the latter.

So it’s new year’s eve again, the time when i get all retrospective and nostalgic. I actually quite like staying in on new year’s eve and blogging. Here is a summary of the year.

Continue reading

Earthshine

Tonight i saw a wonderful example of “the old Moon in the arms of the new”, better known as earthshine.

When the Moon is new (and right now it is very new – just a thin sliver of sunlight is peeping around the side) then someone standing on the Moon would see a full Earth. Think how bright a full Moon can be for us on a clear night – the reflection of the Sun provides us a lot of light on such nights. Imagine how much more brightly it works the other way around – so brightly in fact that we can see the Moon shining with the reflection from the Earth.

Earthshine moon and Jupiter

If you do not see the silhouette of the trees, turn your screen brightness up. Then you should also see the earthshine on the unlit part of the Moon.

Our camera is not made for night time, but it does have a 3-second exposure. Unfortunately the tiniest shake shows up greatly exaggerated. I managed to capture this shot with the camera stuck against the window frame using blu-tack, and using the two-second timer feature. Otherwise the act of me pressing the button causes too much of a shake!

Oh by the way, i forgot to say, there’s Jupiter shining as brightly as anything, too! The combination in the early night sky made for a beautiful sight, of which my photograph only conveys the tiniest fraction. If you have a clear night tonight or tomorrow, do have a look. It’s incredible.

Back home!

I’m home again, safe and sound. Today has been ein schöne Reisetag – we spent most of the day travelling, but it was nice weather. I will make a holiday picture post later, but for now i’m just delighted to be back on the Internet!

I fixed the MyChores problem in a matter of minutes. Fortunately i had backed up the user-uploaded pictures not too long ago, so in the end we only lost 32 pictures. I’ve also had some help from William, the owner of HostingRails who came up with a few suggestions as to what might have happened and how i can ensure that it won’t happen again.

I saw my dad and stepmum briefly this evening, and my lovely sibling Felix is staying over tonight. We will probably all be going to Harvest Church tomorrow, which both delights and excites me! We’re also having a big family get-together at my grandparents’ house tomorrow! Yay! :)

I have had a nice meal, done the washing up, wiped the kitchen surfaces, tweeted on Twitter, and i’m slowly getting through 10 days worth of emails. Feeling a lovely sense of normality returning.

Remember i said my CouchDB on Rails series was being translated into Portuguese? It’s done, courtesy of Leonardo. Here are the links to the separate instalments: Tradução: CouchDB on Rails by Aimee. Awesome job, Leonardo!

The day before Caturday

Tomorrow we travel to Belgium, so tonight is my last chance to connect to the Internet, unless my trusty netbook can happen upon somebody’s unsecured wireless when we’re away. In a fishing cottage on the north coast of Belgium, i should say chances will be slim.

We’ve had a great time here in Germany. We visited a friend in Cologne yesterday and had a good look at the Christmas market there. Today we made some delicious mince pies.

MyChores is missing all its user-uploaded pictures and there is nothing i can do about it until i get back home. This makes me sad. HostingRails are being supremely unhelpful and i am regretting entering a 2-year arrangement with them. I think they were the best at the time, but a lot has changed this year, and i am sure that when the time is up there will be lots of better options for me to pursue.

Somebody is translating one of my CouchDB articles into Portuguese for Brazil. I feel honoured! :)

Since FireStats tells me that most people come to my blog searching for Caturday, have a cat for tomorrow! :)

caturdayxx.jpg
more animals

Happy solstice, Chanukah, Christmas and new year.

Better blogging

So yesterday’s post was actually not the last post of the year! :)

A few nights ago i saw somebody’s blog had little icons next to comments, showing the country, browser and operating system of each commenter. I found that quite interesting and decided i wanted the same on my blog. I discovered that it is part of the FireStats plugin and so i installed it. Little did i know the impact that it was about to have on me!

FireStats reveals a whole lot of fascinating information about who is visiting your blog. Suddenly i can see the most popular posts, find out the search terms that people used to get here, or the referrer page that sent them here. I used to think i was just writing my blog for a few friends, but now i see that people are coming from all over the world, mostly for information about CouchDB and … Caturday! HAHA! I haven’t done a Caturday post for ages! Perhaps i should start doing them again!

So i put up the “Currently popular” widget in the navigator. It’s pretty nifty because it changes every day. I also installed a few more plugins and made a few tweaks:

  • I enabled title slugs in the URL for all my posts. The old URLs still work, however.
  • Yet Another Related Posts Plugin puts links to related posts at the bottom of each post. It calculates ‘related’ by category, title and content. It’s pretty good! I have been reminded of old posts that i’d forgotten about!
  • Unfancy Quote Plugin has removed the so-called curly quotes that were appearing where i did not want them – ie in example code
  • WP Super Cache ensures speedy rendering of pages, particularly if hundreds of people were to look at a page all at once. Instead of continually querying the database, once it knows the content of a particular page, it can just display the cached version.

WordPress plugins are so for the win!

* * *

In other news, i finished reading Design Patterns today. It wasn’t such a hard read as i thought it would be; it’s actually quite easy to read one or two patterns at a time. The summaries are also very useful, for comparing and contrasting different patterns.

The State and Strategy patterns were quite obvious. Mediator seems almost the same as Observer to me. No matter how many times i read and understand the difference between Adapter and Bridge, i cannot seem to remember it long-term. Memento is my favourite pattern. It’s like asking someone, “Please remind me of this in a minute!” and they say, “Oh, okay” even though they have no idea what it means!

Visitor seems to me like the stupidest pattern ever, but maybe i have misunderstood it. It seems to contradict everything that makes sense about object-oriented programming, to have something that goes around doing things to other objects, violating encapsulation, and it has to be hard-coded to deal differently with different objects. It makes me think of Aspect-oriented programming actually.

I went to the library and borrowed a book for the holiday: Why Is Uranus Upside Down? And Other Questions About the Universe by Fred Watson. A nice bit of light reading, i think! ;)

Nearly ready for the holiday

Today i have posted Christmas cards, been to church, had a lovely lunch at church, read about Iterator and Mediator in Design Patterns, had a little nap, gone out with my sweetie to the final day of the Christmas market, gone shopping for a few things for when we come back from holiday … and now i am back in my bed trying to relax a little before it’s time to make dinner! A friend is going to phone me soon, i think.

Tomorrow i need to finish reading Design Patterns, wrap Christmas presents, pack my suitcase, and generally prepare myself for the holiday. On Tuesday we travel to Germany for a few days. I’m very much looking forward to seeing a good German Christmas market because it’s been a few years since i went to one.

After a short stay in Germany we’ll be going to De Panne in Belgium, for a nice peaceful Christmas in a cottage by the sea. Should be absolutely wonderful! I will most certainly be taking my netbook with me. I’ve got a socket adapter so i can keep it charged up. Even if i can’t get Internet access, i certainly hope to do a bit of work on MyChores over the holiday.

This may be my last post of the year, so … happy holidays to everybody! I wish you all love, peace and happiness, and very best wishes for a wonderful year 2009.

Christmas cards: DONE!

Wow, what a relief! I finished writing my Christmas cards at 18:30 this evening. I am so glad of the idea to print labels. Thanks to Rails, CouchDB and my pdf_label_maker library, it was much easier than usual. I just sat down and forced myself to get through them all, pausing only once to take a photo:

Half way through

Note the chocolate, ruler and calculator, heheh! I actually bought some cheapo labels from the £1 shop … they weren’t even on an A4 sheet, which meant i had to do quite a lot of measuring and trial and error. But i’m so pleased with the result – they look so neat, as opposed to my handwriting which gets terrible whenever i have to write a lot in one go.

Christmas cards: DONE!

Yes, i actually did write a Christmas card to topfunky! ;)

The best thing is … if i keep the database updated during the year, i can print them all out again next year! I’m definitely going to keep developing it, and learning more about CouchDB on Rails in the process.

A hurrah moment!

Not really part of the “CouchDB on Rails” series, but i thought i’d post it anyway …

I have successfully entered the addresses for Christmas cards into my database and generated PDF output that should be of the right layout to print onto Avery labels. Sweet! The really awesome thing was, i started to forget that i was working with CouchDB and it just felt like any normal Rails project.

I only know two label formats right now, and neither of them are the one that i actually want to use.

L7162 – too big:
L7162 labels

J8651 – too small:
J8651 labels

But the cool thing is, i made a little library, pushed to GitHub of course! It is not CouchDB-specific. It’s probably not even Rails-specific, although the examples are. Perhaps some other people will contribute the dimensions of other label formats for me.

For those who want to know how i implemented this in the CouchDB application, here’s the commit.

For those who are interested in the PdfLabelMaker library, here it is: pdf_label_maker.

My thanks to Nick Sieger for giving me the example code to begin from.

Update 14th December 2008: Success! Labels printed and Christmas cards written! :) See this post for more.

Y GIT IZ BETTR THAN X

LOLCATZ IN UR GITHUBZ!

There is really no need for this: lol.whygitisbetterthanx.com but it is so funny!

GIT WILL ALLOW U 2 HAS MULTIPLE LOCAL BRANCHEZ DAT CAN BE ENTIRELY INDEPENDENT OV EACH OTHR AN TEH CREASHUN, MERGIN AN DELESHUN OV DOSE LINEZ OV DEVELOPMENT TAEK SECONDZ.

Aimee’s law of LOLCATS: Anything you push to GitHub will, in time, become translated into LOLCAT. This is inevitable.

P.S. I’ve just had a look on GitHub, and the page has now been translated into 11 languages. :) Sed ankoraŭ neniu estas tradukinta ĝin en Esperanton. Mi pensas, ke Esperanto devus esti la sekvontan tradukon. “Kial Git estas pli bona ol X” :)