wire_v0.9Been a helluva week for visitors, this week (although the one guest I was expecting didn't show up!) but every spare moment I've had has been spent working on the±wire. I appreciate daily how stable OS X Panther is for this kind of work, hit sleep, walk away, come back twelve hours later, pick up where you left off - it's interesting to note that while my network shares drop off during this time; and sure, only take the click of an alias to recover; the±wire remains connected - anyways, version 0.9: this is an essential upgrade for beta users, indeed everyone on planet earth, fixing a couple of wee annoyances, a few foibles, and with a generous sprinkling of improvements all over, en-joy..
You should know now, a lot of the±wire, I got an idea and the code came all-at-once like, me scrambling after, typing like a bastard; so if you come across wee bugs or foibles, please do tell, I might have missed them, scrambling after the next idea..
I'm real thankful for this, the RealBasic IDE; allows a kind of creativity that was previously to be found nowhere in the world of software development. The level, yes, the kind, no. There's an all-at-once-ness about this in-yer-face objective programming that is a harmonic of my working style, my way of thinking about how applications work, and should work; something I do more than you would probably believe.
As far as I'm concerned, the code-snobs can stick a Fortran manual up their arses and kiss their life goodbye; yer pissed off cuz we RB dudes can do in seconds and minutes what takes you minutes and hours, days; I know; but don't take it so hard, you can still use those talents writing RB plug-ins and stuff, it's not wasted. /me does dead-pan expression
I like to spend my hours doing stuff that matters, creating and experimenting with better ways to do things, not reinventing wheels, longhand. There isn't a computer language today that couldn't be, if not mastered, then at least capably understood by the average five-year-old. Get out of yer wheelchairs and run! These sorry relics are destined to become no more than interesting mental stimulation for the hyperactive children of tomorrow, the real work being done at a level of abstraction presently unknown, even to realbasic programmers.
Cocoa appeals to me massively, yes, but sitting down with three separate IDE's to develop the±wire (which is cross-platform by its very nature); something I can do in RB, with ONE codebase, and all on my mac; just isn't on the cards. Nothing comes close to RB for this splendid work. I owed the boys at realsoftware a shout, for sure. Now, on with the show..
• Automatic Logging: We have this now, yes! Logs can be created automatically in a folder of your choosing. the±wire will append chat to whatever log, depending on which scheme you have chosen; log by connexion (creates lots of logs), log by day, by week, by month, or finally, log by buddy (the default).
You can use the check on the log box to toggle the actual logging process, or if you don't enabled autologging, that control can be used it to create individual logs as before.
° Fixed a few wee bugs in the prefs window, stuff I hadn't cleaned up when I moved some internal prefs for the last version. Well, I never switch off the tips!
• Still on the prefs; I needed to be able to add new keys to the preference file with future application upgrades; as things were, this was difficult; I'd created empty keys for every feature I planned to add, but now I realise that not only did I not think of everything, but that I still might not have thought of everything, and this fixed-preference file is a Very Bad Idea, both limited, and limiting.
I reworked the prefs handling, giving me a mechanism to upgrade features and their related preferences seamlessly, well, almost. From now on, if the±wire finds a default preference file next to itself (or next to the binary in OS X packages), it will use it. Once it has used this to create your preferences, the default will be renamed to wiredefault.plist.bak. Your old prefs are backed up too, just in case you there's something in there you need to retrieve, that secret port number perhaps.
You can delete these .bak files if you wish. Though if anything were to happen to your real preference files, the±wire could use these to recreate a new set.
The down side is that when you upgrade to this new version, your preferences will be reset, things like retry rate, help tips and so on, but in balance, it's a worthy trade-off for the extra features. The old method sucked. Your buddies remain untouched. Although they share the same new mechanism, if you already have a buddyfile, it will always be used and the new default buddylist ignored, renamed to wirebuddies.plist.bak
Once we get to final release, this sort of thing wont happen any more, probably.
° fixed the extra spaces in the log files. they are tab-deliminated, by the way; you can import that easily into other applications, databases, whatever.
° fixed the extra linefeeds in the log box too, that was a weirdo.
° fixed a bug in the autocopy™, where the nick part was getting copied too. oops. sorree!
• Removed the limitation with the tips. previously, if you disabled the help tips, you would need to restart to get back any tips that you had hovered the mouse over since disabling them. No more; now you can toggle them on and off as required (apple/ctrl-T, also available from the help menu). No tips are "lost". I've got this working on all platforms now, I think.
Apparently, "Classic" Mac OS balloon help truncates the display of some of the tips, you guys will have to either a) wait for me to do a "how-to" page with all this info and more on it, or b) get a real operating system. I recommend the latter.
° fixed a bug on the windoze builds where if you drag-and-drop multiple lines of text from another application (say TextPad) or from the±wire itself, only the first line got displayed. The others were there, just not displayed.
° fixed those sounds so that they don't play if you have sounds disabled - well, I wanted you to hear them!
• moved the PING response over to log box (the log box will scroll to show you the result, regardless of the scroll setting, unless you have messages switched off, of course) Also, there's now an audio alert for a successful ping (when it comes back). If you disable both messages and sounds, you'll never know if a ping was successful! - remember you can use "/ping" in the main chat.
• fixed the time settings, pings, and other stuff will now have the correct time, as opposed to the application launch time. oops.
• added audio confirmation when deleting items from the drag-n-send™ window (backspace on mac, delete key on other platforms) - creating interesting sounds is one of my favourite coffee-break activities. WARNING: this sound is highly addictive, I can't be held responsible if you delete your whole hard drive just to hear it over and over.
• some minor enhancements to the nick changing - remember you can do "/nick whatever", just like IRC, as well as use the login window for changing your nick)
• cursor in drag-n-send™ window will now change to "hand" (Mac Carbon) or "centre" (other OS) to reflect what action will be performed when you click on an image too big to fit in the window.
• you can now set the jump value (the number of files you "jump" if you do pageup or pagedown) in the drag-n-send™ window itself. The editfield itself does simple, clever things, take note.
• the filesize of non-image files is now displayed in the drag-n-send™ window, in quasi-human terms.
• receiver now gets a file transfer progress box too, and thence, the ability to cancel any file transfer in progress, if they so wish. note: if either end cancels the file transfer, the "part" at the receiver's end is deleted immediately (if possible) and the drag-n-send™ window reverts to its previous state, either browsing some folder, or closed.
• There's now a confirmation dialog for new file transfers, before the transfer begins, you will be asked whether you wish to accept files from this human. If you click "yes", that buddy can transfer files to you for the rest of the session without further dialogs.
If they are also in your buddylist, the "yes" will be remembered permanently (or until you delete/resave their buddylist entry/hack your plist file), i.e. that buddy is now cleared for sending you files. (another good reason to use their usual nickname as the entry name) Similar story for "no".
• brought back the remote address notification. When you connect, the±wire now reports "wire with so-and-so (192.168.0.1) established", or whatever. Useful in verifying you are chatting with who you think you are chatting with.
• When you recall a buddy, any custom port settings you had will now be honoured. If you need to specify a custom port for a particular buddy, remember to set that (in the prefs) before you save them to your buddylist.
• added a couple of interesting twists to my homebrew encryption scheme. beta testers, please ensure the person you want to chat to is also using version 0.9, or else secure chat will be complete gobbledygook! For you amateur cryptanalysis out there; here's that same phrase I used earlier, but with the new encryption scheme..
≈Ω∆Å∆åƒ∏∆Ñ∆ë≈Å∆ò∆è∆è≈ç∆§ ∆ú∆£∆û≈ú∆•∆±∆∑≈®∆¨∆∫∆Ω≈ ¥∆æ«â«å«Ñ∆É«ì«é«ö∆ è«¶«§∆ò «û«≠«Æ« ©∆ß«æ«º∆∞»á«æ «æ∆º»Ä»ã»â «à»ö»î«ë»®»ü»ü« ù»∞»§»∏»Ω…Ö
• nick data and suchlike now always travels encrypted as well, though with a weaker algorhythm than the secure chat, as the keys must be known in advance, i.e. fixed.
• Still on the subject of encryption; I've been asked to install PGP. Two things spring to mind.
1) All current encryption algorhythms are a joke.
The adage "no security is better than poor security" is true. When quantum computing hits the high-street sometime in the next few years, the time required to break (and the so-called security of any encryption algorhythm has always been measured by the time it would take to break) any of our current schemes will be reduced from years to microseconds - phrases like "ten thousand years using all the computers in the world" - very common with the experts - become completely meaningless when capabilities like these are bestowed upon the average games console. All bets are off; any data you've sent encrypted in the last twenty years will be converted to plain text this decade. Deal with it.
Quantum computing will, of course, enable us to create infinitely more complex, and indeed unbreakable encryption algorhythms (at least until the next quantum leap in earth physics); but until then, we're all just having a laugh, right? and
2) Isn't that just like a red rag to a bull?
However it does seem reasonable to assume that the more we all encrypt our data, the less red that rag becomes, so I guess I'll be installing PGP sometime soon, and pretend my arse is covered. pffff..
I put this blog up on my own (Linux) server yesterday morning, expecting to punt it to the live server sometime soon after, along with the 0.9 betas, of course (on itonit! give us a minute or thirty before you start grabbin). That didn't happen. It's Sunday night, and even though there's definitely an hour missing somewhere, I've managed to find my way home, and back in front of the puters again. Karma got all the spills, still a wee bit hung-over, poor lass. Good weekend, hope yours was, is.