OK, it is a kind of "blogg".
120305: I don't really expect anyone else to see the greatness of this, but I just managed to build and run both FPC and C programs with Lightweight IDE after a critical revision. What I did was to remove (almost) all use of the old-fashioned FSSpec (the reason why long filenames are shown in strange ways), and replaced it with, not FSRef that Apple recommends, but pathnames.I have been synching some code and done more testing on 10.7. The
old demo package (for Carbon) has been updated so you don't need the
macpas setting in the options. At the same time I updated TransSkel4 to
the latest version.
Debugging also seems to have problems, with variables not showing in the debugging window. This might be compilation settings.
When compiling under 10.7 and FPC 2.6, I get some linker warnings that I havn't seen before. Fix them by entering this in the FPC linker options:
-no_pie -macosx_version_min 10.5120222:
120114:
The latest updates have been good. Lightweight IDE is very stable since 0.9.2. I am making some work under 10.7 now, and have fixed a bug appearing there (drag-and-drop stopped working). This fix is not yet uploaded.
I have also made some improvements on QDCG, namely support for arcs. This, too, is not yet uploaded.
I might be able to have Lightweight IDE tested as iPhone platform this spring (primarily using Objective-C - can't do all my "different ways" at once) which can lead to some more significant progress. That's the way it is now, without being able to count this as research (which I think it is) I can work with it in education and maybe make something good with it that way.
111205:111123:
I am moving the editing of these pages from good old Home Page to
the pretty ugly and buggy KompoZer, but KompoZer works natively under
OSX, while Home Page only works under Classic or OS9. I also have Flux,
which I will probably phase in as soon as possible.
Some new things have happened with Lightweight IDE. Block identation is added, indent in/indent out in the Edit menu. I also made some enhancements to the CUDA support, so CUDA programs now work with double-click in the Finder, and can auto-link with frameworks.
I am also working on eliminating as many .frameworks files as
possible from the demos. Using the "linkframework" feature in FPC and
the auto-framework feature for C/C++, we rarely need it. The less we
need to mess in global settings and settings files, the better.
These changes will appear in 0.9.3.
One more thing: Process management in 0.9.2 is indeed quite stable.
You need sleep(1) at the end for WriteLn/printf() statements to work
reliably, due to Apple's "Leopard bug", which is still there in 10.6.
Also, there are some other bugs that can crash the program. Multi-file
search is unreliable, sometimes works quite well but may also crash the
IDE.
111007:
After several weeks with 0.9.2, I must say that it makes a difference. I don't think it has locked up a single time since I built it. I won't go back, but the Leopard bug is still in the OS so I need to work around it again.
However, some of my ambitions have been somewhat obsolete. The latest Xcode is quite a bit simpler, at least in the "front". The menus may be as complex as ever, they probably are, but the project window is pretty elegant, which was not the case before. So Xcode has actually moved pretty close to the look I have been aiming for in my (not yet completed) drafts.
Still, I don't think Xcode can work without a project the way Lighweight IDE can.
110923:
After a while, I noticed a weakness with 0.9.2, and it was fairly expected: The "Leopard bug" surfaces again. If you run "Hello world", you see it immediately, you get no output. This is a bug that first surfaced in 10.5, and that is why I call it "the Leopard bug". The bug causes data loss upon closing pseudo terminals. I did a workaround in the past, the "LittleLeopardReader", and I will have to plug that in again, but if it makes the process management shaky again, I don't know what to do. I have done some work on a different "reader", but it isn't working correctly yet.
Another thing: Today I noticed that a new FPC variant has been relesed, FPC for Java! Quite interesting, being able to write FPC code that produces Java bytecode. I strongly dislike Java, it is against everything I believe in (performance, well-designed syntax, the make-tools-not-rules principle) but targeting the same virtual machine with FPC code would make two out of these wrongs right. (Performance would still be subpar.) Now I ask myself if this is important enough for me to support it in Lightweight IDE. I can hack that quickly, but my own need in the short term is limited to say the least. I think I would be interested in using it for writing on-line programs. The idea of writing the same code for on-line use and local installation use, while not sacrificing performance for the latter, with a nice language, that sounds kind of right.
110919:
5-year anniversary upload!
Yes, it is pretty exactly 5 years since I slapped together the very first Lightweight IDE. Ironically, it is pretty unchanged on the surface, but that is because it doesn't have much surface. Well, some parts have changed a lot even there.
The big change today is that I think that I have finally mastered the irritating process management problems, that made compilations and executions stop working after some time. The tests I have ran indicate that the problems might be totally gone, or at least severely reduced. I have ran stress tests, running lots and lots of processes after each other. Before, those stress tests could fail after 30 runs, but now they work at 10000 runs!
If this holds, it calls for celebration. The process problems are so central that they have kept me from reworking other parts, I just have to make this work reliably or there is no point. Now the situation seems different.
Ironically, the old Leopard Reader bug fix could be removed. I found out how the Leopard bug works. As long as I collect my data within 0.6 seconds, I don't lose any data, so now I do it and all is well.
More iPhone support is a bonus, and I am considering uploading TransSkel for iPhone. It really is getting quite nice.
110916:
I have done even more work on process management, not enirely without success. Maybe I have a working model to work from now, but there is still some work to do to make it fit the needs.
I have also done some work on the iPhone support, figuring out how to support the iPad. That seems fairly easy.
110911:
The papers are full of anniversary articles of the 11th september attacks, but I have had my mind on TransSkel for iOS. It has progressed fast this weekend, adding most of the core TransSkel, including SkelViews, view handlers with data couplings (very important and convenient feature of the Mac version), creation calls and other support for a number of view types. The biggest omission now, IMHO, is QDCG, but otherwise it is really becoming a usable framework. (And like the OSX version, I insist that I have a framework with a muuuch nicer learning curve than Cocoa.)
On the negative side, I have worked on making the process management work, and it just won't. Some problems even look like new OSX bugs. I want to get over this problem so I can focus on making the Cocoa version, which was "almost there" amost a year ago! This is frustrating, but there is just one thing to do: find yet one more angle to the problem. Maybe I should find a way to get rid of the pseudo-terminals after all... or package them some way that lets me reset them without quitting the IDE.
110901:
My attempts to fix the process management problems seem to have failed. I have to put it aside for other work. The same goes for the much wanted Cocoa version. My focus now in on education, my engagement in three university courses and a number of master theses. But not only that. I will also work on a few other things:
My uDevGames submission. I intend to participate in this year's competition. I don't expect to get a very high position, there is only a month left and I will not develop full time or even close to it, but I hope to finish a new game that at least should be playable and a little fun. If I don't end up last, I will be happy.
If I do manage to finish, it willl be the second time this year I enter a game development competition. The previous was the 1PGDmC, the PGD mini challenge, where I ended up at third place with my racing game. I did so with mixed feelings since the ratings from one of the judges was less than encouraging (probably there was some kind of bug surfacing on his Mac but not otherwise) but I did finish my entry and it is playable. That is good enough.
In the meantime, SAT, TransSkel, QDCG and the rest will not more a lot. I did improve my 3D library (most of it not public) quite a bit for the 1PGDmC, and I am using QDCG and TransSkel in the new game (at least for now) which means that some development may go into these too.
110824:
Still not OK... The problem is somewhere else. But I have one more idea of what can be wrong, and I am testing it.
110823:
Let it whip!
That is the title of a funk/disco tune from the early 80's by the Dazz Band. It isn't even one of my favourites (a bit too synth-based) but the title fits today's release. The reason is that I have worked on the process management, which, as anyone using Lightweight IDE seriously knows, has had problems for a long time. Up to now, Lightweight IDE will sooner or later fail to create new processes, so you must quit and re-lauch it to get rolling again. This is irritating. Recently, I got some hints about what to do, I improved the detection of whether a process runs or not, and that didn't help. Then I realized that I assumed that a SIGKILL would always kill a process, and I found that that isn't true!
So I tried again and again, sending several SIGKILL, and it seems to improve things! These experiments showed that I often needed several SIGKILL until it worked! Usually half a dozen would do it, but I have seen higher numbers on rare occasions.
So while older versions of Lightweight IDE only would ask a process to terminate twice, once nicely (using SIGTEM) and once in a sharper tone (SIGKILL), this version will, if needed, bash on the persistant process up to one thousand times! This is hilarious, from whjat I know of SIGKILL once should be enough, and that is why I only tried once before! It also report errors better about it, if you should ever see more than one thousand tries. So it takes out the SIGKILL whip and starts whipping away.
That's why it is the "Let it whip" version.
110821:
New uploads are coming... I added some info pages in order to expand these pages to more than Lightweight IDE, but here is also a new Lightweight IDE coming. I have been working on the process management problems and maybe I can reduce or eliminate them. I really hope so.
110530:
Even more news! The first version of TransSkel for iOS is implemented and working! This is a small subset of the full TransSkel, partially because some of the TransSkel library, like TransEdit, is irrelevant on iPhone, but also because many features are not yet implemented. Still, TransSkel for iOS can do all this right now:
Much is missing, but I would say that the hardest part is past me. The following are planned:
Some of this is really easy, some will require some research to figure out the best method.
The number of iOS demos has been growing steadily the past week, I have several new to upload and some corrected ones.. Now, however, I will depend more and more on TransSkel, to make my code as simple as possible.
110524:
I uploaded a preliminary version of my iPhone installation instructions, now together with the sigcpuscript that I forgot in the Lightweight IDE 0.9.0 archive. (Nobody noticed anyway.) If it helps anyone, nice.
I have also made some important changes to Lightweight IDE and the iPhone demos, bug fixing etc. New uploads will come (sooner if someone wants it). Lightweight IDE will now do codesigning of final builds, so they can be uploaded to an iOS device, it builds more correctly, and the demos have some important bug fixes.
So now it is this nice:

Yes, the classic old Mac demo Skel, now running in the iOS simulator as well as on an iPod Touch, all written in FPC! That and some more. I claim no perfection, not that it is finsihed or debugged or anything, but it runs, it works!
110516:
So now the new version is here. And what is it? Most of it looks the same, but here are the big things:
iPhone support, working, with demos! Well, it isn't quite complete, since there is no codesigning yet, so you can't upload to the device, but it will compile and run in the simulator.
TransSkel has fewer changes, but if everything as good as it seems now, this can be a big step, namely that I have finally tracked down the bugs that prevented me from starting to build the new Cocoa-based Lightweight IDE on TransSkel/TransEdit!
Finally, I included my installation guide for FPC 2.5.1, that is Objective Pascal for OSX as well as iPhone. There are quite a few steps and pitfalls, but I hope I have covered all the ones of interest today. I know that guide will get old quickly but maybe it can help someone. It was written with help from Jonas Maebe and Phil Hess. I know that Jonas asked me to add this information to the ObjP wiki, but... sorry, I just can't. I can't stand wikis. Sorry again.
One more thing: I need help testing! Tell me if it works or not.
110511:
So what am I doing? When will Lightweight IDE for iPhone be uploaded? At least that's what I want you to wish for, as well as new and better IDE and TransSkel.
Well, I have done some progress. Lightweight IDE can now build for iPhone from Objective C as well as Objective Pascal. So what is keeping me?
First of all, I have not yet tested in the device, and I'd like to do that. But also, I have some serious problems with TransSkel that I want to sort out. Recent versions have problems with crashing modal dialogs, and we can't have that. Text editing and document handling was so good until I upgraded to a newer FPC, and now nothing works any more. No, not "nothing" but there are some problems that muist be fixed.
I really want to get going with the Cocoa version of Lightweight IDE. It might become very different from the old version, at least as some experimental GUIs, but that should only end up better. But to do that, I must get TransSkel back on track, make it fully reliable. I could downgrade FPC, but that's hardly the right way to go.
110420:
iPhone/iPad/iOS support... would that be nice? What if I have it all up and running, FPC for iPhone, iPhone support in Lightweight IDE, launching the simulator with the program you develop... What if it looks just like this?

Yes, it is true, an all-different approach to iPhone programming! No Objective C, no Xcode, and examples for nibless development exist and will be included.
And there is more. Lightweight IDE will now automatically switch between three different compilers (in a way four) and that is for FPC alone! If you use CocoaAll, it will use the Objective Pascal compiler (the 2.5.1 compiler), if you use iPhoneAll it will use the iPhone compiler, "build" and "run" will build for the simulator and "final build" will build for the iOS device. Finally, with neither CocoaAll nor iPhoneAll, the default FPC will be used. This auto-switching scheme makes the new double default buttons in 0.8.10 obsolete already.
This is tested with the iArkanoid demo as well as some test programs of my own (like the one shown above).
Futhermore, I have written a complete guide on how to successfully install the iPhone compiler and its interfaces.
So what is not there? A few things:
I have not yet implemented codesigning, which is needed to run on the device. I don't quite understand how it works yet. Before I have that, it will not be possible to do serious development.
I have not implemented any support for building Objective-C for iOS yet. I beleive that will be rather easy, but it is not my primary goal at this time.
There is, of course, a big pile of possible software projects to move to the iPhone, like SAT, TransSkel and QDCG. All would be very nice on the iPhone. SAT is the easiest of these, since hardly uses neither Carbon nor Cocoa. But TransSkel on iPhone would really complete the "all-different" development system, hiding Cocoa Touch altogether just like it hides Cocoa on the Mac.
I have some problems with incorrect sizes on the iPad. The iPhone (in the simulator) is correct every time, but the iPad sometimes is right, sometimes gives a small area in the middle, and sometimes a small area in the corner.
There is even more in my pipeline. I have been writing some code on top of OpenGL with Ryan Joseph, and although I want a QD-like interface and Ryan a CG one, I think that can be pretty nice. Furthermore, I have plans for even more language options in Lightweight IDE... some time. Well, if I feel we need them. On the other hand, I consider ditching Ada and GPC, maybe even Java, simply because nobody use them with Lightweight IDE as far as I know, and therefore they are not updated and may work really badly. They need someone to look after them. I like Ada and GPC but I don't use them myself. Java, I consider a necessary evil... if it is necessary. Maybe it is just evil. It was part of my plan to find funding by supporting languages used in education, but that hasn't worked out anyway.
Back to the fun new stuff! When will I upload it? Fairly soon. I would like to solve the codesigning problem. I have to decide whether this is version 0.8.11 or 0.9.0. I think it is 0.9.0, since the change is so big. It is kind of logical with my overall plan: to let 1.0 be based on the current design, and let that live side-by-side with the Cocoa/TransSkel5-based design, which will be version 2, and is where I want to experiment more with the user interface.
110404:
Big spring upload! Spring-time is here and it is time to grow!
Lightweight IDE has some improvements, especially in the ObjP support. The info.plist produced in the application bundles had some flaws that are now fixed (I hope).
TransSkel has so many changes that they can't be listed here, but the two big parts is better text support in QDCG and synchronizing with the latest Objective Pascal, which I havn't done in a long time. (The old version simply worked so well so I didn't need to!)
110325:
As mentioned below, 0.8.10 is coming soon, as well as an update of TransSkel5, and possibly even an update to TransSkel4. Why update TransSkel4? Because that is the last Carbon version, and I have just made a dylib (shared library) out of it, with C interfaces. The dylib support of Lightweight IDE is an important step, improving cross-language possibilities a lot. I plan to make dylibs out of more packages, like SAT. The C interface and dylib of TransSkel4 was remarkably easy to do. I have tested it with several of the standard demos (MiniSkel, Skel, DialogSkel) and it works just great.
Richard Ward has been testing all my demos in a recent version of the Objective Pascal capable version of FPC. I am still a bit confused about the changes, which are sometimes not as visible for me, but in any event the result will soon be integrated in TransSkel5 and uploaded. I will also be much more strict about specifying Pascal dialect in the source, avoiding unnecessary errors caused by bad defaults.
110322:
0.8.9 is not old, and still 0.8.10 is coming up pretty soon. There are some good things there, in particular support for .dylib libraries and thereby proper mixing of C and FPC code, something that has been particularly painful for a long time. Now it works just fine, and the task of using an FPC library from C is just a matter of writing interface files.
As noted below (110130) I have had to re-evaluate my project a lot. In the past, Lightweight IDE was totally superior to Xcode as an FPC IDE. Xcode didn't even have code navigation or proper error reporting! Now I have to ask myself if it is worth the trouble to work on debugging, code completion etc to catch up. And I ask myself if I should really insist on making my C-using partner use Lightweight IDE, or if he would be better off in Xcode. He is used to CodeWarrior and has a hard time grasping how the main source file can be the project file.
On the other hand, I can imagine the hassle configuring Xcode projects for things that Lightweight IDE either does automatically or can get support for for less work.
Maybe my focus simply has to change. Someone said that you should fight one battle at a time. Should I really try to make Lightweight IDE a good FPC IDE and a good C IDE at the same time? And does it have to be good at big projects, isn't student project a better focus?
I insist that I have the best educational IDE I have ever seen, possibly with the exception of Turbo Pascal. And I will keep insisting for yet some time and try to find its niches.
110112:
I presented Lightweight IDE on a local conference last thursday, but I was a bit disappointed by the lack of interest from teachers. I was, of course, happy about the small audience I had, but the subject of improving teaching should be slightly more interesting for the teachers. Anyway, this is the second academic publication about the project.
Every upload is important, but this one feels particularly important, not only since the list of changes is relatively long. With the release of Detlef Schulz C programming book ("C-Programmierung auf dem Mac") (also here), featuring Lightweight IDE as tool, every improvement of the C support is important. A particularly important change is the ability to check modification dates on header files.
Yesterday, too late for this update, I also added support for building shared libraries from FPC code. This will make it much easier to build C projects using FPC code. For a long time, the only recommendation I had about FPC code in C programs was the "fake main" method, which has severe problems with link errors.
For ObjC users, I ported the "minimal animation demo" to ObjC. Otherwise I don't touch ObjC much, so I depend on user feedback if I will improve ObjC support in the near future. That is even more true for Java, which I personally dislike and avoid. I can improve Java support but only if people interested in Java can help me with the Java technicalities. The same goes for Ada, although I like that language a lot better.
110130:
I have been thinking about future directions, how important each project is etc. Quite often, the world changes around us and we must be aware of it, aware of how our competitive position changes.
TransSkel was, only a year ago, something potentially super hot. An open source cross-platform framework would be something very strong. Today, that has lost much of the punch, after Qt turned Open Source and also no longer C++-only.
The situation for Lightweight IDE has changes several time since I started. I wrote in it Carbon since it was the only feasible way at the time, and Carbon was still a prime citizen at the time. Right after it got fairly complete (for using with FPC) Apple pulled the plug on Carbon. Since then I have had more and more focus on moving to Cocoa. Also, Xcode was worse than worthless for FPC when I started. Now, the FPC kit for Xcode is a lot better, with both acceptable debugging and code navigation (neither of which was in sight in the past). This means that Lightweight IDE isn't as obviously a better choice. Rather, it needs some work on debugging to catch up. However, it still has its distinct niche in being code focused, without confusing project management. I will continue pursuing it as research topic and for its niche. But its role as FPC IDE might be tones down compared to its C/C++ support, where its advatnages are even more obvious.
It is disturbing when you have a good lead and lose it, but it is a natural result for projects with little or no funding. The projects are not dead, not by a long shot, but they do require rethinking and re-evaluating. In the near future, I will make seminars and publications about Lightweight IDE as well as TransSkel, apply for funding and offer diploma thesis project concerning them. And, of course, the Cocoa move will happen.
101223:
I have been silent for a while, but today I decided to make a "Christmas upload", even if it is modest. The big deal is that this should no longer need changes to NSApplication.inc.
Still, the last weeks, I have been back working on Lightweight IDE/TransSkel related things. I have moved a big leap closer to making a Cocoa version of Lightweight IDE, and I have, as part of that process, started making GUI experiments and consider various new things to try. I have been holding back on Lightweight IDE changes for a whole year now, trying to get TransSkel5 mature enough to move the whole project to Cocoa, and we are getting there. I have made a simpler IDE prototype, which only uses a simple interpreter (BASIC, of all languages), but it will still serve well as a base.
So it is not just words, things are happening. At least some things.
101013:
The new TransSkel version isn't changed so much in the code (although there are some significant things), but the big change is the organization. I assume that we are all using fairly new Objective Pascal versions, so my fix for NSApplication is no longer needed.
I want to spend more time on the project now, to get the Cocoa-based Lightweight IDE going, add many new features and start testing interesting GUI variants. However, other things take precedence, as so often. Still, the recent advancements are pretty nice. In particular, I can safely claim that Lightweight IDE has acceptable C++ and ObjC support, not quite matching Xcode in features yet (esp. when using ObjC) but not missing the most vital code navigation any more.
101008:
The latest Lightweight IDE makes only a few changes, but they improve the C++ and ObjC support significantly. C++ navigation was clumsy and there was no support at all for code navigation of ObjC. Now it is pretty OK IMHO.
Another recent development moves us a lot closer to a Cocoa version of Lightweght IDE, which would open the door to a lot more experiments with the GUI, planned additions to evaluate. Those experiments are perfectly doable with Carbon, but Carbon is dead so I really don't want to make any more development with it. With a Cocoa version, any successful experiments produce code that can have a decent longevity. But not only is TransSkel pretty much finished (I can upload b3 any day, which I consider close to final), I have also started working on color coding for the new editor module. From there, I can soon start phasing over code from the old code base to the new.
Also, I am happy about the recent discussions with my diploma thesis student Frida, who tested LWP and gave me some "fresh eye" comments, of the constructive kind. In particular, she pointed out the lack of "recent items". That should be considered. I also very strongly consider some "re-open" feature, which I often feel I need myself. (Additions are mostly put on hold waiting for the Cocoa version but I am still collecting ideas.)
I should really be happy about this, but I feel a bit disoriented for the moment. Should I persist in making TransSkel in FPC or convert the whole thing to ObjC just to reach a bigger audience faster? Linking FPC with C is a tiresome task, and the process is far too unreliable to integrate it in LWP. Should I continue in my ambition to modernize and make my code as elegant as possible or go for a straight Carbon interface in Cocoa?
Well, in any case, we now have a Lightweight IDE that I think has a more acceptable ObjC support. That may be a futile ambition, since Xcode is optimized for ObjC and hard to beat at that, but maybe I can make a niche even there. I still believe in the "lightweight on your mind" concept. I only have to research how it can be implemented in the best possible way to create the perfect beginner/casual programmer tool.
100912:
After accidentally posting to the Pascal list about the sneak peek (which was primarily made for Richard and Vic to see at this point), too much of the discussion was counter-productive and I got irritated by "don't-think-different" comments. I can mail it the file anyone who wants it, but with the nonsense being written about my draft (and nobody seeming to be interested in expanding interesting parts like the ObjC-ObjP porting guide), I spend my time better writing a solid tutorial for TransSkel. Sorry for getting angry but this wasn't amusing.
100911:
Today, TransSkel 5.0b2 got uploaded (with a bunch of improvements and bug fixes), but maybe even more significant is the sneak peek at my Objective Pascal tutorial page. It is just a first draft, so please don't get upset by incomplete sections and debatable or incorrect statements. Instead, suggest improvements. Some sections are just placeholders at this time.
100905:
No news for a few weeks, but that has its reasons. I have been busy updating one of my course books, which is now in print. I have also started up the course in question, my course on advanced game programming techniques, so right now I'd better get back to the next lecture, on bump mapping and high dynamic range.
But I have not completely ignored Lightweight IDE, TransSkel and all that. Lightweight IDE has had its very first academic publication, in the form of a poster at the IHCI conference at Freiburg this summer. A poster paper is a minor one, but still a publication, and I did get some attention from other researchers. Otherwise, LWP is waiting for me to take it on the big leap to TransSkel 5.
TransSkel 5 is where I have done most programming lately. The second beta is imminent, and will feature things like RTF/RTFD support in TransEdit, and most recently I have worked on activation and resizing callbacks, whcih will enable TransEdit to handle menu synching automatically. Finally, I am looking for students who would like to work on TransSkel for Linux or Windows.
So, expect b2 to show up fairly soon. Well, give it a week, that's when my lecturing schedule gets a break.
100723:
"Big summer upload", which means that I have made some progress recently. Lightweight IDE is progressing slowly, simply waiting for TransSkel 5 to move in, but this version is particularly nice. Startup is faster and it never locks up on launch. TransSkel 5 is now officially "beta", since the last planned component, a list management unit, now works and is included. NSStandardFile, which is part of TransSkel, now has support for file type lists and presents very nice sheet-based file dialogs.
Finally, for those of you who want to learn Objective Pascal from simple examples, I also upload a package with Objective Pascal demos that is much bigger than before. It includes menus, toolbars, tables etc. All this code has been developed as experiments when writing TransSkel, but most of it is stand-alone.
100705:
Summar, it is hot, and I spend much time with my family. However, I also do some development. I have a mostly working Cocoa version of Toolbar Manager, making it a lot easier to work with toolbars (even though I don't like them much myself). However, developing with the NSToolbar is weird, even horrible. It is too much hit-and-miss programming, where subtle changes give strange errors. On the positive side, I will be able to upload not only my Toolbar Manager wrapping (similar to the Carbon one, really really easy to use) but also at least two demos, one of them much simpler than Apple's ones.
We all did some handpainted plates recently, and I made this:

I think it came out rather nice. :)
100621:
I have been silent here for a while. That is not for lack of progress, but since I have taken a fairly big leap with TransSkel recently, and now I think it is stable enough to justify another upload.
The big step today is TransEdit, the missing part from old TransSkel and one that is essential for using TransSkel for Lightweight IDE. The only visible thing that is notable is the line numbers in the DumbEdit demo, and that may not seems like much. However, many sources on the net will agree with me; adding line numbers (and thereby also breakpoints etc) is remarkably hard with NS. But now it seems to work well.
Another change is the improved support for sheets (namely in NSStandardFile). Now open/save dialogs can look quite modern.
There are also several interesting but not as important demos. There are demos for using the accelerometer in MacBooks (a.k.a. the SMS, Sudden Motion Sensor), and there are also two new demos showing how to put an OpenGL context in a SkelView.
100609:
Breakthrough in TransSkel opens the door for the Cocoa/NS rewrite of Lightweight IDE!
For many months, I have had one unsolved problem, namely to make a complete editor with certain customizations, namely a breakpoint field that follows the text just as it does in the Carbon version of today. That same field can be used for line numbers and whatever. This was a surprisingly hard problem, and I had to wade through several demos and write many experimental programs until I found something that works and is stable. (This was the problem I mentioned on 100527, below.)
Another, less problematic problem that I have solved recently was to support sheets in save dialogs, and implement that in the StupidEdit demo. Only very small changes were needed to TransSkel to make this elegant.
This means that I can, finally, start moving the Lightweight IDE project from Carbon to NS. I have wanted to do that for almost three years (ever since Apple officially scrapped 64-bit Carbon) and now all the essential tools are in place. And those changes also means that the official, complete TransSkel 5.0 is getting closer. It is hardly an alpha any more. It looks more like a beta.
100530:
Today I uploaded an installer that installs FPC 2.5.1 and the Cocoa interfaces as one single standard installation. If you have had problems getting started with Objective Pascal, this reduces the problem to two simple steps:
Note that Apple's developer tools are a prerequisite. I have tested the installer under OSX 10.5 only, on an Intel Mac.
I am also working on the problem of making a base installation of the developer tools, that is the open sources parts, as a separate installer. I can't redistribute the whole SDKs without Apple's permission, but the open source parts should be no problem, and that would be a smaller download and a single installer for GCC, FPC and the vital components.
100527:
I have been doing teaching and some research work mostly unrelated to the projects here, but also done some work on the Lightweight IDE related topics. Most importantly, I have been tracing town a strange problem that caused my applications to crash on exit. The problem turned out to be the inclusion of some built-in units, interfaces to C libraries, and what bothers me a bit was that I got the crash even when not calling anything, and the problem was the order of the units in the "uses" statement! But it is solved now.
A harder problem is to figure out why my custom NSTextViews crash on pasting in large amounts of data. I have some very nice NSTextView demos running, which will be perfect for replacing the old TXN editor - once they stop crashing!
Finally, I have been drafting some possible reorganizations in Lightweight IDE. I am not sure if it is worthwhile to make Lightweight IDE fully customizable, so you can add support for new languages without recompiling. Face it, Xcode is so horribly complex that it is a big task to add incomplete, awkward and totally insufficient support for a new language. Well, you know that; that's why I got started with LWP in the first place. But by working a bit on the modularity on LWP, I could make it really easy to add support for a new language, with a recompilation. It is not bad at all, but you have to make changes in 3 or 4 separate places, and that could be improved.
Now I will spend some time reading the students' project reports. Some of it will be fun reading, since my students (in computer graphics) have done some very nice projects. I only wish some would consider working with LWP, and with FPC.
100510:
Today I upload the second alpha for Sprite Animation Toolkit 3, with a nice and useful point-in-sprite function. It is likely to be very useful, but I know there is a likely bug, namely when the window is scaled. But I will get to that.
Recently, TransSkel 5 reached its seventh alpha, incluing QDCG version 1.3 with some nice arrow/end cap routines that go way beyond anything CG can do. The new demo for that functionality is quite fun to use. :)
And on top of that, I decided that Lightweight IDE should have a re-open functionality, to remember what files were recently open and give the user the option to re-open them. This is not implemented yet, but it is likely to be fairly soon. It would be a good work-around for the well-known but elusive bug that makes process launching fail sometimes.
The set of projects has grown a bit large. On top of this, I have work and family. I'm not complaining, rather I am quite fond of these projects (Lightweight IDE, TransSkel 5, QDCG and SAT 3). I just worry about the speed of progress. Of course, they have much in common. TransSkel is a foundation for Lightweight IDE, and QDCG is a tool for the same work. Only SAT is relatively separate. So in a way it is two projects, I guess.
I take one thing at a time and try to move on ahead.
100426:
TransSkel 5.0a6 with QDCG 1.2.
The big deal here is that QDCG is given a version number. It had a 1.0 at the last Carbon version, then I updated for Cocoa, no numbers, but after a whole bunch of additions I think it is worth numbering. So 1.2 it is (1.1 is the one in TS5a5).
And this is a pretty big QDCG update! PDF loading, saving and recording! GWorlds! Shadows! The PDF support is the big thing, making it almost a full replacement of PICTs (and some more).
100425:
First alpha release of SAT 3!
This is pretty big to me, Sprite Animation Toolkit is back on-line! It isn't finished, there are several important features left to add (collision detection global phase, scrolling worlds etc) but this should be usable. Anyone who feels like being alpha tester is welcome. As before, it is free as long as I get credited for my work, but now it is also open source! (FPC of course.)
100420:
A minor Lightweight IDE update, but there is a lot more coming. I have done more work on QDCG, and now it is getting close to "full featured". How about PDF loading and creation? Clip regions? There are some design choices to get right, but it all works nicely, so well that I feel I should consider C interfaces too. TransSkel is also moving. I have preliminary code running for lists, toolbars and better text editing. I only have to make the API for them. That, however, is not entirely trivial.
100415:
New upload today, of an updated TransSkel and much more updated QDCG!
I have decided to abandon Carbon in the QDCG code. It will reduce the number of Y flips, and it takes a few already.
And with the new TransSkel, I also release a little game, TransSnake. It is a very basic Snake game, could use better graphics as well as sound, but it works! And it shouldn't be more complex as a TransSkel demo.
100404:
Much work right now, quite a bit at the university, but I have also managed to spend some time on ObjPascal. More specifically, I have been working on text editing. I have been through all possible ways to add a field to the left of the text view, just like LWP has now, and there are so many gotchas and complications... It is even worse than TXN! But on the positive side, I hope that the final resuilt will be a lot better than TXN.
I have also made some other tests, new demos using lists, and a demo for scrolling an arbitrary NSView. The latter is very useful and I think it will be easy to use, especially if you use a SkelView.
Finally, I am now phasing in QDCG as primary drawing API. The API is great, as simple as QD but can do so much more. A few things are still missing, like patterns. On the negative side, I really wish Apple would have made the coordinate systems a bit less messy. CG has Y-up, QD has Y-down, Carbon HIViews has Y-down, and NSViews are a bit of both, and sometimes is such a mess that you really don't know how to avoid getting the text upside-down.
As mentioned below, I should release 0.8.6 soon, but I don't know if anyone is really asking for using GLSL and OpenCL with LWP at this time, except myself, so I take it easy and maybe I'll add something more.
100322:
Two new demos. I made my own version of GlutGears last winter (based on a classic demo) but didn't upload straight away. ToolbarSample is brand new, ported from ObjC, part of my ambition to get a more complete set of functionality through ObjP and eventually TransSkel. What comes next? 0.8.6 will come any time, with improved GLSL and OpenCL support (for color coding and code navigation - compilation is no problem). Maybe new demos too.
100308:
No release at all in february, for good reasons. But now I'm back! With CUDA support! I am particularly proud of the two included CUDA demos, both written by myself: One is the simplest CUDA demo I ever saw, and the other is a real "Hello World" for CUDA, the only I know that deserves the name. There are several simple demos posing as "Hello world" but that are neither minimal nor focused on what "Hello world" should do.
100129:
Lightweight IDE/TransSkel development is slow now, due to much work at the university. Today's upload is a minor one, fixing one bug that could make some C code fail. Source-code uploaded too. I will get back to my FPC projects when I have more time.