Programming

Table of Contents:

To the main page.

Status

At one time, I had pages of C/C++ and other programming related links. Since outside links are a nuisance to keep up with, instead of keeping lists of them at my web site, I'll be posting some of my favorites to the CppDesign and XHTMLDesign mailing lists. What I'd like to share on these pages, instead, are how-to articles, programming snippets and other information that doesn't require a lot of off site links to maintain. I've revised my original mingw FAQ and you'll find a link to it below under Resources. I've also added articles on Open Source for low resource computers and tips on my favorite programming editor SciTE. Check back for new articles and updates to current tips.

Mailing Lists

CppDesign is a mailing list for discussion of design issues related to C++ programming. Experienced C++ programmers are welcome to join our discussion.

XHTMLDesign is a mailing list for discussion of design issues related to web sites. Topics range from good web site design guidelines (where readability and accessibility are emphasized) to CGI programming design discussion for languages like C/C++, Perl, etc. and use of scripting languages like Javascript. This list is focused towards web designers who maintain fiction or other writing archives. I'm also expanding the list for discussion of multimedia creation such as making your on DVDs or music CDs or audio video presentations using Open Source software. We're also open to subjects such as Atom and RSS feeds, podcasting and creating multimedia to be used in conjunction with portable players.

A Personal Note

This is to all the guys out there who have ever asked, "Where are all the females who are into science fiction and computer programming?"

Resources

Looking for books and other references on programming? My programming references page has some suggestions.

Need some tips on getting started with or maintaining a web site? Check out my resources page for web designers.

If you're a web designer wanting to add a Really Simple Syndication (RSS) feed to your web site, check out my new online ATOM 1.0 creation utility. It's a simple tool, but it should be enough to get you started creating your own RSS feeds for your web site. Feel free to join the XHTMLDesign mailing list if you want to discuss the topic further or locate other tools for RSS creation.

A new version of my old mingw FAQ revised for current use is now accessible. I will be updating it as I learn new information on best practices for working with this compiler.

For Windows programmers, msys provides a POSIX like environment for program development and building applications from source. Not only is it invaluable for MinGW users, it can be helpful for developers who use OpenWatcom. I've been collecting information on how to customize msys and set it up for various compilers.

I've also put together my favorite tips for working with and customizing the SciTE programming editor. I will continue to add new tips I find worth sharing.

I'm getting so many patches I've made to Open Source programs, I decided to try to put them all in one place. So, I've started a patches page to keep track of fixes I've had to do to get various Open Source programs working on the different operating systems I use. Am hoping to switch from patches to build scripts (with patches) in the future so that other programmers and developers can more easily recreate the steps I took to get Open Source programs running on various machines. See my Latest Project below for more details.

My Articles

How To...

From Document to Book
I've been looking into good ways to create books and documentation using a programming editor and Open Source software. This article documents my results.
Making the Most of Windows 7 Starter
I've been collecting my tips and tricks for making Windows 7 Starter more user friendly. Most of the tips will work for Windows XP, Windows Vista and Windows 7 users as well.
CoCo Programming
It is possible to run old CoCo programs on a modern PC.
Transition to Google Mail
This is basically my guide on how to survive a transition to Google Mail. I've put together the most useful tips and tricks for working with Google Mail that I could learn or invent. I've also tested out several third party programs that work with Google Mail and discuss where to find what I felt was most useful. If I couldn't find exactly the functionality I needed, I wrote my own programs and scripts which I'd like to share with others who might need them too. These include a Google Mail notifier program for Windows systems that works while your browser is logged into Google Mail without needing to be given the Google Mail account user name and password and a way to redirect mailto: information to Google Mail.

How To Articles from the Recipes Section

Recipes for Music on your PC
Information on using Open Source applications to create your own music, sheet music, Karaoke files and music CDs.
Recipes for Video on your PC
Information on using Open Source applications to create your own DVDs.
Using Open Source Software with Portable Players
I found more uses for Open Source software, this time in conjunction with portable music and video players. Check out some of the tips I've picked up or feel free to share some of your own on one of my mailing lists.

How To Articles from the Writing Section

E-Books and Multimedia
Information on using Open Source applications to turn your laptop, netbook or computer into an e-book reader, multimedia player and/or barcode reader.
Writing Tools
What good is using a programming editor to create books or other documents unless you have some good writing tools to help check and improve your words? I've listed some of my favorite finds.

Converting to Open Source

Open Source Applications

Lightweight and Cross-Platform Open Source Software
I've been searching for and testing out Open Source alternatives for computers with limited resources. Some of my favorite programs just don't work efficiently on older computers or low resource machines. This lists my discoveries for general purpose applications to date.
Lightweight Open Source System Software
This covers more lightweight alternatives in the category of system related tools.
Open Source Screen Libraries
Tips on locating Cross-Platform software alternatives by the Open Source screen libraries they use.
Converting to Open Source
Just for fun (and for personal use to help me keep track of good programs out there), I've created a reference list of software for switching from commercial and freeware programs over to Open Source software.

Open Source Operating Systems and Distributions

Open Source OS on a Laptop
This chronicles the steps I needed to take in order to switch to an Open Source OS on an older Sony Vaio laptop. It also compares the results of trying a variety of Open Source operating systems on this low resource machine.
How to Sneakernet with a Debian-like system
Details steps and scripts needed to update a Debian-like system using Sneakernet.
My Ideal Open Source Operating System
Even though I'm an advocate of Open Source applications, I'm still finding Open Source operating systems lacking. I've made a list of traits that the ideal operating system for my needs would include. If anyone comes up with a good match for an alternative Open Source operating system that fits with what I'm looking for, I'd love to hear about it. I'm looking for a project I can add my programming and documenting skills to.
My Ideal Open Source Distribution
Just because I've been unable to find my ideal operating system, it does not mean I've been unable to find my ideal Open Source software distribution. It may not yet be a complete reality, but it's in the works. This article details a design I believe would make a wonderful way to build and distribute Open Source software. I'd be very interested in hearing input on this topic from others.

Latest Project

You can check out some of the results of my LM BLD project. I've want cross-platform tools that use hypertext to create a user interface long before htas or even HTML were commonly accessible. I have code to create a couple of user interface options currently available plus a sample configuration script to demonstrate those user interfaces. I hope to make more of my build scripts and eventually, the build script generator available as well.

I've been accumulating patches for Open Source in order to get them to build on various platforms. I really didn't want to. I'd prefer to pass the information back to the project maintainers, but many times a project is no longer supported or the maintainers refuse to support a particular port. I've shared many of these patches on my patches page. However, without knowing what state someone else's machine is in, it's hard to recreate successfully building some applications on another machine just by sharing patches. Build scripts like the Slackbuild scripts are a step up from that. Once the required libraries are installed, you can run the build script and it should do everything necessary to build an application. There are even build scripts to build required libraries. My latest project is a cross-platform way to produce build scripts. I was finding myself continually building libraries and applications every time I updated an Open Source operating system to the latest distribution or a key foundation library changed. This provides an automated method of building all the applications I want to use on BSD, Linux, Windows or other systems. It's also an easier method of sharing instructions on how to build applications than simply supplying patches.

I've been working on, using and testing this build system for at least a few years now. In the meantime, I've been searching to see if anyone has a better solution I can add my support for and throw my efforts behind. I dislike reinventing the wheel if someone already has a better way. I've yet to find a system that fits my needs. Am curious to know if my solution would fit anyone else's needs. So far, I've just been using the system for myself. I've been wanting to make it available as Open Source. However, I'd like to know if others are even interested in using it, before I go to all the effort of trying to document it, package it and make it easily available. If someone knows of another project that can do the job of building a variety of Open Source applications in an automated manner that will work on multiple platforms, please let me know. I've already looked into possibilities like OpenSuse Build System and TakeoffMinGW and a few others, but so far, nothing's coming together with those options. If anyone's interested in discussing design issues for my latest project or would like to know more or even possibly help out, please write. You can contact me through the CppDesign mailing list mentioned above. I would be very interested to discuss building Open Source C/C++ applications and libraries in an automated, cross-platform manner with other programmers. Feel free to join in the conversation on the mailing list.

For non-programmers, many are just interested in how to get the final programs and applications. They don't care about the source and building everything from scratch. I would be too, if some of the programs I wanted were already readily available in that form with the optimizations I wanted. If we could get enough people involved in a project, I would love to put together a series of items that come out somewhere between mini distribution and a meta package. Each program group would consist of binaries for a particular platform that each do one job well, work well together and require a minimum of dependencies. It would also include scripts to set up paths so programs could work properly from a USB drive or a specific location on a hard drive. The scope of a project like this would need to include compiled programs for the platforms involved, source code and scripts to build everything and put it all together. I don't want to go so far as to start creating a particular operating system distribution. What I do want is a cross-platform solution that would let me run the Open Source applications I like on the operating systems I need to use. Developers could put together package groups of audio programs or video programs or word processing or web design programs or other applications. By installing a particular group somewhere on your system and setting up your paths properly, you'd have all the applications you'd need to get a particular task done. That's the theory. To make it a reality, I'd need more people than just myself interested on working on a project of this scope. If this is something you're interested in and you'd be willing to get involved and help (whether or not you're a programmer), you can contact me through the CppDesign mailing list.

Contact

If you have any program recommendations to add, you can contact me through any of my related mailing lists. Also, feel free to contact me if you have any tips on Open Source operating systems that would come closer to my ideal system especially if they're in need of some volunteers. Would appreciate hearing from anyone who would like to discuss my latest project or pros and cons of build systems for compiling software in general.


To the main page.


Validate XHTML
# To make your visit count, load this image.#



The information on these pages is copyrighted by the author with all rights reserved. Reproduction of anything without the author's permission is in violation of copyright laws.
All original material is copyrighted:
(c) Copyright 2002 by Laura Michaels
All Rights Reserved
Last Update: 20130527