|LETTER FROM THE EDITOR|
Hello, and thank you for subscribing to the ticalc.org bimonthly newsletter.
After dealing with not one, but both of my computers crashing, conveniently after I just returned home from school, I finally decided to invest in an external hard drive. The crashes were not a total disaster, since a lot of data was already backed up on another hard drive that did not fail, but what saved my day was this handy Linux distribution called "Knoppix." Since most of my data on one of my computers (specifically, my laptop), was unharmed, I just popped Knoppix, which is a Linux distribution that runs entirely off a CD (and the other core components of a computer; the point is that it doesn't require a permanent storage device), into my CD-ROM drive, and soon after copied all of my data onto the new external hard drive that I had bought.
Now, what does any of this have to do with calculators? After all, I already talked about how reliable my TI-89 is after my last hard drive crash, so why would I begin another newsletter with another story of my hard drive woes? Well, if it wasn't for Knoppix, all the data on my laptop would be lost forever, and I wouldn't be as calm as I am today. I would have to say that Knoppix is a great idea, since it allows you to execute an entire operating system, with a nice GUI, entirely from a CD without having to save anything permanently to your hard drive. If I were to have problems with my hard drive in the future, you could bet that I would reach for my Knoppix CD.
But here is the point I'm trying to get at: I have found a piece of software that I like for a particular task, i.e. backing up my data after a crash. Unless something that is miles ahead of Knoppix were to come out, I don't think I would switch my software for this particular task. Since I started visiting the ticalc.org community some five or six years ago, the rate that new files have been uploaded has decreased, and a question that a lot of us have been asking is "Why?" I don't have an absolute answer to this question, but I have an idea: a lot of us already have the programs that we like. We already have the games that we love the play ad nauseam, developers have found enough tools at the moment to develop effective programs, so perhaps the community is experiencing a developing equilibrium. To elaborate, we are at the point where we have developed as much as we can on the current calculator hardware platform, and in order to develop again at a greater rate, we need something changed in the hardware of the TI calculators that will inspire developers to churn out more new, innovative programs.
Don't get me wrong, I am happy that people continue to upload programs, even if it's not at the same rate that it used to be. However, a significant decrease in the amount of featured programs in a one year time span indicates that perhaps developers aren't as inspired as they used to be. A lot of what would be considered "new projects" would require a lot of work, such as building tools to assist other developers, but completing such projects would be worth it in the end. Creating a good tool, such as something like "RPGMaker 2000" (except, of course, allowing the programs to fit on a calculator!) may help less experienced programmers design games that might inspire more development. It would take a lot of work to create a tool like that, but I think it would be very rewarding in the end.
As 2006 begins, I hope to see more new and innovative programs to come out on the TI calculators. I also hope to see my hard drives make it through the year without an issue, but just in case that doesn't happen, I'm prepared. As always, send your thoughts, comments, flames, and questions to email@example.com; I love getting feedback regardless of your point of view.
Best wishes for 2006!
Jonathan KatzFOOD FOR THOUGHT
Last Month's Question: How challenging do you find it to write programs for a limited memory platform?
I find that writing programs on a memory limited platform, at least at the level of the TI, requires that I often have to balance between performance and size (I write in TI-BASIC). To reduce size, I use a whole bunch of If statements, instead of the performance-friendly If-Else. I recently reworked a program to be performance optimized, and I noticed about a 1 second improvement in speed (pretty good if you ask me), but also about a 1-2k increase in size, although the run-time RAM used is probably not too much more. - Willliam Yang
I tried making graphical RPGs, and the size of all the media adds up to some of the biggest pains, especially when you're about to finish the game. Since a few fiascos of mine, I concentrated on making my graphics as simple as possible (they're only silhouettes of what I try to represent). I guess the challenge promotes constant growth and mastery on making programs as streamlined as possible.
- Ben Yu
This Month's Question: What types of programs do you want to see made in 2006?
E-mail your thoughts to firstname.lastname@example.org, and your response may appear in the next newsletter!
Jonathan KatzASK TICALC.ORG
Question:How do programs get featured at ticalc.org?
Answer:There are a few ways that programs get featured here. When the File Archivers are sorting through programs that have been submitted, programs that stand-out are emailed to the news editor (who is currently Michael Vincent) to determine if the program is featurable. Other staff members also send email to the news editor if they come across programs that stand-out as well.Another way a program can get featured is by emailing email@example.com if you find a program (other than your own) that you think should be featured. These programs are also considered by our multi-talented news editor.
Q: Why did the medical student intern carry a TI-86 with the statistics programs around in his pockets at all times?
A: In case one of the doctors called for something STAT.
Q: When did the Z80 calculators move past their prime?
A: When the model number went from 83 to 84.
Q: Why did the overworked ASM programmer collapse at his computer?
A: He forgot to execute opcode F00D.
Q: What did the mathematical giant say to Jack?
A: Phi pi rho sum, I smell the 3D projection of an Englishman!
Michael VincentINTERVIEW WITH KEVIN KOFLER
|Jon||TIGCC is a staple in assembly program development for the 68K calculators. In fact, I am guilty of using it myself to write a few things. How did you get involved in the TIGCC project?|
|Kevin||It all started in July-September 2001, when I started doing some assembly programming with A68k, using the TIGCC IDE. I noticed there was a newer version of A68k in the Fargo source code, which nobody had bothered compiling, so I built that for TIGCC. I then looked at the bug list which had been left untouched since 1991 and fixed everything I could reproduce and deleted the rest. I also fixed bugs that myself and other calculator developers had found. Since then, I've worked on more and more components of TIGCC, not just A68k, and now I'm the primary maintainer of TIGCC, following in the footsteps of Zeljko and Sebastian, who themselves "inherited" the project from the founders Xavier and Jean (Blue_Z).|
|Jon||Where is the TIGCC project heading? To elaborate, are there any concrete plans for the further development of it?|
|Kevin||If you followed the project, you probably noticed the introduction of the debugger in the TIGCC 0.96 betas. That was a big missing piece in the puzzle, and by working together with Romain Liévin, the main developer of TiEmu, an by reusing work done by the GDB developers, I was able to make it a reality. There's still some possibilities to improve debugging support, so that will be an area I'll work on. Another will be documentation improvements, which is a task where we practically never run out of work. And then there's KTIGCC, a reimplementation of the TIGCC IDE for KDE, i.e. GNU/Linux and other *nix type systems. This is a big missing piece in the Linux/Unix version and I'm working on getting that fixed. One more area of work is trying to get clear of non-commercial-only licenses, which are not Free Software nor Open Source: for compression support, a re-licensing of the compression and decompression routines is being negotiated, and the A68k assembler will probably have to be replaced by a compatibility mode in GNU as, or failing that split out into a separate, optional package. And finally, there is of course plenty of minor items, such as outputting Flash OS upgrades in 89u/9xu/v2u format and much more.|
|Jon||Do you think that TIGCC will extend itself to support at least some of the Z80 calculators someday?|
|Kevin||Probably not. The main reason is that there's no complete Z80 backend for GCC, though there were some attempts. Another is that the operating systems are so different that even if there was a Z80 backend for GCC, you'd probably need an entirely different GCC port, and especially runtime library, so that's better left to a separate project. A C compiler for the Z80 TIs is z88dk, the code it generates is not very efficient though and it's not as user-friendly as TIGCC. There is also someone working on adapting SDCC, the Small Device C Compiler, for Z80 TI C development.|
|Jon||If you could pick one part of the TIGCC project that you enjoyed designing/programming the most, what would it be? |
|Kevin||I really liked working on the ld-tigcc linker, mainly because it was entirely designed by Sebastian and me, so the coding style fits our idea of what's easy to work with. I was able to implement some innovative algorithms, e.g. optimization of cross-section references (including cutting out the saved bytes from the middle of a section), section reordering, constant merging, etc., in that linker, which would have been a real annoyance to develop in most existing linkers. Of course, ease of coding does come at the price of efficiency sometimes, for example we don't use hash tables in ld-tigcc, which means some of the things which could be done in O(1) are actually done in O(n). We also load the entire program to be linked in memory and all our internal data structures are fully in RAM, which means memory consumption is relatively high. Luckily, all this is not really a problem for small files, which is the input ld-tigcc has to work with, though. This ease of coding interesting things is what made me pick ld-tigcc over the compiler, even though I learned a lot about compilers from working on GCC.|
|Jon||What other projects have you worked on asides from TIGCC?|
|Kevin||TiEmu; some TSR (memory-resident) programs for the calculator: AutoClBr, Auto Alpha-Lock Off, XtraKeys; the TI-89 Titanium compatibility effort: HW3Patch, GhostBuster, Iceberg; a Backgammon game for the calculators; the Tokens89 TI-BASIC tokenizer/detokenizer; and a few other things, including a few TI-BASIC programs, the most popular probably being CHEMISLV, which balances chemical reaction equations.|
|Jon||Are you working on any new projects right now, or planning to do any future projects?|
|Kevin||I've already mentioned KTIGCC, though that can be considered part of TIGCC. I'm also still working on TiEmu together with Romain: my part of the work focuses mainly on debugging support because I contributed that one, but I also fix bugs in other parts of TiEmu. And of course I'll fix bugs in my projects as they pop up, try to complete the proofs of concepts I released as betas. As for future projects, only the future can tell. ;-) I rarely have plans that long in advance, and if I do, I generally prefer keeping quiet about them until I have at least a beta to release. KTIGCC was an exception because it was something obviously missing from TIGCC/*nix. Hopefully, it will succeed and preannouncing it that way will not turn out to be unwise. ;-)|
|Jon||Do you have any other hobbies besides developing TI calculator applications?|
|Kevin||: Browsing forums, reading Slashdot, playing calculator games and a few Open Source computer games. ;-) And I do have a strong interest in Mathematics. But that's about it.|
|Jon||What school do you go to, and what are you studying there?|
|Kevin||I'm going to the University of Vienna, Austria, and I'm studying Mathematics and Computer Science (Informatik).|
|Jon||Do you plan on going to graduate school, or going out into the workforce?|
|Kevin||I'm planning to finish the Mathematics studies up to the doctorate. Maybe I'll even get further up the academic ladder, let's see. As for Computer Science, it is my second subject and I'll probably not get beyond the 3-year bachelor degree there, which is already taking me much longer than 3 years, but that's normal for a second subject here in Austria.|
|Jon||Let's tie this back to ticalc.org. What do you like about the ticalc.org community, and is there anything you would like to see added to it?|
|Kevin||I really like the archives, I think there is no other site with as large archives, and hasn't been since the demise of TI-Files long ago. The only problem is that many authors, including me, I confess, are too lazy or too busy to update their programs on ticalc.org regularly, so often, while you can find out about a program through the archives, the author's website has a newer version available. What I find is somehow lacking is the news. Nothing against Michael or you, but I've found other sites to be more up to date on the news. In particular, Ti-Gen was when I was posting news for them. ;-) It's also a question of policy: ticalc.org tends to post news only about final, non-beta versions which get added to their archives. Other sites often link right to authors' pages for betas, which means they'll get the news earlier - and without upsetting the author, because he/she can update the beta easily and quickly if it's on his/her own site. On the other hand, this often leaves their archives somehow lacking, which is probably what the "no archive, no news item" policy I've observed on ticalc.org is trying to avoid. So it's really a double-edged sword.What could be an interesting addition would be project pages like what the new Ti-News is doing. Not just a hosted site like tigcc.ticalc.org, but real project pages as you would see on SourceForge and the like. CVS or SVN support and a BTS like Bugzilla would be welcomed additions, and differentiate you from Ti-News.|
|Jon||What calculators do you own, and which one is your favorite?|
|Kevin||I own a TI-89 HW1, a TI-92+ HW2, a TI-85 which I sort-of permanently lent to my mother and a Casio Graph 100 which I won in a Mathematics competition. Between the 89 and the 92+, I don't have a real favorite: I like the 89 for the better portability and the 92+ for the bigger screen. But the one which is definitely NOT my favorite is the Casio, I practically never use it.|
|Jon||Alas, we reach the end of this interview, so I must ask, is there anything else you would like to add?|
|Kevin||: Something not everyone knows unless they read it on my web page: I'm an Italian citizen born and still living in Austria. The name sounds German/Austrian because my father, whom I have the citizenship from, was from the bilingual Alto Adige in Italy. But that's why most people don't realize I'm not an Austrian citizen, usually the name gives it away. :-) Moreover, I went to the French school here in Vienna, allowing me to speak 4 languages fluently: German, Italian, French, and my first real foreign language, English.Oh, and for anyone wondering about my age: I was born on July 1st, 1983. Computing my current age is left as an exercise to the reader. :-)|
There are two versions of the ticalc.org Newsletter, a plain text version and an HTML version. To subscribe, send an e-mail to firstname.lastname@example.org with either "subscribe newsletter" (for plain text) or "subscribe newsletter-html" (for HTML) in the body of the message. To unsubscribe, simply do the same thing except replace "subscribe" with "unsubscribe".
You can find all issues of the ticalc.org Newsletter in our Community section under Newsletter. The exact URL is http://www.ticalc.org/community/newsletter/.
To submit material to the ticalc.org newsletter, e-mail email@example.com.
Any opinions expressed in this newsletter are the opinions of the newsletter editor and/or published authors. By no means are the opinions heretofore expressed to be considered representative of ticalc.org as a whole. Texas Instruments in no way endorses or is affiliated with ticalc.org. Any trademarks are hereby acknowledged as the property of their respective owners.