Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 36 37 38 39 40 41 42 43 44 ... 45 ... 50 ... 55 ... 60 ... 65
Mac Port Progress
Date: 21/1/2007
I struggled with getting the mouse handling to work at the same time as resizing the window, but after several hours I've got it sorted. Turns out that I need to detect the mouse being inside the title bar OR the resize box and return "not handled" otherwise I need to handle the click and return "no error" for things like up clicks AND resizing to work correctly. The docs were less than complete in that regards.

The point of that little diversion was getting the scrollbars working. Initially I thought that I hadn't implemented a native control, but no I had actually already put in place the X-platform control. What was going on was that I hadn't hooked up the layout control to actually ATTACH the scroll bars... yeah ok moving on. So now that is sorted out but I had to fix it crashing when the scrollbar is removed.

So now I need to get the scrollbars painting properly... they are all out of alignment with the parent window right now and then maybe things will be ready for packaging.

Maybe.

I say maybe because everytime I think I'm getting really close I find some other show stopping bug. I think I'll make the first release a zip or something so I don't have to waste more time figuring out .dmg files. Unless they are like 5 minutes of work...?
(0) Comments | Add Comment

Speed Speed Speed
Date: 18/1/2007
Well now that I have a Macbook C2D with 802-11 "n" wireless hardware it occured to me that a nice 802-11 "n" access point wouldn't go astray. Lo and behold Apple release just such an 802-11 "n" access point/router/internet gateway called the Airport Extreme. Knowing that just such an Apple product would interoperate perfectly with the "n" wireless hardware on my Macbook, I swished out the credit card and was seriously thinking about clicking "Buy" button, but fortunately (unfortunately?) I double checked the tech specs first.

Lets see, what have we here.
  • 10/100 uplink port for 'net access: tick.
  • The usual NAT/DHCP/VPN tech: tick.
  • Wireless a/b/g/n: tick.
  • Plausable price: sigh, but 'tick'.
  • Looks the business: tick.
  • Usb2 jack for external hard-disk/printer: BIG ASS TICK!
  • 3 x 10/100 wired ethernet ports: W. T. F. >:-(
How can in this day and age can Apple in all seriousness release a wired ethernet switch product that only has 10/100base-T? I mean all their computers have 1000base-T right? And this is the age of high-flippin-definition TV and gigabyte media files? The network is the weak link in my local setup:
  • Memory bus: 2GB/s
  • HD: 30+MB/s
  • Network: 7-8MB/s
  • (Cable: 1MB/s)
And 2 of the 3 computers I own do gigabit. One of the applications for a faster network would be to stream SD digital TV from the main PC that does recording to the Macbook for viewing. SD digital weighs in at about 7mb/s which is right on the edge of the bandwidth limits of (my) 100base-T network. In fact I've tried it and it skips like a young billy goat. So I need some gigabit action if I'm going to get that working smoothly. A better 100base-T switch might work, but if I'm getting something anyway, why not just do it properly and get 1000base-T?

To put things in perspective, CodingHorror goes into some detail about the various actual throughputs you can expect on various networks. A lot of people will get 30MB/s on gigabit but it's possible to get more with the right tuning. Even 100MB/s. Anyway, a good read if your at all interested.

Also the Airport Express comes with a CD to "update" your Mac computer use 802.11n, which would be a nice little bonus considering that Apple is going to charge us US$5 to enable the existing "n" hardware that we've already paid for. A practice that I find both disturbing and unethical. I don't give a hoot about your Sarbanes and your Oxley, you can shove that pile of steaming. I have every faith in the hacker community to make a free solution to that very issue widely available any time now.

So back to square one, I want some gigabit, some network attached storage, some 'net sharing and some wireless "n" that works with my Macbook. For less than $200 AUD. Is that even possible?

Update: Well it appears after a little sleuthing that a few alternative products do exist, but the info is kinda thin and the prices kinda max:
  • D-link DIR-655: Pre-N, 4 x Gigabit Eth, but NO NAS despite having a USB port on the back. Looks nice though. ~$150USD
  • Linksys WRT350N: Pre-N, 4 x Gigabit Eth, USB2 NAS, but hideously ugly. ~$150USD
Only the DIR-655 is available here for $320AUD, which is a good $100AUD more than the Apple product, although you get gigabit ethernet and lose the NAS.

One would be tempted to get the Airport Extreme and pair it with a Gigabit switch (D-link do a 5 port for $60AUD!!! *blink*) but then what is the point of 802.11n if your server is stuck behind a shared 100Mbit link between the Airport Extreme and the Gigabit switch? And you can't use that 540Mbit of "Pre-N" goodness to access your files?

Argh, it's all nafted I tell you... nafted.
(0) Comments | Add Comment

Mac Porting Update
Date: 18/1/2007
Ok, I think I'm down to a few days away from my first Mac software release.

Porting of the menus is now complete and just needs a little testing. As usual this would've been quicker but the documentation wasn't covering what I needed. I'm starting to appreciate the MSDN documentation, because it does cover that much more detail than almost anyone else.

Then late in the game I realised that I'd have to do something about the scrollbar situation before I shipped a build, so I'll plonk in the X-platform code from the Linux build because that'll be least painful and fast.

Finally I'll have to figure out how to release software for the Mac. i.e. Creating .dmg files, building universal binaries... you know "little stuff".

Once I have a build of Mac/i.Ftp in the wild it'll be full steam into the Scribe port. i.Ftp is a much smaller application in which to test Lgi ports with, so I use that for the most part then compile all the other apps when I know I've got the basics sorted out.

I will be adding native ports of the various controls in time. It's quicker to use the X-platform versions in the short term.
(0) Comments | Add Comment

Scribe Final
Date: 15/1/2007
I plan to ship the final build of Scribe v1.89 this month. Left to do is:
  • Window position saving/restoring still a bit flakey.
  • Recurring calendar events. This is mostly backend changes now.
  • There was some problem reported some time ago, where if you have a language other than english selected Scribe creates a duplicated folders everytime you start the program. I can't find more info on this, or reproduce it so let me know if it's happened to you.
I've rewritten the 3 utilities at the bottom of the tools menu as scripts and they will ship with the final release. This will give people an introduction by way of example on how easy it is to script things in Scribe.

If you involved in any of the translations and have outstanding work I will most likely post a Test12 a few days before the final release so that you can translate any final UI elements I add.
(2) Comments | Add Comment

i.Ftp/Mac
Date: 11/1/2007
I just got i.Ftp running on Mac OS X to connect to an FTP site for the first time. So it's been a long and painful journey but I can taste how close I am to an alpha release.

What was a nice surprise, is that threading just worked, first time. I ended up just using the existing pthreads implementation from the Linux port and it compiled and worked without any edits whatsoever. Well at least it runs in the simple case. The timers are based on threading so they now work as well. The socket code was a straight port from the Linux/BSD implementation and that worked first go as well. Freaky.

So now all thats left to do for a basic release is.... duh da daaa! Menus. Icky icky menus. Oh well better get cracking. I'm still on track to release something this month.

(1) Comment | Add Comment

Lgi Mac Port
Date: 4/1/2007
I took great delight in implementing LgiGetOs and LgiGetOsName this morning. Given the 2 variables for version and revision are ints I went with ver = "10" and revision = "48" to represent Mac OS X 10.4.8, it seems that the OS is limiting itself somewhat in the way it returns the version numbers. If it ever goes beyond 10.4.9 then I'll be in trouble. I wonder what Apple would do given that the version number is reserving just 4 bits for the 2nd and 3rd number. I guess they'll use 0x104a for 10.4.10. Maybe I should just add a third parameter, or make it an array.

I also implemented key up events. There is no direct corralation between key down's and key up's because the system converts the raw key down's into unicode via various input methods, and that is what I give to the application. The key up is just a massaged virtual keycode. But seems to work really well, except that I can't tab between controls. I must've broken the default handler for that. I'll probably just implement my own handler so I can get an initial release out the door.

So now all thats left to acheive an i.Ftp beta is menus, threading, timers and the socket layer. How hard can that be? ;)
(0) Comments | Add Comment