So you need a calendar?

So you need a calendar?

So, one of the things we have been using computers for is to keep track of our lives.  And this means a scheduling or calendaring tool.  Some tools out there do this fine, and some do it very well.

I have to keep track of a lot of appointments. From conference calls for work, to each member of the family’s schedules, to random, but highly important reminders.  Most calendaring programs out there will let you set up a reoccurring event by day of the month, or the date.  But, what if you need to do something two days before the end of the month, every month?  Or, you need to do something every full moon, but not on the blue moon?  Or, you have a standing meeting with your boss every other Monday morning, execpt when Monday is a holiday, then the meeting shifts to Tuesday?  Oh, and you want something that you can run over an ssh session, while on your smart phone, or you friend’s smart phone?

The answer is simple: remind.  remind can do this, and more.  Need to set something up by the Hebrew Calendar?  Check.  Want your calendar to run a shell command for you on a holiday, specific day of the month, or phase of the moon? Check.

Most modern Linux distrobutions include remind nowdays, as it is so darn usefull.  In addition, it runs just fine under Solaris, and the BSDs, including MacOS X.  If fact, over at 43Folders, they have a whole section their wiki for remind.  The wiki has many tips and tricks on how to use remind to its fullest.

In my next post, I will share some tips on how I get remind to remind me of events.

Command-Line blog posts

So, it only seems fitting that I should talk about a command-line interface to posting on this blog. No, I do not mean using links or the like, but a way to post from the command line.

So, this post is being typed up in vim on my Fedora 8 laptop. I will use this great little tool I found called wppost to post. wwpost is part of the perl module WordPress::Post.

A brief summary of its commands are bellow:

 -c category, can be a list separated by commas, no spaces
-t title
-i description, main body of post, if it has a slash, it is interpreted as a file to slurp
like a text or html file
-D iso formatted date for post, can be left out
-T if there are image attachments, place them as thumbnails only, with link, not just resized

Some usage examples taken from the man page:

 Most basic of usage, (provided you have a ~/.wppost file) wppost -t 'hi everyone' -i 'i just wanted to say hello' If you want to specify two different categories: wppost -t 'Another Apple' -i 'Apples are really great. I do love them so.' -c food,rant -D 20071231 If the body of the post is in a file wppost -t 'title here' -i ./content.txt If the content of the post is in a file and you want to use the file
name as the title wppost -i ./Title_Here.txt If you want to have file attachments: wppost -t 'recent photos' -i 'these are recent pictures i took' ./*jpg

Pretty cool, huh?

Peace out!

Pacman for Console

Pacman for Console

You are tired of hearing your GUI friends talking about their games? Tired of playing simple Adventure? Why not try Pacman for Console?

The game play is just like the old quarter game you played long ago, and the best part, you can develop your own maps! Check out the screen shot:

Screen – terminal multiplexer

Screen – terminal multiplexer

I usually have one screen running at all time, and in that screen session, I ssh to various hosts that I am working, and have screen running on those hosts.

Additional Links

GNU Screen – GNU Project – Free Software Foundation (FSF)
GNU Screen – Summary [Savannah]
GNU Screen – Wikipedia, the free encyclopedia
Screen User’s Manual
start [GNU screen]
Remote terminal session management using screen How to use screen to detach from and share terminal sessions A Brief Introduction to Screen! Linux, Home Automation, VoIP, Radio Scanning, PMR446, CB Radio, Cryptography, Handspring Visor, Psion Series 3 and much more. screen – The Terminal Multiplexer
[Power Sessions with Screen

iKog – the simple todo list

iKog – the simple todo list

iKog – the simple todo list

So I am looking for a good to-to list manager, and I stumbled across ikog.  ikog stands for “It Keeps On Growing”, and it is a pretty nice todo manager which has been influenced by the GTD school of thought. Currently, I am using it for my daily todo manager, and using the python gtd tool for my long term list management.  Give it a whirl, you might like it!

BINS Photo Album

Edit Note 2018-03-24: I am now using sigal for this, and I am not sure if BINS is still maintained.

The BINS Photo Album is a package to generate static web pages from the command line. Why would you want to do this? Well, most of the dynamic web photo albums require that the server do all the work when the client requests the images, thus either slowing it down, or requiring a very beefy server. Also, you introduce the chance for a script-kiddie from hacking your site. Not good.

Enter BINS. Some of its features include:

  • generated album is static : it’s just plain HTML/CSS/Javascript files (Javascript is not mandatory to view the album), no need of any dynamic language (php, asp, etc.) nor database on server-side. Album can be burned on CD or DVD.
  • album can contain other albums (sub albums): the album can have a tree structure ;
  • generation of a thumbnail and of scaled images for each picture ;
  • generated album appearance is fully customizable by using HTML templates (5 different templates sets are currently provided) and configuration parameters: colors, number and size of thumbnails per page, number and size of scaled pictures (in pixels or percentage of the original image for the size), fields to display, etc. Those parameters can be set globally (system wide or per user), per album or sub album or per picture (such as, you can change the colors of one sub album or one just one picture page in an album by editing its description file) ;
  • several description fields (date, location, etc…) can be associated with the pictures (in text or HTML format). You can easily add or customize these fields ;
  • description fields can be set or modified via a command line interface or a GTK+/GNOME-based GUI ;
  • A search engine is included in the album : you can find some pictures by searching keywords in their description fields.
  • Album can be generated from pictures managed by Zoph.
  • speed up album browsing by performing a clean up of HTML code to reduce its size and by pre-loading thumbnails in browser cache using JavaScript code ;
  • Exif information and Digital camera support :
    • use the EXIF data structure found on some image files (usually, those produced by digital cameras) to fill automatically some fields (date and time for example).
    • BINS use the Orientation EXIF tag (which is normally set when you rotate a image on you DigiCam) to rotate the picture to correct orientation.
    • For each image, a page provides all information available on the picture and the DigiCam settings when the photo was taken.
    • Additional information are provided for Canon DigiCams.
    • Tooltips provide information about the meaning of some of the fields.
    • All EXIF information is saved in the XML description file, preventing they disappear when the image is modified ;
  • internationalization (generation of album in different languages) using gettext. Current languages supported are Catalan, Dutch, English, Esperanto, Finish, French, German, Hungarian, Italian, Japanese, Polish, Russian, Spanish and Traditional Chinese ;
  • customizable charset encoding for HTML generation, including UTF-8 (Unicode) support by default. Generation of the Apache .htaccess file for correct encoding charset in HTTP headers ;
  • use of XML files to save user description of pictures and albums/subalbums and Exif data from image file ;
  • handle correctly file and directory names with spaces or other odd characters (excepted ‘/’), and create valid escaped URLs ;
  • generate valid HTML/XHTML code. The level of HTML depends of the style used. Some of the styles are valid, table free XHTML.

The web site has some great examples. Go check them out.

Strayed from the path

In two ways…first, I have not updated the site in a while, and I
need to get back to updating it.

Second, because I have not been true to my cli roots. I have moved
from my default MUA of the last, oh, 8 years, and flirted with a GUI
MUA, thunderbird. It was pretty.
It was sexy. It let me see everything then and now. It tried to
seduce me into using a GUI for more…

But, then I got behind in my email, and it was taking longer and
longer to catch up. sigh Two days ago, I switched back, and now, I
am fully caught up on my inbox, and making headway on my actionable

cli bug/issue/task tracking system?

cli bug/issue/task tracking system?

Fresh from freshmeat:

What is DITrack? DITrack is a free, open source, lightweight, distributed issue (bug,
defect, ticket) tracking system using a [Subversion]( repository instead
of a backend database. It is written in Python and runs in UNIX
environment (*BSD, Linux, MacOS X). The project is inspired by the idea of [Subissue]( issue tracking system. However, while Subissue aims in merely replacing the traditional
database storage with Subversion repository, DITrack is a major
rethought of the issue tracking system paradigm. The main difference
is that instead of sticking to the centralized model (one database,
one web interface, one mail integration machinery), DITrack treats
underlying Subversion storage as a versioned distributed file system
which enables benefits of truly distributed operation mode.