My latest project is TclRunlog, a runner's workout log and calculator, with which a runner may log running workouts, crunch up numbers, generate reports, on things like: weight change, calories burned, total and average mileage (or km-age) for a month or year, total and average distance, average pace, etc.
TclRunlog is crossplatform, and tested on Debian 7 and Windows 7. It is written in tcl/tk, and uses sqlite3 db.
While Debian GNU/Linux is still my preferred OS, I have been doing some cross-platform development, not only in tcl, but also getting my feet wet with ruby, perl, lua, and a bit of python again.
Tweeting and Denting are now incorporated within the eXpostulate interface, so you can really annoy all your online friends, by x-xposting to 4 distinct blogging services, & denting and tweeting to announce your new articles!
At this moment, the denting/tweeting is still using curl, however, which is only native to * nix systems (should work on lin/bsd/mac without further configuration, but win users will have to install curl, which can be done, of course).
I will be attempting to work out tweeting/denting with tcl's own http post method. I've tried a few times, but unsuccessfully, so far. Need to log on to #tcl at freenode and get some help, or something.
posted with eXpostulate
- Current Mood:amused
- Current Music:soda stereo
I've already made a few changes to eXp0stulate, primarily in the gui.
Rather than have a menu with options for posting to the 3 relevant services (livejournal, insanejournal, and dreamwidth), I have made buttons, and placed the "Post to: (which journal?)"(so you can post to a community, etc.) at the bottom of the interface.
I have plans to edit the "Insert" menu, since DW uses slightly different tags than IJ and LJ (which both use stock LJ tags, for cut, user, community, etc.).
I may add more html options to that menu, as well (bold, italic, small, big, headings-h1, h2, etc., horizontal ruler, paragraph, blockquote, lists, etc.).
I also think that html syntax highlighting would be pretty awesome, so one could more readily see errors in html tags in an entry, before posting.
And, of course, spellchecking would be gro0vy.
Beyond that, there's other work to do. Currently eXp0stulate uses the old, flat post method. I'd like to get it writing out to xml, so it will function with the xml-rpc interface, which will then allow me to add both blogger and wordpress functions (which will also allow me to use it with my baldwinsoftware/blog).
I'd also like to incorporate a few more features, such as downloading and editing older entries. Right now, it only posts an entry.
This is a drawback, because, if the user finds an error in their entry once it's been posted, they have to edit it on-site, rather than in eXp0stulate.
If I add in the ftp function from tcltext and tclup, heck, it could be a combo blogging client and html editor...maybe...
So, I have a full TODO list on the eXp0stulate wiki page.
One advantage I do think it has is, once you've posted an entry, the text widget does NOT clear (unless you deliberately clear it), so, the entry remains loaded, and you can post to all three current services (IJ, LJ, DW) simply by pressing the three buttons at the bottom of the interface, and, if you like, even x-post to a few communities by modifying the "Post to: [which journal?]" field and pressing said buttons again.
(In Logjam, for instance, one must logout/login to the distinct services, reloading the entry before changing services, in order to xpost...here it's just, write an entry, and click, click, click...)
That's convenient, I think.
The user must be certain to make sure that "Post to: [which journal?]" is filled in with the name of the journal to which they are posting (their username if posting to their own journal, the name of a community, if that is what they wish). In TKLJ and Therapy, I had that field default to the user's username for the relevant service, but, since this program posts to 3 (and hopefully, in the future, 5 or more) services, defaulting to any specific username seemed impractical. I have a username on LJ that differs from that which I use on IJ and DW. I suspect others may have differing usernames, as well, so the field simply defaults to "which journal?", which means, if the user does not alter the field, they will be trying (unsuccessfully) to post to http://which journal?.livejournal.com/, or ij or dw, as the case may be.
It would be good to load menus with the user's communities, and also add user icon functionality, but the user icon feature would be useless for blogger and wordpress, of course, so I may just dispense with that.
Some might ask,"Why, Tony? Why make another blogging client for LJ, IJ, and DW?"
To which I answer,"Well...
- I keep blogs on several services, and want to make it as convenient and efficient as possible to X-post to all 6 blogs I keep;
- I want some features the others don't have;
- Why climb the mountain? because it's there... (i.e., it was something to do, and I like hacking);
- No such blogging client exists written in TclTk, and I like to promote the language;
Anyway, I've got to get away from this project at the moment and return to my translation work.
posted with eXp0stulate
- Current Mood:amused
- Current Music:none
If you are seeing this post on any of IJ, LJ, and/or DW, that means I have successfully merged the code, and X-posted to all three blogging services.
I'll be calling this new bit of hackery
since it x-posts.
I'd like to add wordpress and blogger funcationality, but that will require my learning to get this thing to write out an xml file and play nice with the xml-rpc protocol, rather than just sending via http post.
Not sure...either way, it's just a matter of time.
Okay, so...let's see how she works...
- Current Mood:amused
- Current Music:none
The Tcl/Tk program, which has the added feature of displaying the server response, has only 47 lines of code, 245 words, 1844 characters. It took me less than an hour to write it.
Noumena Corporation, SR Technology, Buonacorsi Foundation, Mentor Graphics, and ActiveState.
Learn from the experts and share your knowledge. The annual Tcl/Tk conference is the best opportunity to talk with experts and peers, cross-examine the Tcl/Tk core team, learn about what's coming and how to use what's here.
- Tutorials taught by Tcl experts
- In depth discussions of 8.6 changes and how to take advantage of them
- The future of Tcl after 8.6
- Best practices in package management
- Birds of a Feather (BOF) sessions
- Discussion forums with the Tcl/Tk core team
- Tcl/Tk Social Suite for late night discussions and beverage consumption.
- Conference Location
- The conference will be held at the Hilton Suites Oakbrook Terrace, with rooms at $99.00 (US) per night from Sunday (10/10) to the following Friday (10/15).
Call for Papers
Now, google code offers two version control systems, Subversion and Mercurial. I've never used either one before, but, at least I've heard of Subversion, so I chose to go with that one. It is, apparently, the default system, Mercurial offered as an option. I have used CVS before.
So, I aptitude installed subversion (svn) on from the debian/lenny repos, and set about trying to import my code for the first time to the project.
The instructions on the google Subversion FAQ for importing your code are rather succint.
Just use the 'svn import' command..
So, the first thing I did was, logically, try to read the man page. Now, people frequently complain that man pages are written for the hopelessly, inhumanly geeky, and not very useful for the rest of us (ok, I do write code, but I am far from being a real hacker, yet), that they are written in some secret language, and that they are generally useless. Of course, those in the know say to read them, and find them rather useful. I confess, I have actually come to the point where I can make sense of some man pages. I'm not even ashamed to admit it. Some of them are insanely usefl (ncftp, for instance, has a very thorough man page). So, I called up "man svn".
This is what I got:
svn - Subversion command line client tool
svn command [options] [args]
[sarcasm]That certainly cleared everything up for me...[/sarcasm]
How about explaining the options? What args? Hello!
I tried "svn help", and that gave me a list of commands, as least, but with no explanation of how to implement them, or what they did, what options or arguments could be passed to them... Folks, the Subversion project needs documentation writers. No doubt. So, I did the next natural then, and did some googling.
In defense of subversion, I must say, they have an entire book/manual for Subversion, available to be purchased in print, or read online for free.
Of course, the instructions I found in said book was that in order to import my code to my google code project, I was a bunch of garbbledy-gook, and said nothing of importing to a remote repository, only creating a repository on a local machine. I needed to import my code to a remote repository.
I did some ranting on some forums, to no avail of course (ah, but the sweet release of venting...), and did some experimenting.
I ended up resetting the repository a total of about 4 times, before I finally managed to figure out how to a) set up the svn repo at my end, b) import the code to google, and c) check in and check out.
So the code is up there, now.
Now, there do seem to be instructions available for checking out and checking in. That's not too bad. But considering the complete lack of instruction on how to actually import the code of the first time, I thought I'd share the culmination of my efforts.
:~$ cd /path/to/project/files
:~$ svn import https://projectname.googlecode.com/s
vn/trunk/ --username yourname
There! Your code is imported to the svn repo... I know looks simple, but there was nowhere that I could find an explanation thereof.
(okay, it might as well be martian to some of you, dear readers, but those who right code and participate in open source software projects will understand).
Happy? I am.
So, TransProCalc is now up on google code and ready to start a new life. I actually made a few minor changes to the code already, last night, before loading it up there, but not enough that I would call it a release or new version...just a little clean up, rewrote the install script, and, more than anything, a lot more commenting, since I'm hoping to have collaborators. Commenting your code makes it easier for others to find stuff and figure out what you're doing.
And, happily, I have a collaborator already! Anindita Basu, who had previously written a manual for TransProCalc</a>, has rejoined the project (it's been out of development for nearly 2 years, recall).
ADDITIONALLY, TRANSPROCALC NEEDS TCL/TK DEVS! Want to sink your teeth into an open source translation project management project? Check out TransProCalc.
I have big plans for TransProCalc, many new features to be implemented, including but not limited to incorporation of a providers and client db, more user configurability of project parameters, and a calendar/reminder system to annoy you when invoices are due (either to you, or to your providers).
No time to work on any of that today, though...back to these articles...
originall posted to tony baldwin | bloguiando
TransProCalc is a little program I sarted building back in late 2007/early 2008, when I was outsourcing a lot of translation work, and found that the time I was spending managing the projects didn't justify the meager profits I was making from outsourcing. I determined that I really needed to find a way to automate parts of the process, and I couldn't find any existing free/open source software projects that would meet my needs. I was "scratching an itch", as they say in the hacker community. I had a need; I started hacking.
TransProCalc IS handy, too. It helps me keep track of all the documents and assignments for a project, and crunch of the financial numbers, and spits out handy little reports. It needs work, though. I want to get it playing with a database to manage information on clients and providers, get it hooked up with a real calendar/reminder system, to remind me when invoices are due (to providers, or from clients), keep track of which clients have online invoicing systems and help me automate the process of dealing with those, etc....much trabajo.
I have good ideas on how to get a lot of that accomplished, but I need to set aside some time to get to work on it.
Additionally, I would not mind other devs jumping on board with the transprocalc project.
I added transprocalc on google code this morning, which may assist in finding other hands to get into that code, perhaps, and provide tools to manage the project.
Of course, it is already on sourceforge, too.
At the moment, I have some academic articles from Brazil to translate that are keeping me pretty busy.
Furthermore, I have a lot of really good friends in Santiago, Chile, where there was an 8.8 earthquake early this morning.
So, today, I am spending a lot of time, today, worrying about them and trying to track them down and make sure everyone is okay, and obsessively checking the news, etc... VIVA CHILE, MIERDA! (a todos los chilenos, les quiero mucho, mando abrazos, cuidense)
|Originally published at tony baldwin | baldwinsoftware.com.|
The tarball at baldwin software has been updated accordingly.
I'm still trying to figure out how to make the remote file list into a combobox from which the user can select a remote file, but having difficulty.
Also, still considering making the items listed in the current text widget for the remote file list into link/buttons, which I know can done.