Monday, June 8, 2009

Noteworthy Emacs command: dired-do-async-shell-command

Keybinding: "&".

Just what I needed. I needed to open a *.dvi file from dired, and open the LaTeX source file while looking at the formatted text.

Perfect!

Saturday, March 14, 2009

Unit Conversion

Neither Google nor ConvertAll know about Scruples. Both are convenient ways to convert units. The unix console utility (non-GUI) Units is my choice, so far, as it knows at least one unit, about which the two flashy tools do not.

I installed ConvertAll through Synaptic on Ubuntu. It is written in python using the QT library, so it is usable on Windoze as well as GNU/Linux systems. It's a GUI solution. It doesn't know about scruples, but it is claimed to work well with composite units, such as Kg/m/hr

In the google search bar, I enter "2 scruples in g". Google doesn't know about scruples either.

Units wins the first round. And it's easy to use.

Saturday, March 7, 2009

Some ideas for new projects

Weekends are good. This morning I started poking around the Inet. Here are a couple of nice things I found out about that I can use in my classes. That NFWF grant we lost because we had so much trouble spending out money? That would come in real handy just now.

GeoWall?

Today, I discovered this page: A tour of the Mariana Subduction System . Guess what? It's available as an "ArcScene GeoWall visualization of Mariana 3-D topography and earthquake distribution".

It can be done in GNU/Linux. I think Gentoo would be more appropriate, but one possible option is available out of the box, for Ubuntu, my current system of default choice. One package is "viewer" and it might be around. Another is "inventor". It looks hairy. And why not? It involves projecting a scene through two projectors, superimposed. Let me guess: with polarized glasses.

I saw such a system at the University of Texas Texas Museum of Natural History---a flythrough of a vertebrate skeleton. Which vertebrate? Don't want to spoil it for you.

Bilko

http://www.noc.soton.ac.uk/bilko/index.php

...for learning and teaching remote sensing image analysis skills. Current lessons teach the application of remote sensing to oceanography and coastal management, but Bilko routines may be applied to the analysis of any image in an appropriate format, and include a wide range of standard image processing functions.

Supported by UNESCO, Bilko is available to registered users absolutely free!


Wednesday, March 4, 2009

Machine meltdown experience, unnumbered

This week I've been working out how to synchronize systems using git. I've been monkeying around with Emacs Org-mode for a while, both at home and at work, and at infrequent times on a laptop. How can I keep both work environments pretty well evenly matched, so I can work on all of my little projects on both machines (or all three)? Git and a USB flash drive. I won't get into that now, but it's pretty much working out. I have found I need to set the UID (User ID) and/or the GID (Group ID) numbers the same on both systems, and I have implemented a "git" group to which my user (me) on both machines belongs, so there is no conflict when pushing today's work to the repository on the USB stick. It seems to be almost there, as far as my simple use case is concerned.

However, at one point, last friday, I had been working fairly hard on some files that I wanted to be synchronized at home, and I tried to push the changes to the USB stick. The write failed due to lack of permissions, so I sloppily did a "sudo chmod -R a+rw " and was able to recover. After I figured out the permissions might be at least part of the problem! It worked, but in the meantime, I, knowing-just-enough-to-be-dangerous, flailed at the keyboard (I recommend Keytronic), and managed, unknowingly, to mess the settings up in the /etc/group file: on Monday, I was unable to access the groups and users tool to try to solve my problem with permissions---on which I had researched all weekend.

This all to tell you that I was left on Monday with a machine that promised to be unrecoverable. At least by me. But, lo! and behold! On that machine was an unused partition---a Windows partition, and hence an unwanted one. An unneeded one, especially since I was now able to run windows in virtual box as needed. So I quickly installed Ubuntu Intrepid Ibex over lunch, and went back to it before I went home.

Chapter II. Why you need to run dpkg --get-selections

I ran dpkg --get-selections > selections-.

This gives me a list of all the packages on my current system. Lucky my system was at least running! I tucked these away in a file on the current ~/ (home directory), and rebooted the newly made Intrepid Ibex install.

I have installed various GNU/Linuces, dozens of times. Ubuntu is now a favorite because it is painless, and good. It does almost everything. (I still want to get another Gentoo Box going, but the amount of work would be intensive.) My experience has taught me a few routine steps to take to get the machine into working order, MY WAY. It is taking less and less all the time.

This time, however, it went even faster. With my "selections-" file, I started Synaptic, and told it to read this list. (Read Marks). Now the new system has a long list of most of the software that I have working on the old system. It starts downloading them. It says 2d and some. But in the evening the net is faster, and by morning, when I got to work, my machine was up and running, with most of the important bits and pieces I had installed, and also updated for the 4 or 5 months since that CD was assembled by Ubuntu. Pretty impressive. A few tweaks here. A few tweaks there. And the machine is at least functional! It will take little time to be back in the saddle, at 100%, on that steed.

What are my little tweaks? Here are a few
  1. Display some icons on the panel, and place two more panels on the left and right sides. These are made moveable, and expandable, and put at the top, extending down from the top panel, so extra icons can be spilled over onto them like ears. This has been a boon in real estate for icons.
  2. System->Preferences->Windows: set so mouseover raises windows, and to roll up on click of the title bar.
  3. Install emacs-snapshot and a bunch of it's friends.
  4. Firefox add-ons I have met: downthemall, video download helper, tableclipboard tool, zotero, recently flash got, multiple tab handler (allows duplicate tabs, etc), delicious (for the past two weeks, experimental.
  5. On the Firefox bookmark bar, in install a folder called "WLOG" (weblog) where I can pull the little icons from the left end of the location bar to make a bookmark. Just pull it over and drop it onto the WLOG folder. Very useful.
  6. Sometimes compiz configuration tool (forgot the name). The main thing I miss on Gnome is a way to move windows from workspace to workspace by dragging. Spinning cube is nice, but too much of a drag.
  7. Set up an array of "folders" (directories). I haven't figured this one out---perpetually seeking a simplified, hierarchical arrangement that isn't difficult to navigate.
FOLDERS:
  1. I establish too many at the level of ~/: Library (link to separate partition for PDFs); Downloads (where I direct all downloads---this is a candidate for modification, as I would prefer to sort things now rather than later), Work related main directory.
  2. I've been keeping old work around for longer than I am willing to remember. So many subdirs from projects of years ago are still hanging around---all of them meaning to be worked on sooner or later (maybe org mode can help with this). I have the following top level directory trees set aside for various kinds of these: Projects; WORKBENCH; STUDY.
  3. New idea: ~/SCRAPBOOK for all the stuff that hangs around the Desktop and ~/ directories that just stays around and I am unwilling to get rid of. Maybe ~/ATTIC is next.
  4. Another idea that hasn't found it's correct niche: ~/TOP_SHELF. I thought of this after I tried a little applet called top shelf, a place to store things short term, one means to get back to right away. One of the nice things about the new KDE is the window-like desktop. I have tried to implement something of this kind, with no borders, just a place that can display---or be temporarily out of the way. There seem to be two kinds of these top shelves: the top shelf that is too high to reach, with stuff one wants close around; and the back shelf just above the desk where a few cherished and often thought about and used items reside. Need to rename these.
  5. ~/MUSIC; ~/VIDEOS; ~/IMAGES (for teaching stuff); ~/PHOTOS.

  1. I also install several programs by hand, so I immediately install build_essential. The main programs I do by hand are XTide and Xephem. Each of them requires other libraries and tools, so I install them.
  2. Gscan2pdf is getting good. My scanner is problematical. When it is working, gscan2pdf is working too.





Chapter III. Permissions and Flash Drives


That's another story.

Saturday, January 17, 2009

Beauty more than skin deep: Guitare, etc.

One of the reasons I refuse to go back to Windoze is my experience with a few special programs---programs that were written by programmers to "scratch an itch," and made available for "anonymous" ftp or download, somewhere "out there," for use by others should the need or wish arise. This restores or sustains my beliefs concerning the nature of man, and sustains my hope and happiness in the present. I cannot imagine why windoze "weenies" don't get this. How misguided is that scene.... One can only admire the prowess of others who have that ability; but perhaps in some other ways I can make my prowess (such as it may be) available to others. Reminds me of the questions people used to ask about the "learning curve" of GNU/Linux, or of LaTeX, or Emacs: the bottom line was, though, that for one willing or able to put in the time to learn, the rainbow gradually became visible. Many of us never went back. Many of the others don't understand why that may be: a friend pointed out to me the other day that Windoze no longer crashes dozens of times a day, as it did when I bailed and started using Linux at the command line, Pre-Linux 1.0. He still missed the point.

This weekend I have had reason to get back in touch with an old friend---the program "guitare."
guitare had installed several years before on one of my GNU/Linux boxes as a command line program, and proved extremely interesting, with capabilities unmatched by any other program I have seen (especially the two in bold face below):
  • name a chord when the fret numbers of all strings are input
  • alter the tuning, and do the same in any arbitrary tuning
  • serve as a chord chart
  • do much the same for scales
Two years ago, I had sent an email message to Pascal Obry, the developer of the amazing ADA program from yesteryear, "guitare" and the GUI version "tkguitare", explaining how I had not been able to install the program on my more recent machines. I had given up and let it all slide, I don't remember why. Perhaps I had final exams to write, or got involved in another project. I don't remember.

Recently, I have been fiddling around with the most amazing guitar, a gift from my long lost cousin, Mike for my 60th Birthday: a Little Martin. What a tone, and with precision I have never known in dozens of guitars I have played in my lifetime. What an eye opener (ear opener)! I randomly retuned the strings the other week, in preparation for a restringing: I often do this as I usually do not like to work the strings too much, for fear of deadening them. (Although I now realize that not washing my hands must have an even more devastating effect).

On my new random tuning, that my friend Ken says is "drop D" tuning, I have improvised some chords and songs. I don't want to lose them, as I usually do, because the notebooks have a habit of getting lost or forgotten.

Guitare
immediately came to mind. It's terrific to be able to tune the program to my unknown tuning, and explore the chords: guitare tells me the canonical name of each chord.

How amazing the exponential development of the Internet as a builder of capacity, as a library, as a source: I did a gmail search and found the old email of Pascal, and contacted him, asking is I could at least find a way to install guitare as a command line utility. Nothing else I have found even comes close! How bizaare is that? Many GUI guitar-oriented programs have appeared recently, in keeping with the movement towards a more user-friendly GNU/Linux desktop; but none of these programs even come close to Pascal's languising program.

I sent email to Pascal:

I'm not sure how to proceed, but what about a version with console only access?

That program is FANTASTIC. I play in all kinds of odd tunings, and using your program I can take my tablatures and find the chord names, adapted to my tuning. And I don't really need tcl or tk, maybe, for that. I don't know of anything else that comes close. (Sometimes the word "beautiful" doesn't refer to superficial appearances, but to a good heart: this program has a good heart!)
Within 24 hours of contacting Pascal about my inability to install his program on my new Ubuntu boxes, he emailed me that he has prepared a new version, v.8, now already available on the guitar web page, as source, GNU/Linux executables, and Windows XP executables, for both guitare and tkguitare. He calls this "Postcardware" and asked that, if I can get it working, to send a postcard.

Installing them on a 32 bit laptop was immediately successful. I had to install the following packages: tcl tcl8.4 tcl-dev tcl8.4-dev tk tk8.4 tk-dev tk8.4-dev . To be sure, maybe I didn't need to install them all, but I had done so in trying to compile earlier.

Tkguitare worked flawlessly. As I wrote to Pascal:

You have won your postcard. But one little thing is still bugging me. The program tkguitare ran fantastically, and dazzled, on a 32 bit Ubuntu laptop--perfect for me, because it's easy to set up when I'm playing the guitar. However, on my 64 bit magnum box, also Intrepid Ibex, like the laptop, it complains with the following:

teitoi@hardware:~$ tkguitare
tkguitare: error while loading shared libraries: libtcl8.4.so.0: cannot open shared object file: No such file or directory
teitoi@hardware:~$

One suspects that this is because I'm on a 64 bit box? I made double sure that all libraries (tk, tcl, tk-dev, tcl-dev) were installed. guitare, console mode, works fine. What a relief!

Still, I have to say, in this case you have proven that a thing that has a beautiful heart can also be beautiful in appearance. And that beauty adds a good deal of functionality and useability.


So I still had a problem on the 64 bit box. After sending Pascal an email asking whether he knows a fix, I continued to try several options: I tried to compile, but failed again; I looked all over the repos for 32 bit libraries for tcl. Finally, I found a message mentioning a program called "getlibs" that finds libraries for 32 bit binaries on a 64 bit Ubuntu system. Having nothing to lose, I installed it, after a google search. Here's a link to the Ubuntu Forums discussion:

http://ubuntuforums.org/showthread.php?t=474790

Within 5 minutes tkguitare was working on my 64 bit box. WOW!!!!!!!!!!!!!!!!!


By the way, Tab-n-Fret is a package that long ago enabled me to link a graphical GUI of a fretboard (xfretboard) to emacs, and use it or a non-gui method to input tabulature in text mode in Emacs. Perhaps this will be my next project. For the nonce, however, another program, etktab, is available on the Ubuntu repos, and is built from the Tab-n-fret, and tabulature mode and xfretboard from that package.

Monday, January 12, 2009

Org-Mode and VLC

Vlc is a wonderful media player. For movies, it automatically integrates a subtitle file if one is available by the same base name as the movie file.

Org-Mode is a wonderful outlining, notetaking, organizing utility for Emacs, the editor I use to do almost everything involving text of any nature.

Carsten Dominic has written a Relative Timer feature into Org-Mode. I use audio-visual materials quite alot in teaching, and I have often taken notes of videos or movies, to facilitate development of a lesson or a worksheet. The Org-Mode relative timer is a fantastic help, and Carsten has now made it better, integrating a facility to pause the timer.

I discovered an emacs lisp routine "dired-mplayer" at http://www.emacswiki.org/emacs/EMMS , and adapted it very crudely to start up vlc from emacs dired. It now starts vlc asynchronously, so emacs doesn't freeze up waiting for the video to finish, which leaves me free to take notes using Org-Mode and the Relative Timer feature. But pausing is what I needed, and Carsten's new feature makes that work.

I have incorporated a facility in dired-vlc that will simultaneously open a note buffer in org-mode in Emacs, and start the timer.

At this point, I use an org-remember template to open a buffer in a file of video notes. Then, insert a time stamp at t=0, and proceed.

I assigned the command to pause and restart to F11, so I can pretty easily pause the video and immediately afterwards pause the org-mode timer. Same for restart.

To make this more useful, I hope to incorporate code to pause the video and the timer simultaneously, wait for a note, and then restart both on command.

Here's the code for dired-vlc. It's more than just rough, but it works.

;;--------------------------------------------------begin dired-vlc.el---------------------
;; -*- mode: elisp -*-
;; Time-stamp: <2009-01-13>
;; AED 05 January 2009
;;;;;;;;;;;;;;;;;

(require 'org)


(defvar dired-vlc-program "/usr/bin/vlc")


(defun dired-vlc (&optional timer)
"Asynchronously start vlc on file through dired. If an optional
argument is given (C-u), the org relative timer is started. This
function purports to start vlc in rc mode, to leave open the
possibility of remote control."
(interactive "P")
(let ((file (expand-file-name (dired-get-filename)))
ext files basename dir curr-file ;idx-file sub-file srt-file
command options)
(setq basename (file-name-nondirectory
(file-name-sans-extension file)))
(setq dir (file-name-directory file))
(setq files (directory-files dir t basename))
(delete file files)
(setq command (format "\"%s\" \"%s" dired-vlc-program "--intf rc"))
; file))
(if (y-or-n-p (format "Run command %s?" command))
; (shell-command command))))
(start-process "junk" nil dired-vlc-program file)))
(if (equal timer '(4)) (org-timer-start))
)


;; end dired-vlc.el

Sunday, December 7, 2008

Distribution Alternation

I have moved my machines to Ubuntu. Beginning immediately on the day of its release, I also moved all of them to Intrepid Ibex, Ubuntu 2008.10. Tonight I want to report that I am pleased after a somewhat lengthy trial period: I will stick with Ubuntu for now.



I have looked around for a replacement, and very few catch my eye anymore. This is a major change for me, as I have been an inveterate tester of distros. From Slackware to Debian to Knoppix to Mepis to Gentoo to Ubuntu to Gentoo again, then to Ubuntu. I think this captures the main thrust of my experiments, albeit there have been some more or less casual and brief detours along the way---for example when I installed cluster knoppix on three machines in my classroom, upon a time.


I had tried Gentoo for two or three main reasons: to challenge my fear of confiuration; to find a distro to run both X86 and AMD64 executables on (I'd read that Gentoo did this best); and to search for more solid performance. Gentoo was successful in all of these areas, and more. Not only that, but Gentoo had the best documentation in the GNU/Linux world, hands down, until recently.


Several problems tugged me away from Gentoo this time. I don't have enough time to maintain three or four systems, let alone one, when it takes me often several hours or longer to track down a problem. That's the fault, perhaps, of my lack of formal Computer Science training. For various reasons I do need a working computer, and a reliable one. Ubuntu has gotten to the point where it works well out of the box, and the hard problems are fewer and farther in between. (That being said, K3b on Gentoo works fantastically out of the box, and verifies burned CDs almost always; K3b on Ubuntu Intrepid Ibex is unable to verify a burn of an iso image. FOr me.


Another reason is the ease of installation of programs. It's plenty easy to install programs on Gentoo, and I like the method better, in fact. However, the advantages do not seem to outweigh the main disadvantage (time taken to install) anymore.


Gentoo seems to be falling apart. I would like to volunteer to help keep it afloat. But I am so troubled by even trying to keep a system working withing reasonable parameters, and up to date, that I cannot expect that I would be able to even offer reasonable assistance with documentation.


In particular, the docs are not as good as they used to be.

Saturday, May 10, 2008

References and Bibliography research

I am still toying with various research tools. Today, I compiled a little list of references for the marine midges Pontomyia spp. Using JabRef I was able to compile a well-formated bibliography in about an hour and a half, with over 40 references. I think it will be faster once I figure out how to do it all automatically. This was clearly a victory, however.


Google Scholar offers the preference of using bibtex citation export mode. A friend mentioned he's been struggling with bibliography formats. Perhaps a little introduction?


BibTeX is a database format for bibliographic citation for use with the TeX and LaTeX typesetting tools. TeX is a fullblown typesetting language based on Donald Knuth's extensive study of "meat space" typesetting techniques of real printers/typesettings. LaTeX is the macro package, easier to use than TeX. I use LaTeX. These systems are remarkable for hundreds of reasons that I cannot go into at this point. Among them is the handling of references, cross-references, and bibliographic citations. BibTeX is the method for the database. A typical citation is as follows:


@ARTICLE{ruxton2008cea,
author = {Ruxton, G.D. and Humphries, S.},
title = {{Can ecological and evolutionary arguments solve the riddle of the
missing marine insects?}},
journal = {Marine Ecology},
year = {2008},
volume = {29},
pages = {72--75},
number = {1},
publisher = {Blackwell Synergy}
}

I found a great JabRef improvement. Two actually. One of them is Jab2HTML, that enables an export handler that outputs excessively beautiful html from a bibtex file or the entries one has selected. The big thing is the html has links to googlescholar. Secondly, this guy has now put together the means to incorporate the googlescholar links on the summary view of jabref itself, without outputting html:

- http://keijisaito.info/arc/biblio/en_jabref_bibtex.htm

His explanations are for Windoze, but they work ok if you change to Unix directory format, and define your own directories when that comes up. I installed both Jab2HTML and the Pref-* file. I like the Pref- changes alot.

Bibliography Formats


I do almost all text output formated via LaTeX markup. I have found emacs org-mode very, very useful in a number of ways. Org-mode outlines are eventually exportable as LaTeX source, and it works well. If I do this in org mode--- "/Pontomyia pacifica/"---the LaTeX output will be italic, and *xxx* would output xxx in bold. _hello_ would render hello as underlined. This and other matters, including the easy table editor, are really useful. I admit I've spent way too much time learning how to use it, but it's starting to make sense. Todo lists, notes, whatever, preliminary notes. I should be typing this letter in org-mode, one good reason to use Gnus for email (it's way too hard for reading mail with many tags, but easy to compose) and with the emacs-based w3m browser, I can cut and paste text between email and www and whatever I'm writing. I can compose long email messages in org-mode. I understand some people blog from org-mode. You aren't going to want to know about this, I guess, but another reason for me to stay focused on Emacs.

BibTeX gives you a bibliographic database. Emacs is a good way to edit bibtex (*.bib) files, but JabRef and kbibtex and cb2Bib all are essentials to the way I work so far. Zotero I did use today, but I'm not up to speed with bibliography use. I am using it for making notes, like google notes on steroids, but then I can have automatically generated bibtex entries for the source pages for these notes.

I just put together a bibliography in an hour and a half this morning on Pontomyia spp. marine midges. I'll try to attach the html output. What I think is amazing is the speed and relatively clean output. Note the links to google and google scholar.

When one is writing a report---say I am writing a report or proposal for working on Pontomyia. I refer to the *bib file. I'll try to attach that too. Boring.

Two years ago, one wouldn't have found an open specification file format used so widely, for example with Google Scholar using it to export bibliography citations.

I can refer to pontomyia.bib in my proposal and then cite a particular article by Cheng\cite{cheng1978mmp}. If I am publishing an article in Science, I invoke the science citation style, and both the citation ([1] for example) and the formatting of the text in the bibliography will be taken care of by LaTeX/BibTeX. I know it's possible to output a fully formated annotated bibliography by including annotations or notes fields in the bibtex database entries. LaTeX/BibTeX will only print those references in the database that are cited in the article, and one can do all kinds of specific formatting, like including page numbers in teh citation \cite[39-40]{cheng1978mpp}.

LaTeX, by the way will automatically do a crosseferenced bibliography, for example, and correct the page numbers each time the document is processed. Indexing and glossaries the same.

Friday, May 2, 2008

More Notes and References Software

These are somewhat heavyweight, and for the most part are beyond my modest needs and ability. TiddlyWiki NeuroScholar (Demo) RRiki RefBase

 

Relying on a 12 year old recommendation, I will add PDF flip book creator.   Thanks.

Monday, April 28, 2008

Update on cb2Bib

On Ubuntu Hardy, I had to install the bibutils package by hand to get better functionality of cb2Bib: try this link. Bibutils compiled nicely, but didn't make a deb package. I had to install tcsh to run ./configure.


Bibutils is found here

Sunday, April 27, 2008

Bibliography tools, continued.

.

cb2Bib



This is a very interesting package. It means "clipboard to bib." Does make picking up references much easier off of web pages. It apparently can do things automatically if one teaches it how, at least some things.



As it is, it right away picks up what it can, like journal name, pages, and volume, then I have had to select the title, or authors into the clipboard, and it asks me what's the category. Very nice.



Zotero


Got it working with Firefox 3 b5 on Ubuntu. Very nice. I'm still a bit puzzled. I was able to save some snapshots and links, and use cb2Bib to massage them into bibtex database entries.


How to get the pdfs on my system integrated, and downloading pdfs? I know kbibtex and JabRef can do some of this.



Tools of Excellence: Cb2bib, Yazi, Sioyek, Entangle, XnViewMP, Emacs,...: WOW!

In the summer of either 1982 or 1983, I enrolled in a summer school class at UCSB offered by the College of Engineering on Computer Architec...