The Grim Message Keeper


News!
Fri Nov 26th: Project closed. With a name like Grim, what did you expect? :)

Sat Nov 6th: Things are under way again. Expect code updates soon.

Mon Aug 23rd: Yes, still busy. Time will ease up in a few days. In a misc random tidbit, here are some Taxi Doll - Waiting lyrics. Song can be found on Garageband.com (free of charge).

Fri July 23rd: Sorry, busy. 'Serious' development will recommence in late November at worst. I may just finish it one weekend. Who knows :)

Wed July 7th: 0.7c! Delete function implemented. Early stages. Minor updates. Bit of help written, previous release dates added, short about message written. 0.7 won't be released until there is a "working" edit function. 0.8 depends on the write function. 0.9 depends on reorder function (ooh!). 1.0 depends on optimisation of code, cleanliness, readability, workability, stability, complete documentation, packaging (makefiles, etc). I expect lots and lots betas :) This is going to be a _stable_ version. Perhaps even the final one. 1.0 won't be released until at least 3 months of intense testing on many different systems.

Tues July 6th: 0.7b! Memory leaks seem to be actually fixed this time. My bad. Edit function is a mess. I'm working on it. Just ignore it for now. :) No need for a new development plan - it is fairly straight forward from here. I admit it could be cleaner, but, I'm getting experience. I'm switching in an out of C/C++ in the code. One minute I'm using strings, the other char arrays. Who knows. The memory stuff was explained to me by Arvind. You can catch the explanation here.

Mon July 5th (L888R): 0.7a! Memory leaks fixed I think. Primitive edit function. Added some indentation structure.

Mon July 5th (L88R): Grim 0.6 Released! This now has grim -r function. Displays list of titles. Try rolling your own [seconds_from_epoch].message files! Format is the same as always. See a bit below I guess. Don't make up dates! It will order them by date, newest->oldest. For 0.7: the edit function. Probably some alpha/beta/etc versions will be released before.

Mon July 5th (L8R): Grim 0.5 Released! It compiles :) Big thanks to Arvind for helping me through it. He's the best :D

Mon July 5th: TRAINWRECK! 0.5a released. Only for the brave. Messages are now in the format [secondsfromepoch].message. Range function needs optimising. Edit function primitive - will use $EDITOR variable soon. This alpha version DOES NOT COMPILE WITHOUT ERRORS. Count function actually works :). Getting messages in an array of some sort. Argh!

Wed Jun 23rd: Grim 0.4 released! Read function implemented. No known bugs/errors. Try it out with 1, 2, 3. Please send any bugs/errors to me. Note on ranges: try grim -r 1-3; grim -r 1,2,3; grim -r 1; grim -r 1,2; grim -r 2,1. Date is stored in seconds from Epoch.

Sun Jun 20th: Grim 0.3 released! Now reads files - specified on the command line. In current folder eg. grim -r 1 will read 1.txt, grim -r 2 will read 2.txt. Example of message file available below. Rename to 1.txt in same folder as executing. Looking to implement Kamran's range code into it for 0.4. UPDATE: Done!!! Look out for it in 0.4.

Sun Jun 20th: Cleaned up strings read function (will be implemented as a function in 0.3)... it's now "fully" functional (to read a whole given message file).. beta test it! over here! (try different test messages - testmsg.txt - in the format below, an example file is below too).

Sat Jun 19th (L8R): Converted to strings. But, I ran into a few problems. I can't get it to loop the % lines. Also, a "D" in the title fools the date function. I don't know how to get it to just find the first instance of a character at the START of lines only. This is the updated code. Here is a test msg file.

Sat Jun 19th: Version 0.2 released!! Buggy, but implements a better read function. Messages are now in the format:

Title: This is the title.
Date: 012345678

% Message text
%
% goes here.

One file per message, stored in a hidden .grim_messages folder. Message format thanks to Arvind. 0.3 will be re-written using the string class of C++. Don't really add to 0.2 if you're thinking of doing it. Just look at the proof-of-concept stuff. Development plan is now outdated. Will update shortly. But Basically, fork, exec, and wait will be used to call $EDITOR (or vi) and will be spawned as a child process to add/ edit messages.

Mon Jun 14th (L8R): Version 0.1 released!! It is so basic and really bad. Gotta start somewhere, though :) Stripping down functionality for ease of development. No edit, no ranges, etc. Feel free to expand on it! Sure does need it.
Mon Jun 14th: (AGN): Thinking of converting to the project to plain C. Thoughts?
Mon Jun 14th (QBH): Henry's 3rd Diary. I gleaned a few ideas from it. Things are still progressing. Just hold up :)
Thurs 10th June 2004: Research continues - big bottleneck is editing the file - calling up fav text editor, or providing an interface (using Wyatt's CGI library). I can see an easier way out, by having all the messages stored in seperate files in a hidden folder.. but it seems a bit wasteful. I don't know. I'm stuck at the moment. Finding it hard to find documentation on making text-file databases, similar projects, etc. Matt has sent in a bit of code, but basically just expands on the content and method of the current "working" functions. It's available here.
31st May 2004: Slight development halt due to increased work load on my behalf. However, I will be coding Fri 4th May from 5-10pm, Sat 10am-6pm, Sun 10am-2pm. See, I make it up :) Sunday will most probably be the release date of version 0.1 (woo!) Henry is starting a parallel project, which will be interesting. Good ideas will be borrowed from eachother, with a final merge planned. See his diary below. The comments round for version 0.1 will be 7-11th of June. Updates in the code will be made on the weekend.
31st May 2004: Henry's Diary 2
28th May 2004: Henry's Diary 1..
27th May 2004: Dev plan updated!! It's got comments, emails, new code (see Kamran's new range code)..!
Main body done - class structure set. Acts as a framework. Over here.
Arguments handler done. Take a look.
DRAFT DEVELOPMENT PLAN IS UP!
Please send comments and suggestions!!
Arvind sent in his notes/suggestions. (thanks!!)
One week from now the coding begins!

Purpose
To offer a project for myself and other complete C++ newbies to have a go at programming something for learning and experience. Mistakes will be plentiful. If you're an experienced C++ programmer, a few hints here and there would be great :D

What is it?
It is a console-based application that stores short reminder messages. On login (in console - init 3 boot assumed) it will display them. You can edit/delete them as you wish.

For example:
Welcome to the Grim Message Keeper!
You have 5 messages.
1. Feed the dog today
2. Go shopping. Get milk.
3. Save the World
4. Get back to work!
5. Get a life

Expand message: [enter number of message]

... You get the idea.

I am a C++ Newbie, or want to learn it. How can I contribute?
Excellent. I'm going to assume you're running Linux. If you're not, please consider it. Borland C++ may do, but really, Linux rocks :D You can dual boot. Try Fedora Core.

Anyway, I'll stop recruiting now. So yeh, if you're interested, drop me a line. Send code, tips, hints, or just express interest. Whatever!

I am an experienced C++ developer. You've got soo many mistakes! It's just horrid programming.
Yeah, I agree. But we're learning. If you want to lend a helping hand (just hints and tips, nothing major), please email me.

Here is the code.. eek!
Grim 0.7b
Grim 0.7a
Grim 0.6
Grim 0.5
Grim 0.5a
Grim 0.4
Grim 0.3
Grim 0.2
Grim 0.1

Goals/ how things might be done
When it loads up on login, it displays all current messages. You have the option to read full message, read selected messages, read all full messages (expanded form), delete all messages, delete selected messages, edit message, add message, reorder messages.

From the command line, you can add command line options: e.g. grim -a (add new message).

Newbie C++'s
Myself (John), Matt, LavaDevil, Kamran, Henry

Thanks to
linuxquestions.org, arvind_sv, Wyatt

Copyright
Pfft! Copyright? No way! Do whatever you want with it! Heck, if that's what gets your engine running, by all means!





















Hosted by www.Geocities.ws

1