Categories
Geek food General

Faster!! Faster!!

I just can’t believe the speeds I was downloading at last night at home on my iBurst connection!  Whatever they did to the base station I connect to worked!  Last night I was downloading about 3 things at once with a combined download speed of 80-90kBytes per second – thats 640 to 720 kbits per second!!!  Then this morning I thought I’d quickly check again to see if the speed was still there… again I got 85kBytes per second!


It used to frustrate me no end that it would take me about a week to download the latest DotNetRocks episode on my modem… This morning I downloaded an episodce in about 15 minutes (probably less but I was doing other things).


Imagine if this technology takes off in a big way in South Africa…. I remember working at ISPs doing web development where one of my biggest pains was that you couldn’t use some of the nifty features in .Net because having loads of return trips to the server just was not an option using our bandwidth.  I can just imagine the awesome things that all this extra speed would enable.


Sure, it could enable sloppy coding and encourage bad habits in developers – but I’m choosing not to focus on that… The web could become far richer (far less “thin client”), and so much more useful. πŸ™‚  I can’t wait till I can go home tonight to play with it again. (After I’ve taken my wife out for a little date (dinner and a movie), otherwise she might start to get the impression that I spend more time with the computer than with her… ;-))

Categories
.Net Stuff Geek food General Internet/Links

Free software for smartphones from Handango…

I *knew* there was a reason I was subscribed the the Windows Mobile Team‘s blog….

Today they posted an entry about Handango giving away free software… Check it out! It looks like they’re doing PalmOS apps too…

I’ve already started downloading my first SmartPhone app… Ok, so I don’t have a smartphone yet, but I will. (As soon as I either decide to move to MTN who are advertising the iMate SP3, or as soon as Vodacom get their act together and start offering the phone.)  But until then, I’ll be stocking up on free software for my soon-to-be new phone each week till 31 January 2005.

Categories
Geek food Internet/Links

New MSN Search

I heard that MSN were launching a new search, but I just read about the new Beta of their own algorithmic search engine (which you can find at MSN Search Beta) which has some cool features… I like the advanced search – you get to pick results near where you live, and can choose how you want your search weighted (by accuracy, popularity and how recently the page was updated)

Very cool… πŸ™‚ I found out about it from this post by the MSN Search team.

Categories
Geek food General

If wishes were…

When I was growing up I’d often hear people say “if wishes were horses, I’d be riding” (or something like that…)  Today I’m saying “if wishes were smartphones, I’d have the iMate SP3”

But no, wishes aren’t smartphones, and Vodacom don’t seem to be keen to help a geek like me get my hands on a one either.

Locally, Leaf Wireless started importing a new version of the iMate PDS last month and a smartphone, their press releases are: PDA (i-Mate PDA2k) and Smartphone (i-Mate SP3). 

Motorola do the MPX200 and MPX220.  The MPX200 uses older technology and doesn’t do bluetooth, the MPX220 uses the newer Windows Mobile, has bluetooth and a few other things.  Unfortunately its not in SA yet… I e-mailed Motorola SA about a month ago and was told it would be here in November/December.  I mailed them a few days ago and was told that the launch was postponed to somewhere around December 18 because they didn’t have stock when the original launch date came.  But they also warned that the December date was subject to stock availability, and I’m guessing SA is not a big priority for Motorola so we’ll probably only see stock next year. πŸ™

Now in the mean time I’ve been following these phones for a while and I was most pleased that they’d be launching around the time I was eligable for a cellphone upgrade.  I could officially upgrade my phone on November 5th this year.  Since I knew that Motorola hadn’t launched yet, I resigned myself to getting the iMate SP3.  I was thinking that since the press release came out almost a month ago, Vodacom would certainly be offering it as one of their upgrade options.

Unfortunately I was very mistaken.  Vodacom have “discontinued” the old version of the iMate (a logical move since its replacement is out), but they haven’t started offering the new one.  I also found out that they have “discontinued” the MPX200, which is less obvious since its replacement is not yet out.  There is no indication from them as to when they might actually get hold of the new versions of the iMate and start offering them. 

It is most frustrating… I *WANT* a smartphone, and I *WANT* it now. πŸ™  Ok, so enough pouting and whining… I’ll just try waiting a month and see what comes of it…

But for those of you who are most fortunate and have one of these babies already, check out  this link I got in the latest “Microsoft Insider Update”  newsletter (click here to subscribe) – Download award-winning applications for Windows Mobile – free! 

Looks like there are some cool apps for these phones.  Now I must go and prepare myself for the long wait till December and the new list of phones I can get from Vodacom…

Categories
Development Geek food General

Feeling better…

I read Craig Paterson‘s post “I feel so much better…“, and checked out the link to “YOU ARE NOT INADEQUATE” by secretgeek.  Its really cool, and something I think a lot of us need reminding of.  I’m glad someone came out and just said it. πŸ™‚

Categories
Geek food General

Language “syntax” pronunciation

Some time last week, I heard two programmers talking about data types in SQL, specifically VARCHAR.  Now while that might not be an odd occurrance their pronunciation of that word “varchar” intrigued me.

I prounce it “v-are-ch-are”, while they pronounced it “v-are-k-are”.

How do you standardise on such vital components of life as this? How do you enforce everyone to use the standard?

I mean, I might want to pronounce it like I pronounce its full name (“Variable Character”), so I’d pronounce it “v-air-k-ah-r” (the “ah-r” sound being the same as the start of the word “arrow”).

To me, the “ch-are” pronunciation seems to come from how I learned to say the “char” data type in pascal.  I just read it as it is written. (i.e. the “ch” became a “ch” sound, as opposed to a “k” sound) 

Now that I think about it, I’ve heard the word “variable” pronounced “v-are-i-ha-bill”, and “very-able”.

Personally I think I hear more people saying “v-air-ih-ah-bill”, “ch-are”, and “v-are-ch-are”.  What do you hear?

[Note: Your understanding of this may vary based on how you pronounce “are”, “air”, “arrow”, “able”, “very”, “ch” and “k”.  If all else fails, imagine how a brittish person would say it… well ok, not any brittish person, perhaps someone like prince charles – definately not a dock worker or cockney. (although I’ve never quizzed prince charles on the vagaries of programming vocabulary pronunciation, nor have I ever quizzed dock workers or cockney’s, nor am I trying to say that dock workers are cockneys (or vice versa), and … (I’m slowly realising that this whole post is a minefield of misinterpretation just waiting for some unwary traveler to step on it only to find their various body parts whizzing past their ears as their brain tries to piece together not only what happened and how they’ll rectify the situation, but also literally how it will manage to find all the bits and put them back together. (kinda like humpty dumpty, which is another rather culture dependant analogy for which I can provide no simple alternative)) … Basically what I’m trying to say is that YMMV, and I don’t guarantee anything regarding the coherence of this post.)]

Categories
Geek food Internet/Links

WWDN, an Emergency signal, and IE crashes less?

Three cool items I’ve read recently…


Will (from WWdN – WillWheaton.net for the uninformed :P) posted some links to a reading he did at Gnomedex 4.0 in his post entitled “Just A Geek audio and video from gnomedex” – its a really great listen, and quite humorous.


I loved the brief mention of “Poser geeks” at the end – those who label themselves geeks because its the “in thing” or it “seems like a good idea” instead of simple just BEING a geek.  Anyway, as one who started with computers at the tender age of 6 (or thereabouts), I can fully understand the desire to distinguish between the “true geeks” and the wanna-be’s. πŸ™‚


The next thing that I found really cool was on Slashdot (I’m sure they don’t need any more google juice so I won’t link to them directly, anyway its not like I have much to give them and as a third reason – “they’re not part of the borg, nor do they tend to sympathise with the borg in any way so therefore they shall not be linked to”) Ok, but back to what I was really saying… they had an article about the TV that was producing an Emergency Signal which was picked up by a sattelite(?) and relayed back to emergency services in the US, and so the poor owner ended up with various members of the law enforcement community at his door… (At least the manufacturer gave him a new TV)… [It looks like local news has picked it up too, coz I just saw it on IOL too]


And finally, who say’s IE is buggy… Well, perhaps its buggy in many obscure ways which are not necessarily likely to be the first features thought of when its time to test the product.  But as an e-mail to BugTrack entitled “Web browsers – a mini farce” details.  He created “a trivial program to generate tiny, razor-sharp shards of malformed HTML.”


So basically the test was to see how the browsers handle bad input. His summary “All browsers but Microsoft Internet Explorer kept crashing on a regular basis due to NULL pointer references, memory corruption, buffer overflows, sometimes memory exhaustion; taking several minutes on average to encounter a tag they couldn’t parse.”  And he also says “It appears that the overall quality of code, and more importantly, the amount of QA, on various browsers touted as “secure”, is not up to par with MSIE; the type of a test I performed requires no human interaction and involves nearly no effort. Only MSIE appears to be able to consistently handle malformed input well, suggesting this is the only program that underwent rudimentary security QA testing with a similar fuzz utility.”


I guess its a small consolation in the light of all the other security flaws in IE.  IE does the basics right, but seems to have some hassles with the more complex stuff (like “security” :P), while the rest all fail with the basics.  But then if they can’t get the basics right, how do you know that the more complex stuff isn’t just as bad?

Categories
.Net Stuff Development Geek food General

Why .Net Rocks!

(And no, I’m not talking about the radio show with Carl and Rory – and for those who don’t know what radio show, its called “.Net rocks“)


For the last week or so I’ve been delving into C++ code… with some great joy (like having to read “Writing Secure Code (2nd Ed)“) and many many many trials.


If you’re still using C++, change to C# (assuming you have a choice to move).  I’d swap in a heartbeat based simply on the amount of “plumbing” work it would save me, but then I don’t have a choice here – I’m writing code to make some Extended stored procedures.


But seriously, remembering all the new’ed variables you’ve made so that you can delete them, and checking your arrays and pointers, and handles, and all that work to do simple operations like joining two strings, or using collections, or doing file IO, or doing pretty much anything becomes a nightmare when compared to the simplicity of C#.  That being said, there’s something geekishly cool about programming in C++ – maybe its the “thrill” of handling such an unwieldy weapon of mass destruction and actually managing to hit the pinprick of a target you’re aiming at without blowing off your own foot in the process.


But regardless of the geek thrill factor involved I’ll be happy when this part of our project is over and I can move back to C#… πŸ™‚

Categories
.Net Stuff Development Geek food

Q: When is 1 not equal to 1?

A: When you’re using .Net and boxed value types.


“What?? No, you’re wrong.  Its not possible – you must be using the framework incorrectly.”


That’s what I would have said, but I’m not so sure after having to fix our little problem at work this morning.


We have a function that takes 2 object parameters:
public bool myFunction(object left, object right))
Which tries a whole bunch of things and if non of them works, it returns:
left.Equals(right);


The problem is as follows:


Int32 i32 = 1;
Int64 i64 = 1;
bool result = i32 == i64;
System.Diagnostics.Debug.WriteLine(result.ToString());
// outputs TRUE – expected
object o32 = i32;
object o64 = i64;
result = o32 == o64;
System.Diagnostics.Debug.WriteLine(result.ToString());
// outputs FALSE – expected
// This is expected since it would do a reference comparison BUT
result = i32.Equals(i64);
System.Diagnostics.Debug.WriteLine(result.ToString());
// outputs FALSE – not expected
// It does it because i64’s type is not the same as i32’s type
// The same goes for result = i64.Equals(i32).
// And also for result = o32.Equals(o64);

Now the question remains – how on earth do I get this code to work?  Currently I’ve written my own IsEqualTo(object left, object right) function which finds out which of the numeric types each object is and casts the left and right parameters to the most suitable types before it does the comparrison so that it works correctly… I’ll upload a ZIP with a sample solution in it that demonstrates the solution, but if you know of a better way to write the code (keeping in mind that it needs to be generic enough to handle any type variables that are passed in), please let me know…

Categories
Geek food General

TechnoLatin…

OK, so I’m still reading the cluetrain manifesto… And in chapter 4 (“Markets are conversations”) they’re talking about how companies use TechnoLatin in their communication like their quote from a website who say “the company has focused on its ability to integrate advanced technologies that use innovative system architecture and software into high performance system solutions for PCs and workstations.”

So what exactly does that company do?  Well, they “integrate advanced technologies”… ok, but what are these “technologies”? what makes them so “advanced”? how to you “integrate” them? what do you “integrate” them with?  What do you mean by “innovative system architecture”? and “innovative software”? Um… I guess I don’t really know. Exactly!

How often do we as IT people do that to each other? How often do we do that in casual conversation to non-IT people?  How often do we do that to clients?

I very rarely get to talk to an IT person who is passionate about the same technologies (programming languages, hardware, networks, applications, etc) as me, and who can communicate clearly without the haze of these TechnoLatin “buzz words”.  So far the easiest people to talk to are those who have had some formal background where the naming of programming concepts (e.g. object oriented programming concepts like polymorphism, inheritance, interfaces, exceptions) are similar.  Off hand, I can remember only one (non work related) conversation that was like this, and that was with a guy who’d gone on some Java courses… I can’t remember what we were talking about, but I do remember that we it had something to do with the practical application of some of the object oriented concepts.  The “problem” was that there were other developers around without the same background who became involved in the conversation.  Suddenly the flow was lost and what was clear communication before became murky. 

So it happens when IT people talk to IT people… I fully understand that to explain the inner workings of some technical concepts would simply take too long to make communication effective.  But we also need to “pitch” our vocabulary at the level of the other people in the conversation. I guess that’s where a “website” is wonderful, in that you can use the “technical terms” and put in links to more detailed descriptions.

But that’s often too much effort for a “non-technical” client.  I recently needed to explain to a client why their domain was taking a while to be transferred from a web hosting provider to me.  The problem was as follows:

  • the original web hosting provider had registered the domain but not paid for it
  • the registrar was not prepared to transfer it until it was paid for
  • the client was getting e-mails from the registrar about the transfer requests and was starting to e-mail the registrar directly (not understanding any of the technical considerations, and getting very confused by the replies from the registrar)

The client wanted to know what the e-mails were about, why there would be a delay in the transfer, and generally everything that she’d not been told about owning a domain before.  I think my e-mail response was pitched a bit too technically, because they kinda seemed to stop reading part way and lost interest in the details.  I’m not too sure what they think of the events now. My e-mail was kinda long, but I did have a LOT to catch them up on (it seems that nobody had explained a thing to them about the fact that their site was even moving – a friend of theirs was managing it, but was not communicating to the web developer, the other web hosting provider, myself or the site owner)

Personally I’m happy to manage the entire process for a client (if that’s what they want), but I’m also happy for them to manage as much as they can handle.  This client was not given the choice and ended up being forced into the middle of a technical problem (i.e. they were asked to vote on the domain transfer and didn’t know what the voting was about, or that their domain was to be transferred)  So I don’t think it was a very happy situation, and I hope the client knows that its not how I would have liked things to happen.

Regarding the hosting, I’m going to try and improve the balancing act of technical involvement vs. ease of use in the future… but its going to be interesting.  I’m kinda toying with the idea of building a “Domain owners handbook” and giving the client the option of using the handbook or having me deal with it entirely. (i.e. their e-mail address is not listed as any contact for the domain so that they never have to see the technical e-mails, but they also lose the power to keep me in check – so I could happily sell their domain to someone else and they’d not know anything about it until after it was done)

Regarding general communication – I’m not sure… I think I’ll figure that out as I go along – each conversation will need a different level.  Some of them (like this blog) will probably be pitched to technically for some, and far too simply for others.  I’m not trying to please anyone specifically, just trying to write out my thoughts. (If you have questions, feel free to contact me, or leave a comment.)  In other “publicly visible” conversations I’ll try to give links to definitions of terms and to explanations… and I’m definately going to be around to answer people’s questions/comments/complaints… as long as we’re talking, I’m happy. πŸ˜€