Imagine what a harmonious world it could be if every single person, both young and old shared a little of what he is good at doing. -- Quincy Jones

My preferences

These are the software tools/packages (emphasized ones more frequently than alternatives) that I use most frequently:

  1. vim/gvim and emacs.
  2. R, NumPy/SciPy, J, Julia, and Factor.
  3. NetLogo, and GAMA.
  4. Python, OCaml, Haskell, Scala, Lua, CLisp, ruby, Clojure, and sometimes Perl
  5. PostgreSQL+PostGIS, and SQLite.
  6. ENVI, ERDAS Imagine, Maptitude, and ArcGIS
  7. JabRef, and EndNote Zotero (for bibliography management).
  8. LaTeX (MikTeX), and MS Office whenever I cannot get away with it!
  9. Git.
  10. Paint.NET, Inkscape.

NOTE: I’m willing to answer questions about any of these tools (provided I know the answer)!

General guidelines

  1. All dates/times should be in ISO-8601 format. I.e., dates should be represented as YYYY.MM.DD, YYYYMMDD, or YYYY/MM/DD and time should be represented as HHMMSS or HH:MM:SS.
  2. If there is a possibility of confusion of timezone, the time should be, preferably, in UTC timezone or include the local time zone.
  3. Filenames should comprise of alphanumeric characters and underscores. Try to avoid special characters, spaces, and punctuation as a part of filename.
  4. Filenames should contain enough context information that is independent of folder structure.

Programming related

  1. Use version control software!
  2. Comment your code.
  3. Pick any coding guideline that you like and stick with it. Be consistent.
  4. Learn to use a plain text editor efficiently.
  5. Learn grep/awk/sed!
  6. Use make/ant or create batch scripts.

Database related

  1. All tables should have PRIMARY KEY.
  2. Create a schema, named as the username used to login, after a createdb. Command (assuming username is 'vijay'): CREATE SCHEMA vijay; This makes porting data (during update/migration) much easier.
  3. Default DateStyle is set to ISO, MDY. Change it to ISO, YMD. Command: SET DateStyle = 'ISO, YMD';
  4. PostgreSQL allows DDL in BEGIN-COMMIT/ROLLBACK transaction blocks. ALWAYS USE TRANSACTIONS!
  5. Use AS when defining column/table aliases even though it is optional. This simplifies writing queries.
  6. Try to save the schema/table creation commands in a separate SQL script. This will be useful in the future when you need to create the tables without the data.

GIS related

  1. If you are joining features to an external Excel (xls[x]/csv) file ensure that there is no space in the column titles! Especially at the end of column titles!
  2. Always make changes in an edit session! This is the closest thing to transactions(in database parlance).

Solutions to some pesky computer issues

LaTeX: Symbols not available!

I tried to use rhd and Diamond symbols for a LaTeX document and kept on getting the error: LaTeX Error: Command \rhd not provided in base LaTeX2e. This is because we need an extra package. Put \usepackage{latexsym} to get many more symbols in LaTeX.

I found this solution here. Apparently there are many packages that provide all kind of symbols for use in LaTeX. See the comprehensive listing here.

MS Word: Cannot figure out what's causing this issue?

Use MS word in draft/outline view. Set the “Style area pane width...” to some practical value and solve many annoying problems. Shauna Kelly’s page at under the “Making the most of Word in your business” title lists solutions and best practices for common MS Word issues!

Some useful resources

Go back to: Home
Comments, questions, problem reports, suggestions welcome!