Recent Posts

Archives

Topics

Meta

FilePhile: Transfer Files between friends

By sparky | December 19, 2008

A slight deviation from the idea of “P2P”, this utility that runs on all platforms (Win/*nix/Mac), allows for users to share files with one another of any size and type. It also allows you to control the ammount of bandwidth being used, so that you don’t kill something (like your internet) in the process.

FilePhil Main Site

Topics: General | 3 Comments »

Emotional gMail

By sparky | October 27, 2008

Further to the discussion about gmail’s Beta-state, I recently noticed they’d incorporated a new button for mail.

Emoticons!!!

I suppose this is a clear example as to why it’s still in Beta! :)

In other news, we apologise for the slightly quieter state of this site; two of us are currently in exam / assignment mode, and another of us is getting married; Look forward to some more posts in the coming weeks as we’re freed from the shackles of university!

Topics: General, Networking | 2 Comments »

Gmail’s Quirks

By sparky | September 16, 2008

I logged onto my gmail this morning, and chuckled a bit when I saw my ‘Spam’ count:

Gmails humour.

Spam: 404. Yes, hopefully you understand where the humour lies in that, if not - visit wiki.

On another note: I wonder when gmail will no longer be in “beta”.
I don’t remember the google search engine ever being in beta; seems strange that their second most popular web-product would still be. Unless it’s a way to explain why things may not work at times.

Edit: Funnily enough, this post was made explaining google’s “beta” tag, stating [from google]:

“We have very high internal metrics our consumer products have to meet before coming out of beta. Our teams continue to work to improve these products and provide users with an even better experience.  We believe beta has a different meaning when applied to applications on the Web, where people expect continual improvements in a product.  On the Web, you don’t have to wait for the next version to be on the shelf or an update to become available.  Improvements are rolled out as they’re developed.  Rather than the packaged, stagnant software of decades past, we’re moving to a world of regular updates and constant feature refinement where applications live in the cloud.”

That would explain it :)

Topics: General | 4 Comments »

Standards - Introduction

By sparky | September 12, 2008

From time to time, standards are created; They’re not a bad thing ultimately - except when you have certain groups or individuals that try to push - and force - them onto people to follow.
One popular one that has been discussed / debated is the ‘web standards’; but that isn’t the point of todays post.

Rather, coding standards.
These are important to ensure others can come along, be able to read and interpret your code, and make changes / modifications - as needed.

I’m no pro. In fact, I’m still very early in my tertiary education - however already I encounted a bit of a ‘dilemma’ in coding standards.

Comments - always needed. Really. Although tedious, when someone comes along debugging, they can see what each part of the code does - assuming it isn’t clear from just reading the code itself.

When I first started coding Java (first few weeks), eclipse - my choice of editors - had a tendency of putting the opening brace { under the ‘head’ of the statement, with the closing brace } in line with the statement:

if (x == 9)
{

}

Then I recieved a ’standards’ document, which told me I had to place the opening brace at the end of the statement, same line, and then the closing brace in line with the head of the statment:

if (x == 9) {

}

When I first read this, I felt that there must be something wrong. I was partially influenced by my tutorial teach who was saying he preferred the former method.
But then, after discussion with the two other contributors to this site, and my programming lab instructor, I changed my mind, realising that the later is in fact the better way; especially when looking at hundreds of lines of code. Makes it neater, and eliminated unnecessary line spacing - which is used to just have one brace on it.

The moral of the story: Standards are a good idea, and I encourage all to try find some that are used in the industry, or area, that you work. It’ll make a lot of people happy :)

Topics: Principles, Programming | 1 Comment »

A week with the iPhone

By farseeker | August 20, 2008

So, I’ve had the iPhone for a week now. As I mentioned in my own blog I wasn’t exactly blown away by it. Don’t get me wrong, as a PDA its great, but it’s nothing that hugely unique. And in its crippled state (as is how apple ships it, and how it’s meant to be used) it’s not that flexible. Only Apple sanctioned apps was getting a bit of a pest as I really needed some flexible VoIP. Seeing as it runs on Unix (more on that later), it should have been a lot more flexible.

As a PDA, I’ve used better. The new HTC’s are a better PDA. No questions asked. No other way around it. And as a PHONE, it’s not really very good. Reception is poor, call quality is poor, phone interface leaves a lot to be desired and iTunes doesn’t send the ringtone to the bluetooth hands free in my car, which means I get the default ringtone that’s built into the hands free. You can’t receive vCards by Bluetooth, you can’t use MP3s as ringtones, I’m yet to find out how to use custom message tones, there’s no MMS, no video calling (big whoop) and you have to use iTunes. I hate iTunes. I aways have, and my opinion of it has not changed. The iTunes window consistantly restores as black and sometimes refuses to recognise the iPhone and insists on setting up a new sync partnership (or restore from an old backup). At least you can now copy songs to the iPhone without putting them into the music library first.

So, as a PDA, I’ve used better, as a phone it’s poor and the peripheral software is, well, shit.

So. What else? Sex appeal? 11/10. All the women in the office love it. The interface IS very good and is VERY swish and fun to use. I dont know if the springboard will ever get old. The only poor thing about the interface is the keyboard. In portrait mode it’s very difficult to type with. In landscape mode, it’s much much easier to use (you can type on it like a HTC) but almost no apps support landscape. Usability is fantastic. It doesn’t come with a user manual (which is great for the environmentalists) and, frankly, it doesn’t need one. Now, I’m not exactly a technological dumbass, but nobody I’ve let play with the phone has gotten lost (after they find the home button at the bottom of the device) and everyone is straight into it. It is very very very very very easy to use. Much easier than a Windows Mobile. More stable and faster than a windows mobile too.

As mentioned before, the iPhone runs on a Unix BSD subsystem. This means that underneath it is a fully fledged operating system. But also as mentioned before you can only run apple-sanctioned applications on it. Unless you jailbreak it. Which I knew about before I got it, and had every intention of doing. Now, every single tutorial on how to do it was missing some vital information, or had the information wrong, or had information for the wrong version of the iPhone. Still, after three days I finally managed to get it jailbroken. This means I can now install any application on it. AND this gives me access to the Unix subsource via SSH. And it’s running an FTP daemon so that it’s easy to get files on/off it (you can’t use it as a storage device because of th DFS file system). After installing APT-GET which I’m yet to use, in theory, should be able to install pretty much anything (I don’t know if it’s got a compiler but if it does you could obviously compile stuff on there too). Since having this ability, the phone is very very flexible. I’m going to spend months finding useful and cool apps to run on it. I’ve already got three whole pages on the springboard filled with stuff.

Something I’ve overlooked so far is the included data on the plans. Mainly because this varies from plan to plan, carrier to carrier. I’ve got 250mb/month and so far I’ve used 15mb in the past week. That’s of over-the-air data, I should say, obviously wifi data isn’t counted (I spent 95% of my time around wireless networks).

So, overall I must say I like the iPhone. But only because it’s been jailbroken. If I couldn’t jailbreak it I would be very dissapointed right about now. Especially as I’m married to this thing for at least two years. But as it stands, I think I’m going to be very happy. Very happy indeed.

Topics: General | No Comments »

SQL Server 2008: Day 5

By farseeker | August 15, 2008

SQL Server 2008: Day 4Sit. Rep.: It’s all fucked. I’ve been doing all this testing on my local machine, which has been brilliant. We were then going to do some side-by-side scenario testing live, which meant prepping the servers.We don’t run th management console on the actual database server, obviously, so it gets installed on the terminal server so we can access it externally (all our servers are in a remote data warehouse). SQL goes through its setup and installs the pre-reqs, one of which is .NET Framework 3.5.

Now, on our terminal server we use a product called ThinPrint (or .Print to some). It’s a precarious piece of software, but after initial teething we haven’t had any major problems with it for a while. Until today. Everything stopped printing. It came up with obscure error messages and would crash the host application. As it turns out, the version we have is not compatible with .Net => 3.0. We followed the workaround to the letter, with no luck. We removed .NET and followed the workaround, no luck (meanwhile having to restart a busy terminal server several times during the day doesn’t make you many friends). Our head sysadmin who looks after the servers (who gave us permission to install the software, but “at our own risk”) is off-site, so at the moment nobody can print and we’ve had to siphon a bunch of users onto one of our other terminal servers, which is now, under twice its normal load, running with 8mb of free memory.

So, after all that, did we even get the console installed? No. Why? Because we’re not running 2003 SP2. Why aren’t we running SP2? Because that screws up ThinPrint. Well done.

In other news, I picked up a shiny 16gb iPhone last night (yay for late night shopping). I guess I shall be giving you my opinions on this piece of expensive bling later.

Topics: General | 2 Comments »

Mythological reputations

By insanity | August 13, 2008

I’ve had a hell of a month. I have been spending most of this year so far working with a large expensive piece of software called MATLAB.  By expensive, I mean the student version is over $100 for the most basic package.  By expensive, I mean the research package starts at $1000 and climbs somewhat exponentially.

The last month has led me consider how I got into this predicament, that is, one of programming for MATLAB.  You see, MATLAB is the foundation stone of all computer-based maths.  IT is the yard-stick against which all other pieces of software are measured against.  Why?  Because.

Here are the key reasons I’ve been told for using MATLAB:

The problem is… my experiences don’t reflect any of the apparent positives that have been dictated.  To give some background, I am currently doing some image processing of video feeds in an exercise in computer vision.  So far I have had the following issues:

Each of these has wasted more than a day of work to figure out and program around.  So where is the advantage here for using to MATLAB?  I have explained these shortcomings to others who I work with, and all I ever hear back is the popular refrain “but the program is really good… what’s your problem?”.  So, in spite of all these shortcomings and issues, when I say MATLAB sucks, people just don’t believe me.

The first major question to consider is: how did MATLAB come to be in such an untouchable position?

As ever, I dont like to present problems without having theories to back them up. My theory is it took the following 4 steps:

Step 1: write a program

Simple stuff of course.  They wrote a mathematics program that could work in matricies.  It was written as an educational tool by a lecturer.  Nothing wrong at this point.

Step 2: sell the program to another university

So, this is the first and only software of its time.  Of course other Uni’s have the same desires and needs, so they adopt it wholesale, as it is a lot better than nothing… right?  Now we are starting to get on shaky ground, as this program likely hasn’t really been very “cleaned up”.

Step 3: get adopted by a company

This happened in 1984, with the forming of a company called The MathWorks.  Now there is a commercial reason to sell it… and generally the commercial entity will want a bigger market etc.  Also, the commercial entity will want to sell asap, and probably won’t bother rewriting or reworking the existing system.  After all, additional functionality expands the market-base, not improving of existing technology.  So, we get a different style of programming tacked onto an already questionable code base.

Step 4: get many students hooked on it so it gets dragged out into the industry

If the students are raised on only one program, then of course, that is what they will want when they graduate.  A great business model, I would highly recommend this track if you can get in!  Now the software is suddenly being used everywhere.  It is quite prolific, and is an almost entirely self-supporting illusion.  All you really need is enough people coming in to equal the number of people leaving your software.  At uni, this happens very naturally, so there is no hassle.  Industries will use software students are familiar with (or students will ask for software they are familiar with), our recent graduates won’t really investigate the other alternatives that hard, assuming that the university had already done this research (they didnt either)… suddenly we have a mythical reputation that springs into action.  All sides assume that MATLAB is the best of breed… why?  Because umm… everyone else is using it…

The problem is, that no where along the way has anyone actually sat down to decide the program they are building.  MATLAB has grown organically for many many decades now and my… goodness… does it show.  It has many different styles of documentation, mutliple functions to achieve almost identical ends, inconsistent coding syntax and many undocumented “features”.  And yet, this has no effect on the perceived value.

MATLAB is already big.  Why is it big? Because it grew when no-one else was there to compete.  So people argue “but <prestigious uni name here> uses it, certainly its good enough for us!”… of course that Uni uses, they use it because everybody else does!

Is MATLAB the best peice of software?  Probably, it is very expensive… and everyone knows you pay for quality.

Why is MATLAB so expensive?  Because it has taken decades of development, therefore it must be good… you know, it’s passed the test of time and all.

The reaction people are having to my critisisms is quite basic: they are buying the advertising material.  It is the same reaction you would get if you rocked up in a Ferrarri, and started telling everybody how bad the performance was.  People would nod and smile knowingly, and think in the back of their head “but its a Ferrarri… I’ll be he’s just using it wrong”.

Well, I’m not using it wrong.  For the area of image research I’m doing, contrary to popular belief, MATLAB quite simply sucks.  If there is one thing I can ask people reading this, it is: Please please please DO YOU OWN RESEARCH before you force those working below you to use a particular technology or software suite.  If you haven’t checked that the software can do the hardest thing you will need to do (or even all the simple things such as maybe loading a compressed avi file), then you haven’t done your research properly and could be crippling your project for life.

So next time someone says you should use <Big Technology Company Name Here>’s brand spanking new product, smile at them, pat them on the head, find yourself a trial copy and check it out for yourself before you commit to using it.  Don’t be fooled by the myths of reputation.

Topics: Blind-leading-blind, Hype, Management, Programming | 4 Comments »

SQL Server 2008: Day 2

By farseeker | August 13, 2008

There’s a fantastic feature in the Management Console that should have been there since the very beginning. I didn’t find it yesterday for reaons that will become apparent in a few minutes:

Intellisense! Its about time. There were third-party plugins that did the same thing, but seeing as I don’t use the query designer to design queries most of the time (Imagine that! This is actually done in the engine we use, see a previous post), so when I do go to the query desginer to do a query it’s usually something very complex, involving alias’s. And as soon as you throw an alias name against a COUNT field it all seems to go to shit (alias names against tables and real columns are fine. Alias names for tables show correctly but alias’s for fields do not show. Maybe this is because you can’t order by an alias on a real field?).

Execution Plans seem to be much of the muchness, but there is a new button “Set Query Options”:

Allowing all sorts of options for this query. You can change the display output, include login credentials for multi-linked-server-queries, and all sorts of useful things.

For those who are wondering what the different output types are, there’s Grid and Text. Nothing new there, but if you’re still wondering what the difference is, obligatory screenshit (hehe I said screenshit) is below:

There’s a few other new buttons, but the most interesting by far is the Debug button (in fact there’s a whole Debug menu that has most of the standard Visual Studio debugging commands). It seems to start a Visual Studio debugging session whilst running the query:

That’s deliberately a very poor query, running an order on 750,000 rows without an appropriate index. I’m not entirely sure what this debugging thing does however, because I can’t seem to get it to do anything. Maybe it’s for Stored Procedures or something, becuase you can even set breakpoints. We only have two stored procedures, and both of them are used for dynamically directing phone calls when they hit our IP PBX based on the customer’s current status, so maybe not such a useful feature for me. For developers who do a lot of DMBS-level business logic perhaps this will be a life saver.

Another interesting debugging tool is the ability to be able to trace a single command through the SQL profiler. Again something that’s not hugely useful for myself, but a Stored Procedures guy would find that incredibly useful.

[Off Topic: I found the most peculiar thing yesterday. In our management tool (not this one), according to the SQL Profiler, if we browse a table using the first index (not always the PK), it creates a cursor, loads enough records to fill the viewport, pauses the cursor and waits for the user to request a record that's not in the viewport. Fairly normal behaviour there. But the really strange thing is if we then change the index to run on an index that's not the first one it does a straightforward SELECT query, which means it needs to return ALL the records in the table. It then throws away that select, creates a cursor, and fills the viewport. Which means on a tables with a LOT of records you need to return the entire results set, just to have it thrown away. Stupid].

I can’t use the Database Engine Tuning Advisor at the moment a one main reason: I’m on the train and I’m not wanting to kill my battery. And I like to do online advisories too. Strangely (or perhaps not so much for those that know me), my favourite feature about the Tuning Advisor is when its running it has a step that says “Consuming Workload”. I have this mental image in my head of a hungry hungry hippo eating all my work (and hopefully my ToDo list). Now that’s a better excuse than “The Dog Ate It!”

Topics: General | No Comments »

SQL Server 2008: Day 1

By farseeker | August 12, 2008

First cab off the rank: Management Console. I’m interested to see the changes here, because this is to be honest, most people’s window into the SQL Server. Sure some people like to go hardcore and script everything, but more normal people use the GUI for day to day tasks.

First task: Attach an SQL Server 2005 MDF directly to the 2008 instance. The database in question is a reasonable 24gb database with 320 tables, and two (differently) massive tables. One table with 98 columns and 50,000 rows and one table with 12 columns and 11 million records. I have another behemoth of a table in another database that has 760,000 records and 95 columns but I’ll leave that for another day I think.

Attaching was very straight forward. Compatibility for the database was automatically set to 90 (2005) and it all worked out of the box. Nice to see.

The activity monitor is where I spent a lot of my troubleshooting time, and I’m pleased to see that it’s a proper activity monitor now - not just a collection of meaingless data. No more running server traces or logging WMI data just to find out which queries/SPIDs are hogging the system resources. To have all the expensive queries at my fingertips is going to be a brilliant tool.

Previously in the past to achieve that sort of detail we’ve had to run a server trace (that’s a process that keeps track of every single query that comes into the server and logs all sorts of details about it), watch a graph of WMI data to see when resource utilisation goes through the roof and then wait for the trace data to be imported into a table so we can review exactly what the hell happened.

Resource Govener is what I’m really glad to see. I shall look forward to playing with this in GREAT detail when I get a chance. It allows you to set resource access permissions based on groups, so that certain users/processes can only consume a certain amount of resources. This means that people who love to run reports can be restricted to say 50% utilisation (on an 8-way server that should be plenty) so that they don’t hog it all from other users.

This Data Warehousing thing looks interesting as well. I’ve never done any warehouse stuff before, so it might be worth a play later on.

The online help is typical:

As you can probably tell this morning has been just browsing around and seeing what one can find. Hopefully I’ll do some more in-depth testing later, but I really should get back to work now.

Topics: General | No Comments »

SQL Server 2008: Day 0

By farseeker | August 11, 2008

Not a great start. It took the best part of an entire day to install SQL Server 2008 on my Vista machine.

The installation started well. It installed the pre-requisite Windows Installer 4 and .NET Framework 3.5. Requisite restart after Windows Installer. Sailed through a much more sensible configuration wizard, saw a few new features that I didn’t look at in detail, and got to the final checking. It then complained that my version of Visual Studio 2008 was out of date. Why this matters, I’m not sure, but it required an upgrade to SP1.

So, I scour the net looking for Visual Studio 2008 SP1 and I can only find a beta. So I go to install the beta, and on the work connection (capped at 32kbps/stream) it took 5 hours to download the service pack. After 90 minutes of it installing, it decided to fail and rolled back. After rolling back it told me it was successfully installed. I thought maybe it was a visual bug, so I tried the SQL installation again. No go, still complaining about Visual Studio. So, rather than do the service pack again, I simply un-installed Visual Studio. I use it rarely and when I do use it I honestly usually use V6 because I work with legacy ActiveX components.


(I miss the good old days of basic software. It took 45 minutes to finish “Generating Setup Script”)

So, after waiting no less than 2 hours for Visual Studio to uninstall, SQL Server passed all its tests and installed. Becuase I’m now at home, waiting for some friends to come over, I won’t be playing with it tonight. Tomorrow the fun will begin.

Topics: General | 1 Comment »


« Previous Entries