![]() | Blog |
![]() | Releases |
The Cost Of Doing Business Online | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date: 22/2/2006 | How much does it cost to take payments online?
These are some popular payment processing sites. There are more listed here but most are expensive. Some people hate paypal, and with good reason most of the time, but still they do right by a business fee wise. I'm toying with using 2co as a 2nd option. I have used Kagi in the past, and the fees are low but access to your money is expensive and difficult compared to PayPal, and they seemed to have issues with fraud. I went backwards some months. Some people would rather rip you off than find a serial on the 'net somewhere. There fruadulant key ends up being banned in all future releases of the software anyway, so they get just 1 release of InScribe forever for all their efforts. Dumb crims. Anyway, thought I'd share the list. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
(2) Comments | Add Comment | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Editor Work | |
---|---|
Date: 21/2/2006 | Amongst all the other things I'm doing, I had some time to play around with creating a rich edit component for Scribe. I am building it on top of the HTML control that Scribe already uses via sub-classing and adding editing functionality. So far it's going better than expected and I want to share a little video [860KB] of one of the tests. The test case is just holding the delete key down to gradually delete the whole document. What makes it cool is that you can see the live HTML changing on the fly in the right pane.
This in no way means there will be a functional HTML editor in the next release of Scribe, but I might release this as a plugin at some point for early adopters to try. I'm not sure why I didn't try this before, my last attempt at rich editing was embedding IE and using a online javascript editor. But IE behaves differently as an embedded ActiveX control than when it runs as a web browser. And Mozilla doesn't even implement 97% of the API needed to embed fully. So that died a premature death, although the code is still in subversion. I'm sure if this HTML/Edit hybrid ever sees the light of day it'll be pretty flakey for the first 'n' months/years/decades. Unless someone steps up to the plate to help with the coding. Takers? |
(0) Comments | Add Comment | |
Australian Digital TV On A Mac | |
---|---|
Date: 20/2/2006 | With the advent of free to air digital TV in most countries the average Mac user has been somewhat left behind by the mad rush of .tw companies scambling to fill the new void in the market for digital TV tuners for computers. Lots of devices are available for PC's ranging from USB2 and PCI cards starting at as little as $90 AUD.
So whats a Mac user to do? Scout around of course! The first thing you'll bump into is the EyeTV DTT device ($295 AUD). And then you'd also find that Miglia do the TvMini (~$240 inc shipping). Both of these sound great but just cost way too much. However there is a little known 3rd option called TinyUSB2 by Digital Now ($149 AUD), which is an Australian company. It works well with the mac via 3rd party drivers, which I can confirm, as it likes my little Mac mini (1.42ghz) as well as my PC. So it's the right price, or at least within shooting distance of the PC only equivalents and it works with a Mac but what the quality like? Well from what I've heard the TinyUSB2 is the only USB2 digital tuner based on a standard circuit tuner (i.e. from a PCI tuner) instead of the "tuner on silicon" that goes into most small tuners. Giving it an advantage in reception quality over the PC only products. I'm running mine off the unmodified analogue TV aerial on our roof and it's pretty good. Obviously if we upgraded to proper digital grade cabling it'd be better, but so far I'm impressed. Add to the package a little aerial, a nice remote, some software for the PC and it suddenly becomes excellent value for money. Kudos to Digital Now for a excellent little product. One thing I'm really appreciating about digital TV on computers is that recording is so painless. Using an analogue tuner takes all this effort to encode the signal to disk which chews vast amounts of CPU and also results in a less than stellar result. Whereas recording digital TV takes almost no CPU and never has quality issues, as your recording professionally encoded material at good bitrates. Sure the files are big but you can re-encode or delete watched material... or just buy a bigger disk! I'm finally coming around to this Digital TV thing :) |
(0) Comments | Add Comment | |
Electric Vehicle Update | |
---|---|
Date: 20/2/2006 | (see update at the bottom.
After my first post about electric vehicles for city commuting I sent a letter to the Minister of Transport, John Watkins MP. After many months I finally received a response today, which I will quote in full (I don't have a scanner handy): Minister For Roads The Hon John Watkins MP Deputy Premier Minister for Transport Minister for State Development Member for Ryde PO Box 736 RYDE NSW 1680 Dear Minister Thank you for your representations to the former Minister for Roads on behalf of Mr Matthew Allen of xx xxxxxx Street, North Ryde concerning the user of motorised foot scooters in NSW. I am advised that all motorised 'stand-on-to-ride' scooters are banned from use on roads or in road-related areas in NSW, including footpaths. I am also advised that with their small wheels and steep steering head angle, motorised foot scooters are less stable and controllable that bicycles and, in particular, are more susceptible to road irregularities. Sudden falls sideways into the path of passing cars are more likely than with bicycles. They cannot, therefor, be categorised like bicycles for use on roads. Motorised foot scooters create significant dangers to their riders, pedestrians, and other road users. The only place that can be legally user in NSW is on private property. The Australian Road Rules and the Road Transport (Vehicle Registration) Regulation 1998 provides that an auxiliary propulsion motor fitted to a motor assisted pedal cycle can only have a maximum output of 200 watts (200w). The power was deliberately restricted, because the motor was never intended to be the principal source of power, but only to provide assistance to the cyclist when pedalling up a hill. If Mr Allen requires any more information he may wish to contact Ms Sui, Manager Customer Management, Roads and Traffic Authority on (02) 9218 3583. Yours Sincerely. Joe Tripodi As disappointed as I am I'm not surprised. I disagree with the statement that they are less safe than a bicycle, or that they present more of a risk to pedestrians and other road users than a bicycle does. But that's classic close minded bureaucracy for you. Notice how the issue of pollution and traffic is conveniently swept under the carpet. What politicians don't realize is that the cost of not letting people ride around on scooters may be higher than a few scooter accidents, in the extra smog caused illnesses, depletion of fossil fuels, increased traffic and so on. It's just a small minded "That doesn't fit our model, lets ban it". It even seems that motorized scooters with less than 200w are banned with some of the language they use in the letter. However there are several avenues that I think have promise.
Update (20/2/2006): It turns out I misunderstood the rules, and the 200w limit applies to powered cycles, and motorized foot scooters of any type are banned. So it's worse than I thought. I spoke to Ms Sui and she referred me to Chris Peckham (02 9218 6587) at the NSW RTA. We spoke at length about the issue and the reasons behind the rules. There seems to be a Scooter working group that was responsible for the current situation that I'm hoping to find out about over the next few days. Chris sited an unnamed report regarding the unstable nature of the motor foot scooters as being sufficient evidence that they should be illegal despite my protests that they have been legalized in (some parts of) Europe and the US. The core issue seems that the scooters don't have sufficient trailing stability, i.e. if you take your hand off the steering in a car, moped or bicycle the steering self centers and you go in a straight line. I'm not sure why this "hands off" stability is that important as anyone in their right mind keeps their hands firmly on the steering system while in motion anyway. My personal experience with motor foot scooters is that while it looks unstable, once your up to speed it's self balancing just like a bike, as long as your holding the steering arm. But personal experience seems to hold little weight against "official reports". When we spoke about the general availability of pure electric vehicles in Australia Chris pointed to the number of electric bicycles limited to 200w, which in my mind is not pure electric but instead hybrid human / electric powered. And also does not have the important benefit of being able to easily combine with public transport. You might get an e-bike on a train but definitely not a bus. And you'd be up for an extra fare on a train anyway. Not so with a electric foot scooter, which would leverage the existing public transport system nicely, while still maintaining the important benefits of full electric transport. Including not having to have a shower at your destination because of all the sweat you'd work up on an e-bike. Currently I'm looking at getting a proper registered scooter, although it's painful to do so seeing as an electric foot scooter is far cheaper and more appropriate for the distance and terrain I need to commute over. I will continue to poke and prod the government for information about the situation, hopefully at least raising the awareness of how the current laws are not what everyone wants. Ideally I'd like to unearth the real decision makers in the government so that we can lobby effectively as a community for change. |
(11) Comments | Add Comment | |
XP Has Left The Building | |
---|---|
Date: 18/2/2006 | My wintel box no longer boots XP. It gets past the "Starting XP" progress bar
(in VGA on black) and then just before getting to the login screen all activity
ceases with just a black screen. Nice.
Precipitating factor was that I had the machine spontaneously reboot while encoding with Auto Gordian Knot. I thought nothing of it, but when it tried to come back up, no dice. It boots in safe mode but I don't know what to frig with to fix the problem. I did boot once just after I turned off the firewire drive. But it's still off and booting fails. Oh well, my trusty sidekick Mac mini will save the day. But I won't be getting any work done or read any email while the PC is dead. So don't expect anything much from me this week. It's time to reinstall XP anyway. Thank you God that I have a hardware firewall :) |
(0) Comments | Add Comment | |
Continuing Tales Of Optimization | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date: 9/2/2006 | Once I had a working B+Tree I sought to intergrate this into Scribe to see how it worked with "real data". Well that was a dismal failure. You see being a disk based data structure rather than RAM based it sucked speed wise compared to the memory only system used by the v1.88 build of Scribe. So I looked at the code and there was a cache of sorts built in to keep B+Tree blocks in RAM for a while before flushing them to disk. I did a quick experiment to see how much the cached blocks were getting used and whoa, no caching was taking place. Well there yah go son, thats your problem.
So I started tinkering with the cache, first by fixing the bugs to get it working and then progressively changing it's parameters and implementation to improve speed. Initially by just fixing the bugs in the initial implementation I got a massive speed up. So instead of 50 keys/sec I got around 3600 keys/sec. Nice, but still slow compared to the old way. Then I realised that it wasn't a smart cache in that it cached the first n blocks and then that was it, so I implemented a system to remove older blocks when the cache was full. I bumped the cache size up to 256 blocks (from 128) and the speed went up to 3900 keys/sec. Ok, time to whip out the profiler and see where the time was being spent. Turns out that most of the time was going in linear searches through the cache which drastically limited the size of the cache and these get/put functions that converted data for serialization. So I reimplemented the get/put functions as macros, getting rid of the expensive function call and that made an immediate difference, speed was up to 4950 keys/sec. The existing data structures were now holding cache size back, so I ripped out the array data structure and reimplemented with a binary tree for offset lookups and a doubly linked list for the least recently used que. That allowed the size of the cache to climb without hurting performance and speed increased again, with the cache size up to 1024 speed jumped up to 6400 keys/sec. The least recently used que was working a treat, with O(1) operation for all operations.
But still I wasn't convinced. From cs101 any programmer knows that binary trees have O(logn) complexity for insertion, deletion and search. Now I know of another data structure with essentially O(1) complexity for all those operations. A hash table. So in goes the hash table and then I ran the tests again. 1500 keys/sec. Huh? Ok, 2 things could be happening here, a) I could have chosen a sucky hashing algorithm and b) my code is probably buggy. To fix the bugs I wrote a data structure verify function that scanned the entire thing and check for conformance to the rules. This ran everytime I changed something in the structure, and it saved heaps of time. Then with the bugs out of the way I got down to checking the quality of the hash algorithm. I tested the number of hash table collisions for each hashing algorithm and eventually settled on a shift and a modulous.
Now I felt I was wringing out the last of the performance from the data structure. Still when I plugged it into Scribe I was getting about 100-130 messages / sec when rebuilding the spam word database. This is compared to the 600 messages / sec with a straight memory only hash table. So it took about 5 times longer to build the word DB. So currently I've given up with using the B+Tree directly during word DB rebuilds and I've gone back to the memory sucking hash tables. Then instead of writing the hash table to disk I dump it all to the B+Tree instead so that I can access the data without loading the entire thing into memory. This keeps the footprint of Scribe nice and low for normal day to day running, and there isn't that expensive word DB load that kills performance during the first mail receive of the session. The only problem now is that during the word DB rebuild my debug build sucked down a cool 1gb of RAM, seriously paging out to disk (I've got 512mb installed). This is obviously unacceptable so I'll have to look at that before a release happens. But I'll probably remove the "rebuild word DB" function entirely and rely on incremental edits and mail is received and moved between folders. I'm still toying with the idea of adding mail bit by bit to the word DB's as the user moves around the folders, thus acheiving the indexing incrementally and thus the speed of the B+Tree's is not so much of a problem. Also the actual word counts are not accurate yet, there is an issue in the mail -> word list function that I've been working on for a couple of days now. Damn charsets and dodgy email clients make things so complicated. Anyway, enough said, I'm still working hard on the software and a release will happen in the next few weeks. | ||||||||||||
(2) Comments | Add Comment | |||||||||||||