RabidChinaGirl blogged


I've been pretty resolute about keeping private matters off this blog. People can use them for what they want, but I'm a pretty introverted person and prefer to keep all the unpleasantness of my personal life locked inside my own Pandora's Box. Though I suppose it is safe to say I'm not feeling too awesome -- stupid holidays.

On another note, I'm also not too fond of these friggin' things:



I can't speak for everyone, but I'm not blind, damnit! I don't need massive panels telling me (in CAPS) how to post and edit my own blog. Doesn't help that the colors totally clash with how I've customised mine. BLAAAAGH JUST IN CASE YOU'RE A (insert R-word for 'mentally challenged'), CLICK HERE FOR BLOG OPTIONS!!!!1 I'm still playing Mass Effect. I need some more Microsoft Points. Almost done with Aspho Fields, which makes me sad. I'm totally hot for Baird.

Happy New Year, guys.

Edit I really am amused by how often people take my bitching seriously. I'm not being sarcastic, and I know I can be quite... off. If you can't tell when I'm being facetious (almost always), don't feel bad. You're not alone.


world war wwi gears of war mass effect musingsthoughts neoseeker related
Liliana blogged

Haha, I just bought Final Fantasy IV for the DS around Sunday, and I can't put it down. The game shows so much interest from the previous two that it was for (GBA and SNES). Remakes always seem to make me happy when their a remake of a game I once loved. This game offers so much to do, and so much to enjoy. One of the best games I've ever played, actually.

I really wish more games were like this.




gaming related final fantasy ds addicting
abu el 3am blogged

well , happy new year for all of my friends and neomembers wish you all a merry xmas and a happy new year , i wish 2009 could be better than 2008 .
i got my driving license :P :P :P :P :P :P ......!!!!!

abu el 3am .

neoseeker related
jespomo blogged

For a change, after we were thrashed 4-0 by Leicester I thought we would be in for the same old Posh Christmas, embarrasing defeats and poor play from our players. Instead it seems to have gone our way with some embarrassing defeats for opponents and poor play from them as well. Considering last Christmas involved defeats to Mansfield who were later relegated and also Morecambe who we were 2-0 up against, this year definately came as a pleasant surprise. Hopefully we can do this more often from this point.

Onto the Cheltenham game, I ended up having to drive the 260 mile round trip after coach tickets sold out. I hadn't expected this game to be particuarly popular as it's quite expensive to get to, especially around Christmas when money can be tight anyway. But there were over 500 Posh fans at the ground which lead to a great atmosphere to cheer the players on with.



Speaking of the ground, it was easily the worst ground I've been too this season in the league. I'm including Yeovil in that with it's no roofed away terrace. The outside, what you could see of it looked like a warehouse, the rest of it was hidden behind houses and a Bowls club. The main home stand looked like a house with a bit cut off and has had some seats stuck on it. It barely spanned half the pitch and was just a bit non league really. The terrace opposite our stand was only 5 rows in total. You could tell it hadn't been long since Cheltenham were playing in the conference.

The first half itself was pretty quiet when you compare it too what was to come. George Boyd scored pretty early on but he should have scored even earlier than that. We were pretty much in control at half time but we really should have scored more goals to give us a bit of leeway in the second half.

The second half started and it seemed both teams just decided that defense was no longer important and everything should be focused on attack. 3 minutes in and Charlie Lee gave away a penalty which Vincent converted for Cheltenham, 1-1. The game was now end to end, each failed attack for one team started a new attack for the other. Charlie Lee then made up for his part in the penalty by scoring a disputed headed goal, 2-1 In the 63rd minute Mackail-Smith broke free of the defence to score, 3-1. Almost immediately though Cheltenham scored again through Elvis Hammond, 3-2. Cheltenham were getting braver going forward and it looked like they would equalise again when their midget defender Alan Wright converted a Mackail-Smith cross into his own net, 4-2.

Posh still couldn't rest though, after the 5-4 win against Bristol Rovers earlier on in the season, it seems no amount of goals can be considered a safe amount where we are concerned. Cheltenham substitute Lloyd Owusu scored almost immediately after coming on in the 86th minute, 4-3. This did not deter Posh who straight from kick off crossed to Aaron McLean who duly scored again, 5-3. The drama was not over yet, Barry Hayles was sent off for a disgusting blatant stamp on Tommy Williams, there could be no arguments with it. Then to top it off Chris Whelpdale scored in the 5th minute of injury time to make the final score 6-3.

This is the most goals we've scored away from home since we beat Barnet 9-1 in 1998. This ranks among my top away trips with Posh alongside beating MK Dons after going 1-0 down at Stadium:MK and getting promoted against Hereford at Edgar Street last season.

Happy New Year everyone!

Next Match Attending

West Brom v Posh
3/1/09 3pm
The Hawthorns

peterborough united cheltenham town football leicester city other
ivysaurtriad blogged

I have a new mobile! I've been fiddling with it all day. So not much
happened.

---------------------------------------------------------------------------

This fact of the week is that my brother has autism. For those of you who
don't know, Autism is a mental disability. This is one of the many mental
disabilities that the word *bleep* refers to. So don't use it carelessly.

---------------------------------------------------------------------------

The Pokemon of the week is, beleive or not, Mawile. Just imagining it using bite... Wow.

Tune in next time! See ya!

musingsthoughts
Artificer blogged

For those of you who talk to me on MSN or Google Talk, you may notice that I keep a word of the day in my personal message. Some ask where the word of the day comes from. The truth is that every day's word comes from my playing around on Free Rice. If you haven't heard of it, I would recommend checking it out. I treat it as a great way to learn vocabulary while doing some good for the world.

I'm just a little bit proud of myself that I've been able to contribute 100,000 grains of rice on the site:



Here's to another 100K!

P.S. Today's word of the day is acanthoid; it means spiny. :)

P.P.S. This may be a repeat post. I don't think Neoseeker likes it when you start a post title with a number...(Or maybe something else was hosed. :))

free rice musingsthoughts
Artificer blogged

For those of you who talk to me on MSN or Google Talk, you may notice that I keep a word of the day in my personal message. Some ask where the word of the day comes from. The truth is that every day's word comes from my playing around on Free Rice. If you haven't heard of it, I would recommend checking it out. I treat it as a great way to learn vocabulary while doing some good for the world.

I'm just a little bit proud of myself that I've been able to contribute 100,000 grains of rice on the site:



Here's to another 100K!

P.S. Today's word of the day is acanthoid; it means spiny. :)

musingsthoughts free rice
Artificer blogged

It's that time again—abandon all hope ye who enter here, unless you found yourself interested in the first deep dive, of course.

In the first deep dive I mentioned that in NAMFox's re-architecture I needed to "build software on the Firefox platform in the way it was meant to be built," and that's what I want to explore today. I'll be formatting this and future blog posts on the topic into Problem/Solution-type scenarios, so it's easier to track what I want to achieve.

Problem

In the current build of NAMFox there are several JavaScript utility classes that lend themselves well to being called "services." In Firefox's current add-on model, these services will be created once in every window in the browser, which is not ideal because it hampers their flexibility and thus, their capability to be extended.

Explanation

To run JavaScript in an add-on, some piece of the user interface (UI) needs to reference it. In this case, the NAMFox toolbar (the UI) references multiple script files:

<overlay id="NMMenu_Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Ajax.js" />
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Configuration.js" />
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Convert.js" />
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Debug.js" />
</overlay>

This also means that each piece of JavaScript runs in its own UI context, so when the preferences window is launched, it also must reference multiple script files:

<prefwindow title="NAMFox Preferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Configuration.js" />
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Convert.js" />
<script type="application/x-javascript" src="chrome://namfox/content/utilities/Debug.js" />
</prefwindow>

Notice any similarities? As in...the same files are imported multiple times? While not necessarily a problem, it does mean that the browser has to load and execute each of these scripts many more times than it needs to. Most of these utility classes contain singleton objects that act as services. To show you what I mean, here's an excerpt from the Ajax class (with all functionality stripped):

var Ajax = function() {
/**
* Invokes a page using a specific method, specifying a handler to handle the onreadystatechanged event
* of the XmlHttpRequest object.
*
* @param method Either "GET" or "POST"
* @param url The url to get data from or post data to.
* @param callback A callback function that will respond to the onreadystatechanged event of the XmlHttpRequest object
* @param async Specifies whether the GET/POST should be asynchronous or not. The default is true.
* @param postVars A query-string-like string which contains information we need to send to the page if using the "POST" method.
* @author Artificer
*/
function invoke(method, url, callback, async, postVars, bypassCache) {
}

return {
get: function (url, callback, async, bypassCache) {
},
post: function (url, callback, postVars, async, bypassCache) {
}
};
}();

Not super exciting but it gets the job done. It provides a simple mechanism to get data from a URL and post data to a URL. The invoke function is a helper function used by both Ajax.get and Ajax.post.

I really don't need this object to exist in multiple contexts! What if later on I wanted to keep track of how many AJAX calls NAMFox made during browser sessions? I can't, because I would have a counter in each of the following contexts (or red box, if you will):



What we want is to enlarge that box:

Enter XPCOM

I alluded to XPCOM in the previous post as a way to enable the scenario I described i.e. making my services exist in only one location. In addition, it will help to get rid of a lot of these nasty utility files. :)



It's not particularly intuitive to go from a JavaScript singleton to an XPCOM component, so I'll do my best to explain the process here. First we must create an interface which tells Firefox which attributes and functions we intend to expose to consumers of our component—in this case, the other pieces of code that want to harness the AJAX functionality we encapsulate. The syntax for this interface is [https://developer.mozilla.org/en/XPIDL XPIDL], or Cross-Platform Interface Definition Language. You can look at the link for details on the syntax; here's what the new AJAX interface looks like.

/// <summary>
/// A success callback interface, whose notify method is invoked when an AJAX call is successful.
/// </summary>
[scriptable, function, uuid(B391D38F-188E-4015-9D86-CE59D2BA79F4)]
interface nfxIAjaxSuccessListener
{
/// <summary>
/// Notifies the listener that the specified request succeeded.
/// </summary>
/// <param name="request" type="nsIXMLHttpRequest">The request which succeeded.</param>
void notify(in nsIXMLHttpRequest request);
};

/// <summary>
/// An error callback interface, whose notify method is invoked when an AJAX call
/// encounters an error that prevents the data from being retrieved.
/// </summary>
[scriptable, function, uuid(24CC9547-092A-4CC4-9696-3FE794EA4674)]
interface nfxIAjaxErrorListener
{
/// <summary>
/// Notifies the listener that the specified request failed.
/// </summary>
/// <param name="request" type="nsIXMLHttpRequest">The request which failed.</param>
/// <param name="causedByTimeout" type="boolean">Specifies whether the error was actually a request timeout.</param>
void notify(in nsIXMLHttpRequest request, in boolean causedByTimeout);
};

/// <summary>
/// Allows callers to request data asychronously from remote resources.
/// </summary>
[scriptable, uuid(0BAE99E0-BE9B-4499-BEFB-3BEB898CAA4F)]
interface nfxIAjax : nsISupports
{
/// <summary>
/// Indicates that the caller wants to use the Firefox cache to retrieve data.
/// </summary>
const short UseCache = 0;

/// <summary>
/// Indicates that the caller explicitly does not want to use the Firefox cache when retrieving data.
/// </summary>
const short BypassCache = 1;

/// <summary>
/// Asychronously gets the data at a specific URL.
/// </summary>
/// <param name="url" type="string">The URL against which the request will be made.</param>
/// <param name="data" type="object">A object of data to send.</param>
/// <param name="success" type="nfxIAjaxSuccessListener">The success callback.</param>
/// <param name="error" type="nfxIAjaxErrorListener">The error callback.</param>
/// <param name="cacheHandling" type="int">Specifies how to handle Firefox's cache when making a request.</param>
/// <returns type="nsIXMLHttpRequest" />
nsIXMLHttpRequest get(in string url, in nsISupports data, in nfxIAjaxSuccessListener success, in nfxIAjaxErrorListener error, in short cacheHandling);

/// <summary>
/// Asychronously posts data to the specified URL.
/// </summary>
/// <param name="url" type="string">The URL against which the request will be made.</param>
/// <param name="data" type="object">An object of data to send.</param>
/// <param name="success" type="nfxIAjaxSuccessListener">The success callback.</param>
/// <param name="error" type="nfxIAjaxErrorListener">The error callback.</param>
/// <param name="cacheHandling" type="int">Specifies how to handle Firefox's cache when making a request.</param>
/// <returns type="nsIXMLHttpRequest" />
nsIXMLHttpRequest post(in string url, in nsISupports data, in nfxIAjaxSuccessListener success, in nfxIAjaxErrorListener error, in short cacheHandling);
};

If you ignore the nfxIAjaxSuccessListener and nfxIAjaxErrorListener, then this interface is not difficult to understand. (Don't worry, we'll look at the listeners later.) The interface itself is scriptable (accessible by JavaScript) and has its own ID. (Every interface must have a Universally Unique Identifier.) There are two constants that specify how to handle caching (UseCache and BypassCache) that are used as parameters to the get and post functions. Now that you are in XPCOM land, you no longer have access to the ubiquitous JavaScript objects like XMLHttpRequest or Number. Instead you must use built-in XPIDL data types (string, boolean, short, etc.) or other interfaces (nsIXMLHttpRequest, nsISupports, etc.). If we look at the get function, it takes five parameters: the URL to get, arbitrary data to send to the URL (that becomes part of the query string), two listeners, and a short indicating how to interact with Firefox's cache. After it executes the AJAX call, it will return the nsIXMLHttpRequest instance that it uses to create the AJAX request. You can think of this as the XMLHttpRequest object with a few bonus properties and methods. Not too bad, right?

The listeners are used to callback from XPCOM into normal JavaScript. Because each listener has a "function" attribute applied it means we can pass in a function from JavaScript, and XPCOM will be able to invoke that function by call the notify method. If you're not quite following, wait till the end where I show an example of how to call the get function from normal JavaScript. Then it should make more sense.

The second step is to implement the component, because all you currently have is an interface. If you're doing this on your own it's more difficult to actually register the component with Firefox than it is to implement the component. The implementation of the Ajax component is not trivial, so I won't post it, but you may have a look at it and other files mentioned in this post with the links at the end of this post.

function Ajax() { // implements nfxIAjax
}

Ajax.UseCache = 0;
Ajax.IgnoreCache = 1;

Ajax.prototype = {
get: function(url, data, success, error, cacheHandling) {
/// <summary>Gets data at a specific URL.</summary>
/// <param name="url" type="string">The URL against which the request will be made.</param>
/// <param name="data" type="object">A object of data to send.</param>
/// <param name="success" type="nfxIAjaxSuccessListener">The success callback.</param>
/// <param name="error" type="nfxIAjaxErrorListener">The error callback.</param>
/// <param name="cacheHandling" type="int">Specifies how to handle Firefox's cache when making a request.</param>
/// <returns type="nsIXMLHttpRequest" />
},

post: function(url, data, success, error, cacheHandling) {
/// <summary>Posts data to a specific URL.</summary>
/// <param name="url" type="string">The URL against which the request will be made.</param>
/// <param name="data" type="object">An object of data to send.</param>
/// <param name="success" type="nfxIAjaxSuccessListener">The success callback.</param>
/// <param name="error" type="nfxIAjaxErrorListener">The error callback.</param>
/// <param name="cacheHandling" type="int">Specifies how to handle Firefox's cache when making a request.</param>
/// <returns type="nsIXMLHttpRequest" />
}
};

Obviously it would be more useful to actually fill in code to execute where get and post are, but again, for the purpose of this blog it is not important. The next step is to register the component. In NAMFox, this is fairly simple because I spent time doing it right a long time ago. If you scroll down to the "NAMFoxModule" in the same file, then you'll see something like this:

/***********************************************************
module definition (xpcom registration)
***********************************************************/
var NAMFoxModule = {
objects: {
dictionary: {
CID : Components.ID("{B95D09A2-943E-48d3-9D29-8001DAD3188D}"),
contractID : "@namfox.neoseeker.com/dictionary;1",
className : "NAMFox Dictionary",
factory : createFactory(Dictionary, false)
},
ajax: {
CID : Components.ID("{0BAE99E0-BE9B-4499-BEFB-3BEB898CAA4F}"),
contractID : "@namfox.neoseeker.com/ajax;1",
className : "NAMFox Ajax Utility",
factory : createFactory(Ajax, true)
}
// And so on
}

To add a new XPCOM component implementation, all you need to do is add an object with four properties: the interface's UUID, the contract ID, a friendly name, and a factory to create the class. The UUID here matches the the UUID declared on the nfxIAjax interface. The contract ID is a way for consumers of the Ajax API to actually use this particular implementation. The friendly name is not used to my knowledge... The factory is out-of-scope for what I want to talk about here, but you may feel free to browse the code (linked at the end of this post).

After this is done, you have an XPCOM component! And all you need to do to call from normal JavaScript (i.e. JavaScript running in the context of a piece of UI) is this:

// Get the service from XPCOM. Use the contract ID (@namfox.neoseeker.com/ajax;1) to get the implementation
// and the interface name to tell it which functionality you want to access. This is required because
// implementations can implement multiple interfaces.
var ajax = Components.classes["@namfox.neoseeker.com/ajax;1"].getService(Components.interfaces.nfxIAjax);

// The strange object literal is passed as raw data. The wrappedJSObject property is used for XPCOM to access arbitrary data, which we need here.
// The XPCOM component then uses this data and appends it to the query string (in case of GET) or to the HTTP request (in case of POST).
// In this case we'll make a request to https://www.neoseeker.com/forums/index.php?fn=browse_pm&mailbox=received.
// The functions for success and failure are marshalled as our nfxIAjaxSuccessListener and nfxIAjaxErrorListener, respectively.
// To access the cache constants, we have to go back to the interface directly.
ajax.get(
"https://www.neoseeker.com/forums/index.php",
{
wrappedJSObject: {
fn: "browse_pm",
mailbox: "received"
}
},
function(request) {
alert("success");
},
function(request, causedByTimeout) {
alert("failure");
},
Components.interfaces.nfxIAjax.UseCache
);

Looking at this code you may think "YUCK!" to yourself, especially because of the code to get the AJAX service and the code to send data for the query string. Eventually, though, a thin XPCOM façade will allow me to write code like this:

$.get(
"https://www.neoseeker.com/forums/index.php",
{
fn: "browse_pm",
mailbox: "received"
},
function(request) {
alert("success");
},
function(request, causedByTimeout) {
alert("failure");
},
$.cacheHandling.useCache
);

Definitely worth it for me. The AJAX component is probably one of the more complicated ones so I really don't mind answering any questions you have on it. There are some other components to look at, like nfxITrace and nfxIDictionary, which are much simpler.

In review, I walked through the reasons for creating an XPCOM component and what I'm planning to do with a lot of the existing NAMFox services to move them to XPCOM. I walked through the challenges of moving the Ajax service to XPCOM, including its interface and implementation. Finally, I touched on how to call the XPCOM component once you're done implementing it.

Reference Files

The NAMFox Toolbar (XUL)
The NAMFox Preferences (XUL)
Existing AJAX Service (JavaScript)
AJAX XPCOM Interface (And Many Others) (XPIDL)
AJAX XPCOM Implementation (And Many Others) (JavaScript)

namfox software architecture technology neoseeker related
firestar12 blogged

Wishing everyone a happy new year!

Anyway, I felt like writing a description of my newest family on Sims 2 Pets (PS2 version):

The three Stanley family members, Marie, Madelon, and John (Actually, I forgot his name, so until I can check my game I'll call him John) live with their daschund Clover. Madelon works as a Private Tutor, and John works as a Crossing Guard. While the two are at work, Marie cleans/repairs the house and cares for Clover. When Madelon gets home, she's usually exhausted. So she just lies around, plays with Clover, and works on her blog, which is currently at 10% popularity . John has a "job" as a video game designer.

Well, it's not that perfect, but mostly it's correct.
Once again,
Happy New Year!!!!
Harvest Moon Angel blogged

With this Blog post I start my new Blog. I'm calling it Angel Clips because I was looking at my favorite hair clip when I was coming up with a tittle. I'll just write about what ever I want when ever I want.
~~~~~~~~~~RealLife~~~~~~~~~~
Christmas just past and want a nice chrismas it was. I wasn't really in the holiday mood because my finals ended on the 23rd. So I wasn't very exsited. But I did end up getting a lot of money and a iPod nano so it was a pretty good christmas.
Searching for a Wii is really hard. I have enough money for one now and enough for a game. But they are solg out everwhere. I was really close ot one the other day but right as I got ot the store the last one sold. So I was pretty upset. When we went to Slackers I found a copy of Fire Emblem 7 for the Game boy advance so that was cool. To bad I can't play it till for a few more days because my DS is at my moms and I'm at my dads.
~~~~~~~~~~NeoLife~~~~~~~~~~
My NeoLife has been very boring ever since Sky and Inu left. But I still have a crazy one. I've had a lot of time to work on my Roleplaying so I made my own RP called Anima Chains. I'm so sick of Neo love. I wish I could find someone who was right for me. But so far everone I think is right ether doesn't love me or Loves me to much. I think I might just give up on love for a while.... Just a while.

And that is all for now. I hope you all enjoy reading my Blog adn if you don't then don't waste your time reading. Have a nice day!
~Angel~

other
Phi blogged

You're probably thinking WTF is she on but everyone has an obsession mine just happens to be hats.
It all started six years ago when I recieved my first black, sequined beret and now ten years later the love is still there. I've got quite a collection that still fit, a little less than 50 I think. You can bet whether it's a sun hat or a farming cap I own one.

But what made me write this blog was the wonderful hat I recieved from my friends as part of a Christmas/birthday present (I'm not even born at Christmas time but some people seem to think early January is, but that's a rant for a different time). They know of my obsession so they bought me what happens to be my now all time favourite hat. It's this gorgeous wool ski hat with wait for it... bells on it n_n
Which has now started my new obsession for things with bells on it, but I guess some things never change.
Peace out!

musingsthoughts
Archangel blogged

So I finally decided to get on board with this whole blog thing. I didn't know what to write about, or else I would have started one sooner, but now, since I got the new WoW expansion for Christmas, I decided that's what I'm going to write about. It's going to be a little personal journey book of my musings in the game. So without further ado, let's get started:

--------------------------------------------------

Monday, December 29th, 2008.
I love leveling with 200% EXP. I got to level 66 in about 3 or 4 hours time this morning, finishing most of my remaining quests in Terokkar Forest. I quite enjoyed that whole territory, though not as much as Zangarmarsh. I have yet to do an instances though, which I'm thinking is a bad thing because I have absolutely no idea how to raid with a Warlock... Oh well, I'm sure I'll learn eventually. Hopefully by end-game I'll find a good guild that has some nice guides and whatnot.

Speaking of guilds, I found one today. I had randomly signed a Guild Charter while riding the zeppelin from Undercity to Orgrimmar, which had the most cliche name ever: Riders Of Lohan. I ended up leaving about an hour after the guild formed thankfully. So I was just starting questing in Nagrand when I got invited to a group to do those ridiculous Nessi quests, and after about an hour of being with him, I asked if his guild was recruiting, and he told me that they weren't really, but he'd see if they'd let me in. Thankfully they did, and I am now a part of Apocalypse Dawn. I've seen them around my server for quite some time now, even back at the beginning of BC, and I had always wanted to be a part of it.

So after questing with that guy for a couple hours, I managed to get about 60% into 66 with about another 20% of double EXP. It'll be a cinch to get to 67 tomorrow, but I'm worried about after that since I won't have double EXP anymore. I guess that won't really matter though since I just started in a new area and there's dozens upon dozens of quests to do. Nagrand is only for 66 - 68 anyway, but since WotLK has been released, I'm sure I can venture off to Blade's Edge Mountains half way through 67, get to 68 or halfway, then try a couple things in Shadowmoon Valley until 69, then venture off to Northrend. I may even go there at 68 though. If it's the same as when BC came out, going there at 68 will be great.

Well, that's all for today. I may be back tomorrow, or I may not. Who knows. This is going to be quite sporadic. But hopefully it'll be interesting for some.

Lata.

pc world of warcraft
Dark Arcanine blogged

This will definitely be the last you hear out of me in terms of Christmas, except when next year comes around. Although in terms of Christmas spirit the day was just as disappointing as I'd expected, the present haul was pretty decent.

I then, through this, made a new discovery about the whole age rant I did in my first blog entry. Getting older leads to better presents from relatives, either that or I was very lucky. Rather than some cheap toy, I got some liqueur chocolates. Instead of some bad book, I received a $50 note. Instead of cheap little things, I was getting decent big things. So yes perhaps I got lucky, but I think it had something to do with maturing... not complaining!

My Christmas at home was also great too. I mean of course there was the compulsory clothing items, but they turned out to be wanted this year. I got these $100 pair of jeans which are black and tight, talk about sexy (I'll get pic up at some point). My two best friends kept calling them "the emo pants" and I only realised after a while what they meant, with the whole guys wearing smaller women's clothes thing. I said we could settle on the name "the semi emo pants" because yes they're tight but they came from the men section. There was then a new pair of swimming stuff, pajamas and a shirt so all good and no dreaded socks/underwear for a change.

Then there was the CD side of things, which proved more than welcome this year. I currently have a really awesome cousin called Danielle staying over from England and this was her first Christmas in summer (and is like seven years older if you're wondering). She bought me a couple of things, yay for being the old favourite cousin of yonder year, but my favourite had to be the Iron Maiden album. They're a good band so I was pleased, despite it not being something I'm more into but I guess it pays to stick to what you know. Especially since her comments toward my music include "wow this is fast, are they on speed?" or "this is far too heavy for my liking". Which is actually very funny, but I'll blog about music another day.

Following this, I received three movies from my parents. One is something from my childhood, the other two being movies I kept whining on about wanting to make them watch. The childhood one is Bill and Ted, don't know if you guys have seen it but I feel so sorry for you if you haven't seen either of the movies. The two movies I was worshiping were V for Vendetta and Gabriel. The first is an excellent tale of a dystopian England and the second is about the battle between the arch angels and the fallen in purgatory for control of the dead souls. The second one is an Australian movie with a low budget, and I will tell you now it's the only good movie ever to be affiliated with this country.

Then came my big present, my Wii! I haven't played with it too much yet but I do have another five weeks off school yet. I was worried about what I'd be like with the Wii Remote and nun chuck but I found myself doing pretty well. I like the features I've encountered so far and I honestly don't see why people are so rude about Nintendo's latest console. I played around with my friend's PS3 and it seemed just like the PS2 so I wasn't impressed.

With the Wii I got four games in total. These are Wii Sports, Wii Music, de Blob and Super Smash Bros. Brawl. There is quite a decent list of what I'd like to buy for it, top of it next would probably be Mario Kart Wii. Out of the four games I do have, de Blob is my favourite. No doubt a lot of Brawl fans will be raging at me for saying that, but I just can't help myself. In fact I loved it so much, I wrote a review for it.

The presents then got me thinking, I have to blog this to Neoseeker to share it with you guys. Then came the conundrum of putting my images up in this blog. At first I figured I'd use Photobucket but it wouldn't upload (and I figured out there's some security program newly installed on here being... well a tool in more than one sense) and so I decided to use the recent addition of the NeoGallery. I figured I might as well, why use somewhere else when I can use a spanking brand new feature on my favourite site? I've not done much yet but I applaud the uploading speed, from what I see it's a similar setup to the FanArt section which is interesting and works well. So all together, I've uploaded four photos for you. In order they are the Wii, the games for it, the movies and the album. So check out the photos below and feel free to comment here or PM me about something you found interesting, my friends in real life are useless when it comes to Christmas discussion. ;.;

P.S. Yes my family has a thing for wood, especially myself. :O









wii music other musingsthoughts movies
(0.0718/d/www1)