Thursday, November 03, 2005

Operating systems

Last time I checked this was the market share.


Things haven't changed much..





















2005 Win XP W2000 Win 98 Win NT Win .NET Linux Mac
October 70.2% 15.0% 2.8% 0.4% 1.6% 3.3% 3.2%


www browser stats page

Random stuff..

Theres a nicer tutorial of an older version of the infra red camera stuff here. The old one is here.

New southpark episode out aswell, gay marriages is the topic, worth a look since they actually cover some of the "arguments". Not as funny as the last episode though imho.

Google is down

I never realised how badly this impacts me. But my work has pritty much grinded to a hault because something is wrong with google.. Never thought it would have such a major impact on me. You forget how much you use google, ohwell, yahoo gets a visit again for a while.

Pinging www.yahoo.akadns.net [66.94.230.43] with 32 bytes of data:
Reply from 66.94.230.43: bytes=32 time=358ms TTL=48

Pinging www.l.google.com [66.102.7.104] with 32 bytes of data:
Request timed out.

Tracing route to www.l.google.com [66.102.7.104] over a maximum of 30 hops:

1 2 ms 7 ms 3 ms SVEASOFT [192.168.1.1]
2 178 ms 108 ms 169 ms lns4.wa.westnet.com.au [202.72.147.250]
3 696 ms 176 ms 86 ms gi1-2.atm.perth.westnet.com.au [202.72.130.101]
4 301 ms 338 ms 466 ms Gigabitethernet2-2.wel19.perth.telstr.net [139.130.128.1]
5 44 ms 56 ms 88 ms GigabitEthernet7-0.wel-core3.Perth.telstra.net [203.50.115.129]
6 264 ms 309 ms 232 ms Pos-channel2.way-core4.Adelaide.telstra.net [203.50.6.193]
7 345 ms 194 ms 219 ms Pos-Channel1.exi-core1.Melbourne.telstra.net [203.50.6.161]
8 791 ms 158 ms 319 ms Pos15-0.chw-core2.Sydney.telstra.net [203.50.6.37]
9 253 ms 92 ms 244 ms 10GigabitEthernet1-0.oxf-core1.Sydney.telstra.net [203.50.6.2]
10 478 ms 131 ms 233 ms 10GigabitEthernet2-2.syd-core03.Sydney.net.reach.com [203.50.13.30]
11 356 ms 590 ms 269 ms i-2-0.sjc-core01.net.reach.com [202.84.140.25]
12 401 ms 362 ms 414 ms unknown.net.reach.com [202.84.251.114]
13 * * * Request timed out.


Neat huh? www.google.com.au still works,..

Updated MP3 tagger

Updated my shell based MP3 tagger.

Fixed up since discogs.com search engine went down, so I was suprised to see my program crash since it had been stable for a while now. I guess this just goes to show you how hard it is to write a fault tolerant program. You might think a website may go down, and consider that, but what if part of a website goes down...

Anyway added a few features, here's the list of updates:

  • 1.12: Allow direct url search (paste in a discogs.com url to manual search option), search engine down error message bug fix.
  • 1.11: Error message if Discogs search engine is down, also added display of current directory in help.


On the fault tolerance note, you'd think when you bugfix something to make your program fault tolerant you'd do it right. But no, clasic example of a bugfix introducing new bugs - it would now incorrectly detect certain artist releases as failed search results. *sigh*. *fixed*.

I'll upload it all once I can confirm it still actually works with the new search engine update..

Programming: Compiler Error: Solution

Figured I'd start blogging all the wierd compiler errors I get from time to time.
Ever seen this:?

shell32.lib(shguid.obj) : fatal error LNK1103: debugging information corrupt; recompile module

Happens because your mixing Platform SDK versions. Solution? Build with the new one, link with the old one. (In other words, move the new platform SDK to the bottom of the directories list in include & link)

Tuesday, November 01, 2005

Space: Student Satelite

Another student satellite launched. This time more of a deliberate effort, rather than a lets-see-what-we-can-pack-into-the-spare-space thing. (Nanosatellite / Milk box satellites)

I'm sure someone clever will one day come up with some kind of swarm mini satellite system. How hard can it be anyway? A bunch of pinging satellites with their own propulsion, and a big rocket to blast them to the right orbit, they use their own power to get to the right positions and you have yourself a localized GPS system, maybe to be used for giving you extra accurate positioning for a short period of time. Presumably the miniature sizes would make them hard to shoot down too..

Programming: GCC and CORBA

GCC4 has been out for a while now, but I still haven't gotten around to looking at it. I came across some GCC compiler optimizations I wasn't aware of. Specifically "__builtin_expect (!!(x), 1)", which means you no longer have to guess that the first conditionals get evaluated first. Nice.

Here is a copy of the optimization header file:

#if __GNUC__ >= 3
# define inlineinline __attribute__ ((always_inline))
# define __pure__attribute__ ((pure))
# define __const__attribute__ ((const))
# define __noreturn__attribute__ ((noreturn))
# define __malloc__attribute__ ((malloc))
# define __must_check__attribute__ ((warn_unused_result))
# define __deprecated__attribute__ ((deprecated))
# define __used__attribute__ ((used))
# define __unused__attribute__ ((unused))
# define __packed__attribute__ ((packed))
# define likely(x)__builtin_expect (!!(x), 1)
# define unlikely(x)__builtin_expect (!!(x), 0)
#else
# define inline/* no inline */
# define __pure/* no pure */
# define __const/* no const */
# define __noreturn/* no noreturn */
# define __malloc/* no malloc */
# define __must_check/* no warn_unused_result */
# define __deprecated/* no deprecated */
# define __used/* no used */
# define __unused/* no unused */
# define __packed/* no packed */
# define likely(x)(x)
# define unlikely(x)(x)
#endif

Looks like GCC finially hit some optimization standards, long way to go yet.

Oh yeah, and VC8 is out. I've been using the beta. Its awesome. (both the IDE and the compiler FYI).

And a note on the CORBA front, TAO is my implementation of choice. A bit of a pain to compile since the VC6 workspace is a bit munted, but its much cleaner than omniORB in my very limited opinion. Work on the component system continues..