YA RLY

31 May 2007 Tags  ,

I don't know how to describe this..

[code]
HAI
CAN HAS STDIO?
I HAS A VAR
GIMMEH VAR
IZ VAR BIGGER THAN 10 O RLY?
YA RLY
BTW this is true
VISIBLE "BIG NUMBER!"
NO WAI
BTW this is false
VISIBLE "LITTLE NUMBER!"
KTHX
KTHXBYE
[/code]

I'll try with a picture…

Nope, that didn't explain it.
The above code is 'LOLCAT' - a new programming language - which is part hilarious, possibly part predicting our future.
I might have a play with it if it works with Apache ;)


1 Comment
 

Changing the world….one uni assignment at a time

24 May 2007 Tags  

One of the tasks in my OpenGL assignment is to add a few models to the rooms we created in the first assignment.

Here's a screenshot of my model:


(mouseover for wireframe)

I know it ain't pretty, but generating things by points (ie, glVertex2f(2.5,.25);) isn't fun..
I'm sure Steve Clayton will appreciate this ;)

The subject, for those who don't know, is Hugh Macleod's Blue Monster


No Comments
 

Why must Tertiary Education suck?

19 May 2007 Tags  , ,

"Sample Solution for assignment 1. Note I have put this together very quickly and it doesn't have a lot of comments. It also doesn't adhere completely to the specification, I've just done the major parts. There also appears to be a separate floor plan down below the building, this is in fact a representation of the array I have used to check for limitations on movement, I drew it to check it was right and then didn't remove it."

That's the note attached to the sample solution for Assignment 1 in my OpenGL unit.
It wouldn't be so bad if assignment 2 wasn't based on assignment 1. And it probably wouldn't be so bad if the note was vaguely true.

  • Instead of 'it doesn't have a lot of comments', it should read as 'it has comments, most of which are useless due to their scarcity' (we're talking one comment per function, if we're lucky)
  • 'It also doesn't adhere completely to the specification', should read 'I made it roughly like what you had to do, but if you submitted anything like this, you'd get no more than 50/100'. The task involves generating two rooms. The example incorrectly generates the second room (in several ways)

In any other unit, an example like this would receive zero marks for code layout (lack of comments, although, this is the first example he's given with consistent indentation), understandability (variable names? ugh), etc.

I have other problems with this unit, specifically, the language of choice. I don't have any real objections to C++/OpenGL, but I have objections to the way its taught.
If you visited the unit description, you'll see a good knowledge of Java OR C/C++, as well as two prerequisite units that are taught using Java.
At Monash, the languages in this course have been: Java, VB.NET, PHP/Perl. Two out of three (the two you actually 'compile') are heavily Object Orientated. In this subject, we're discouraged from using OO. That's right, discouraged.
To make matters worse, no C++ is taught, just the GLUT commands. While the syntax is similar, there are some things that are very different from Java (pointers, not being able to return arrays, etc etc)

To make matters worse, this is the best taught subject I'm doing this semester.

When chickz0r's mother had a heart attack, obviously my studies were effected, so I applied for an extension. Gour Karmakar, my lecturer for Enterprise Programming did not respond. In-fact, he hasn't even acknowledged I sent it, despite how many messages I've left in the discussion boards (being off-campus, I don't have any other access to staff).
For this subject, I'm yet to receive my unit book. We're in week 11 or 12 of the semester, and I'm yet to receive the unit book or DVD containing the virtual image we're supposed to be working off.
But when I complain, oh, how quickly did he jump to email somebody else to look after it. Note, that was a week ago, still no further contact, and no materials.
Although, I dont' know if I'd like the materials anyway, all of its from Douglas Thomson (not saying Doug is bad, from memory, he was one of the few who could actually teach! I mean it more in a 'I wish Gour would make/understand/read his own materials' sort of thing), who was fired by the Uni (I believe). Its rediculous that everything has his name written on it, lecture slides, assignments, etc, its as if Gour just doesnt' care!

And with my final subject, Operating Systems, the lecturer seems pretty lazy. I don't know if this is the case, but all the lecture slides/example materials come from the text book. I don't mean rewording or derivation from the text book, I mean, word-for-word copying of Tenembaum's Modern Operating Systems. The most hilarious thing is we're forced to do a Plagiarism Declaration before we can access the assignments.


2 Comments
 

Moving WPF Windows without a titlebar

16 May 2007 Tags  , ,

Desktop applications, more often than not, are ugly. Thats where WPF steps in.
You can set wonderful transparencies, colours, irregular shapes, etc, but there is just one problem. Ugly borders.

What do I mean? I mean the border the OS puts on all Windows, be it Vista or XP.

ohsougly.jpg

Its easy enough to turn off, in XAML you just set WindowStyle="None" to your Window tag. The next problem arises in that you now can't move your window at all.

This small class (download below) will let you change your Window Style to None, yet still move the window (by grabbing any part of the window).
[csharp]
public class MoveWindow
{
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0×2;

[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();

private Window target;
public MoveWindow(Window target)
{
this.target = target;
target.MouseMove += MouseMove;
}
private void MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
ReleaseCapture();
IntPtr hwnd = new WindowInteropHelper(target).Handle;
SendMessage(hwnd, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
}
[/csharp]

The usage is pretty darn easy:
[csharp]
new Aeoth.MoveWindow(this);
[/csharp]

I've decided to bundle a few of my 'helper' classes into one project, so they're all available in one download. I'll up up a project page for it later.
Download!


Creative Commons License

This work is licensed under a
Creative Commons Attribution-Share Alike 2.5 Australia License.


1 Comment
 

Graphics card model numbering

13 May 2007 Tags  

Graphics cards, nVidia in particular, have a sucky model numbering system.

On the desktop, you have (current 8xxx series) 8800 which comes in Ultra, GTX, and GTS. The 8600's (and I think the 8500's too) get GTS and GT.
And in the laptop arena, you have GT and GS for the cards.

Thats five different suffixes for your graphics card to supposively tell you what is the best performance.
Its too bad the 7xxx series had GTX, GT, GS (oh, and I suppose GX2), so throwing in those two extra suffixes certainly helps confuse customers.

It also doesn't help that usually the difference in a series (ie, 8800) is based on ram amounts and core clock speeds. You overclock the lower rated model, and you effectivly have the higher rated model. Except when you get to the 8600GT and GS. The GS has half the amount of Stream Processors (or the same amount as the 8400 series) as the GT, as well as different clock rates - hardly seems like it fits into the 8600 category at all!

My Proposal: "xyzz"

  • x = generation
    This is already in place, and although this does lead to confusion, there isn't much you can do about it. Each generation needs to be clearly defined.
    ie, 8yzz is the Geforce 8 series

  • y = series
    Again, this is already in place, but is nessicary. There should, however, been some tougher rules regarding where the realistic performance is.
    For example, ATI/AMD's x1600 got a revision, the x1700. Was it worthy of the generation gap? Hardly, the performance was increased, but the main difference was that it was produced using strained silicon. Each series should be defined by being at least 20% greater performance.

  • zz = performance within series
    Get rid of this Ultra, GTX, GTS, GT, GS crap.
    Usually sometime after each series is launched, revisions come along which offer minor performance increases. To cope with that, cap zz at 50 for the first generation. So your 8800GTX (Not Ultra, as it was released afterwards) would become the 8850, GTS would be 8830, GT would be 8820, GS would be 8810, and the Ultra would be the 8860 or 8870 - or something along those lines.
    Much easier to follow.

2 Comments
 

Breaking Expression Blend 2 May Preview

11 May 2007 Tags  , ,

I've been playing with WPF lately, using Visual Studio and Expression Blend.
For the most part, I've really enjoyed learning WPF and C#, both extremely powerful and flexible. This is my first time working with .NET outside of Visual Basic.NET and a Uni assignments (you know, the fantastic ones where they decide to teach you the language, but you aren't allowed to use advanced things like arrays or collections to solve problems)

My copy of Expression Blend was one of the older beta's, and I had noticed Blend 2 May Preview was out, so I thought I'd try that.

The only thing I've noticed so far is that it includes Silverlight support….oh, and it wasn't able to display/render my WPF program!

I was greeted with this fantastic look whenever I try and open any of my XAML files:

blenderror.jpg
Crap crap said the Aeoth…

The full error was "Exception: could not load type ‘DebuggingModes’ from assembly ‘mscorlib, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561935e089’ due to value type mismatch".
The program still compiles fine, but I can't edit it using Blend at all!

If I had of been learning XAML, I'm sure this would have been fine, but I've been learning to use Blend, so I can't really do anything productively in raw XAML.

Now, when I started writing this post, the mind was going something like "crap crap crap crap, have I lost all my UI work?".

The only thing that looked a bit weird was a reference (only viewable in Blend, and I didn't get a screenshot of it) "Microsoft.NET.2.Framework", or something along those lines.
A little weird, and something I hadn't added in myself, so I decided to remove it from the project. It didnt' fix any problems…until I restarted Blend…and I was happily greeted with:

spoiler.jpg
No peeking yet!


No Comments
 

Solving ABC's High Pitched Noise

11 May 2007 Tags  

(This post is about the Australian Broadcasting Corporation's Digital Channels. It may not effect analogue TV)

As some of you know, I suffer from New Daily Persistant Headaches, which leaves me fairly sensative to high pitched noises.

ABC's (and to a lesser extent Ten) self producted material - that is things like News, The Chaser, The Glasshouse (while it was on) seem to be recorded and broadcast with a very high frequency noise in the background.
For normal people, this isn't an issue. For me, however, it makes it impossible to watch the ABC - in particular, the Chaser's War On Everything.

Info

  • It effects all SD and HD broadcasts - on TV's and TV Tuner cards
  • I know several other people (other states) who can also hear it
  • SD/HDTV rips (XVid/DivX) of it also contain the noise
  • It does not effect the Vodcast. Mind you, the vodcast has horrible sound as it is ;)

Solution
I had a few people suggest playing with the equaliser (EQ). Thats great for reducing the volume that its produced…but thats about it. The noise is still being produced, and is still very painful to me.

The solution I've settled on (for now) involved FFDShow.
FFDShow comes with a FIR Filter (Finite impulse response filter), which lets you cut off (as in "set to zero") everything above a certain frequency.

firfilter.jpg

The settings I'm using are:
Number of taps: 8
Type: Lowpass
Frequency: 10000
Window: Box

Now, there is a downside to this - cutting off frequencies reduces the quality of output. The settings I'm using reduces it very minimally (I'm happy to leave it on), but cuts the noise out completely, so for me, its a no-brainer. For others, this may not be the case.



No Comments
 

Let me tell you about cloth…

5 May 2007 Tags  

Cloth is a very versatile substance.
You can use it in your printer, to write letters to people, heck, most people buy "the cloth" from The Herald Sun or The Age (in Melbourne) every day.
You can make cloth aeroplanes, oragami is made out of cloth.

I bet you are sitting back, looking at your monitor thinking "this guy is an idiot".
Well, I might be that, but in this case, I'm right. At least in the universe according to Midway.

When I preorder Lord of the Rings Online Special Edition, I was excited. The list of included goodies was pretty awesome

  • Cloth map
  • Figurine
  • Soundtrack

I picked up my copy from EBGames today, only to find that there was no figurine. Sure, there was a soundtrack, and even a map. Silly me, however. I mistook the map as being made out of paper, not cloth, as Midway would never false advertise now would they?

It'd be just like if they advertised if you entered your preorder key, then your retail key, you could get special pricing offers (USD$199 lifetime, or USD$9.99/month) and couldn't. You know, sort of like what happened to me a few days ago with chickz0rs retail key.

Their first response to my (very polite, I swear!) email was:

Thank you for your inquiry. We have reviewed your account, and it is upgraded properly. We are
aware there were some issues with a small number of Founder's keys not properly providing access to
the Lifetime subscription option, however our system has been updated and you should now be able to
select that option by logging into your account at https://myaccount.turbine.com and changing your
subscription plan. If you continue to have issues with this billing option, please respond via the
link below and we will be happy to assist you.

Fantastic, we jump onto the account page, and…nothing. Awesome.
They responded today, and actually fixed it, this time requiring us to enter in another preorder key (which they provided).

Good start Turbine/Midway, you're going to go well in this "small" gaming market thing.
First you won't take my money, then you won't give me what I paid you for.
Needless to say, I'll be calling up Midway on Monday to abuse them.


1 Comment