Blog | |
Releases |
Page:
0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 40 41 42 43 44 45 46 47 48 ... 50 ... 55 ... 60 ... 65
Scribe Final | |
---|---|
Date: 15/1/2007 | I plan to ship the final build of Scribe v1.89 this month. Left to do is:
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 | |
Five(ish) Things | |
---|---|
Date: 1/1/2007 | In the spirit of new year introspectiveness I present fiveish things.
|
(0) Comments | Add Comment | |
Mac Porting | |
---|---|
Date: 31/12/2006 | Things that I got working this week:
I will be posting something in Janurary come what may. i.Ftp is actually responding and working like an actual application. A Scribe release will follow shortly after. Update: Text input is working. Still need to get some of the other keys sorted out via the raw keyboard events. |
(0) Comments | Add Comment | |
Why We Reinvent The Wheel | |
---|---|
Date: 22/12/2006 | The issue of creating a new scripting language for Scribe has been on my mind lately, and as Ben simply points out in his comment here: "didn't you think about using an already existing scripting language to do the job?", it's clearly on the mind of my users and readers as well. And I thought I'd talk about how I got to become one of those geeky language types that talk about lexing and parse trees and so on.
The decision to roll my own language was in part a natural progression from i.Mage's scripting that just got a bit out of control. I started with an ultra simple syntax that I could parse in 3 lines of code: <command> <argument>[ <argument>] <crlf>. Pretty simple eh? Well then I thought about that and wanted to add some variables so I could do some simple expressions in the command's arugments. At this point spending weeks trying to intergrate a fully fledged scripting language seemed stupid, I only wanted some basic expressions. How long could it take? So a few hours later I had a basic expression evaluator and bing I was done. So I seemed to have staved off a good amount of work and still had the feature I wanted. Still I did think about it, considered the trade off and it was simpler to do it myself. Now sometime later I decided that a loop command might be useful. So I add the "for" command which looped over a set of commands. This proved to be a little harder but not overly difficult, another few hours passed and I had loops in my language. Still I was convinced it was much easier than intergrating someone elses code. I had already suffered with the ICI scripting language for a Scribe plugin, and it was been painful to intergrate. It just didn't want to map to the internal object addressing method I wanted. So in fact I had tried to intergrate a script language with my code before and KNEW how much work was involved. Sometime later again someone bugged me about writing some complicated filter in Scribe and I thought to myself "that ICI stuff was a pain, maybe I should look at bringing i.Mage's scripting language over into Scribe". So I did, it was trivial, with some changes here and there both apps could reuse the compiler/executor. In the meantime I had refined the syntax a lot to make it very Javascript like in an effort to stave off having to talk people into learning a new script syntax. It seemed like a good way to justify the language. Still over the months it's existed I guess I've now spent about the same amount of time I would've had to spend to intergrate a external language. However I still have very tight binding to native C++ code, and some features that wouldn't map well to external languages, and I can change the language to suit my needs at any point. Because I understand it from a core level. For instance I love being able to define a method that exists in a different DLL and call it through script. VB did this from very early on and it's brilliant. It means that you can glue different bits of your code in different langauges together very easily. This clearly rubbed off on me because I added it to my language fairly early on. I seriously looked into Python at one point and I wasn't happy with the work required to call external C libraries. I even thought about hacking Python's interpreter to do my bidding. But it was clearly a scary proposition. I'm not sure I did the right thing in writing my own. But I'm certainly happy with the results, and the code base will be very valuable in a lot of the software I'm writing. The expression evaluator will most likely end up in i.Hex and so on. And I feel that compilers aren't so scary anymore. So there is a lot of first hand knowledge that I've gained from the process. |
(2) Comments | Add Comment | |