TinyURL widget - shorten your URL's for free!

Enter a long URL to make tiny:

Friday, January 20, 2017

Here's how not to make your software library useful

You lock your functional code that does useful work into an archaic and unique GUI interface.  Leveraging code works best when you separate special functions  from interface. That way it's portable.

Now a developer saving your library from obsolescence has to either get the other interface working or rip that part out to save the important critical specialized contribution that you worked on for a considerable time.



To show you whereof I speak, here's a tree(-L 1)  of my source code directory;

.
├── 2007-12-17-freedius-linux.tar.gz
├── 32db.xml
├── ADMS-master
├── ADMS-master.tar.gz
├── aio
├── aio1
├── aio1.c
├── aio3
├── aio3.c
├── aio4.c
├──  aiocat.c
├── aio_main.c
├── aiopipe.c
├── apue.2e
├── apue.linux.tar.gz
├── APUE-src.2e.tar.gz
├── atprio.1.c
├── atprio.2.c
├── atprio.3.c
├── autoconf-archive
├── autogen-5.18.7
├── autogen-5.18.7.tar.gz
├── bar
├── behave
├── bin
├── binary
├── binary.c
├── bitcoin-miner
├── blahtexml-master
├── bugfixes2.html
├── bugfixes3.html
├── bugfixes4.html
├── bugfixes5.html
├── bugfixes6.html
├── bugfixes.css
├── bugfixes.html
├── build
├── build-doxample
├── build-hello
├── camwire2-1.9.4-Source
├── camwire2-1.9.4-Source.tar.gz
├── CANBus
├── carmen-0.7.4-beta
├── carmen-0.7.4-beta.tar.gz
├── cexp
├── cexp-2.2.1.tgz
├── cexp-2.2.2.tar.bz2
├── cexp-2.2.3.tar.bz2
├── cexp-2.2.tgz
├── cexp-CEXP_Release_2_2
├── cexp-CEXP_Release_2_2_1
├── cexp.tar.bz2
├── chroma.h
├── contiki_rosnode-master
├── contiki_rosnode-master.zip
├── coq-8.4pl6
├── correlator
├── cpubench.c
├── cpubound.c
├── cvodes-2.8.2
├── cvodes-2.8.2.tar.gz
├── cvs_archive.tar.gz
├── cvs_backup
├── date +%s-libdrdc.tar.bz2
├── def-guide-to-linux-network-programming-master
├── def-guide-to-linux-network-programming-master.tar.gz
├── demo-udp-01.tar.gz
├── dempstershaferlib-read-only
├── dol-ethz
├── doxample-0.1
├── doxample-0.1.1.tar.gz
├── doxample-0.1.tar.gz
├── DroneDynamics
├── encrypted-session-nginx-module-master
├── encrypted-session-nginx-module-master.zip
├── epubcheck-3.0.1
├── epubcheck-src-3.0.1
├── examples-v2-4.10.2
├── examples-v2-4.10.2.tar.bz2
├── expat-expat.tar.gz
├── fifo.c
├── finbot-0.1-30
├── fix
├── flann-1.8.4-src.zip
├── freedius-cmucl-x86.tar.gz
├── gazebo-2.2.3.tar.bz2
├── gazebo-7.1.0
├── gazebo-7.1.0.tar.gz
├── gazebo_position2d
├── gcc.out
├── Getopt-Gen-0.10
├── gfsm-0.0.15-1
├── gfsm-0.0.15-1.tar.gz
├── gfsmxl-0.0.13
├── gfsmxl-0.0.13.tar.gz
├── git
├── git-access-token-wider
├── git-access-token-wider~
├── github-git-cheat-sheet.pdf
├── github-libdrdc
├── github-recovery-codes.txt
├── gldemo.c
├── gldraw.c
├── gnu_select.c
├── gnu_select.c~
├── good_src
├── grip-3.3.1
├── grip-3.3.1.tar.gz
├── gts_0.7.6+darcs121130.orig.tar.gz
├── helloworld_cc-0.5
├── helloworld_cc-0.5-doxygen.tar.bz2
├── helloworld_cc-0.5.tar.gz
├── ignition-math-1.0.0
├── ignitionrobotics-ign-msgs-07607e5f1e77
├── ignitionrobotics-ign-msgs-07607e5f1e77.tar.bz2
├── index.html
├── install-meshlab.sh
├── install-meshlab.sh~
├── iobound.c
├── iopipe.c
├── ipc-3.9.1
├── ipc-3.9.1a.tar.gz
├── jhead-2.97
├── jhead-2.97.tar.gz
├── jhsample.tex
├── jitter.p4.c
├── kompozer
├── kompozer-0.8b3.en-US.gcc4.2-i686.tar.gz
├── lambda-master
├── lambda-master.zip
├── LENS
├── lens
├── levmar-2.6
├── levmar-2.6.tar.gz
├── lib3ds-1.3.0
├── lib3ds-1.3.0.tar.gz
├── lib7zip-1.6.5
├── libdc1394-2.2.1
├── libdrdc
├── libdrdc.tar.bz2
├── libEasySM_0_6.bz2
├── libhungarian-0.1.tar.gz
├── libinetsocket.c
├── libmozjs.so
├── libnmea-0.5.3
├── libnmea-0.5.3.tar.gz
├── libpico.tar.gz
├── libposemath-2014.04.29
├── libposemath-2014.04.29.tar.gz
├── libringbuffers-0.2.0
├── libringbuffers-0.2.0-4-gb1fa8b7
├── libringbuffers-0.2.0-4-gb1fa8b7.tar.gz
├── libringbuffers-0.2.0.tar.gz
├── libstate-0.1
├── lighttpd-1.4.40
├── lighttpd-1.4.40.tar.gz
├── lighttpd-1.4.41.tar.gz
├── localizer
├── make_archive.sh
├── marrspace
├── marrspace-0.1
├── marrspace-0.1.1.tar.bz2
├── marrspace-0.1.tar.bz2
├── marrspace-code
├── marrspace-code~
├── marrspace-code~~
├── marrspace-code2.tar.gz
├── marrspace-code.tar.bz2
├── math-tester
├── meshlab
├── MeshLabSrc_AllInc_v133.tgz
├── MESHLAB.tar.gz
├── MESSAGES
├── MESSAGES~
├── MESSAGES~~
├── meta-autonomy
├── minerd
├── minerd-ubuntu
├── MISC
├── mksem.c
├── mml.html
├── mn0x.png
├── mn1x.png
├── mn2x.png
├── mn3x.png
├── mn4x.png
├── mn5x.png
├── mn6x.png
├── mn.css
├── monad.c
├── MP4Joiner-2.1.2
├── MP4Joiner-2.1.2.tar.gz
├── mpi-examples
├── msg.c
├── muparser_v2_2_3
├── muparser_v2_2_3.tar.gz
├── nanomsg-0.6-beta
├── nanomsg-0.6-beta.tar.gz
├── NetlistViewer-0.1
├── netstat
├── network-demos-4.10.2
├── network-demos-4.10.2.tar.bz2
├── network-status.txt
├── Neural Networks at your Fingertips
├── new
├── Newserver
├── nginx-48bab8b83f4e
├── nginx-dev
├── nginx_udplog_module-1.0.0
├── ngspice-26
├── ngspice-26.tar.gz
├── ngx_devel_kit-master
├── ngx_http_stat_module-master
├── noswitch.c
├── ntree
├── ObjectCore
├── ObjectCore.tar.bz2
├── octave-3.6.4
├── octave-3.6.4.tar.bz2
├── ogl_fps_controls.zip
├── old
├── ompi-master
├── ompi-master.zip
├── OpenCV
├── opencv-1.1.0
├── opencv-1.1pre1.tar.gz
├── OpenGL
├── opengl-floatingcamera.c
├── opengl-floatingcamera.c~
├── openmpi-1.6.5
├── openmpi-1.6.5.tar.bz2
├── openmpi-2.0.1
├── openmpi-2.0.1.tar.bz2
├── oregano-master
├── p4code.zip
├── p4src
├── PDP
├── pdptool.zip
├── periodic_timer.c
├── periodic_timer.p4.c
├── PID-master
├── PID-master.tar.bz2
├── PixyMon
├── player-1.6.5
├── player-1.6.5.tar.gz
├── player-2.0.5
├── player-2.1.3
├── player-2.1.3.tar.bz2
├── player-3.0.1
├── player-3.0.2
├── player-3.0.2.tar.bz2
├── player-3.0.2.zip
├── pooler-cpuminer-2.4-linux-x86.tar.gz
├── portals4
├── portals4-1.0a1
├── posemath
├── productArray.c
├── protobuf-c-1.0.2
├── protobuf-c-1.0.2.tar.bz2
├── protobuf-c-1.1.0
├── protobuf-c-1.1.0.tar.gz
├── protobuf-c-1.1.1
├── protobuf-c-1.1.1.tar.gz
├── protobuf-c-master
├── protobuf-c-master.tar.gz
├── protobuf-c-rpc-master
├── protobuf-c-rpc-master-1.tar.bz2
├── protobuf-c-rpc-master.tar.bz2
├── protobuf-c-text-1.0.0
├── protobuf-c-text-1.0.0.tar.gz
├── protobuf-c-text-master
├── protobuf-c-text-master.zip
├── qucs-0.0.19
├── qucs-0.0.19-160204-git-83cc216.tar.gz
├── README
├── ringbuffer
├── rmsem.c
├── ros_messages
├── ROS.NET-master
├── ROS.NET-master.zip
├── RTEMS
├── rtl
├── rtl-host
├── saph62d_6s.tar.gz
├── Saphira-8.4-1.i386.rpm
├── scalable-vector-graphics-svg
├── seamonkey
├── seamonkey-2.17.1.tar.bz2
├── sending_recving_sigs_self.c
├── sending_sigs.c
├── sending_sigs_self.c
├── server
├── server2.tar.gz
├── server2.zip
├── server.zip
├── set_var
├── shm.c
├── shmmutex_flock.c
├── shmmutex_sem.c
├── shmmutex_semembed.c
├── Sigil-master
├── Sigil-master.tar.gz
├── sigs_sent_noswtch.c
├── sigs_sent_swtch.c
├── sigs_sent_swtch.p4.c
├── sk1-0.9.3
├── sk1-0.9.3.zip
├── src
├── startcoin-master
├── startcoin-master.tar.gz
├── Stellar_1.0
├── Stellar_1.0.tar.gz
├── store
├── stratum-mining-master
├── stream-echo-nginx-module-master
├── stream-echo-nginx-module-master.tar.gz
├── string_example
├── Structure Synth Source Code
├── StructureSynth-Source-v1.5.0.tar.gz
├── svg-edit-2.6
├── svgedit_app
├── switch.c
├── task-nginx-udp-log-module-master
├── task-nginx-udp-log-module-master.tar.gz
├── tcl8.3.5
├── tcl8.3.5-src.tar.bz2
├── temp
├── tensorflow-master
├── tensorflow-master.tar.gz
├── test
├── test_gnu
├── test-rpc.c
├── tex4ht-1.0.2009_06_11_1038
├── tex4ht-all.tar.gz
├── tex4ht-env-unix.txt
├── tex4ht-env-win32.txt
├── tex4ht-lit.zip
├── tex4ht-svn
├── tex4ht.zip
├── texmf
├── tk8.3.5
├── tk8.3.5-src.tar.bz2
├── tlpi-160726-dist.tar.gz
├── tlpi-dist
├── tpl-master
├── tpl-master.tar.gz
├── tree
├── tree.c
├── tree.out
├── trunk
├── trustengine-read-only
├── tth_C
├── tth_C.tar.gz
├── Turing_machine_simulator_(C)
├── Turing_machine_simulator_(C).tar.gz
├── ultra-new
├── Untitled Folder
├── Untitled Folder 2
├── va_arg
├── vcglib
├── vec_projection.m
├── velodynedriver
├── velodynedriver-1.0
├── velodynedriver-1.0.1
├── velodynedriver-1.02
├── velodyne_xml_parser.c
├── ver62
├── vislib-V1.9.4.tar.gz
├── vsched.c
├── worker_posix.h
├── workspace
└── xMind

172 directories, 200 files

I've worked with over 150 open source projects.