sharing programmer-to-programmer. please enjoy. pages are formatted for landscape tablet, laptop, or monitor.

general installation guide

disclaimer : at work, i behave. but, in my personal life, i am a selfish, naive, audacious, dog-fooding c programmer. basically, that means i build for myself, push the limits, and listen to my own drummer. i focus on spooky capability, rapid debugging, and transparency; not, ease of installation, training, and non-technical user experience.

i have always expected to share my source code for others amusement and research, but not really cared about sharing the finished programs. my hope is that others build something much better and avoid some of my mistakes along the way ;)

all that said, some folks want to see it for themselves. i respect that. here is a very general installation guide.

system and directories

everything is built for linux/gcc, but nearly all will run on any unix-like system as well. personally, i favor gentoo linux.

i live in x-windows, fluxbox, and eterm. a few programs expect X11 and/or require 16-color term with configurable fonts and colors.

to stay generalized, my interfaces are console, ncurses, and opengl. i use no other graphics support.

i keep to the filesystem hierarchy standard (FHS), with some minor extensions.

my system-wide code is generally kept in /home/system. some programs like polymnia check there.

installation helpers

my make system is two-layered — local Makefile plus a shared make macro. also, little installation helpers to gets things delivered.

first, download and install “make_program” from https://github.com/heatherlyrobert/make_program.

  • builds and adds getver and _lib to /usr/local/sbin (installation assistance)

  • adds make_program and make_prepare to /usr/loca/sbin (standard Makeflie macros)

  • adds make_curses.h and make_opengl.h to /usr/local/include (standard list of includes)

second, download and install “_inst”, from https://github.com/heatherlyrobert/_inst.

  • builds and adds getver and _lib to /usr/local/sbin (installation assistance)

my apologies as these are not verbose tools yet, so make can sometimes silently fail.

programs always have two versions

as said above, i am focused on spooky capability, rapid debugging, and transparency. when programs are built and installed, there are two versions. for instance, the my spreadsheet has a production version, “gyges”, and a debugging version, “gyges_debug”. the second version is linked with yLOG (execution logger) and yURG (real-time logging configuration). all of this means, you need to install yLOG and yURG also.

though most people may not care, these are my two favorite builds since they repeatedly saved me countless hours of traditional hunt-and-peck.

font decision

i made a couple of early architecture decisions to keep things right and external libraries to a minimum…

  • only use ascii 1 byte, 256 character fonts. no offense to anyone, i am just a man of simple requirements.

  • create personal map for chars 128-255 with control, math, greek, logic, line, etc.

  • use pre-built texture-mapped fonts in opengl; also 1 byte, 256 character limited.

so, in console and ncurses, my hand built font is shrike. you can see it at http://spidersdreaming.com/gallery/charset.

  • as you can see, the top 128 chars are packed with control, math, greek, and other symbols my programs use

  • you don’t need the build set-up unless you make or modify a font and need to install it

  • just bring it down from https://github.com/heatherlyrobert/phoenicia

  • i have included, in the directory, shrike already built as a console font (shrike.psf.gz)

  • just copy it in with your terminal fonts, most often in /usr/share/consolefonts/

  • the use setfont /usr/share/consolefonts/shrike to load it

  • the programs automatically accept the \ short-cuts to identify those characters

  • it you wish to use them in vim, i have a .vimrc section that does that

in opengl, i use my yFONT texture mapped front library which is pretty fast.

  • while the code is 95% mine, the concepts came from the shoulders of linux giants

  • font libraries are more beautiful, but texture mapped fonts are super fast

  • just build and install from https://github.com/heatherlyrobert/yFONT.

  • create the directory /usr/local/share/yfonts to store the final fonts

  • then, copy the 10 included sample *.txf font files into that shared directory.

  • i am still extending these to the 256 charmap, they are just 127 char fonts for now

tbd